diff options
author | Alec Thomas <alec@swapoff.org> | 2012-10-18 13:21:06 -0400 |
---|---|---|
committer | Alec Thomas <alec@swapoff.org> | 2012-10-18 13:21:06 -0400 |
commit | 92dc19d8a0eaea4aac6327490695420deb226218 (patch) | |
tree | 03d16ac15fb4acf9704a347df639de0a76152f2f /CMakeLists.txt | |
parent | d6c7bd8997458658dc4853c36c982acd92966875 (diff) |
Add C++11 feature checking to cmake.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index bb94909..8075f23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,22 @@ cmake_minimum_required(VERSION 2.8) project(EntityX) -include_directories(.) +include_directories(. ./c++11) + +# C++11 feature checks +include(CheckCXX11Features.cmake) + +MACRO(REQUIRE FEATURE_NAME MESSAGE_STRING) + if (NOT DEFINED ${FEATURE_NAME}) + message(FATAL_ERROR ${MESSAGE_STRING}) + endif() +ENDMACRO(REQUIRE) + +require(HAS_CXX11_AUTO "C++11 auto support is required") +require(HAS_CXX11_NULLPTR "C++11 nullptr support is required") +require(HAS_CXX11_RVALUE_REFERENCES "C++11 rvalue reference support is required") +require(HAS_CXX11_CSTDINT_H "C++11 stdint support is required") +require(HAS_CXX11_VARIADIC_TEMPLATES "C++11 variadic templates required") + enable_testing() find_package(GTest REQUIRED) set(Boost_USE_STATIC_LIBS OFF) @@ -9,13 +25,17 @@ set(Boost_USE_STATIC_RUNTIME OFF) #find_package(Boost REQUIRED COMPONENTS) find_package(Boost 1.36.0 REQUIRED COMPONENTS signals) +set(CMAKE_CXX_FLAGS "-ansi -pedantic -Werror -Wall -Wextra -Wno-unused-parameter -Wno-error=unused-variable -std=c++11") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") + + include_directories( ${Boost_INCLUDE_DIR} ${GTest_INCLUDE_DIR} ) -add_definitions( - -ansi -pedantic -Werror -Wall -Wextra -Wno-unused-parameter -Wno-error=unused-variable -std=c++11 - ) add_executable( entityx_test entityx/Components_test.cc |