applied cmake into Strategy Pattern