From c672f7aea22f7b541c51becff3dc432b534210a2 Mon Sep 17 00:00:00 2001 From: TimQu Date: Sat, 9 Jul 2016 21:01:41 +0200 Subject: [PATCH 01/14] fix in bounded reachability computation with Markov automata Former-commit-id: fe2b39977886f2a3c4962341f3d4968bc61b1928 --- src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp b/src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp index 7817dc644..90f858756 100644 --- a/src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp +++ b/src/modelchecker/csl/helper/SparseMarkovAutomatonCslHelper.cpp @@ -72,7 +72,7 @@ namespace storm { std::vector bMarkovian(markovianNonGoalStates.getNumberOfSetBits()); // Compute the two fixed right-hand side vectors, one for Markovian states and one for the probabilistic ones. - std::vector bProbabilisticFixed = transitionMatrix.getConstrainedRowSumVector(probabilisticNonGoalStates, goalStates); + std::vector bProbabilisticFixed = transitionMatrix.getConstrainedRowGroupSumVector(probabilisticNonGoalStates, goalStates); std::vector bMarkovianFixed; bMarkovianFixed.reserve(markovianNonGoalStates.getNumberOfSetBits()); for (auto state : markovianNonGoalStates) { From 2b399c887b5a90d701114cd4f850aeee777e423a Mon Sep 17 00:00:00 2001 From: Mavo Date: Wed, 20 Jul 2016 17:19:44 +0200 Subject: [PATCH 02/14] Doxygen not required Former-commit-id: a5599d681da4006826000f78ebef338177b9bd97 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 846980de3..54ee8452f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -744,7 +744,7 @@ endif(LINK_LIBCXXABI) ## ############################################################# -find_package(Doxygen REQUIRED) +find_package(Doxygen) # Add a target to generate API documentation with Doxygen if(DOXYGEN_FOUND) set(CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc") From cae5f04d2b5186bccb3c65b82b7063f276f3b225 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 14:37:04 +0200 Subject: [PATCH 03/14] first in a series of refactoring the library inclusion to be more adequate Former-commit-id: e68ada137ee991c6c4a10d460b78047d3a00ce0b --- CMakeLists.txt | 509 +-------------------------- resources/3rdparty/CMakeLists.txt | 566 ++++++++++++++++++++++++++++-- 2 files changed, 546 insertions(+), 529 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 54ee8452f..d84e80509 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -198,515 +198,8 @@ message(STATUS "StoRM - Using Compiler Configuration: ${STORM_COMPILED_BY}") # In 3rdparty, targets are being defined that can be used # in the the system does not have a library -add_subdirectory(resources/3rdparty) +include(resources/3rdparty/CMakeLists.txt) -############################################################# -## -## l3pp -## -############################################################# - -# l3pp is set up as external project -include_directories(${l3pp_INCLUDE}) -add_dependencies(resources l3pp) - -############################################################# -## -## gmm -## -############################################################# - -# Add the shipped version of GMM to the include pathes -set(GMMXX_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/gmm-5.0/include") -include_directories(${GMMXX_INCLUDE_DIR}) - -############################################################# -## -## Eigen -## -############################################################# - -# Add the shipped version of Eigen to the include pathes -set(EIGEN_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/eigen-3.3-beta1") -include_directories(${EIGEN_INCLUDE_DIR}) - -############################################################# -## -## gmp -## -############################################################# - -# GMP is optional (unless MathSAT is used, see below) -find_package(GMP QUIET) - -############################################################# -## -## Boost -## -############################################################# - -# Boost Option variables -set(Boost_USE_STATIC_LIBS ${USE_BOOST_STATIC_LIBRARIES}) -set(Boost_USE_MULTITHREADED ON) -set(Boost_USE_STATIC_RUNTIME OFF) - -find_package(Boost 1.56.0 QUIET REQUIRED) - -if ((NOT Boost_LIBRARY_DIRS) OR ("${Boost_LIBRARY_DIRS}" STREQUAL "")) - set(Boost_LIBRARY_DIRS "${Boost_INCLUDE_DIRS}/stage/lib") -endif () -link_directories(${Boost_LIBRARY_DIRS}) - -include_directories(${Boost_INCLUDE_DIRS}) -list(APPEND STORM_LINK_LIBRARIES ${Boost_LIBRARIES}) -message(STATUS "StoRM - Using Boost ${Boost_VERSION} (lib ${Boost_LIB_VERSION})") -#message(STATUS "StoRM - BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}") -#message(STATUS "StoRM - BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}") - -############################################################# -## -## ExprTk -## -############################################################# - -# Use the shipped version of ExprTK -message (STATUS "StoRM - Including ExprTk") -include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk") - -############################################################# -## -## ModernJSON -## -############################################################# - -#use the shipped version of modernjson -message (STATUS "StoRM - Including ModernJSON") -include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/modernjson/src/") - -############################################################# -## -## Z3 (optional) -## -############################################################# - -find_package(Z3 QUIET) - -# Z3 Defines -set(STORM_HAVE_Z3 ${Z3_FOUND}) - -if(Z3_FOUND) - message (STATUS "StoRM - Linking with Z3") - include_directories(${Z3_INCLUDE_DIRS}) - list(APPEND STORM_LINK_LIBRARIES ${Z3_LIBRARIES}) -endif(Z3_FOUND) - -############################################################# -## -## glpk -## -############################################################# - -find_package(GLPK QUIET) -if(GLPK_FOUND) - message (STATUS "StoRM - Using system version of GLPK") -else() - message (STATUS "StoRM - Using shipped version of GLPK") - set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT}) - set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include) - set(GLPK_VERSION_STRING 4.57) - add_dependencies(resources glpk) -endif() - -# Since there is a shipped version, always use GLPK -set(STORM_HAVE_GLPK ON) -message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}") -include_directories(${GLPK_INCLUDE_DIR}) -list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES}) - -############################################################# -## -## Gurobi (optional) -## -############################################################# - -if (STORM_USE_GUROBI) - find_package(Gurobi QUIET REQUIRED) - set(STORM_HAVE_GUROBI ${GUROBI_FOUND}) - if (GUROBI_FOUND) - message (STATUS "StoRM - Linking with Gurobi") - include_directories(${GUROBI_INCLUDE_DIRS}) - list(APPEND STORM_LINK_LIBRARIES ${GUROBI_LIBRARY}) - #link_directories("${GUROBI_ROOT}/lib") - else() - #message(FATAL_ERROR "StoRM - Gurobi was requested, but not found!") - endif() -else() - set(STORM_HAVE_GUROBI OFF) -endif() - -############################################################# -## -## CUDD -## -############################################################# - -# Do not use system CUDD, StoRM has a modified version -set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include) -set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) -set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT}) -set(CUDD_VERSION_STRING 3.0.0) -list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) -add_dependencies(resources cudd3) - -message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}") -#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}") -include_directories(${CUDD_INCLUDE_DIR}) - -############################################################# -## -## CLN -## -############################################################# - -find_package(CLN QUIET) - -if(CLN_FOUND) - set(STORM_HAVE_CLN ON) - message(STATUS "StoRM - Linking with CLN ${CLN_VERSION_STRING}") - include_directories("${CLN_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES ${CLN_LIBRARIES}) -else() - set(STORM_HAVE_CLN OFF) - if(NOT GMP_FOUND) - message(FATAL_ERROR "StoRM - Neither CLN nor GMP found") - endif() -endif() - -############################################################# -## -## carl -## -############################################################# - -set(STORM_HAVE_CARL OFF) -if(USE_CARL) - find_package(carl QUIET REQUIRED) - if(carl_FOUND) - set(STORM_HAVE_CARL ON) - message(STATUS "StoRM - Linking with carl ${carl_VERSION_STRING}") - include_directories("${carl_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES}) - else() - message(FATAL_ERROR "StoRM - CARL was requested but not found") - endif() -endif() - -############################################################# -## -## SMT-RAT -## -############################################################# - -# No find routine yet -#find_package(smtrat QUIET) -# Not yet supported -set(smtrat_FOUND OFF) -set(STORM_HAVE_SMTRAT OFF) -if(smtrat_FOUND) - set(STORM_HAVE_SMTRAT ON) - message(STATUS "StoRM - Linking with smtrat.") - include_directories("${smtrat_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES ${smtrat_LIBRARIES}) -endif() - -############################################################# -## -## GiNaC -## -############################################################# - -find_package(GiNaC QUIET) - -if(GINAC_FOUND) - set(STORM_HAVE_GINAC ON) - message(STATUS "StoRM - Linking with GiNaC ${GINAC_VERSION_STRING}") - # Right now only link with GiNaC for carl - #include_directories("${GINAC_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES ${GINAC_LIBRARIES}) -else() - set(STORM_HAVE_GINAC OFF) - #TODO: Check if CARL actually requires the use of GiNaC -endif() - -############################################################# -## -## MathSAT (optional) -## -############################################################# - -if ("${MSAT_ROOT}" STREQUAL "") - set(ENABLE_MSAT OFF) -else() - set(ENABLE_MSAT ON) -endif() - -# MathSAT Defines -set(STORM_HAVE_MSAT ${ENABLE_MSAT}) -if (ENABLE_MSAT) - message (STATUS "StoRM - Linking with MathSAT") - link_directories("${MSAT_ROOT}/lib") - include_directories("${MSAT_ROOT}/include") - list(APPEND STORM_LINK_LIBRARIES "mathsat") - if(GMP_FOUND) - include_directories("${GMP_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES "gmp") - elseif(MPIR_FOUND) - include_directories("${GMP_INCLUDE_DIR}") - list(APPEND STORM_LINK_LIBRARIES "mpir" "mpirxx") - else(GMP_FOUND) - message(FATAL_ERROR "GMP is required for MathSAT, but was not found!") - endif(GMP_FOUND) -endif(ENABLE_MSAT) - -############################################################# -## -## Xerces -## -############################################################# - -if(USE_XERCES) - find_package(Xerces QUIET REQUIRED) - if(XERCES_FOUND) - message(STATUS "StoRM - Use system version of xerces") - else() - message(STATUS "StoRM - 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) - set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a) - - add_dependencies(resources xercesc) - endif() - - message (STATUS "StoRM - Linking with xercesc") - set(STORM_HAVE_XERCES ON) - include_directories(${XERCESC_INCLUDE}) - list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES}) -endif(USE_XERCES) - -############################################################# -## -## Sylvan -## -############################################################# - -message(STATUS "StoRM - Using shipped version of sylvan") -message(STATUS "StoRM - Linking with sylvan") -include_directories("${Sylvan_INCLUDE_DIR}") -list(APPEND STORM_LINK_LIBRARIES ${Sylvan_LIBRARY}) -add_dependencies(resources sylvan) - -if(${OPERATING_SYSTEM} MATCHES "Linux") - find_package(Hwloc QUIET REQUIRED) - if(Hwloc_FOUND) - message(STATUS "StoRM - Linking with hwloc ${Hwloc_VERSION}") - list(APPEND STORM_LINK_LIBRARIES ${Hwloc_LIBRARIES}) - else() - message(FATAL_ERROR "HWLOC is required but was not found.") - endif() -endif() - -############################################################# -## -## Google Test gtest -## -############################################################# - -add_dependencies(test-resources googletest) -list(APPEND STORM_TEST_LINK_LIBRARIES ${GTEST_LIBRARIES}) - -############################################################# -## -## Intel Threading Building Blocks (optional) -## -############################################################# - -set(STORM_HAVE_INTELTBB OFF) -if (STORM_USE_INTELTBB) - # Point to shipped TBB directory - set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_merged-win-lin-mac") - find_package(TBB QUIET REQUIRED) - - if (TBB_FOUND) - message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") - message(STATUS "StoRM - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.") - set(STORM_HAVE_INTELTBB ON) - link_directories(${TBB_LIBRARY_DIRS}) - include_directories(${TBB_INCLUDE_DIRS}) - list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc) - else(TBB_FOUND) - message(FATAL_ERROR "StoRM - TBB was requested, but not found!") - endif(TBB_FOUND) -endif(STORM_USE_INTELTBB) - -############################################################# -## -## Threads -## -############################################################# - -find_package(Threads QUIET REQUIRED) -if (NOT Threads_FOUND) - message(FATAL_ERROR "StoRM - Threads was requested, but not found!") -endif() -include_directories(${THREADS_INCLUDE_DIRS}) -list(APPEND STORM_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) -if (STORM_USE_COTIRE) - target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT}) -endif(STORM_USE_COTIRE) - -if (MSVC) - # Add the DebugHelper DLL - set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} Dbghelp.lib") - target_link_libraries(storm "Dbghelp.lib") -endif(MSVC) - -############################################################# -## -## CUDA Library generation -## -############################################################# - - -if ("${CUDA_ROOT}" STREQUAL "") - set(ENABLE_CUDA OFF) -else() - set(ENABLE_CUDA ON) -endif() - -# CUDA Defines -if (ENABLE_CUDA) - set(STORM_CPP_CUDA_DEF "define") -else() - set(STORM_CPP_CUDA_DEF "undef") -endif() - - -# CUDA Defines -set(STORM_CPP_CUDAFORSTORM_DEF "undef") - - -if(ENABLE_CUDA) - - # Test for type alignment - try_run(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT - ${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp" - COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR - ) - if(NOT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT) - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") - elseif(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT EQUAL 0) - message(STATUS "StoRM (CudaPlugin) - Result of Type Alignment Check: OK.") - else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})") - endif() - - # Test for Float 64bit Alignment - try_run(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT - ${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp" - COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR - ) - if(NOT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT) - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") - elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 2) - message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment active.") - set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "define") - elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 3) - message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment disabled.") - set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "undef") - else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Float Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_FLOATALIGNMENT})") - endif() - # - # Make a version file containing the current version from git. - # - include(GetGitRevisionDescription) - git_describe_checkout(STORM_GIT_VERSION_STRING) - # Parse the git Tag into variables - string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" STORM_CUDAPLUGIN_VERSION_MAJOR "${STORM_GIT_VERSION_STRING}") - string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_MINOR "${STORM_GIT_VERSION_STRING}") - string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_PATCH "${STORM_GIT_VERSION_STRING}") - string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+)\\-.*" "\\1" STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD "${STORM_GIT_VERSION_STRING}") - string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-([a-z0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_HASH "${STORM_GIT_VERSION_STRING}") - string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-[a-z0-9]+\\-(.*)" "\\1" STORM_CUDAPLUGIN_VERSION_APPENDIX "${STORM_GIT_VERSION_STRING}") - if ("${STORM_CUDAPLUGIN_VERSION_APPENDIX}" MATCHES "^.*dirty.*$") - set(STORM_CUDAPLUGIN_VERSION_DIRTY 1) - else() - set(STORM_CUDAPLUGIN_VERSION_DIRTY 0) - endif() - message(STATUS "StoRM (CudaPlugin) - Version information: ${STORM_CUDAPLUGIN_VERSION_MAJOR}.${STORM_CUDAPLUGIN_VERSION_MINOR}.${STORM_CUDAPLUGIN_VERSION_PATCH} (${STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CUDAPLUGIN_VERSION_HASH} (Dirty: ${STORM_CUDAPLUGIN_VERSION_DIRTY})") - - - # Configure a header file to pass some of the CMake settings to the source code - configure_file ( - "${PROJECT_SOURCE_DIR}/cuda/storm-cudaplugin-config.h.in" - "${PROJECT_BINARY_DIR}/include/storm-cudaplugin-config.h" - ) - - #create library - find_package(CUDA REQUIRED) - set(CUSP_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/resources/3rdparty/cusplibrary") - find_package(Cusp REQUIRED) - find_package(Thrust REQUIRED) - - set(STORM_CUDA_LIB_NAME "storm-cuda") - - file(GLOB_RECURSE STORM_CUDA_KERNEL_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.cu) - file(GLOB_RECURSE STORM_CUDA_HEADER_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.h) - - source_group(kernels FILES ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES}) - include_directories(${PROJECT_SOURCE_DIR}/cuda/kernels/) - - #set(CUDA_PROPAGATE_HOST_FLAGS OFF) - set(CUDA_NVCC_FLAGS "-arch=sm_30") - - ############################################################# - ## - ## CUSP - ## - ############################################################# - if(CUSP_FOUND) - include_directories(${CUSP_INCLUDE_DIR}) - cuda_include_directories(${CUSP_INCLUDE_DIR}) - message(STATUS "StoRM (CudaPlugin) - Found CUSP Version ${CUSP_VERSION} in location ${CUSP_INCLUDE_DIR}") - else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find CUSP!") - endif() - - ############################################################# - ## - ## Thrust - ## - ############################################################# - if(THRUST_FOUND) - include_directories(${THRUST_INCLUDE_DIR}) - cuda_include_directories(${THRUST_INCLUDE_DIR}) - message(STATUS "StoRM (CudaPlugin) - Found Thrust Version ${THRUST_VERSION} in location ${THRUST_INCLUDE_DIR}") - else() - message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find Thrust! Check your CUDA installation.") - endif() - - include_directories(${CUDA_INCLUDE_DIRS}) - include_directories(${ADDITIONAL_INCLUDE_DIRS}) - - cuda_add_library(${STORM_CUDA_LIB_NAME} - ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES} - ) - - message (STATUS "StoRM - Linking with CUDA") - list(APPEND STORM_LINK_LIBRARIES ${STORM_CUDA_LIB_NAME}) - include_directories("${PROJECT_SOURCE_DIR}/cuda/kernels/") -endif() ############################################################# ## diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index 88263eaad..5206c0526 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -1,11 +1,14 @@ add_custom_target(resources) add_custom_target(test-resources) +set(STORM_3RDPARTY_SOURCE_DIR ${PROJECT_SOURCE_DIR}/resources/3rdparty) +set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) + 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 --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 + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/xercesc-3.1.2 + CONFIGURE_COMMAND ${STORM_3RDPARTY_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 ${STORM_3RDPARTY_BINARY_DIR}/xercesc-3.1.2 BUILD_COMMAND make BUILD_IN_SOURCE 0 LOG_CONFIGURE ON @@ -16,9 +19,9 @@ ExternalProject_Add( ExternalProject_Add( glpk DOWNLOAD_COMMAND "" - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57 - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_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} + PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_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 @@ -30,10 +33,10 @@ ExternalProject_Add( ExternalProject_Add( cudd3 DOWNLOAD_COMMAND "" - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cudd-3.0.0 - PREFIX ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0 + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 + PREFIX ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0 UPDATE_COMMAND autoreconf - CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0 --libdir=${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} BUILD_COMMAND make "CFLAGS=-O2 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 @@ -46,16 +49,16 @@ ExternalProject_Add( sylvan DOWNLOAD_COMMAND "" PREFIX "sylvan" - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sylvan + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/sylvan CMAKE_ARGS -DSYLVAN_BUILD_TEST=Off -DSYLVAN_BUILD_EXAMPLES=Off -DCMAKE_BUILD_TYPE=Release BINARY_DIR "${PROJECT_BINARY_DIR}/sylvan" INSTALL_COMMAND "" - INSTALL_DIR "${PROJECT_BINARY_DIR}/sylvan" + INSTALL_DIR "${STORM_3RDPARTY_BINARY_DIR}/sylvan" ) ExternalProject_Get_Property(sylvan source_dir) ExternalProject_Get_Property(sylvan binary_dir) -set(Sylvan_INCLUDE_DIR "${source_dir}/src" PARENT_SCOPE) -set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a" PARENT_SCOPE) +set(Sylvan_INCLUDE_DIR "${source_dir}/src") +set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a") ExternalProject_Add( googletest @@ -63,34 +66,555 @@ ExternalProject_Add( #SVN_REPOSITORY http://googletest.googlecode.com/svn/trunk/ #TIMEOUT 10 DOWNLOAD_COMMAND "" - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.7.0" + SOURCE_DIR "${STORM_3RDPARTY_SOURCE_DIR}/gtest-1.7.0" # Force the same output paths for debug and release builds so that # we know in which place the binaries end up when using the Xcode generator - CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCXX=${CMAKE_CXX_COMPILER} -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_CURRENT_BINARY_DIR}/gtest-1.7.0 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_CURRENT_BINARY_DIR}/gtest-1.7.0 + CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCXX=${CMAKE_CXX_COMPILER} -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 # 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" + BINARY_DIR "${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0" + INSTALL_DIR "${STORM_3RDPARTY_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) +set(GTEST_INCLUDE_DIR ${source_dir}/include) # 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) +set(GTEST_LIBRARIES ${binary_dir}/libgtest.a ${binary_dir}/libgtest_main.a) ExternalProject_Add( l3pp GIT_REPOSITORY https://github.com/hbruintjes/l3pp.git GIT_TAG master - SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/l3pp + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/l3pp CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" LOG_INSTALL ON ) ExternalProject_Get_Property(l3pp source_dir) -set(l3pp_INCLUDE "${source_dir}/" PARENT_SCOPE) +set(l3pp_INCLUDE "${source_dir}/") +# +#ExternalProject_Add( +# carl +# GIT_REPOSITORY http://smtrat.github.io/carl +# GIT_TAG master +# SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/carl +# CMAKE_ARGS -DCXX=${CMAKE_CXX_COMPILER} +# LOG_CONFIGURE ON +# LOG_BUILD ON +#) + + +############################################################# +## +## l3pp +## +############################################################# + +# l3pp is set up as external project +message("${l3pp_INCLUDE}") +include_directories(${l3pp_INCLUDE}) +add_dependencies(resources l3pp) + +############################################################# +## +## gmm +## +############################################################# + +# Add the shipped version of GMM to the include pathes +set(GMMXX_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/gmm-5.0/include") +include_directories(${GMMXX_INCLUDE_DIR}) + +############################################################# +## +## Eigen +## +############################################################# + +# Add the shipped version of Eigen to the include pathes +set(EIGEN_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/eigen-3.3-beta1") +include_directories(${EIGEN_INCLUDE_DIR}) + +############################################################# +## +## gmp +## +############################################################# + +# GMP is optional (unless MathSAT is used, see below) +find_package(GMP QUIET) + +############################################################# +## +## Boost +## +############################################################# + +# Boost Option variables +set(Boost_USE_STATIC_LIBS ${USE_BOOST_STATIC_LIBRARIES}) +set(Boost_USE_MULTITHREADED ON) +set(Boost_USE_STATIC_RUNTIME OFF) + +find_package(Boost 1.56.0 QUIET REQUIRED) + +if ((NOT Boost_LIBRARY_DIRS) OR ("${Boost_LIBRARY_DIRS}" STREQUAL "")) + set(Boost_LIBRARY_DIRS "${Boost_INCLUDE_DIRS}/stage/lib") +endif () +link_directories(${Boost_LIBRARY_DIRS}) + +include_directories(${Boost_INCLUDE_DIRS}) +list(APPEND STORM_LINK_LIBRARIES ${Boost_LIBRARIES}) +message(STATUS "StoRM - Using Boost ${Boost_VERSION} (lib ${Boost_LIB_VERSION})") +#message(STATUS "StoRM - BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}") +#message(STATUS "StoRM - BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}") + +############################################################# +## +## ExprTk +## +############################################################# + +# Use the shipped version of ExprTK +message (STATUS "StoRM - Including ExprTk") +include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk") + +############################################################# +## +## ModernJSON +## +############################################################# + +#use the shipped version of modernjson +message (STATUS "StoRM - Including ModernJSON") +include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/modernjson/src/") + +############################################################# +## +## Z3 (optional) +## +############################################################# + +find_package(Z3 QUIET) + +# Z3 Defines +set(STORM_HAVE_Z3 ${Z3_FOUND}) + +if(Z3_FOUND) + message (STATUS "StoRM - Linking with Z3") + include_directories(${Z3_INCLUDE_DIRS}) + list(APPEND STORM_LINK_LIBRARIES ${Z3_LIBRARIES}) +endif(Z3_FOUND) + +############################################################# +## +## glpk +## +############################################################# + +find_package(GLPK QUIET) +if(GLPK_FOUND) + message (STATUS "StoRM - Using system version of GLPK") +else() + message (STATUS "StoRM - Using shipped version of GLPK") + set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT}) + set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include) + set(GLPK_VERSION_STRING 4.57) + add_dependencies(resources glpk) +endif() + +# Since there is a shipped version, always use GLPK +set(STORM_HAVE_GLPK ON) +message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}") +include_directories(${GLPK_INCLUDE_DIR}) +list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES}) + +############################################################# +## +## Gurobi (optional) +## +############################################################# + +if (STORM_USE_GUROBI) + find_package(Gurobi QUIET REQUIRED) + set(STORM_HAVE_GUROBI ${GUROBI_FOUND}) + if (GUROBI_FOUND) + message (STATUS "StoRM - Linking with Gurobi") + include_directories(${GUROBI_INCLUDE_DIRS}) + list(APPEND STORM_LINK_LIBRARIES ${GUROBI_LIBRARY}) + #link_directories("${GUROBI_ROOT}/lib") + else() + #message(FATAL_ERROR "StoRM - Gurobi was requested, but not found!") + endif() +else() + set(STORM_HAVE_GUROBI OFF) +endif() + +############################################################# +## +## CUDD +## +############################################################# + +# Do not use system CUDD, StoRM has a modified version +set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include) +set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) +set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT}) +set(CUDD_VERSION_STRING 3.0.0) +list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) +add_dependencies(resources cudd3) + +message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}") +#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}") +include_directories(${CUDD_INCLUDE_DIR}) + +############################################################# +## +## CLN +## +############################################################# + +find_package(CLN QUIET) + +if(CLN_FOUND) + set(STORM_HAVE_CLN ON) + message(STATUS "StoRM - Linking with CLN ${CLN_VERSION_STRING}") + include_directories("${CLN_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES ${CLN_LIBRARIES}) +else() + set(STORM_HAVE_CLN OFF) + if(NOT GMP_FOUND) + message(FATAL_ERROR "StoRM - Neither CLN nor GMP found") + endif() +endif() + +############################################################# +## +## carl +## +############################################################# + +set(STORM_HAVE_CARL OFF) +if(USE_CARL) + find_package(carl QUIET REQUIRED) + if(carl_FOUND) + set(STORM_HAVE_CARL ON) + message(STATUS "StoRM - Linking with carl ${carl_VERSION_STRING}") + include_directories("${carl_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES}) + else() + + # message(FATAL_ERROR "StoRM - CARL was requested but not found") + endif() +endif() + +############################################################# +## +## SMT-RAT +## +############################################################# + +# No find routine yet +#find_package(smtrat QUIET) +# Not yet supported +set(smtrat_FOUND OFF) +set(STORM_HAVE_SMTRAT OFF) +if(smtrat_FOUND) + set(STORM_HAVE_SMTRAT ON) + message(STATUS "StoRM - Linking with smtrat.") + include_directories("${smtrat_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES ${smtrat_LIBRARIES}) +endif() + +############################################################# +## +## GiNaC +## +############################################################# + +find_package(GiNaC QUIET) + +if(GINAC_FOUND) + set(STORM_HAVE_GINAC ON) + message(STATUS "StoRM - Linking with GiNaC ${GINAC_VERSION_STRING}") + # Right now only link with GiNaC for carl + #include_directories("${GINAC_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES ${GINAC_LIBRARIES}) +else() + set(STORM_HAVE_GINAC OFF) + #TODO: Check if CARL actually requires the use of GiNaC +endif() + +############################################################# +## +## MathSAT (optional) +## +############################################################# + +if ("${MSAT_ROOT}" STREQUAL "") + set(ENABLE_MSAT OFF) +else() + set(ENABLE_MSAT ON) +endif() + +# MathSAT Defines +set(STORM_HAVE_MSAT ${ENABLE_MSAT}) +if (ENABLE_MSAT) + message (STATUS "StoRM - Linking with MathSAT") + link_directories("${MSAT_ROOT}/lib") + include_directories("${MSAT_ROOT}/include") + list(APPEND STORM_LINK_LIBRARIES "mathsat") + if(GMP_FOUND) + include_directories("${GMP_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES "gmp") + elseif(MPIR_FOUND) + include_directories("${GMP_INCLUDE_DIR}") + list(APPEND STORM_LINK_LIBRARIES "mpir" "mpirxx") + else(GMP_FOUND) + message(FATAL_ERROR "GMP is required for MathSAT, but was not found!") + endif(GMP_FOUND) +endif(ENABLE_MSAT) + +############################################################# +## +## Xerces +## +############################################################# + +if(USE_XERCES) + find_package(Xerces QUIET REQUIRED) + if(XERCES_FOUND) + message(STATUS "StoRM - Use system version of xerces") + else() + message(STATUS "StoRM - 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) + set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a) + + add_dependencies(resources xercesc) + endif() + + message (STATUS "StoRM - Linking with xercesc") + set(STORM_HAVE_XERCES ON) + include_directories(${XERCESC_INCLUDE}) + list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES}) +endif(USE_XERCES) + +############################################################# +## +## Sylvan +## +############################################################# + +message(STATUS "StoRM - Using shipped version of sylvan") +message(STATUS "StoRM - Linking with sylvan") +include_directories("${Sylvan_INCLUDE_DIR}") +list(APPEND STORM_LINK_LIBRARIES ${Sylvan_LIBRARY}) +add_dependencies(resources sylvan) + +if(${OPERATING_SYSTEM} MATCHES "Linux") + find_package(Hwloc QUIET REQUIRED) + if(Hwloc_FOUND) + message(STATUS "StoRM - Linking with hwloc ${Hwloc_VERSION}") + list(APPEND STORM_LINK_LIBRARIES ${Hwloc_LIBRARIES}) + else() + message(FATAL_ERROR "HWLOC is required but was not found.") + endif() +endif() + +############################################################# +## +## Google Test gtest +## +############################################################# + +add_dependencies(test-resources googletest) +list(APPEND STORM_TEST_LINK_LIBRARIES ${GTEST_LIBRARIES}) + +############################################################# +## +## Intel Threading Building Blocks (optional) +## +############################################################# + +set(STORM_HAVE_INTELTBB OFF) +if (STORM_USE_INTELTBB) + # Point to shipped TBB directory + set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_merged-win-lin-mac") + find_package(TBB QUIET REQUIRED) + + if (TBB_FOUND) + message(STATUS "StoRM - Found Intel TBB with interface version ${TBB_INTERFACE_VERSION}.") + message(STATUS "StoRM - Linking with Intel TBB in ${TBB_LIBRARY_DIRS}.") + set(STORM_HAVE_INTELTBB ON) + link_directories(${TBB_LIBRARY_DIRS}) + include_directories(${TBB_INCLUDE_DIRS}) + list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc) + else(TBB_FOUND) + message(FATAL_ERROR "StoRM - TBB was requested, but not found!") + endif(TBB_FOUND) +endif(STORM_USE_INTELTBB) + +############################################################# +## +## Threads +## +############################################################# + +find_package(Threads QUIET REQUIRED) +if (NOT Threads_FOUND) + message(FATAL_ERROR "StoRM - Threads was requested, but not found!") +endif() +include_directories(${THREADS_INCLUDE_DIRS}) +list(APPEND STORM_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT}) +if (STORM_USE_COTIRE) + target_link_libraries(storm_unity ${CMAKE_THREAD_LIBS_INIT}) +endif(STORM_USE_COTIRE) + +if (MSVC) + # Add the DebugHelper DLL + set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} Dbghelp.lib") + target_link_libraries(storm "Dbghelp.lib") +endif(MSVC) + +############################################################# +## +## CUDA Library generation +## +############################################################# + + +if ("${CUDA_ROOT}" STREQUAL "") + set(ENABLE_CUDA OFF) +else() + set(ENABLE_CUDA ON) +endif() + +# CUDA Defines +if (ENABLE_CUDA) + set(STORM_CPP_CUDA_DEF "define") +else() + set(STORM_CPP_CUDA_DEF "undef") +endif() + + +# CUDA Defines +set(STORM_CPP_CUDAFORSTORM_DEF "undef") + + +if(ENABLE_CUDA) + + # Test for type alignment + try_run(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT + ${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp" + COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR + ) + if(NOT STORM_CUDA_COMPILE_RESULT_TYPEALIGNMENT) + message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") + elseif(STORM_CUDA_RUN_RESULT_TYPEALIGNMENT EQUAL 0) + message(STATUS "StoRM (CudaPlugin) - Result of Type Alignment Check: OK.") + else() + message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_TYPEALIGNMENT})") + endif() + + # Test for Float 64bit Alignment + try_run(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT + ${PROJECT_BINARY_DIR} "${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp" + COMPILE_OUTPUT_VARIABLE OUTPUT_TEST_VAR + ) + if(NOT STORM_CUDA_COMPILE_RESULT_FLOATALIGNMENT) + message(FATAL_ERROR "StoRM (CudaPlugin) - Could not test float type alignment, there was an Error while compiling the file ${PROJECT_SOURCE_DIR}/cuda/CMakeFloatAlignmentCheck.cpp: ${OUTPUT_TEST_VAR}") + elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 2) + message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment active.") + set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "define") + elseif(STORM_CUDA_RUN_RESULT_FLOATALIGNMENT EQUAL 3) + message(STATUS "StoRM (CudaPlugin) - Result of Float Type Alignment Check: 64bit alignment disabled.") + set(STORM_CUDAPLUGIN_FLOAT_64BIT_ALIGN_DEF "undef") + else() + message(FATAL_ERROR "StoRM (CudaPlugin) - Result of Float Type Alignment Check: FAILED (Code ${STORM_CUDA_RUN_RESULT_FLOATALIGNMENT})") + endif() + # + # Make a version file containing the current version from git. + # + include(GetGitRevisionDescription) + git_describe_checkout(STORM_GIT_VERSION_STRING) + # Parse the git Tag into variables + string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" STORM_CUDAPLUGIN_VERSION_MAJOR "${STORM_GIT_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_MINOR "${STORM_GIT_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_PATCH "${STORM_GIT_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+)\\-.*" "\\1" STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD "${STORM_GIT_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-([a-z0-9]+).*" "\\1" STORM_CUDAPLUGIN_VERSION_HASH "${STORM_GIT_VERSION_STRING}") + string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.[0-9]+\\-[0-9]+\\-[a-z0-9]+\\-(.*)" "\\1" STORM_CUDAPLUGIN_VERSION_APPENDIX "${STORM_GIT_VERSION_STRING}") + if ("${STORM_CUDAPLUGIN_VERSION_APPENDIX}" MATCHES "^.*dirty.*$") + set(STORM_CUDAPLUGIN_VERSION_DIRTY 1) + else() + set(STORM_CUDAPLUGIN_VERSION_DIRTY 0) + endif() + message(STATUS "StoRM (CudaPlugin) - Version information: ${STORM_CUDAPLUGIN_VERSION_MAJOR}.${STORM_CUDAPLUGIN_VERSION_MINOR}.${STORM_CUDAPLUGIN_VERSION_PATCH} (${STORM_CUDAPLUGIN_VERSION_COMMITS_AHEAD} commits ahead of Tag) build from ${STORM_CUDAPLUGIN_VERSION_HASH} (Dirty: ${STORM_CUDAPLUGIN_VERSION_DIRTY})") + + + # Configure a header file to pass some of the CMake settings to the source code + configure_file ( + "${PROJECT_SOURCE_DIR}/cuda/storm-cudaplugin-config.h.in" + "${PROJECT_BINARY_DIR}/include/storm-cudaplugin-config.h" + ) + + #create library + find_package(CUDA REQUIRED) + set(CUSP_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/resources/3rdparty/cusplibrary") + find_package(Cusp REQUIRED) + find_package(Thrust REQUIRED) + + set(STORM_CUDA_LIB_NAME "storm-cuda") + + file(GLOB_RECURSE STORM_CUDA_KERNEL_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.cu) + file(GLOB_RECURSE STORM_CUDA_HEADER_FILES ${PROJECT_SOURCE_DIR}/cuda/kernels/*.h) + + source_group(kernels FILES ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES}) + include_directories(${PROJECT_SOURCE_DIR}/cuda/kernels/) + + #set(CUDA_PROPAGATE_HOST_FLAGS OFF) + set(CUDA_NVCC_FLAGS "-arch=sm_30") + + ############################################################# + ## + ## CUSP + ## + ############################################################# + if(CUSP_FOUND) + include_directories(${CUSP_INCLUDE_DIR}) + cuda_include_directories(${CUSP_INCLUDE_DIR}) + message(STATUS "StoRM (CudaPlugin) - Found CUSP Version ${CUSP_VERSION} in location ${CUSP_INCLUDE_DIR}") + else() + message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find CUSP!") + endif() + + ############################################################# + ## + ## Thrust + ## + ############################################################# + if(THRUST_FOUND) + include_directories(${THRUST_INCLUDE_DIR}) + cuda_include_directories(${THRUST_INCLUDE_DIR}) + message(STATUS "StoRM (CudaPlugin) - Found Thrust Version ${THRUST_VERSION} in location ${THRUST_INCLUDE_DIR}") + else() + message(FATAL_ERROR "StoRM (CudaPlugin) - Could not find Thrust! Check your CUDA installation.") + endif() + + include_directories(${CUDA_INCLUDE_DIRS}) + include_directories(${ADDITIONAL_INCLUDE_DIRS}) + + cuda_add_library(${STORM_CUDA_LIB_NAME} + ${STORM_CUDA_KERNEL_FILES} ${STORM_CUDA_HEADER_FILES} + ) + + message (STATUS "StoRM - Linking with CUDA") + list(APPEND STORM_LINK_LIBRARIES ${STORM_CUDA_LIB_NAME}) + include_directories("${PROJECT_SOURCE_DIR}/cuda/kernels/") +endif() \ No newline at end of file From 19f18e7fee5714b6b9dd0516abd1da55e94b4e89 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 14:43:09 +0200 Subject: [PATCH 04/14] only build xerces if not found on the system Former-commit-id: 88bb52a710c8898320a6ab3e32ccd0c44f354b79 --- resources/3rdparty/CMakeLists.txt | 32 ++----------------------- resources/3rdparty/include_xerces.cmake | 31 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 30 deletions(-) create mode 100644 resources/3rdparty/include_xerces.cmake diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index 5206c0526..b904cfca2 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -4,17 +4,7 @@ add_custom_target(test-resources) set(STORM_3RDPARTY_SOURCE_DIR ${PROJECT_SOURCE_DIR}/resources/3rdparty) set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) -ExternalProject_Add( - xercesc - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/xercesc-3.1.2 - CONFIGURE_COMMAND ${STORM_3RDPARTY_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 ${STORM_3RDPARTY_BINARY_DIR}/xercesc-3.1.2 - BUILD_COMMAND make - BUILD_IN_SOURCE 0 - LOG_CONFIGURE ON - LOG_BUILD ON - LOG_INSTALL ON -) + ExternalProject_Add( glpk @@ -385,25 +375,7 @@ endif(ENABLE_MSAT) ## ############################################################# -if(USE_XERCES) - find_package(Xerces QUIET REQUIRED) - if(XERCES_FOUND) - message(STATUS "StoRM - Use system version of xerces") - else() - message(STATUS "StoRM - 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) - set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a) - - add_dependencies(resources xercesc) - endif() - - message (STATUS "StoRM - Linking with xercesc") - set(STORM_HAVE_XERCES ON) - include_directories(${XERCESC_INCLUDE}) - list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES}) -endif(USE_XERCES) +include(${STORM_3RDPARTY_SOURCE_DIR}/include_xerces.cmake) ############################################################# ## diff --git a/resources/3rdparty/include_xerces.cmake b/resources/3rdparty/include_xerces.cmake new file mode 100644 index 000000000..78d601406 --- /dev/null +++ b/resources/3rdparty/include_xerces.cmake @@ -0,0 +1,31 @@ +if(USE_XERCES) + find_package(Xerces QUIET REQUIRED) + if(XERCES_FOUND) + message(STATUS "StoRM - Use system version of xerces") + else() + message(STATUS "StoRM - Use shipped version of xerces") + ExternalProject_Add( + xercesc + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/xercesc-3.1.2 + CONFIGURE_COMMAND ${STORM_3RDPARTY_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 ${STORM_3RDPARTY_BINARY_DIR}/xercesc-3.1.2 + BUILD_COMMAND make + BUILD_IN_SOURCE 0 + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON + ) + + set(XERCES_ROOT ${STORM_3RDPARTY_BINARY_DIR}/xercesc-3.1.2) + set(XERCESC_INCLUDE ${XERCES_ROOT}/include) + set(XERCES_LIBRARY_PATH ${XERCES_ROOT}/lib) + set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a) + + add_dependencies(resources xercesc) + endif() + + message (STATUS "StoRM - Linking with xercesc") + set(STORM_HAVE_XERCES ON) + include_directories(${XERCESC_INCLUDE}) + list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES}) +endif(USE_XERCES) \ No newline at end of file From bcbda8bf683e82db8e325eb476cb7fdee68edcb5 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:02:17 +0200 Subject: [PATCH 05/14] only build glpk if not found on system Former-commit-id: 1a758fe2d10eb22d56e1cd4374f395d02fea41db --- resources/3rdparty/CMakeLists.txt | 31 +-------------------------- resources/3rdparty/include_glpk.cmake | 28 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 resources/3rdparty/include_glpk.cmake diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index b904cfca2..b9af8dc95 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -6,20 +6,6 @@ set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) -ExternalProject_Add( - glpk - DOWNLOAD_COMMAND "" - PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_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 -) - ExternalProject_Add( cudd3 DOWNLOAD_COMMAND "" @@ -206,22 +192,7 @@ endif(Z3_FOUND) ## ############################################################# -find_package(GLPK QUIET) -if(GLPK_FOUND) - message (STATUS "StoRM - Using system version of GLPK") -else() - message (STATUS "StoRM - Using shipped version of GLPK") - set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT}) - set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include) - set(GLPK_VERSION_STRING 4.57) - add_dependencies(resources glpk) -endif() - -# Since there is a shipped version, always use GLPK -set(STORM_HAVE_GLPK ON) -message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}") -include_directories(${GLPK_INCLUDE_DIR}) -list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES}) +include(${STORM_3RDPARTY_SOURCE_DIR}/include_glpk.cmake) ############################################################# ## diff --git a/resources/3rdparty/include_glpk.cmake b/resources/3rdparty/include_glpk.cmake new file mode 100644 index 000000000..f6e58430d --- /dev/null +++ b/resources/3rdparty/include_glpk.cmake @@ -0,0 +1,28 @@ +find_package(GLPK QUIET) +if(GLPK_FOUND) + message (STATUS "StoRM - Using system version of GLPK") +else() + message (STATUS "StoRM - Using shipped version of GLPK") + ExternalProject_Add(glpk + DOWNLOAD_COMMAND "" + PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_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 + ) + set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT}) + set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include) + set(GLPK_VERSION_STRING 4.57) + add_dependencies(resources glpk) +endif() + +# Since there is a shipped version, always use GLPK +set(STORM_HAVE_GLPK ON) +message (STATUS "StoRM - Linking with glpk ${GLPK_VERSION_STRING}") +include_directories(${GLPK_INCLUDE_DIR}) +list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES}) From a6e4c3f6fd6a0a61ac1964fb9ece5aa073a97569 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:04:08 +0200 Subject: [PATCH 06/14] hotfix for boost-variants, might be moved later on Former-commit-id: 9e1193bbd9b44b62daad4dd55ec1f430a093c4c2 --- storm-config.h.in | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storm-config.h.in b/storm-config.h.in index 1bc2eac7d..bac5d8a17 100644 --- a/storm-config.h.in +++ b/storm-config.h.in @@ -51,4 +51,7 @@ #cmakedefine STORM_LOG_DISABLE_DEBUG +// +#define BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT + #endif // STORM_GENERATED_STORMCONFIG_H_ From 8d714bdd178d17958709e6c85b0f1f6b9ca7af8b Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:09:58 +0200 Subject: [PATCH 07/14] cudd needs autoreconf + refactor Former-commit-id: b7f13d3c45c49fc21bf457dff5bf6afcbb9b9451 --- resources/3rdparty/CMakeLists.txt | 32 ++++----------------------- resources/3rdparty/include_cudd.cmake | 31 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 28 deletions(-) create mode 100644 resources/3rdparty/include_cudd.cmake diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index b9af8dc95..8d6bc7aff 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -4,22 +4,9 @@ add_custom_target(test-resources) set(STORM_3RDPARTY_SOURCE_DIR ${PROJECT_SOURCE_DIR}/resources/3rdparty) set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) - - -ExternalProject_Add( - cudd3 - DOWNLOAD_COMMAND "" - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 - PREFIX ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0 - UPDATE_COMMAND autoreconf - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} - BUILD_COMMAND make "CFLAGS=-O2 -w" - INSTALL_COMMAND make install - BUILD_IN_SOURCE 0 - LOG_CONFIGURE ON - LOG_BUILD ON - LOG_INSTALL ON -) +#### +#### Find autoreconf for cudd update step +find_program(AUTORECONF autoreconf) ExternalProject_Add( sylvan @@ -220,18 +207,7 @@ endif() ## CUDD ## ############################################################# - -# Do not use system CUDD, StoRM has a modified version -set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include) -set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) -set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT}) -set(CUDD_VERSION_STRING 3.0.0) -list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) -add_dependencies(resources cudd3) - -message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}") -#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}") -include_directories(${CUDD_INCLUDE_DIR}) +include(${STORM_3RDPARTY_SOURCE_DIR}/include_cudd.cmake) ############################################################# ## diff --git a/resources/3rdparty/include_cudd.cmake b/resources/3rdparty/include_cudd.cmake new file mode 100644 index 000000000..e53168848 --- /dev/null +++ b/resources/3rdparty/include_cudd.cmake @@ -0,0 +1,31 @@ +if(NOT AUTORECONF) + message(ERROR "Cannot find autoreconf, cannot compile cudd3") +endif() + + +ExternalProject_Add( + cudd3 + DOWNLOAD_COMMAND "" + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 + PREFIX ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0 + UPDATE_COMMAND ${AUTORECONF} + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} + BUILD_COMMAND make "CFLAGS=-O2 -w" + INSTALL_COMMAND make install + BUILD_IN_SOURCE 0 + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON +) + +# Do not use system CUDD, StoRM has a modified version +set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include) +set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) +set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT}) +set(CUDD_VERSION_STRING 3.0.0) +list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) +add_dependencies(resources cudd3) + +message(STATUS "StoRM - Linking with CUDD ${CUDD_VERSION_STRING}") +#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}") +include_directories(${CUDD_INCLUDE_DIR}) \ No newline at end of file From 155052b9719edb620eb81b2b7b2d65ae0348a105 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:31:33 +0200 Subject: [PATCH 08/14] refactor & fixes after refactoring Former-commit-id: f1746cf6e43ad8c021b686704c8aa252202d9176 --- resources/3rdparty/CMakeLists.txt | 108 +++++++++++++------------- resources/3rdparty/include_cudd.cmake | 8 +- resources/3rdparty/include_glpk.cmake | 2 +- 3 files changed, 60 insertions(+), 58 deletions(-) diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index 8d6bc7aff..8e6c2ecd3 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -8,58 +8,7 @@ set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) #### Find autoreconf for cudd update step find_program(AUTORECONF autoreconf) -ExternalProject_Add( - sylvan - DOWNLOAD_COMMAND "" - PREFIX "sylvan" - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/sylvan - CMAKE_ARGS -DSYLVAN_BUILD_TEST=Off -DSYLVAN_BUILD_EXAMPLES=Off -DCMAKE_BUILD_TYPE=Release - BINARY_DIR "${PROJECT_BINARY_DIR}/sylvan" - INSTALL_COMMAND "" - INSTALL_DIR "${STORM_3RDPARTY_BINARY_DIR}/sylvan" -) -ExternalProject_Get_Property(sylvan source_dir) -ExternalProject_Get_Property(sylvan binary_dir) -set(Sylvan_INCLUDE_DIR "${source_dir}/src") -set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a") -ExternalProject_Add( - googletest - #For downloads (may be useful later!) - #SVN_REPOSITORY http://googletest.googlecode.com/svn/trunk/ - #TIMEOUT 10 - DOWNLOAD_COMMAND "" - SOURCE_DIR "${STORM_3RDPARTY_SOURCE_DIR}/gtest-1.7.0" - # Force the same output paths for debug and release builds so that - # we know in which place the binaries end up when using the Xcode generator - CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCXX=${CMAKE_CXX_COMPILER} -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 - # Disable install step - INSTALL_COMMAND "" - BINARY_DIR "${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0" - INSTALL_DIR "${STORM_3RDPARTY_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) -# Specify MainTest's link libraries -ExternalProject_Get_Property(googletest binary_dir) -set(GTEST_LIBRARIES ${binary_dir}/libgtest.a ${binary_dir}/libgtest_main.a) - -ExternalProject_Add( - l3pp - GIT_REPOSITORY https://github.com/hbruintjes/l3pp.git - GIT_TAG master - SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/l3pp - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "" - LOG_INSTALL ON -) -ExternalProject_Get_Property(l3pp source_dir) -set(l3pp_INCLUDE "${source_dir}/") # #ExternalProject_Add( # carl @@ -78,8 +27,20 @@ set(l3pp_INCLUDE "${source_dir}/") ## ############################################################# -# l3pp is set up as external project -message("${l3pp_INCLUDE}") + + +ExternalProject_Add( + l3pp + GIT_REPOSITORY https://github.com/hbruintjes/l3pp.git + GIT_TAG master + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/l3pp + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + LOG_INSTALL ON +) +ExternalProject_Get_Property(l3pp source_dir) +set(l3pp_INCLUDE "${source_dir}/") include_directories(${l3pp_INCLUDE}) add_dependencies(resources l3pp) @@ -330,6 +291,23 @@ include(${STORM_3RDPARTY_SOURCE_DIR}/include_xerces.cmake) ## ############################################################# +ExternalProject_Add( + sylvan + DOWNLOAD_COMMAND "" + PREFIX "sylvan" + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/sylvan + CMAKE_ARGS -DSYLVAN_BUILD_TEST=Off -DSYLVAN_BUILD_EXAMPLES=Off -DCMAKE_BUILD_TYPE=Release + BINARY_DIR "${PROJECT_BINARY_DIR}/sylvan" + INSTALL_COMMAND "" + INSTALL_DIR "${STORM_3RDPARTY_BINARY_DIR}/sylvan" +) +ExternalProject_Get_Property(sylvan source_dir) +ExternalProject_Get_Property(sylvan binary_dir) +set(Sylvan_INCLUDE_DIR "${source_dir}/src") +set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a") + + + message(STATUS "StoRM - Using shipped version of sylvan") message(STATUS "StoRM - Linking with sylvan") include_directories("${Sylvan_INCLUDE_DIR}") @@ -351,6 +329,30 @@ endif() ## Google Test gtest ## ############################################################# +ExternalProject_Add( + googletest + #For downloads (may be useful later!) + #SVN_REPOSITORY http://googletest.googlecode.com/svn/trunk/ + #TIMEOUT 10 + DOWNLOAD_COMMAND "" + SOURCE_DIR "${STORM_3RDPARTY_SOURCE_DIR}/gtest-1.7.0" + # Force the same output paths for debug and release builds so that + # we know in which place the binaries end up when using the Xcode generator + CMAKE_ARGS -Dgtest_force_shared_crt=ON -DCXX=${CMAKE_CXX_COMPILER} -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0 + # Disable install step + INSTALL_COMMAND "" + BINARY_DIR "${STORM_3RDPARTY_BINARY_DIR}/gtest-1.7.0" + INSTALL_DIR "${STORM_3RDPARTY_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) +# Specify MainTest's link libraries +ExternalProject_Get_Property(googletest binary_dir) +set(GTEST_LIBRARIES ${binary_dir}/libgtest.a ${binary_dir}/libgtest_main.a) add_dependencies(test-resources googletest) list(APPEND STORM_TEST_LINK_LIBRARIES ${GTEST_LIBRARIES}) diff --git a/resources/3rdparty/include_cudd.cmake b/resources/3rdparty/include_cudd.cmake index e53168848..2b032bf91 100644 --- a/resources/3rdparty/include_cudd.cmake +++ b/resources/3rdparty/include_cudd.cmake @@ -9,7 +9,7 @@ ExternalProject_Add( SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 PREFIX ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0 UPDATE_COMMAND ${AUTORECONF} - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/cudd-3.0.0/configure --enable-shared --enable-obj --prefix=${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0 --libdir=${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/lib CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} BUILD_COMMAND make "CFLAGS=-O2 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 @@ -19,9 +19,9 @@ ExternalProject_Add( ) # Do not use system CUDD, StoRM has a modified version -set(CUDD_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/include) -set(CUDD_SHARED_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) -set(CUDD_STATIC_LIBRARY ${CMAKE_BINARY_DIR}/resources/3rdparty/cudd-3.0.0/lib/libcudd${STATIC_EXT}) +set(CUDD_INCLUDE_DIR ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/include) +set(CUDD_SHARED_LIBRARY${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) +set(CUDD_STATIC_LIBRARY $${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/cudd-3.0.0/lib/libcudd${STATIC_EXT}) set(CUDD_VERSION_STRING 3.0.0) list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) add_dependencies(resources cudd3) diff --git a/resources/3rdparty/include_glpk.cmake b/resources/3rdparty/include_glpk.cmake index f6e58430d..e3b899bad 100644 --- a/resources/3rdparty/include_glpk.cmake +++ b/resources/3rdparty/include_glpk.cmake @@ -7,7 +7,7 @@ else() DOWNLOAD_COMMAND "" PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 --libdir=${CMAKE_CURRENT_BINARY_DIR}/glpk-4.57/lib CC=${CMAKE_C_COMPILER} + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/lib CC=${CMAKE_C_COMPILER} BUILD_COMMAND make "CFLAGS=-O2 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 From 9398cfa54a0046a16e59a59bb48d13587463a89d Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:36:13 +0200 Subject: [PATCH 09/14] gcc pendantic warning switched off Former-commit-id: c5b389f7378fd45e9a916a1b3474f3cf794f65aa --- src/utility/sylvan.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/utility/sylvan.h b/src/utility/sylvan.h index ccaffe097..156168601 100644 --- a/src/utility/sylvan.h +++ b/src/utility/sylvan.h @@ -7,9 +7,13 @@ #pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments" #pragma clang diagnostic ignored "-Wdeprecated-register" #pragma clang diagnostic ignored "-Wc99-extensions" +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpendantic" #include "sylvan_obj.hpp" +#pragma GCC diagnostic pop #pragma clang diagnostic pop #endif /* STORM_STORAGE_DD_SYLVAN_SYLVAN_H_ */ \ No newline at end of file From c9593b9e98acf6ef6e0e64c0c9c9748d13753854 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:36:41 +0200 Subject: [PATCH 10/14] trying to fix the boost variant stuff differently Former-commit-id: a1fb8efece26b89e7cc3fb2072c1db31945d3c15 --- src/generator/NextStateGenerator.h | 3 +++ storm-config.h.in | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/generator/NextStateGenerator.h b/src/generator/NextStateGenerator.h index 30a4157cd..1a49b56c1 100644 --- a/src/generator/NextStateGenerator.h +++ b/src/generator/NextStateGenerator.h @@ -4,8 +4,11 @@ #include #include + #include +#define BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT + #include "src/storage/expressions/Expression.h" #include "src/storage/BitVectorHashMap.h" #include "src/storage/expressions/ExpressionEvaluator.h" diff --git a/storm-config.h.in b/storm-config.h.in index bac5d8a17..1bc2eac7d 100644 --- a/storm-config.h.in +++ b/storm-config.h.in @@ -51,7 +51,4 @@ #cmakedefine STORM_LOG_DISABLE_DEBUG -// -#define BOOST_VARIANT_USE_RELAXED_GET_BY_DEFAULT - #endif // STORM_GENERATED_STORMCONFIG_H_ From 85f29ee7446c4bcd045edf0c195b2823b5592058 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 16:52:39 +0200 Subject: [PATCH 11/14] Typo in diagnostic ignored fixed Former-commit-id: 51559c8982b90ca24782e0c9614aa5b15843b9aa --- src/utility/sylvan.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utility/sylvan.h b/src/utility/sylvan.h index 156168601..babdc22fd 100644 --- a/src/utility/sylvan.h +++ b/src/utility/sylvan.h @@ -9,7 +9,7 @@ #pragma clang diagnostic ignored "-Wc99-extensions" #pragma clang diagnostic ignored "-Wunknown-pragmas" #pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpendantic" +#pragma GCC diagnostic ignored "-Wpedantic" #include "sylvan_obj.hpp" From e5c7c93d33485f82c7f9386ad2ce5c5c9b61a0a5 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 22:50:29 +0200 Subject: [PATCH 12/14] awkward types and cmake goes wrong Former-commit-id: 2f1bf7b21c413b60964296c5be9963ea4f28cd65 --- resources/3rdparty/include_cudd.cmake | 2 +- resources/3rdparty/include_glpk.cmake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/3rdparty/include_cudd.cmake b/resources/3rdparty/include_cudd.cmake index 2b032bf91..d63e855d3 100644 --- a/resources/3rdparty/include_cudd.cmake +++ b/resources/3rdparty/include_cudd.cmake @@ -20,7 +20,7 @@ ExternalProject_Add( # Do not use system CUDD, StoRM has a modified version set(CUDD_INCLUDE_DIR ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/include) -set(CUDD_SHARED_LIBRARY${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) +set(CUDD_SHARED_LIBRARY ${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT}) set(CUDD_STATIC_LIBRARY $${STORM_3RDPARTY_BINARY_DIR}/cudd-3.0.0/cudd-3.0.0/lib/libcudd${STATIC_EXT}) set(CUDD_VERSION_STRING 3.0.0) list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY}) diff --git a/resources/3rdparty/include_glpk.cmake b/resources/3rdparty/include_glpk.cmake index e3b899bad..2ac870b3d 100644 --- a/resources/3rdparty/include_glpk.cmake +++ b/resources/3rdparty/include_glpk.cmake @@ -7,7 +7,7 @@ else() DOWNLOAD_COMMAND "" PREFIX ${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 - CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57 --libdir=${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/lib CC=${CMAKE_C_COMPILER} + CONFIGURE_COMMAND ${STORM_3RDPARTY_SOURCE_DIR}/glpk-4.57/configure --prefix=${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57 --libdir=${STORM_3RDPARTY_BINARY_DIR}/glpk-4.57/lib CC=${CMAKE_C_COMPILER} BUILD_COMMAND make "CFLAGS=-O2 -w" INSTALL_COMMAND make install BUILD_IN_SOURCE 0 From 79476a3eedb6e9e655269f6efb21a182bd338437 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 22:52:22 +0200 Subject: [PATCH 13/14] if carl is not found, use shipped version Former-commit-id: c3fe281040d90645c2d2e9b8754f8fa1c5ae9464 --- resources/3rdparty/CMakeLists.txt | 37 ++++++++++++++++++------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index 8e6c2ecd3..e931e1ed1 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -8,19 +8,6 @@ set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) #### Find autoreconf for cudd update step find_program(AUTORECONF autoreconf) - -# -#ExternalProject_Add( -# carl -# GIT_REPOSITORY http://smtrat.github.io/carl -# GIT_TAG master -# SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/carl -# CMAKE_ARGS -DCXX=${CMAKE_CXX_COMPILER} -# LOG_CONFIGURE ON -# LOG_BUILD ON -#) - - ############################################################# ## ## l3pp @@ -205,8 +192,27 @@ if(USE_CARL) include_directories("${carl_INCLUDE_DIR}") list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES}) else() - - # message(FATAL_ERROR "StoRM - CARL was requested but not found") + message(STATUS "StoRM - Using shipped version of carl") + # + ExternalProject_Add( + carl + GIT_REPOSITORY https://github.com/smtrat/carl + GIT_TAG master + INSTALL_DIR ${STORM_3RDPARTY_BINARY_DIR}/carl + SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/carl + CMAKE_ARGS -DCXX=${CMAKE_CXX_COMPILER} -DEXPORT_TO_CMAKE=0 -DUSE_CLN_NUMBERS=1 -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=1 -DCMAKE_INSTALL_PREFIX:PATH=${STORM_3RDPARTY_BINARY_DIR}/carl + BUILD_IN_SOURCE 0 + BUILD_COMMAND make lib_carl + INSTALL_COMMAND make install + LOG_UPDATE ON + LOG_CONFIGURE ON + LOG_BUILD ON + LOG_INSTALL ON + ) + + include_directories(${STORM_3RDPARTY_BINARY_DIR}/carl/include) + list(APPEND STORM_LINK_LIBRARIES ${STORM_3RDPARTY_BINARY_DIR}/carl/lib/libcarl${DYNAMIC_EXT}) + set(STORM_HAVE_CARL ON) endif() endif() @@ -298,6 +304,7 @@ ExternalProject_Add( SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/sylvan CMAKE_ARGS -DSYLVAN_BUILD_TEST=Off -DSYLVAN_BUILD_EXAMPLES=Off -DCMAKE_BUILD_TYPE=Release BINARY_DIR "${PROJECT_BINARY_DIR}/sylvan" + BUILD_IN_SOURCE 0 INSTALL_COMMAND "" INSTALL_DIR "${STORM_3RDPARTY_BINARY_DIR}/sylvan" ) From 5148cd71ea3ededfe9de0dc557c249a55ef601c7 Mon Sep 17 00:00:00 2001 From: sjunges Date: Thu, 21 Jul 2016 23:33:41 +0200 Subject: [PATCH 14/14] marked several CMAKE_VARIABLES as advanced to avoid cluttering ccmake Former-commit-id: ff9248b0556f5cf6777187f53e1191154f3f7beb --- CMakeLists.txt | 12 +++++++++++- resources/3rdparty/CMakeLists.txt | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d84e80509..87119d85d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,7 @@ include(ExternalProject) ############################################################# option(STORM_DEVELOPER "Sets whether the development mode is used" OFF) option(STORM_USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON) +MARK_AS_ADVANCED(STORM_USE_POPCNT) option(USE_BOOST_STATIC_LIBRARIES "Sets whether the Boost libraries should be linked statically." ON) option(STORM_USE_INTELTBB "Sets whether the Intel TBB libraries should be used." OFF) option(STORM_USE_GUROBI "Sets whether Gurobi should be used." OFF) @@ -29,8 +30,10 @@ option(USE_LIBCXX "Sets whether the standard library is libc++." OFF) option(USE_CARL "Sets whether carl should be included." ON) option(USE_XERCES "Sets whether xerces should be used." OFF) option(FORCE_COLOR "Force color output" OFF) +mark_as_advanced(FORCE_COLOR) option(STORM_PYTHON "Builds the API for Python" OFF) -option(STORM_COMPILE_WITH_CCACHE "Compile using CCache" ON) +option(STORM_COMPILE_WITH_CCACHE "Compile using CCache [if found]" ON) +mark_as_advanced(STORM_COMPILE_WITH_CCACHE) option(STORM_LOG_DISABLE_DEBUG "Disable log and trace message support" OFF) set(BOOST_ROOT "" CACHE STRING "A hint to the root directory of Boost (optional).") set(GUROBI_ROOT "" CACHE STRING "A hint to the root directory of Gurobi (optional).") @@ -40,6 +43,12 @@ set(MSAT_ROOT "" CACHE STRING "The hint to the root directory of MathSAT (option set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional directories added to the include directories.") set(ADDITIONAL_LINK_DIRS "" CACHE STRING "Additional directories added to the link directories.") + +# Set some CMAKE Variables as advanced +mark_as_advanced(CMAKE_OSX_ARCHITECTURES) +mark_as_advanced(CMAKE_OSX_SYSROOT) +mark_as_advanced(CMAKE_OSX_DEPLOYMENT_TARGET) + # If the STORM_DEVELOPER option was turned on, we will target a debug version. if (STORM_DEVELOPER) message(STATUS "StoRM - Using development mode") @@ -50,6 +59,7 @@ message(STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version.") if(STORM_COMPILE_WITH_CCACHE) find_program(CCACHE_FOUND ccache) + mark_as_advanced(CCACHE_FOUND) if(CCACHE_FOUND) message(STATUS "StoRM - Using ccache") set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) diff --git a/resources/3rdparty/CMakeLists.txt b/resources/3rdparty/CMakeLists.txt index e931e1ed1..3802bb760 100644 --- a/resources/3rdparty/CMakeLists.txt +++ b/resources/3rdparty/CMakeLists.txt @@ -7,6 +7,7 @@ set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) #### #### Find autoreconf for cudd update step find_program(AUTORECONF autoreconf) +mark_as_advanced(AUTORECONF) ############################################################# ##