aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAntony Woods <acron1@gmail.com>2013-10-31 09:01:02 +0000
committerAntony Woods <acron1@gmail.com>2013-10-31 09:01:02 +0000
commit9119c560108b4640e4e55e91d9066ec59d23e251 (patch)
treed3adc1dd6a657cf4604639a0ec0696b528e3b4bd /CMakeLists.txt
parent30c394088d733ccf5b1a40787e15bb6b2dcd0164 (diff)
Line endings fix?
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt340
1 files changed, 170 insertions, 170 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a354a67..6c0d5d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,170 +1,170 @@
-cmake_minimum_required(VERSION 2.8)
-
-set(ENTITYX_MAJOR_VERSION 0)
-set(ENTITYX_MINOR_VERSION 8)
-set(ENTITYX_PATCH_VERSION 1)
-set(ENTITYX_VERSION ${ENTITYX_MAJOR_VERSION}.${ENTITYX_MINOR_VERSION}.${ENTITYX_PATCH_VERSION})
-
-
-include_directories(${CMAKE_CURRENT_LIST_DIR})
-
-set(ENTITYX_BUILD_TESTING false CACHE BOOL "Enable building of tests.")
-set(ENTITYX_RUN_BENCHMARKS false CACHE BOOL "Run benchmarks (in conjunction with -DENTITYX_BUILD_TESTING=1).")
-set(ENTITYX_MAX_COMPONENTS 64 CACHE STRING "Set the maximum number of components.")
-set(ENTITYX_USE_CPP11_STDLIB false CACHE BOOL "For Clang, specify whether to use libc++ (-stdlib=libc++).")
-# Check for which shared_ptr implementation to use.
-set(ENTITYX_BUILD_SHARED false CACHE BOOL "Build shared libraries?")
-set(ENTITYX_BUILD_PYTHON false CACHE BOOL "Build entityx::python?")
-
-include(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
-include(CheckCXXSourceCompiles)
-
-# Default compiler args
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Werror -Wall -Wextra -Wno-unused-parameter -Wno-error=unused-variable -Wno-error=sign-compare -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")
-
-# C++11 feature checks
-include(CheckCXX11Features.cmake)
-
-# Misc features
-check_include_file("stdint.h" HAVE_STDINT_H)
-
-macro(require FEATURE_NAME MESSAGE_STRING)
- if (NOT ${${FEATURE_NAME}})
- message(FATAL_ERROR "${MESSAGE_STRING} required -- ${${FEATURE_NAME}}")
- else()
- message("-- ${MESSAGE_STRING} found")
- endif()
-endmacro(require)
-
-macro(create_test TARGET_NAME SOURCE)
- add_executable(${TARGET_NAME} ${SOURCE})
- target_link_libraries(
- ${TARGET_NAME}
- entityx
- gtest
- gtest_main
- ${ARGN}
- )
- add_test(${TARGET_NAME} ${TARGET_NAME})
-endmacro()
-
-if (NOT CMAKE_BUILD_TYPE)
- message("-- Defaulting to release build (use -DCMAKE_BUILD_TYPE:STRING=Debug for debug build)")
- set(CMAKE_BUILD_TYPE "Release")
-endif()
-
-message("-- Checking C++ features")
-require(HAS_CXX11_AUTO "C++11 auto support")
-require(HAS_CXX11_NULLPTR "C++11 nullptr support")
-require(HAS_CXX11_RVALUE_REFERENCES "C++11 rvalue reference support")
-#require(HAS_CXX11_CSTDINT_H "C++11 stdint support")
-require(HAS_CXX11_VARIADIC_TEMPLATES "C++11 variadic templates")
-require(HAS_CXX11_RVALUE_REFERENCES "C++11 rvalue references")
-require(HAS_CXX11_LONG_LONG "C++11 long long")
-require(HAS_CXX11_LONG_LONG "C++11 lambdas")
-
-message("-- Checking misc features")
-require(HAVE_STDINT_H "stdint.h")
-
-if (ENTITYX_BUILD_PYTHON)
- message("-- Building with Python support (-DENTITYX_BUILD_PYTHON=0 to disable)")
- find_package(Boost 1.48.0 COMPONENTS python)
-else (ENTITYX_BUILD_PYTHON)
- message("-- Python support disabled")
-endif (ENTITYX_BUILD_PYTHON)
-
-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")
-
-# Things to install
-set(install_libs entityx)
-
-set(sources entityx/tags/TagsComponent.cc entityx/deps/Dependencies.cc entityx/System.cc entityx/Event.cc entityx/Entity.cc entityx/Manager.cc entityx/help/Timer.cc)
-add_library(entityx STATIC ${sources})
-
-if (ENTITYX_BUILD_SHARED)
- message("-- Building shared libraries (-DENTITYX_BUILD_SHARED=0 to only build static librarires)")
- add_library(entityx_shared SHARED ${sources})
- target_link_libraries(
- entityx_shared
- )
- set_target_properties(entityx_shared PROPERTIES OUTPUT_NAME entityx)
- list(APPEND install_libs entityx_shared)
-endif (ENTITYX_BUILD_SHARED)
-
-if (ENTITYX_BUILD_PYTHON AND Boost_PYTHON_LIBRARY)
- message("-- Found boost::python, building entityx/python")
- find_package(PythonLibs REQUIRED)
- include_directories(${PYTHON_INCLUDE_DIRS})
- set(ENTITYX_HAVE_BOOST_PYTHON 1)
- set(python_sources entityx/python/PythonSystem.cc)
- add_library(entityx_python STATIC ${python_sources})
- list(APPEND install_libs entityx_python)
- install(
- FILES ${CMAKE_CURRENT_SOURCE_DIR}/entityx/python/entityx/__init__.py
- DESTINATION share/entityx/python/
- RENAME entityx.py
- )
- message("-- Installing entityx Python package to ${CMAKE_INSTALL_PREFIX}/share/entityx/python")
- set(ENTITYX_INSTALLED_PYTHON_PACKAGE_DIR ${CMAKE_INSTALL_PREFIX}/share/entityx/python/)
- if (ENTITYX_BUILD_SHARED)
- add_library(entityx_python_shared SHARED ${python_sources})
- target_link_libraries(
- entityx_python_shared
- entityx_shared
- ${Boost_PYTHON_LIBRARY}
- ${PYTHON_LIBRARIES}
- )
- set_target_properties(entityx_python_shared PROPERTIES OUTPUT_NAME entityx_python)
- list(APPEND install_libs entityx_python_shared)
- endif (ENTITYX_BUILD_SHARED)
- set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
- include(CheckNeedGetPointer.cmake)
-endif (ENTITYX_BUILD_PYTHON AND Boost_PYTHON_LIBRARY)
-
-if (ENTITYX_BUILD_TESTING)
- #find_package(Boost 1.48.0 REQUIRED COMPONENTS timer system)
- add_subdirectory(gtest-1.6.0)
- include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
- enable_testing()
- create_test(entity_test entityx/Entity_test.cc)
- create_test(event_test entityx/Event_test.cc)
- create_test(system_test entityx/System_test.cc)
- create_test(tags_component_test entityx/tags/TagsComponent_test.cc)
- create_test(dependencies_test entityx/deps/Dependencies_test.cc)
- if (Boost_PYTHON_LIBRARY)
- add_definitions(-DENTITYX_PYTHON_TEST_DATA=\"${CMAKE_CURRENT_SOURCE_DIR}/entityx/python\")
- create_test(python_test entityx/python/PythonSystem_test.cc entityx_python ${Boost_PYTHON_LIBRARY} ${PYTHON_LIBRARIES})
- endif (Boost_PYTHON_LIBRARY)
- if (ENTITYX_RUN_BENCHMARKS)
- message("-- Running benchmarks")
- add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=1 -DBOOST_NO_CXX11_NUMERIC_LIMITS=1)
- create_test(benchmarks_test entityx/Benchmarks_test.cc)
- else ()
- message("-- Not running benchmarks (use -DENTITYX_RUN_BENCHMARKS=1 to enable)")
- endif ()
-endif (ENTITYX_BUILD_TESTING)
-
-
-configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/entityx/config.h.in
- ${CMAKE_CURRENT_SOURCE_DIR}/entityx/config.h
-)
-
-install(
- DIRECTORY "entityx"
- DESTINATION "include"
- FILES_MATCHING PATTERN "*.h"
- )
-
-install(
- TARGETS ${install_libs}
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
- )
+cmake_minimum_required(VERSION 2.8)
+
+set(ENTITYX_MAJOR_VERSION 0)
+set(ENTITYX_MINOR_VERSION 8)
+set(ENTITYX_PATCH_VERSION 1)
+set(ENTITYX_VERSION ${ENTITYX_MAJOR_VERSION}.${ENTITYX_MINOR_VERSION}.${ENTITYX_PATCH_VERSION})
+
+
+include_directories(${CMAKE_CURRENT_LIST_DIR})
+
+set(ENTITYX_BUILD_TESTING false CACHE BOOL "Enable building of tests.")
+set(ENTITYX_RUN_BENCHMARKS false CACHE BOOL "Run benchmarks (in conjunction with -DENTITYX_BUILD_TESTING=1).")
+set(ENTITYX_MAX_COMPONENTS 64 CACHE STRING "Set the maximum number of components.")
+set(ENTITYX_USE_CPP11_STDLIB false CACHE BOOL "For Clang, specify whether to use libc++ (-stdlib=libc++).")
+# Check for which shared_ptr implementation to use.
+set(ENTITYX_BUILD_SHARED false CACHE BOOL "Build shared libraries?")
+set(ENTITYX_BUILD_PYTHON false CACHE BOOL "Build entityx::python?")
+
+include(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+include(CheckCXXSourceCompiles)
+
+# Default compiler args
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Werror -Wall -Wextra -Wno-unused-parameter -Wno-error=unused-variable -Wno-error=sign-compare -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")
+
+# C++11 feature checks
+include(CheckCXX11Features.cmake)
+
+# Misc features
+check_include_file("stdint.h" HAVE_STDINT_H)
+
+macro(require FEATURE_NAME MESSAGE_STRING)
+ if (NOT ${${FEATURE_NAME}})
+ message(FATAL_ERROR "${MESSAGE_STRING} required -- ${${FEATURE_NAME}}")
+ else()
+ message("-- ${MESSAGE_STRING} found")
+ endif()
+endmacro(require)
+
+macro(create_test TARGET_NAME SOURCE)
+ add_executable(${TARGET_NAME} ${SOURCE})
+ target_link_libraries(
+ ${TARGET_NAME}
+ entityx
+ gtest
+ gtest_main
+ ${ARGN}
+ )
+ add_test(${TARGET_NAME} ${TARGET_NAME})
+endmacro()
+
+if (NOT CMAKE_BUILD_TYPE)
+ message("-- Defaulting to release build (use -DCMAKE_BUILD_TYPE:STRING=Debug for debug build)")
+ set(CMAKE_BUILD_TYPE "Release")
+endif()
+
+message("-- Checking C++ features")
+require(HAS_CXX11_AUTO "C++11 auto support")
+require(HAS_CXX11_NULLPTR "C++11 nullptr support")
+require(HAS_CXX11_RVALUE_REFERENCES "C++11 rvalue reference support")
+#require(HAS_CXX11_CSTDINT_H "C++11 stdint support")
+require(HAS_CXX11_VARIADIC_TEMPLATES "C++11 variadic templates")
+require(HAS_CXX11_RVALUE_REFERENCES "C++11 rvalue references")
+require(HAS_CXX11_LONG_LONG "C++11 long long")
+require(HAS_CXX11_LONG_LONG "C++11 lambdas")
+
+message("-- Checking misc features")
+require(HAVE_STDINT_H "stdint.h")
+
+if (ENTITYX_BUILD_PYTHON)
+ message("-- Building with Python support (-DENTITYX_BUILD_PYTHON=0 to disable)")
+ find_package(Boost 1.48.0 COMPONENTS python)
+else (ENTITYX_BUILD_PYTHON)
+ message("-- Python support disabled")
+endif (ENTITYX_BUILD_PYTHON)
+
+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")
+
+# Things to install
+set(install_libs entityx)
+
+set(sources entityx/tags/TagsComponent.cc entityx/deps/Dependencies.cc entityx/System.cc entityx/Event.cc entityx/Entity.cc entityx/Manager.cc entityx/help/Timer.cc)
+add_library(entityx STATIC ${sources})
+
+if (ENTITYX_BUILD_SHARED)
+ message("-- Building shared libraries (-DENTITYX_BUILD_SHARED=0 to only build static librarires)")
+ add_library(entityx_shared SHARED ${sources})
+ target_link_libraries(
+ entityx_shared
+ )
+ set_target_properties(entityx_shared PROPERTIES OUTPUT_NAME entityx)
+ list(APPEND install_libs entityx_shared)
+endif (ENTITYX_BUILD_SHARED)
+
+if (ENTITYX_BUILD_PYTHON AND Boost_PYTHON_LIBRARY)
+ message("-- Found boost::python, building entityx/python")
+ find_package(PythonLibs REQUIRED)
+ include_directories(${PYTHON_INCLUDE_DIRS})
+ set(ENTITYX_HAVE_BOOST_PYTHON 1)
+ set(python_sources entityx/python/PythonSystem.cc)
+ add_library(entityx_python STATIC ${python_sources})
+ list(APPEND install_libs entityx_python)
+ install(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/entityx/python/entityx/__init__.py
+ DESTINATION share/entityx/python/
+ RENAME entityx.py
+ )
+ message("-- Installing entityx Python package to ${CMAKE_INSTALL_PREFIX}/share/entityx/python")
+ set(ENTITYX_INSTALLED_PYTHON_PACKAGE_DIR ${CMAKE_INSTALL_PREFIX}/share/entityx/python/)
+ if (ENTITYX_BUILD_SHARED)
+ add_library(entityx_python_shared SHARED ${python_sources})
+ target_link_libraries(
+ entityx_python_shared
+ entityx_shared
+ ${Boost_PYTHON_LIBRARY}
+ ${PYTHON_LIBRARIES}
+ )
+ set_target_properties(entityx_python_shared PROPERTIES OUTPUT_NAME entityx_python)
+ list(APPEND install_libs entityx_python_shared)
+ endif (ENTITYX_BUILD_SHARED)
+ set(CMAKE_REQUIRED_FLAGS ${CMAKE_CXX_FLAGS})
+ include(CheckNeedGetPointer.cmake)
+endif (ENTITYX_BUILD_PYTHON AND Boost_PYTHON_LIBRARY)
+
+if (ENTITYX_BUILD_TESTING)
+ #find_package(Boost 1.48.0 REQUIRED COMPONENTS timer system)
+ add_subdirectory(gtest-1.6.0)
+ include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})
+ enable_testing()
+ create_test(entity_test entityx/Entity_test.cc)
+ create_test(event_test entityx/Event_test.cc)
+ create_test(system_test entityx/System_test.cc)
+ create_test(tags_component_test entityx/tags/TagsComponent_test.cc)
+ create_test(dependencies_test entityx/deps/Dependencies_test.cc)
+ if (Boost_PYTHON_LIBRARY)
+ add_definitions(-DENTITYX_PYTHON_TEST_DATA=\"${CMAKE_CURRENT_SOURCE_DIR}/entityx/python\")
+ create_test(python_test entityx/python/PythonSystem_test.cc entityx_python ${Boost_PYTHON_LIBRARY} ${PYTHON_LIBRARIES})
+ endif (Boost_PYTHON_LIBRARY)
+ if (ENTITYX_RUN_BENCHMARKS)
+ message("-- Running benchmarks")
+ add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=1 -DBOOST_NO_CXX11_NUMERIC_LIMITS=1)
+ create_test(benchmarks_test entityx/Benchmarks_test.cc)
+ else ()
+ message("-- Not running benchmarks (use -DENTITYX_RUN_BENCHMARKS=1 to enable)")
+ endif ()
+endif (ENTITYX_BUILD_TESTING)
+
+
+configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/entityx/config.h.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/entityx/config.h
+)
+
+install(
+ DIRECTORY "entityx"
+ DESTINATION "include"
+ FILES_MATCHING PATTERN "*.h"
+ )
+
+install(
+ TARGETS ${install_libs}
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ )