cmake_minimum_required (VERSION 2.8) project (Tick) # The version number. set (Tick_VERSION_MAJOR 1) set (Tick_VERSION_MINOR 2) include(CheckCXXCompilerFlag) enable_language(CXX) if(CMAKE_HOST_APPLE) check_cxx_compiler_flag("-stdlib=libc++" COMPILER_HAS_CXX_FLAG_libcxx) if(COMPILER_HAS_CXX_FLAG_libcxx) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() endif() set(ENABLE_CXXFLAGS_TO_CHECK -std=gnu++1y -std=c++1y -std=gnu++11 -std=c++11 -std=gnu++0x -std=c++0x) foreach(flag ${ENABLE_CXXFLAGS_TO_CHECK}) string(REPLACE "-std=" "_" flag_var ${flag}) string(REPLACE "+" "x" flag_var ${flag_var}) check_cxx_compiler_flag("${flag}" COMPILER_HAS_CXX_FLAG${flag_var}) if(COMPILER_HAS_CXX_FLAG${flag_var}) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") break() endif() endforeach() add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} -VV -C ${CMAKE_CFG_INTDIR}) macro(add_test_executable TEST_NAME_) set(TEST_NAME "${TEST_NAME_}") add_executable (${TEST_NAME} EXCLUDE_FROM_ALL test/${TEST_NAME}.cpp ${ARGN}) if(WIN32) add_test(NAME ${TEST_NAME} WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMMAND ${TEST_NAME}${CMAKE_EXECUTABLE_SUFFIX}) else() add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME}) endif() add_dependencies(check ${TEST_NAME}) set_tests_properties(${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED") endmacro(add_test_executable) include(CTest) install (DIRECTORY tick DESTINATION include) configure_file(tick.pc.in tick.pc) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tick.pc DESTINATION lib/pkgconfig) include_directories(.) add_test_executable(builder) add_test_executable(fold) add_test_executable(integral_constant) add_test_executable(matches) add_test_executable(requires) add_test_executable(set) add_test_executable(tag) add_test_executable(trait_check) add_test_executable(traits)