Browse Source

Update CMake files

Former-commit-id: 9752e504e9
tempestpy_adaptions
hbruintjes 9 years ago
parent
commit
1bb2be74d4
  1. 487
      CMakeLists.txt
  2. 50
      resources/3rdparty/CMakeLists.txt
  3. 43
      resources/cmake/FindCUDD.cmake
  4. 49
      resources/cmake/FindGLPK.cmake
  5. 6
      test/CMakeLists.txt

487
CMakeLists.txt

@ -22,22 +22,23 @@ option(STORM_DEBUG "Sets whether the DEBUG mode is used" ON)
option(STORM_USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON)
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)
option(STORM_USE_COTIRE "Sets whether Cotire should be used (for building precompiled headers)." OFF)
option(LINK_LIBCXXABI "Sets whether libc++abi should be linked." OFF)
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)
option(STORM_COMPILE_WITH_CCACHE "Compile using CCache" ON)
option(STORM_LOGGING_FRAMEWORK "Use a framework for logging" OFF)
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).")
set(Z3_ROOT "" CACHE STRING "A hint to the root directory of Z3 (optional).")
set(CUDA_ROOT "" CACHE STRING "The root directory of CUDA.")
set(MSAT_ROOT "" CACHE STRING "The root directory of MathSAT (if available).")
set(CUDA_ROOT "" CACHE STRING "The hint to the root directory of CUDA (optional).")
set(MSAT_ROOT "" CACHE STRING "The hint to the root directory of MathSAT (optional).")
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(CUSTOM_BOOST_ROOT "" CACHE STRING "A custom path to the Boost root directory.")
set(STORM_SUPPORT_XML_INPUT_FORMATS 0)
# If the DEBUG option was turned on, we will target a debug version and a release version otherwise.
if (STORM_DEBUG)
@ -177,20 +178,42 @@ endif()
message(STATUS "StoRM - Using Compiler Configuration: ${STORM_COMPILED_BY}")
#############################################################
#############################################################
##
## Inclusion of required libraries
##
#############################################################
#############################################################
#############################################################
##
## Include the targets for non-system resources
##
#############################################################
# In 3rdparty, targets are being defined that can be used
# in the the system does not have a library
add_subdirectory(resources/3rdparty)
# Add the version of GMM in the repository to the include pathes
#############################################################
##
## 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})
find_package(GMP)
#############################################################
##
## gmp
##
#############################################################
# GMP is optional (unless MathSAT is used, see below)
find_package(GMP QUIET)
#############################################################
##
@ -203,32 +226,26 @@ set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
# If a custom boost root directory was specified, we set the corresponding hint for the script to find it.
if(CUSTOM_BOOST_ROOT)
message(STATUS "StoRM - Using Boost from CUSTOM_BOOST_ROOT located at ${CUSTOM_BOOST_ROOT}")
set(BOOST_ROOT "${CUSTOM_BOOST_ROOT}")
endif(CUSTOM_BOOST_ROOT)
find_package(Boost 1.56.0 REQUIRED)
find_package(Boost 1.56.0 REQUIRED QUIET)
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 "BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}")
#message(STATUS "BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}")
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")
@ -243,14 +260,11 @@ find_package(Z3 QUIET)
# Z3 Defines
set(STORM_HAVE_Z3 ${Z3_FOUND})
if(STORM_HAVE_Z3)
if(Z3_FOUND)
message (STATUS "StoRM - Linking with Z3")
include_directories(${Z3_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${Z3_LIBRARIES})
endif(STORM_HAVE_Z3)
endif(Z3_FOUND)
#############################################################
##
@ -258,40 +272,241 @@ endif(STORM_HAVE_Z3)
##
#############################################################
set(STORM_HAVE_GLPK 1)
message (STATUS "StoRM - Linking with 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)
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")
include_directories(${GLPK_INCLUDE_DIR})
list(APPEND STORM_LINK_LIBRARIES ${GLPK_LIBRARIES})
#############################################################
##
## Gurobi (optional)
##
#############################################################
if (STORM_USE_GUROBI)
find_package(Gurobi REQUIRED QUIET)
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()
#############################################################
##
## Gurobi (optional)
## CUDD
##
#############################################################
# Do not use system CUDD, StoRM has a modified version
#find_package(CUDD QUIET)
#set(CUDD_FOUND OFF)
if(CUDD_FOUND)
list(APPEND STORM_LINK_LIBRARIES ${CUDD_LIBRARY})
else()
set(CUDD_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/include)
set(CUDD_SHARED_LIBRARY ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT})
set(CUDD_STATIC_LIBRARY ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/liblibcudd${STATIC_EXT})
list(APPEND STORM_LINK_LIBRARIES ${CUDD_SHARED_LIBRARY})
add_dependencies(resources cudd3)
endif()
message(STATUS "StoRM - Linking with CUDD")
#message("StoRM - CUDD include dir: ${CUDD_INCLUDE_DIR}")
include_directories(${CUDD_INCLUDE_DIR})
#############################################################
##
## 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.")
include_directories("${carl_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES})
else()
#message(FATAL_ERROR "StoRM - CARL was requested but not found"
endif()
#find_package(smtrat QUIET)
if(smtrat_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()
#############################################################
##
## MathSAT (optional)
##
#############################################################
find_package(Gurobi)
if ("${GUROBI_ROOT}" STREQUAL "" AND NOT GUROBI_FOUND)
set(ENABLE_GUROBI OFF)
if ("${MSAT_ROOT}" STREQUAL "")
set(ENABLE_MSAT OFF)
else()
set(ENABLE_GUROBI ON)
set(ENABLE_MSAT ON)
endif()
# Gurobi Defines
set(STORM_HAVE_GUROBI ${ENABLE_GUROBI})
if (ENABLE_GUROBI)
if (NOT GUROBI_FOUND)
message(FATAL_ERROR "Gurobi was requested, but not found!")
endif()
message (STATUS "StoRM - Linking with Gurobi (include: ${GUROBI_INCLUDE_DIRS})")
include_directories(${GUROBI_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES ${GUROBI_LIBRARY})
#link_directories("${GUROBI_ROOT}/lib")
# 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)
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")
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 REQUIRED QUIET)
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 REQUIRED QUIET)
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
@ -429,195 +644,6 @@ if(ENABLE_CUDA)
include_directories("${PROJECT_SOURCE_DIR}/cuda/kernels/")
endif()
#############################################################
##
## CUDD
##
#############################################################
message("${CUDD3_INCLUDE_DIR}")
include_directories(${CUDD3_INCLUDE_DIR})
list(APPEND STORM_LINK_LIBRARIES ${CUDD3_SHARED_LIBRARIES})
#############################################################
##
## carl
##
#############################################################
if(USE_CARL)
find_package(carl QUIET)
if(carl_FOUND)
set(STORM_HAVE_CARL ON)
endif()
#find_package(smtrat QUIET)
if(smtrat_FOUND)
set(STORM_HAVE_SMTRAT ON)
endif()
endif()
if(STORM_HAVE_CARL)
message(STATUS "StoRM - Linking with carl.")
include_directories("${carl_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${carl_LIBRARIES})
endif()
#############################################################
##
## SMT-RAT
##
#############################################################
if(STORM_HAVE_SMTRAT)
message(STATUS "StoRM - Linking with smtrat.")
include_directories("${smtrat_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${smtrat_LIBRARIES})
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)
link_directories("${MSAT_ROOT}/lib")
message (STATUS "StoRM - Linking with MathSAT")
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(STORM_SUPPORT_XML_INPUT_FORMATS)
find_package(Xerces)
if(NOT XERCES_FOUND)
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)
set(XERCESC_LIBRARIES ${XERCES_LIBRARY_PATH}/libxerces-c.a)
endif()
set(STORM_HAVE_XERCES TRUE)
if(STORM_HAVE_XERCES)
include_directories(${XERCESC_INCLUDE})
list(APPEND STORM_LINK_LIBRARIES ${XERCESC_LIBRARIES})
endif()
endif()
#############################################################
##
## Sylvan
##
#############################################################
message(STATUS "Linking with shipped version of sylvan (in directory ${STORM_SYLVAN_ROOT}).")
include_directories("${Sylvan_INCLUDE_DIR}")
list(APPEND STORM_LINK_LIBRARIES ${Sylvan_LIBRARY})
if(${OPERATING_SYSTEM} MATCHES "Linux")
find_package(Hwloc QUIET)
if(NOT Hwloc_FOUND)
message(SEND_ERROR "HWLOC is required but was not found.")
else()
list(APPEND STORM_LINK_LIBRARIES ${Hwloc_LIBRARIES})
endif()
endif()
#############################################################
##
## Google Test gtest
##
#############################################################
#############################################################
##
## Log4CPlus
##
#############################################################
if(STORM_LOGGING_FRAMEWORK)
set(BUILD_SHARED_LIBS OFF CACHE BOOL "If TRUE, log4cplus is built as a shared library, otherwise as a static library")
set(LOG4CPLUS_BUILD_LOGGINGSERVER OFF)
set(LOG4CPLUS_BUILD_TESTING OFF)
set(LOG4CPLUS_USE_UNICODE OFF)
set(LOG4CPLUS_DEFINE_INSTALL_TARGET OFF)
add_subdirectory("${PROJECT_SOURCE_DIR}/resources/3rdparty/log4cplus-1.1.3-rc1")
include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/log4cplus-1.1.3-rc1/include")
include_directories("${PROJECT_BINARY_DIR}/resources/3rdparty/log4cplus-1.1.3-rc1/include") # This adds the defines.hxx file
list(APPEND STORM_LINK_LIBRARIES log4cplusS)
if (UNIX AND NOT APPLE)
list(APPEND STORM_LINK_LIBRARIES rt)
endif(UNIX AND NOT APPLE)
endif()
#############################################################
##
## Intel Threading Building Blocks (optional)
##
#############################################################
set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb42_20140122_merged-win-lin-mac")
find_package(TBB)
set(STORM_HAVE_INTELTBB 0)
if (TBB_FOUND)
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}.")
link_directories(${TBB_LIBRARY_DIRS})
include_directories(${TBB_INCLUDE_DIRS})
list(APPEND STORM_LINK_LIBRARIES tbb tbbmalloc)
endif(STORM_USE_INTELTBB)
endif(TBB_FOUND)
#############################################################
##
## Threads
##
#############################################################
find_package(Threads REQUIRED)
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)
#############################################################
##
## Cotire
@ -665,7 +691,6 @@ if(DOXYGEN_FOUND)
add_custom_target(doc ${DOXYGEN_EXECUTABLE} "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif(DOXYGEN_FOUND)
#############################################################
##
## CMake-generated Config File for StoRM

50
resources/3rdparty/CMakeLists.txt

@ -1,21 +1,17 @@
add_custom_target(resources)
add_custom_target(resources)
add_custom_target(test-resources)
if(STORM_SUPPORT_XML_INPUT_FORMATS)
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
BUILD_COMMAND make
BUILD_IN_SOURCE 0
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
)
add_dependencies(resources xercesc)
endif()
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
BUILD_COMMAND make
BUILD_IN_SOURCE 0
LOG_CONFIGURE ON
LOG_BUILD ON
LOG_INSTALL ON
)
ExternalProject_Add(
glpk
@ -30,10 +26,6 @@ ExternalProject_Add(
LOG_BUILD ON
LOG_INSTALL ON
)
add_dependencies(resources glpk)
set(GLPK_LIBRARIES ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/lib/libglpk${DYNAMIC_EXT} PARENT_SCOPE)
set(GLPK_INCLUDE_DIR ${CMAKE_BINARY_DIR}/resources/3rdparty/glpk-4.57/include PARENT_SCOPE)
ExternalProject_Add(
cudd3
@ -48,31 +40,22 @@ ExternalProject_Add(
LOG_BUILD ON
LOG_INSTALL ON
)
add_dependencies(resources cudd3)
ExternalProject_Get_Property(cudd3 binary_dir)
set(CUDD3_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/include PARENT_SCOPE)
set(CUDD3_SHARED_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/lib/libcudd${DYNAMIC_EXT} PARENT_SCOPE)
set(CUDD3_STATIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/cudd-3.0.0/liblibcudd${STATIC_EXT} PARENT_SCOPE)
set(STORM_SYLVAN_ROOT "${PROJECT_SOURCE_DIR}/resources/3rdparty/sylvan")
ExternalProject_Add(
sylvan
DOWNLOAD_COMMAND ""
PREFIX "sylvan"
SOURCE_DIR "${STORM_SYLVAN_ROOT}"
SOURCE_DIR ${CMAKE_CURRENT_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"
)
ExternalProject_Get_Property(sylvan source_dir)
ExternalProject_Get_Property(sylvan binary_dir)
set(Sylvan_INCLUDE_DIR "${STORM_SYLVAN_ROOT}/src" PARENT_SCOPE)
set(Sylvan_INCLUDE_DIR "${source_dir}/src" PARENT_SCOPE)
set(Sylvan_LIBRARY "${binary_dir}/src/libsylvan.a" PARENT_SCOPE)
add_dependencies(resources sylvan)
ExternalProject_Add(
googletest
#For downloads (may be useful later!)
@ -97,6 +80,3 @@ 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)

43
resources/cmake/FindCUDD.cmake

@ -0,0 +1,43 @@
# - Try to find libglpk
# Once done this will define
# CUDD_FOUND - System has cudd
# CUDD_INCLUDE_DIR - The cudd include directory
# CUDD_LIBRARIES - The libraries needed to use cudd
# CUDD_VERSION_STRING - The version of cudd ("major.minor.release")
# use pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls
find_package(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_CUDD QUIET cudd)
find_path(CUDD_INCLUDE_DIR NAMES cudd.h
HINTS
${PC_CUDD_INCLUDEDIR}
${PC_CUDD_INCLUDE_DIRS}
PATH_SUFFIXES cudd
)
find_library(CUDD_LIBRARIES NAMES cudd
HINTS
${PC_CUDD_LIBDIR}
${PC_CUDD_LIBRARY_DIRS}
)
if(PC_CUDD_VERSION)
set(CUDD_VERSION_STRING ${PC_CUDD_VERSION})
elseif(CUDD_INCLUDE_DIR AND EXISTS "${CUDD_INCLUDE_DIR}/cudd.h")
file(STRINGS "${CUDD_INCLUDE_DIR}/cudd.h" cudd_version
REGEX "^#define[\t ]+CUDD_VERSION[\t ]+\".+\"")
string(REGEX REPLACE "^#define[\t ]+CUDD_VERSION[\t ]+\"(.+)\"" "\\1"
CUDD_VERSION_STRING "${cudd_version}")
unset(cudd_version)
endif()
# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(cudd
REQUIRED_VARS CUDD_LIBRARIES CUDD_INCLUDE_DIR
VERSION_VAR CUDD_VERSION_STRING)
mark_as_advanced(CUDD_INCLUDE_DIR CUDD_LIBRARIES)

49
resources/cmake/FindGLPK.cmake

@ -0,0 +1,49 @@
# - Try to find libglpk
# Once done this will define
# GLPK_FOUND - System has glpk
# GLPK_INCLUDE_DIR - The glpk include directory
# GLPK_LIBRARIES - The libraries needed to use glpk
# GLPK_VERSION_STRING - The version of glpk ("major.minor")
# use pkg-config to get the directories and then use these values
# in the find_path() and find_library() calls
find_package(PkgConfig QUIET)
PKG_CHECK_MODULES(PC_GLPK QUIET glpk)
find_path(GLPK_INCLUDE_DIR NAMES glpk.h
HINTS
${PC_GLPK_INCLUDEDIR}
${PC_GLPK_INCLUDE_DIRS}
PATH_SUFFIXES glpk
)
find_library(GLPK_LIBRARIES NAMES glpk
HINTS
${PC_GLPK_LIBDIR}
${PC_GLPK_LIBRARY_DIRS}
)
if(PC_GLPK_VERSION)
set(GLPK_VERSION_STRING ${PC_GLPK_VERSION})
elseif(GLPK_INCLUDE_DIR AND EXISTS "${GLPK_INCLUDE_DIR}/glpk.h")
file(STRINGS "${GLPK_INCLUDE_DIR}/glpk.h" glpk_major_version
REGEX "^#define[\t ]+GLP_MAJOR_VERSION[\t ]+.+")
file(STRINGS "${GLPK_INCLUDE_DIR}/glpk.h" glpk_minor_version
REGEX "^#define[\t ]+GLP_MINOR_VERSION[\t ]+.+")
string(REGEX REPLACE "^#define[\t ]+GLP_MAJOR_VERSION[\t ]+(.+)" "\\1"
glpk_major_version "${glpk_major_version}")
string(REGEX REPLACE "^#define[\t ]+GLP_MINOR_VERSION[\t ]+(.+)" "\\1"
glpk_minor_version "${glpk_minor_version}")
set(GLPK_VERSION_STRING "${glpk_major_version}.${glpk_minor_version}")
unset(glpk_major_version)
unset(glpk_minor_version)
endif()
# handle the QUIETLY and REQUIRED arguments and set LIBXML2_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(glpk
REQUIRED_VARS GLPK_LIBRARIES GLPK_INCLUDE_DIR
VERSION_VAR GLPK_VERSION_STRING)
mark_as_advanced(GLPK_INCLUDE_DIR GLPK_LIBRARIES)

6
test/CMakeLists.txt

@ -17,8 +17,8 @@ add_dependencies(storm-performance-tests test-resources)
include_directories(${GTEST_INCLUDE_DIR})
enable_testing()
target_link_libraries(storm-functional-tests ${GTEST_LIBRARIES})
target_link_libraries(storm-performance-tests ${GTEST_LIBRARIES})
target_link_libraries(storm-functional-tests ${STORM_TEST_LINK_LIBRARIES})
target_link_libraries(storm-performance-tests ${STORM_TEST_LINK_LIBRARIES})
add_test(NAME storm-functional-tests COMMAND storm-functional-tests)
add_test(NAME storm-performance-tests COMMAND storm-performance-tests)
@ -26,4 +26,4 @@ INSTALL(TARGETS storm-functional-tests storm-performance-tests
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
)
Loading…
Cancel
Save