diff --git a/CMakeLists.txt b/CMakeLists.txt index bbf8e4824..555f793dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,12 +43,11 @@ else() set (CMAKE_BUILD_TYPE "RELEASE") endif() message(STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version.") -message(STATUS "StoRM - CMAKE_BUILD_TYPE (ENV): $ENV{CMAKE_BUILD_TYPE}") if(STORM_COMPILE_WITH_CCACHE) find_program(CCACHE_FOUND ccache) if(CCACHE_FOUND) - message(STATUS "SToRM - Using ccache") + message(STATUS "StoRM - Using ccache") set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) else() @@ -476,7 +475,6 @@ endif() if(STORM_HAVE_CARL) message(STATUS "StoRM - Linking with carl.") - message("${carl_INCLUDE_DIR}") include_directories("${carl_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES}) endif() @@ -533,7 +531,7 @@ endif(ENABLE_MSAT) find_package(Xerces) if(NOT XERCES_FOUND) - message("Use shipped version of xerces") + message(STATUS "Use shipped version of xerces") set(XERCES_ROOT ${CMAKE_BINARY_DIR}/resources/3rdparty/xercesc-3.1.2) set(XERCESC_INCLUDE ${XERCES_ROOT}/include) set(XERCES_LIBRARY_PATH ${XERCES_ROOT}/lib) @@ -583,9 +581,6 @@ endif() ## ############################################################# -set(gtest_force_shared_crt ON) -add_subdirectory("${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.7.0") - ############################################################# ## ## Log4CPlus @@ -615,20 +610,16 @@ set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_mer find_package(TBB) -if (TBB_FOUND AND STORM_USE_INTELTBB) - link_directories(${TBB_LIBRARY_DIRS}) - set(STORM_CPP_INTELTBB_DEF "define") -else() - set(STORM_CPP_INTELTBB_DEF "undef") -endif() - +set(STORM_HAVE_INTELTBB 0) if (TBB_FOUND) - message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") + message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") if (STORM_USE_INTELTBB) + set(STORM_HAVE_INTELTBB 1) message(STATUS "StoRM - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.") - include_directories(${TBB_INCLUDE_DIRS}) - target_link_libraries(storm tbb tbbmalloc) + link_directories(${TBB_LIBRARY_DIRS}) + include_directories(${TBB_INCLUDE_DIRS}) + list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc) endif(STORM_USE_INTELTBB) endif(TBB_FOUND) diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index cf7053498..694ab7265 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -1,20 +1,60 @@ +add_custom_target(resources) +add_custom_target(test-resources) + include(ExternalProject) ExternalProject_Add( xercesc SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xercesc-3.1.2 - CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/xercesc-3.1.2/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/xercesc-3.1.2 + CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/xercesc-3.1.2/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/xercesc-3.1.2 --libdir=${CMAKE_CURRENT_BINARY_DIR}/xercesc-3.1.2/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=-O3 CXXFLAGS=-O3 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/xercesc-3.1.2 BUILD_COMMAND make BUILD_IN_SOURCE 0 + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON ) +add_dependencies(resources xercesc) ExternalProject_Add( glpk DOWNLOAD_COMMAND "" PREFIX ${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57 SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/glpk-4.57 - CONFIGURE_COMMAND CC=${CMAKE_C_COMPILER} ${CMAKE_CURRENT_SOURCE_DIR}/glpk-4.57/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57 + CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/glpk-4.57/configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57 --libdir=${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57/lib CC=${CMAKE_C_COMPILER} BUILD_COMMAND make "CFLAGS=-O2 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON ) +add_dependencies(resources glpk) + + +ExternalProject_Add( + googletest + #For downloads (may be useful later!) + #SVN_REPOSITORY http://googletest.googlecode.com/svn/trunk/ + #TIMEOUT 10 + DOWNLOAD_COMMAND "" + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.7.0" + # Force separate output paths for debug and release builds to allow easy + # identification of correct lib in subsequent TARGET_LINK_LIBRARIES + CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCXX=${CMAKE_CXX_COMPILER} + # Disable install step + INSTALL_COMMAND "" + BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/gtest-1.7.0" + INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/gtest-1.7.0" + # Wrap download, configure and build steps in a script to log output + LOG_CONFIGURE ON + LOG_BUILD ON) + +# Specify include dir +ExternalProject_Get_Property(googletest source_dir) +set(GTEST_INCLUDE_DIR ${source_dir}/include PARENT_SCOPE) +# Specify MainTest's link libraries +ExternalProject_Get_Property(googletest binary_dir) +set(GTEST_LIBRARIES ${binary_dir}/libgtest.a ${binary_dir}/libgtest_main.a PARENT_SCOPE) + +add_dependencies(test-resources googletest) + diff --git a/resources/3rdparty/log4cplus-1.1.3-rc1/CMakeLists.txt b/resources/3rdparty/log4cplus-1.1.3-rc1/CMakeLists.txt index 269960827..fdd3b55a0 100644 --- a/resources/3rdparty/log4cplus-1.1.3-rc1/CMakeLists.txt +++ b/resources/3rdparty/log4cplus-1.1.3-rc1/CMakeLists.txt @@ -24,9 +24,9 @@ message("-- Generating build for Log4cplus version ${log4cplus_version_major}.${ set (log4cplus_soversion 9) set (log4cplus_postfix "") -option(LOG4CPLUS_BUILD_TESTING "Build the test suite." ON) +option(LOG4CPLUS_BUILD_TESTING "Build the test suite." OFF) -option(LOG4CPLUS_BUILD_LOGGINGSERVER "Build the logging server." ON) +option(LOG4CPLUS_BUILD_LOGGINGSERVER "Build the logging server." OFF) option(LOG4CPLUS_DEFINE_INSTALL_TARGET "Whether the install target should be generated." OFF) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b234ac88b..94326b02b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -109,9 +109,8 @@ endif(ADDITIONAL_LINK_DIRS) ## # ############################################################################### add_library(storm SHARED ${STORM_LIB_SOURCES} ${STORM_LIB_HEADERS} ${STORM_GENERATED_SOURCES}) # Adding headers for xcode -add_dependencies(storm xercesc) add_dependencies(storm sylvan) -add_dependencies(storm glpk) +add_dependencies(storm resources) add_executable(storm-main ${STORM_MAIN_SOURCES} ${STORM_MAIN_HEADERS}) target_link_libraries(storm-main storm) # Adding headers for xcode set_target_properties(storm-main PROPERTIES OUTPUT_NAME "storm") diff --git a/src/storage/prism/Program.cpp b/src/storage/prism/Program.cpp index 7947b4c78..bf8caf4a8 100644 --- a/src/storage/prism/Program.cpp +++ b/src/storage/prism/Program.cpp @@ -1217,7 +1217,7 @@ namespace storm { } return res; - }; + } Command Program::synchronizeCommands(uint_fast64_t newCommandIndex, uint_fast64_t actionIndex, uint_fast64_t firstUpdateIndex, std::string const& actionName, std::vector> const& commands) const { // To construct the synchronous product of the commands, we need to store a list of its updates. diff --git a/storm-config.h.in b/storm-config.h.in index 7c845458f..ec45f1445 100644 --- a/storm-config.h.in +++ b/storm-config.h.in @@ -33,7 +33,7 @@ #cmakedefine STORM_HAVE_MSAT // Whether Intel Threading Building Blocks are available and to be used (define/undef) -#@STORM_CPP_INTELTBB_DEF@ STORM_HAVE_INTELTBB +#cmakedefine STORM_HAVE_INTELTBB // Whether support for parametric systems should be enabled #cmakedefine PARAMETRIC_SYSTEMS diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 42771c858..1d60c395b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -12,11 +12,13 @@ add_executable(storm-functional-tests ${STORM_FUNCTIONAL_TEST_MAIN_FILE} ${STORM target_link_libraries(storm-functional-tests storm) add_executable(storm-performance-tests ${STORM_PERFORMANCE_TEST_MAIN_FILE} ${STORM_PERFORMANCE_TEST_FILES}) target_link_libraries(storm-performance-tests storm) +add_dependencies(storm-functional-tests test-resources) +add_dependencies(storm-performance-tests test-resources) -include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.7.0/include") +include_directories(${GTEST_INCLUDE_DIR}) enable_testing() -target_link_libraries(storm-functional-tests gtest) -target_link_libraries(storm-performance-tests gtest) +target_link_libraries(storm-functional-tests ${GTEST_LIBRARIES}) +target_link_libraries(storm-performance-tests ${GTEST_LIBRARIES}) add_test(NAME storm-functional-tests COMMAND storm-functional-tests) add_test(NAME storm-performance-tests COMMAND storm-performance-tests)