cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project("To do list") enable_testing() if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") set(warnings "-Wall -Wextra -Werror") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") set(warnings "/W4 /WX /EHsc") endif() set(optimize "-O2") if (NOT CONFIGURED_ONCE) set(CMAKE_CXX_FLAGS "${warnings} ${optimize}" CACHE STRING "Flags used by the compiler during all build types." FORCE) set(CMAKE_C_FLAGS "${warnings} ${optimize}" CACHE STRING "Flags used by the compiler during all build types." FORCE) endif() add_executable(toDo main.cpp ToDo.cpp) add_test(toDoTest toDo) set(CONFIGURED_ONCE TRUE CACHE INTERNAL "A flag showing that CMake has configured at least once.")