@ -7,15 +7,24 @@ project (storm CXX C)
set ( STORM_CPP_VERSION_MAJOR 1 )
set ( STORM_CPP_VERSION_MINOR 0 )
# S e t a l l E i g e n r e f e r e n c e s t h e v e r s i o n i n t h e r e p o s i t o r y
set ( EIGEN3_INCLUDE_DIR ${ PROJECT_SOURCE_DIR } /resources/3rdparty/eigen )
message ( STATUS "EIGEN3_INCLUDE_DIR is ${EIGEN3_INCLUDE_DIR} ")
# A d d b a s e f o l d e r f o r b e t t e r i n c l u s i o n p a t h s
include_directories ( "${PROJECT_SOURCE_DIR}" )
include_directories ( "${PROJECT_SOURCE_DIR}/src ")
# S e t a l l E i g e n r e f e r e n c e s t h e v e r s i o n i n t h e r e p o s i t o r y
set ( GMMXX_INCLUDE_DIR ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gmm-4.2/include )
message ( STATUS "GMMXX_INCLUDE_DIR is ${GMMXX_INCLUDE_DIR}" )
# A d d t h e v e r s i o n o f E i g e n 3 i n t h e r e p o s i t o r y t o t h e i n c l u d e p a t h e s
set ( EIGEN3_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/eigen" )
include_directories ( ${ EIGEN3_INCLUDE_DIR } )
# A d d t h e v e r s i o n o f G M M i n t h e r e p o s i t o r y t o t h e i n c l u d e p a t h e s
set ( GMMXX_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/gmm-4.2/include" )
include_directories ( ${ GMMXX_INCLUDE_DIR } )
# N o w d e f i n e a l l a v a i l a b l e c u s t o m o p t i o n s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # C M a k e o p t i o n s o f S t o R M
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
option ( DEBUG "Sets whether the DEBUG mode is used" ON )
option ( 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 )
@ -27,14 +36,47 @@ set(ADDITIONAL_INCLUDE_DIRS "" CACHE STRING "Additional directories added to the
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." )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # I n c l u s i o n o f r e q u i r e d l i b r a r i e s
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
set ( TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/" )
if ( MSVC )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/vc11" )
elseif ( CMAKE_COMPILER_IS_GNUCC )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/gcc4.4" )
else ( CLANG )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/clang3.2" )
endif ( )
# A d d t h e r e s o u r c e s / c m a k e f o l d e r t o M o d u l e S e a r c h P a t h f o r F i n d T B B . c m a k e
set ( CMAKE_MODULE_PATH ${ CMAKE_MODULE_PATH } "${PROJECT_SOURCE_DIR}/resources/cmake/" )
# B o o s t O p t i o n v a r i a b l e s
set ( Boost_USE_STATIC_LIBS ON )
set ( Boost_USE_MULTITHREADED ON )
set ( Boost_USE_STATIC_RUNTIME OFF )
# I f a c u s t o m b o o s t r o o t d i r e c t o r y w a s s p e c i f i e d , w e s e t t h e c o r r e s p o n d i n g h i n t f o r t h e s c r i p t t o f i n d i t .
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 REQUIRED )
find_package ( Doxygen REQUIRED )
find_package ( TBB )
find_package ( Threads REQUIRED )
# I f t h e D E B U G o p t i o n w a s t u r n e d o n , w e w i l l t a r g e t a d e b u g v e r s i o n a n d a r e l e a s e v e r s i o n o t h e r w i s e
if ( DEBUG )
set ( CMAKE_BUILD_TYPE "DEBUG" )
message ( STATUS "Building DEBUG version." )
else ( )
set ( CMAKE_BUILD_TYPE "RELEASE" )
message ( STATUS "Building RELEASE version." )
endif ( )
message ( STATUS "StoRM - Building ${CMAKE_BUILD_TYPE} version." )
if ( "${GUROBI_ROOT}" STREQUAL "" )
set ( ENABLE_GUROBI OFF )
@ -42,14 +84,21 @@ else()
set ( ENABLE_GUROBI ON )
endif ( )
message ( STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" )
message ( STATUS "CMAKE_BUILD_TYPE (ENV): $ENV{CMAKE_BUILD_TYPE}" )
message ( STATUS "StoRM - CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}" )
message ( STATUS "StoRM - CMAKE_BUILD_TYPE (ENV): $ENV{CMAKE_BUILD_TYPE}" )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # C o m p i l e r s p e c i f i c s e t t i n g s a n d d e f i n i t i o n s
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# P a t h t o t h e n o - s t r i c t - a l i a s i n g t a r g e t
set ( CONVERSIONHELPER_TARGET "${PROJECT_SOURCE_DIR}/src/utility/ConversionHelper.cpp" )
if ( CMAKE_COMPILER_IS_GNUCC )
message ( STATUS "Using GCC" )
message ( STATUS "StoRM - Using Compiler Configuration: GCC" )
# S e t s t a n d a r d f l a g s f o r G C C
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -pedantic" )
@ -65,7 +114,7 @@ if(CMAKE_COMPILER_IS_GNUCC)
# S e t t h e n o - s t r i c t - a l i a s i n g t a r g e t f o r G C C
set_source_files_properties ( ${ CONVERSIONHELPER_TARGET } PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing " )
elseif ( MSVC )
message ( STATUS "Using MSVC" )
message ( STATUS "StoRM - Using Compiler Configuration: MSVC" )
# r e q u i r e d f o r G M M t o c o m p i l e , u g l y e r r o r d i r e c t i v e i n t h e i r c o d e
add_definitions ( /D_SCL_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS )
# r e q u i r e d a s t h e P R C T L P a r s e r b l o a t s o b j e c t files ( COFF ) b e y o n d t h e i r m a x i m u m size ( see http://msdn.microsoft.com/en-us/library/8578y171(v=vs.110 ) . a s p x )
@ -75,15 +124,17 @@ elseif(MSVC)
# MSVC d o e s n o t d o s t r i c t - a l i a s i n g , s o n o o p t i o n n e e d e d
else ( CLANG )
message ( STATUS "Using CLANG " )
message ( STATUS "StoRM - Using Compiler Configuration: Clang (LLVM) " )
# A s C L A N G i s n o t s e t a s a v a r i a b l e , w e n e e d t o s e t i t i n c a s e w e h a v e n o t m a t c h e d a n o t h e r c o m p i l e r .
set ( CLANG ON )
# S e t s t a n d a r d f l a g s f o r c l a n g
set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -funroll-loops -O3" )
if ( UNIX AND NOT APPLE )
set ( CLANG_STDLIB libstdc++ )
message ( STATUS "StoRM - Linking against libstdc++" )
else ( )
set ( CLANG_STDLIB libc++ )
message ( STATUS "StoRM - Linking against libc++" )
# D i s a b l e C o t i r e
set ( STORM_USE_COTIRE OFF )
# S e t u p s o m e X c o d e s p e c i f i c s e t t i n g s
@ -104,14 +155,40 @@ else(CLANG)
set_source_files_properties ( ${ CONVERSIONHELPER_TARGET } PROPERTIES COMPILE_FLAGS " -fno-strict-aliasing " )
endif ( )
# A d d t h e b i n a r y f o l d e r t o t h e s e a r c h p a t h f o r i n c l u d e f i l e s s o t h a t w e w i l l f i n d s t o r m - c o n f i g . h
include_directories ( "${PROJECT_BINARY_DIR}" )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # C M a k e - g e n e r a t e d C o n f i g F i l e f o r S t o R M
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# B a s e p a t h f o r t e s t f i l e s
set ( STORM_CPP_TESTS_BASE_PATH ${ PROJECT_SOURCE_DIR } /test )
message ( STATUS "STORM_CPP_TESTS_BASE_PATH is ${STORM_CPP_TESTS_BASE_PATH}" )
set ( STORM_CPP_TESTS_BASE_PATH "${PROJECT_SOURCE_DIR}/test" )
# G u r o b i D e f i n e s
if ( ENABLE_GUROBI )
set ( STORM_CPP_GUROBI_DEF "define" )
else ( )
set ( STORM_CPP_GUROBI_DEF "undef" )
endif ( )
# I n t e l T B B D e f i n e s
if ( TBB_FOUND AND USE_INTELTBB )
set ( STORM_CPP_INTELTBB_DEF "define" )
else ( )
set ( STORM_CPP_INTELTBB_DEF "undef" )
endif ( )
# M a i n S o u r c e s
# C o n f i g u r e a h e a d e r f i l e t o p a s s s o m e o f t h e C M a k e s e t t i n g s t o t h e s o u r c e c o d e
configure_file (
" $ { P R O J E C T _ S O U R C E _ D I R } / s t o r m - c o n f i g . h . i n "
" $ { P R O J E C T _ B I N A R Y _ D I R } / i n c l u d e / s t o r m - c o n f i g . h "
)
# A d d t h e b i n a r y d i r i n c l u d e d i r e c t o r y f o r s t o r m - c o n f i g . h
include_directories ( "${PROJECT_BINARY_DIR}/include" )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # S o u r c e f i l e a g g r e g a t i o n a n d c l u s t e r i n g
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
file ( GLOB_RECURSE STORM_HEADERS ${ PROJECT_SOURCE_DIR } /src/*.h )
file ( GLOB_RECURSE STORM_SOURCES_WITHOUT_MAIN ${ PROJECT_SOURCE_DIR } /src/*/*.cpp )
file ( GLOB_RECURSE STORM_MAIN_FILE ${ PROJECT_SOURCE_DIR } /src/storm.cpp )
@ -140,6 +217,9 @@ file(GLOB_RECURSE STORM_IR_EXPRESSIONS_FILES ${PROJECT_SOURCE_DIR}/src/ir/expres
file ( GLOB_RECURSE STORM_FUNCTIONAL_TEST_FILES ${ STORM_CPP_TESTS_BASE_PATH } /functional/*.h ${ STORM_CPP_TESTS_BASE_PATH } /functional/*.cpp )
file ( GLOB_RECURSE STORM_PERFORMANCE_TEST_FILES ${ STORM_CPP_TESTS_BASE_PATH } /performance/*.h ${ STORM_CPP_TESTS_BASE_PATH } /performance/*.cpp )
# A d d i t i o n a l i n c l u d e f i l e s l i k e t h e s t o r m - c o n f i g . h
file ( GLOB_RECURSE STORM_BUILD_HEADERS ${ PROJECT_BINARY_DIR } /include/*.h )
# G r o u p t h e h e a d e r s a n d s o u r c e s
source_group ( main FILES ${ STORM_MAIN_FILE } )
source_group ( adapters FILES ${ STORM_ADAPTERS_FILES } )
@ -149,6 +229,9 @@ source_group(formula\\abstract FILES ${STORM_FORMULA_ABSTRACT_FILES})
source_group ( formula\\csl FILES ${ STORM_FORMULA_CSL_FILES } )
source_group ( formula\\ltl FILES ${ STORM_FORMULA_LTL_FILES } )
source_group ( formula\\prctl FILES ${ STORM_FORMULA_PRCTL_FILES } )
source_group ( generated FILES ${ STORM_BUILD_HEADERS } )
source_group ( ir FILES ${ STORM_IR_FILES } )
source_group ( ir\\expressions FILES ${ STORM_IR_EXPRESSIONS_FILES } )
source_group ( modelchecker FILES ${ STORM_MODELCHECKER_FILES } )
source_group ( counterexamples FILES ${ STORM_COUNTEREXAMPLES_FILES } )
source_group ( models FILES ${ STORM_MODELS_FILES } )
@ -158,92 +241,57 @@ source_group(settings FILES ${STORM_SETTINGS_FILES})
source_group ( solver FILES ${ STORM_SOLVER_FILES } )
source_group ( storage FILES ${ STORM_STORAGE_FILES } )
source_group ( utility FILES ${ STORM_UTILITY_FILES } )
source_group ( ir FILES ${ STORM_IR_FILES } )
source_group ( ir\\expressions FILES ${ STORM_IR_EXPRESSIONS_FILES } )
source_group ( functional-test FILES ${ STORM_FUNCTIONAL_TEST_FILES } )
source_group ( performance-test FILES ${ STORM_PERFORMANCE_TEST_FILES } )
# A d d b a s e f o l d e r f o r b e t t e r i n c l u s i o n p a t h s
include_directories ( "${PROJECT_SOURCE_DIR}" )
include_directories ( "${PROJECT_SOURCE_DIR}/src" )
# P r e s e t p a t h e s f o r I n t e l T B B t o i n t e r n a l c o p y i n / r e s o u r c e s / 3 r d P a r t y / t b b 4 1 _ 2 0 1 3 0 3 1 4 _ m e r g e d W i n d o w s L i n u x M a c O S X
set ( TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/" )
if ( MSVC )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/vc11" )
elseif ( CMAKE_COMPILER_IS_GNUCC )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/gcc4.4" )
else ( CLANG )
set ( ENV{TBB_ARCH_PLATFORM} "intel64/clang3.2" )
endif ( )
# A d d t h e r e s o u r c e s / c m a k e f o l d e r t o M o d u l e S e a r c h P a t h f o r F i n d T B B . c m a k e
set ( CMAKE_MODULE_PATH ${ CMAKE_MODULE_PATH } "${PROJECT_SOURCE_DIR}/resources/cmake/" )
# S e t r e q u i r e d e x t e r n a l p a c k a g e s
find_package ( Threads REQUIRED )
find_package ( Doxygen REQUIRED )
set ( Boost_USE_STATIC_LIBS ON )
set ( Boost_USE_MULTITHREADED ON )
set ( Boost_USE_STATIC_RUNTIME OFF )
# I f a c u s t o m b o o s t r o o t d i r e c t o r y w a s s p e c i f i e d , w e s e t t h e c o r r e s p o n d i n g h i n t f o r t h e s c r i p t t o f i n d i t .
if ( CUSTOM_BOOST_ROOT )
set ( BOOST_ROOT "${CUSTOM_BOOST_ROOT}" )
endif ( CUSTOM_BOOST_ROOT )
find_package ( Boost REQUIRED COMPONENTS program_options )
find_package ( TBB )
if ( Boost_FOUND )
if ( ( NOT Boost_LIBRARY_DIRS ) OR ( "${Boost_LIBRARY_DIRS}" STREQUAL "" ) )
set ( Boost_LIBRARY_DIRS "${Boost_INCLUDE_DIRS}/stage/lib" )
endif ( )
message ( STATUS "BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}" )
message ( STATUS "BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}" )
include_directories ( ${ Boost_INCLUDE_DIRS } )
link_directories ( ${ Boost_LIBRARY_DIRS } )
endif ( Boost_FOUND )
# I n t e l s T h r e a d B u i l d i n g B l o c k s
if ( TBB_FOUND )
message ( STATUS "Found TBB with Interface Version ${TBB_INTERFACE_VERSION}" )
if ( USE_INTELTBB )
add_definitions ( -DGMM_USE_TBB )
endif ( )
include_directories ( ${ TBB_INCLUDE_DIRS } )
link_directories ( ${ TBB_LIBRARY_DIRS } )
endif ( TBB_FOUND )
# A d d E i g e n t o t h e i n c l u d e d d i r e c t o r i e s
include_directories ( ${ EIGEN3_INCLUDE_DIR } )
# A d d G M M X X t o t h e i n c l u d e d d i r e c t o r i e s
include_directories ( ${ GMMXX_INCLUDE_DIR } )
# A d d c u s t o m a d d i t i o n a l i n c l u d e o r l i n k d i r e c t o r i e s
if ( ADDITIONAL_INCLUDE_DIRS )
message ( STATUS "Using additional include directories ${ADDITIONAL_INCLUDE_DIRS}" )
message ( STATUS "StoRM - Using additional include directories ${ADDITIONAL_INCLUDE_DIRS}" )
include_directories ( ${ ADDITIONAL_INCLUDE_DIRS } )
endif ( ADDITIONAL_INCLUDE_DIRS )
if ( ADDITIONAL_LINK_DIRS )
message ( STATUS "Using additional link directories ${ADDITIONAL_LINK_DIRS}" )
message ( STATUS "StoRM - Using additional link directories ${ADDITIONAL_LINK_DIRS}" )
link_directories ( ${ ADDITIONAL_LINK_DIRS } )
endif ( ADDITIONAL_LINK_DIRS )
# A d d t h e e x e c u t a b l e s
# M u s t b e c r e a t e d * a f t e r * B o o s t w a s a d d e d b e c a u s e o f L I N K _ D I R E C T O R I E S
add_executable ( storm ${ STORM_SOURCES } ${ STORM_HEADERS } )
add_executable ( storm-functional-tests ${ STORM_FUNCTIONAL_TEST_FILES } ${ STORM_SOURCES_WITHOUT_MAIN } ${ STORM_HEADERS } )
add_executable ( storm-performance-tests ${ STORM_PERFORMANCE_TEST_FILES } ${ STORM_SOURCES_WITHOUT_MAIN } ${ STORM_HEADERS } )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # P r e e x e c u t a b l e - c r e a t i o n l i n k _ d i r e c t o r i e s s e t u p
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( ENABLE_GUROBI )
link_directories ( "${GUROBI_ROOT}/lib" )
endif ( )
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 } )
if ( TBB_FOUND AND USE_INTELTBB )
link_directories ( ${ TBB_LIBRARY_DIRS } )
endif ( )
# A d d t a r g e t l i n k d e p s f o r B o o s t p r o g r a m o p t i o n s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # #
# # E x e c u t a b l e C r e a t i o n #
# # #
# # A l l link_directories ( ) c a l l s M U S T b e m a d e b e f o r e t h i s p o i n t #
# # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_executable ( storm ${ STORM_SOURCES } ${ STORM_HEADERS } ${ STORM_BUILD_HEADERS } )
add_executable ( storm-functional-tests ${ STORM_FUNCTIONAL_TEST_FILES } ${ STORM_SOURCES_WITHOUT_MAIN } ${ STORM_HEADERS } ${ STORM_BUILD_HEADERS } )
add_executable ( storm-performance-tests ${ STORM_PERFORMANCE_TEST_FILES } ${ STORM_SOURCES_WITHOUT_MAIN } ${ STORM_HEADERS } ${ STORM_BUILD_HEADERS } )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # B o o s t
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
include_directories ( ${ Boost_INCLUDE_DIRS } )
target_link_libraries ( storm ${ Boost_LIBRARIES } )
target_link_libraries ( storm-functional-tests ${ Boost_LIBRARIES } )
target_link_libraries ( storm-performance-tests ${ Boost_LIBRARIES } )
# message ( STATUS "BOOST_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}" )
# message ( STATUS "BOOST_LIBRARY_DIRS is ${Boost_LIBRARY_DIRS}" )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
@ -273,6 +321,19 @@ target_link_libraries(storm ltl2dstar)
target_link_libraries ( storm-functional-tests ltl2dstar )
target_link_libraries ( storm-performance-tests ltl2dstar )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # Gurobi ( optional )
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( ENABLE_GUROBI )
message ( STATUS "StoRM - Linking with Gurobi" )
include_directories ( "${GUROBI_ROOT}/include" )
target_link_libraries ( storm "gurobi55" )
target_link_libraries ( storm-functional-tests "gurobi55" )
target_link_libraries ( storm-performance-tests "gurobi55" )
endif ( ENABLE_GUROBI )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # G o o g l e T e s t g t e s t
@ -310,6 +371,35 @@ if (UNIX AND NOT APPLE)
target_link_libraries ( storm-performance-tests rt )
endif ( UNIX AND NOT APPLE )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # I n t e l T h r e a d i n g B u i l d i n g Blocks ( optional )
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( TBB_FOUND )
message ( STATUS "StoRM - Found Intel TBB with Interface Version ${TBB_INTERFACE_VERSION}" )
if ( USE_INTELTBB )
message ( STATUS "StoRM - Linking with Intel TBB for activated Matrix/Vector MT" )
include_directories ( ${ TBB_INCLUDE_DIRS } )
target_link_libraries ( storm tbb tbbmalloc )
target_link_libraries ( storm-functional-tests tbb tbbmalloc )
target_link_libraries ( storm-performance-tests tbb tbbmalloc )
endif ( USE_INTELTBB )
endif ( TBB_FOUND )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # T h r e a d s
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
include_directories ( ${ THREADS_INCLUDE_DIRS } )
target_link_libraries ( storm ${ CMAKE_THREAD_LIBS_INIT } )
if ( STORM_USE_COTIRE )
target_link_libraries ( storm_unity ${ CMAKE_THREAD_LIBS_INIT } )
endif ( STORM_USE_COTIRE )
target_link_libraries ( storm-functional-tests ${ CMAKE_THREAD_LIBS_INIT } )
target_link_libraries ( storm-performance-tests ${ CMAKE_THREAD_LIBS_INIT } )
if ( MSVC )
# A d d t h e D e b u g H e l p e r D L L
set ( CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} Dbghelp.lib" )
@ -318,14 +408,8 @@ if (MSVC)
target_link_libraries ( storm-performance-tests "Dbghelp.lib" )
endif ( MSVC )
if ( USE_INTELTBB )
target_link_libraries ( storm tbb tbbmalloc )
target_link_libraries ( storm-functional-tests tbb tbbmalloc )
target_link_libraries ( storm-performance-tests tbb tbbmalloc )
endif ( USE_INTELTBB )
# P r i n t C o t i r e U s a g e S t a t u s
message ( STATUS "Using Cotire: ${STORM_USE_COTIRE}" )
message ( STATUS "StoRM - Using Cotire: ${STORM_USE_COTIRE}" )
if ( STORM_USE_COTIRE )
# I n c l u d e C o t i r e f o r P C H G e n e r a t i o n
@ -338,19 +422,9 @@ if (STORM_USE_COTIRE)
# cotire ( storm-performance-tests )
endif ( )
if ( ENABLE_GUROBI )
message ( STATUS "Linking in Gurobi." )
include_directories ( ${ GUROBI_ROOT } /include )
link_directories ( ${ GUROBI_ROOT } /lib )
target_link_libraries ( storm "gurobi55" )
target_link_libraries ( storm-functional-tests "gurobi55" )
target_link_libraries ( storm-performance-tests "gurobi55" )
add_definitions ( -DHAVE_GUROBI )
endif ( ENABLE_GUROBI )
# L i n k a g a i n s t l i b c + + a b i i f r e q u e s t e d . M a y b e n e e d e d t o b u i l d o n L i n u x s y s t e m s u s i n g c l a n g .
if ( LINK_LIBCXXABI )
message ( STATUS "Linking against libc++abi." )
message ( STATUS "StoRM - Linking against libc++abi." )
target_link_libraries ( storm "c++abi" )
target_link_libraries ( storm-functional-tests "c++abi" )
target_link_libraries ( storm-performance-tests "c++abi" )
@ -361,27 +435,11 @@ if(DOXYGEN_FOUND)
set ( CMAKE_DOXYGEN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc" )
string ( REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${PROJECT_SOURCE_DIR}/src" )
configure_file ( ${ CMAKE_CURRENT_SOURCE_DIR } /doc/Doxyfile.in ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile @ONLY )
configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY )
add_custom_target ( doc ${ DOXYGEN_EXECUTABLE } ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile DEPENDS ${ CMAKE_CURRENT_BINARY_DIR } /Doxyfile COMMENT "Generating API documentation with Doxygen" VERBATIM )
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 )
if ( THREADS_FOUND )
include_directories ( ${ THREADS_INCLUDE_DIRS } )
target_link_libraries ( storm ${ CMAKE_THREAD_LIBS_INIT } )
if ( STORM_USE_COTIRE )
target_link_libraries ( storm_unity ${ CMAKE_THREAD_LIBS_INIT } )
endif ( STORM_USE_COTIRE )
target_link_libraries ( storm-functional-tests ${ CMAKE_THREAD_LIBS_INIT } )
target_link_libraries ( storm-performance-tests ${ CMAKE_THREAD_LIBS_INIT } )
endif ( THREADS_FOUND )
# C o n f i g u r e a h e a d e r f i l e t o p a s s s o m e o f t h e C M a k e s e t t i n g s t o t h e s o u r c e c o d e
configure_file (
" $ { P R O J E C T _ S O U R C E _ D I R } / s t o r m - c o n f i g . h . i n "
" $ { P R O J E C T _ B I N A R Y _ D I R } / s t o r m - c o n f i g . h "
)
add_custom_target ( memcheck valgrind --leak-check=full --show-reachable=yes ${ PROJECT_BINARY_DIR } /storm -v --fix-deadlocks ${ PROJECT_SOURCE_DIR } /examples/dtmc/crowds/crowds5_5.tra examples/dtmc/crowds/crowds5_5.lab DEPENDS storm )
add_custom_target ( memcheck-functional-tests valgrind --leak-check=full --show-reachable=yes ${ PROJECT_BINARY_DIR } /storm-functional-tests -v --fix-deadlocks DEPENDS storm-functional-tests )
add_custom_target ( memcheck-performance-tests valgrind --leak-check=full --show-reachable=yes ${ PROJECT_BINARY_DIR } /storm-performance-tests -v --fix-deadlocks DEPENDS storm-performance-tests )