project("c++11_test") cmake_minimum_required(VERSION 2.8.2) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}") include(CheckCXX11Features.cmake) # GCC specifics if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -std=c++0x") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") endif() # Visual Studio specifics if(MSVC) # Warning Level 4 for Debug builds list(APPEND CMAKE_CXX_FLAGS_DEBUG " /W4") list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS_DEBUG) endif() # Clang If(CMAKE_CXX_COMPILER_ID MATCHES "Clang") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -std=c++11") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb") EndIf() #add_executable(testme "demo.cpp") #foreach(flag ${CXX11_FEATURE_LIST}) # set_property(TARGET testme # APPEND PROPERTY COMPILE_DEFINITIONS ${flag} # ) #endforeach()