diff --git a/CMakeLists.txt b/CMakeLists.txt index b19636778..0ffe20f22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -152,14 +152,24 @@ add_executable(storm-tests ${STORM_TEST_SOURCES} ${STORM_TEST_HEADERS}) target_link_libraries(storm ${Boost_LIBRARIES}) target_link_libraries(storm-tests ${Boost_LIBRARIES}) -# Include Cotire for PCH Generation -set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/resources/cmake") -include(cotire) - -cotire(storm) -target_link_libraries(storm_unity ${Boost_LIBRARIES}) -#cotire(storm-tests) - +set (STORM_USE_COTIRE ON) +if (APPLE) + set(STORM_USE_COTIRE OFF) +endif(APPLE) + +# Print Cotire Usage Status +message (STATUS "Using Cotire: ${STORM_USE_COTIRE}") + +if (STORM_USE_COTIRE) + # Include Cotire for PCH Generation + set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/resources/cmake") + include(cotire) + + cotire(storm) + target_link_libraries(storm_unity ${Boost_LIBRARIES}) + #cotire(storm-tests) +endif() + # Add a target to generate API documentation with Doxygen if(DOXYGEN_FOUND) set(CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc") @@ -187,27 +197,33 @@ endif(GTEST_INCLUDE_DIR) if (LOG4CPLUS_INCLUDE_DIR) include_directories(${LOG4CPLUS_INCLUDE_DIR}) target_link_libraries(storm ${LOG4CPLUS_LIBRARIES}) - target_link_libraries(storm_unity ${LOG4CPLUS_LIBRARIES}) + if (STORM_USE_COTIRE) + target_link_libraries(storm_unity ${LOG4CPLUS_LIBRARIES}) + endif(STORM_USE_COTIRE) target_link_libraries(storm-tests ${LOG4CPLUS_LIBRARIES}) # On Linux, we have to link against librt if (UNIX AND NOT APPLE) - target_link_libraries(storm rt) - target_link_libraries(storm_unity rt) - target_link_libraries(storm-tests rt) + target_link_libraries(storm rt) + if (STORM_USE_COTIRE) + target_link_libraries(storm_unity rt) + endif(STORM_USE_COTIRE) + target_link_libraries(storm-tests rt) endif(UNIX AND NOT APPLE) endif(LOG4CPLUS_INCLUDE_DIR) if (THREADS_FOUND) include_directories(${THREADS_INCLUDE_DIRS}) - target_link_libraries(storm ${CMAKE_THREAD_LIBS_INIT}) - target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT}) + target_link_libraries(storm ${CMAKE_THREAD_LIBS_INIT}) + if (STORM_USE_COTIRE) + target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT}) + endif(STORM_USE_COTIRE) target_link_libraries(storm-tests ${CMAKE_THREAD_LIBS_INIT}) endif(THREADS_FOUND) # Configure a header file to pass some of the CMake settings to the source code configure_file ( - "${PROJECT_SOURCE_DIR}/storm-config.h.in" - "${PROJECT_BINARY_DIR}/storm-config.h" + "${PROJECT_SOURCE_DIR}/storm-config.h.in" + "${PROJECT_BINARY_DIR}/storm-config.h" ) add_custom_target(memcheck valgrind --leak-check=full --show-reachable=yes ${PROJECT_BINARY_DIR}/storm -v --fix-deadlocks ${PROJECT_SOURCE_DIR}/examples/dtmc/crowds/crowds5_5.tra examples/dtmc/crowds/crowds5_5.lab