aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAlec Thomas <alec@swapoff.org>2012-10-18 13:21:06 -0400
committerAlec Thomas <alec@swapoff.org>2012-10-18 13:21:06 -0400
commit92dc19d8a0eaea4aac6327490695420deb226218 (patch)
tree03d16ac15fb4acf9704a347df639de0a76152f2f /CMakeLists.txt
parentd6c7bd8997458658dc4853c36c982acd92966875 (diff)
Add C++11 feature checking to cmake.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt28
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