@ -7,36 +7,6 @@ project (storm CXX C)
set ( STORM_CPP_VERSION_MAJOR 1 )
set ( STORM_CPP_VERSION_MINOR 0 )
# S e t a l l G T e s t r e f e r e n c e s t o 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 a n d s h o w i t a s o u t p u t
set ( GTEST_INCLUDE_DIR resources/3rdparty/gtest-1.6.0/include )
if ( MSVC )
set ( STORM_LIB_SUFFIX lib )
set ( GTEST_LIBRARY_DEBUG ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/build/Debug/gtest. ${ STORM_LIB_SUFFIX } )
set ( GTEST_MAIN_LIBRARY_DEBUG ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/build/Debug/gtest_main. ${ STORM_LIB_SUFFIX } )
set ( GTEST_LIBRARY ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/build/Release/gtest. ${ STORM_LIB_SUFFIX } )
set ( GTEST_MAIN_LIBRARY ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/build/Release/gtest_main. ${ STORM_LIB_SUFFIX } )
set ( GTEST_LIBRARIES optimized ${ GTEST_LIBRARY } debug ${ GTEST_LIBRARY_DEBUG } )
else ( )
set ( STORM_LIB_SUFFIX a )
set ( GTEST_LIBRARY ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/libgtest. ${ STORM_LIB_SUFFIX } )
set ( GTEST_MAIN_LIBRARY ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gtest-1.6.0/libgtest_main. ${ STORM_LIB_SUFFIX } )
set ( GTEST_LIBRARIES ${ GTEST_LIBRARY } ${ GTEST_MAIN_LIBRARY } ) # a s w e d o n t u s e F i n d G T e s t a n y m o r e
endif ( )
message ( STATUS "GTEST_INCLUDE_DIR is ${GTEST_INCLUDE_DIR}" )
message ( STATUS "GTEST_LIBRARY is ${GTEST_LIBRARY}" )
message ( STATUS "GTEST_MAIN_LIBRARY is ${GTEST_MAIN_LIBRARY}" )
# S e t a l l l o g 4 c p l u s 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 ( LOG4CPLUS_BASE_DIR ${ PROJECT_SOURCE_DIR } /resources/3rdparty/log4cplus-1.1.2-rc2 )
set ( LOG4CPLUS_INCLUDE_DIR ${ LOG4CPLUS_BASE_DIR } /include )
if ( MSVC )
set ( LOG4CPLUS_LIBRARIES optimized ${ LOG4CPLUS_BASE_DIR } /msvc10/x64/bin.Release/log4cplusS. ${ STORM_LIB_SUFFIX } debug ${ LOG4CPLUS_BASE_DIR } /msvc10/x64/bin.Debug/log4cplusSD. ${ STORM_LIB_SUFFIX } )
else ( )
set ( LOG4CPLUS_LIBRARIES ${ LOG4CPLUS_BASE_DIR } /src/liblog4cplusS. ${ STORM_LIB_SUFFIX } )
endif ( )
message ( STATUS "LOG4CPLUS_INCLUDE_DIR is ${LOG4CPLUS_INCLUDE_DIR}" )
message ( STATUS "LOG4CPLUS_LIBRARY is ${LOG4CPLUS_LIBRARIES}" )
# 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}" )
@ -45,23 +15,6 @@ message(STATUS "EIGEN3_INCLUDE_DIR is ${EIGEN3_INCLUDE_DIR}")
set ( GMMXX_INCLUDE_DIR ${ PROJECT_SOURCE_DIR } /resources/3rdparty/gmm-4.2/include )
message ( STATUS "GMMXX_INCLUDE_DIR is ${GMMXX_INCLUDE_DIR}" )
# S e t a l l C U D D r e f e r e n c e s t o 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 ( CUDD_INCLUDE_DIRS ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/include ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/obj ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/cudd ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/mtr ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/epd )
set ( CUDD_LIBRARY_DIRS ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/cudd ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/mtr ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/util ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/st ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/epd ${ PROJECT_SOURCE_DIR } /resources/3rdparty/cudd-2.5.0/obj )
message ( STATUS "CUDD_INCLUDE_DIRS is ${CUDD_INCLUDE_DIRS}" )
message ( STATUS "CUDD_LIBRARY_DIRS is ${CUDD_LIBRARY_DIRS}" )
# S e t a l l l t l 2 d s t a r r e f e r e n c e s t o 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 ( LTL2DSTAR_INCLUDE_DIRS ${ PROJECT_SOURCE_DIR } /resources/3rdparty/ltl2dstar-0.5.1/src )
if ( MSVC )
set ( LTL2DSTAR_LIBRARY_DIRS ${ PROJECT_SOURCE_DIR } /resources/3rdparty/ltl2dstar-0.5.1/win32/Ltl2dStar/x64/Release )
else ( )
set ( LTL2DSTAR_LIBRARY_DIRS ${ PROJECT_SOURCE_DIR } /resources/3rdparty/ltl2dstar-0.5.1/src )
endif ( )
message ( STATUS "LTL2DSTAR_INCLUDE_DIRS is ${LTL2DSTAR_INCLUDE_DIRS}" )
message ( STATUS "LTL2DSTAR_LIBRARY_DIRS is ${LTL2DSTAR_LIBRARY_DIRS}" )
# 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
option ( DEBUG "Sets whether the DEBUG mode is used" ON )
option ( USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON )
@ -92,7 +45,7 @@ if(CMAKE_COMPILER_IS_GNUCC)
message ( STATUS "Using 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 "-std=c++0x -Wall -pedantic" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -pedantic" )
# - W e r r o r i s a t m r e m o v e d a s t h i s g a v e s o m e p r o b l e m s w i t h e x i s t i n g c o d e
# M a y b e r e - s e t l a t e r
# ( T h o m a s H e i n e m a n n , 2 0 1 2 - 1 2 - 2 1 )
@ -107,7 +60,7 @@ if(CMAKE_COMPILER_IS_GNUCC)
elseif ( MSVC )
message ( STATUS "Using 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 )
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 )
add_definitions ( /bigobj )
@ -119,14 +72,19 @@ else(CLANG)
# 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++ )
set ( CLANG_STDLIB libstdc++ )
else ( )
set ( CLANG_STDLIB libc++ )
set ( CLANG_STDLIB 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
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
endif ( )
set ( CMAKE_CXX_FLAGS "-std=c++11 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-unused-variable -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -stdlib=${CLANG_STDLIB} -Wall -pedantic -Wno-unused-variable -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE" )
set ( CMAKE_CXX_FLAGS_DEBUG "-g" )
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g" )
# T u r n o n p o p c n t i n s t r u c t i o n i f desired ( yes by default )
if ( USE_POPCNT )
@ -265,20 +223,6 @@ if (ADDITIONAL_LINK_DIRS)
link_directories ( ${ ADDITIONAL_LINK_DIRS } )
endif ( ADDITIONAL_LINK_DIRS )
if ( CUDD_INCLUDE_DIRS )
include_directories ( ${ CUDD_INCLUDE_DIRS } )
endif ( CUDD_INCLUDE_DIRS )
if ( CUDD_LIBRARY_DIRS )
link_directories ( ${ CUDD_LIBRARY_DIRS } )
endif ( CUDD_LIBRARY_DIRS )
if ( LTL2DSTAR_INCLUDE_DIRS )
include_directories ( ${ LTL2DSTAR_INCLUDE_DIRS } )
endif ( LTL2DSTAR_INCLUDE_DIRS )
if ( LTL2DSTAR_LIBRARY_DIRS )
link_directories ( ${ LTL2DSTAR_LIBRARY_DIRS } )
endif ( LTL2DSTAR_LIBRARY_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 } )
@ -290,6 +234,61 @@ target_link_libraries(storm ${Boost_LIBRARIES})
target_link_libraries ( storm-functional-tests ${ Boost_LIBRARIES } )
target_link_libraries ( storm-performance-tests ${ Boost_LIBRARIES } )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # C U D D
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_subdirectory ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/cudd-2.5.0" )
include_directories ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/cudd-2.5.0/src/obj" )
target_link_libraries ( storm cudd )
target_link_libraries ( storm-functional-tests cudd )
target_link_libraries ( storm-performance-tests cudd )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # L T L 2 D S T A R
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_subdirectory ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/ltl2dstar-0.5.1" )
include_directories ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/ltl2dstar-0.5.1/src" )
target_link_libraries ( storm ltl2dstar )
target_link_libraries ( storm-functional-tests ltl2dstar )
target_link_libraries ( storm-performance-tests ltl2dstar )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # G o o g l e T e s t g t e s t
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_subdirectory ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.7.0" )
include_directories ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/gtest-1.7.0/include" )
enable_testing ( )
target_link_libraries ( storm-functional-tests gtest )
target_link_libraries ( storm-performance-tests gtest )
add_test ( NAME storm-functional-tests COMMAND storm-functional-tests )
add_test ( NAME storm-performance-tests COMMAND storm-performance-tests )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# #
# # L o g 4 C P l u s
# #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
set ( BUILD_SHARED_LIBS NO )
add_subdirectory ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/log4cplus-1.1.2-rc2" )
include_directories ( "${PROJECT_SOURCE_DIR}/resources/3rdparty/log4cplus-1.1.2-rc2/include" )
target_link_libraries ( storm log4cplus )
target_link_libraries ( storm-functional-tests log4cplus )
target_link_libraries ( storm-performance-tests log4cplus )
if ( UNIX AND NOT APPLE )
target_link_libraries ( storm rt )
if ( STORM_USE_COTIRE )
target_link_libraries ( storm_unity rt )
endif ( STORM_USE_COTIRE )
target_link_libraries ( storm-functional-tests rt )
target_link_libraries ( storm-performance-tests rt )
endif ( UNIX AND NOT APPLE )
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" )
@ -304,14 +303,6 @@ if (USE_INTELTBB)
target_link_libraries ( storm-performance-tests tbb tbbmalloc )
endif ( USE_INTELTBB )
if ( APPLE )
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
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
endif ( APPLE )
# 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}" )
@ -344,67 +335,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 )
if ( GTEST_INCLUDE_DIR )
# F o r m a k e - b a s e d b u i l d s , d e f i n e s m a k e t a r g e t n a m e d t e s t .
# F o r V i s u a l S t u d i o b u i l d s , d e f i n e s V i s u a l S t u d i o p r o j e c t n a m e d R U N _ T E S T S .
enable_testing ( )
include_directories ( ${ GTEST_INCLUDE_DIR } )
target_link_libraries ( storm-functional-tests ${ GTEST_LIBRARIES } )
target_link_libraries ( storm-performance-tests ${ GTEST_LIBRARIES } )
add_test ( NAME storm-functional-tests COMMAND storm-functional-tests )
add_test ( NAME storm-performance-tests COMMAND storm-performance-tests )
if ( MSVC ) # V S 2 0 1 2 d o e s n ' t s u p p o r t c o r r e c t l y t h e t u p l e s y e t
add_definitions ( /D _VARIADIC_MAX=10 )
endif ( )
endif ( GTEST_INCLUDE_DIR )
if ( LOG4CPLUS_INCLUDE_DIR )
include_directories ( ${ LOG4CPLUS_INCLUDE_DIR } )
target_link_libraries ( storm ${ LOG4CPLUS_LIBRARIES } )
if ( STORM_USE_COTIRE )
target_link_libraries ( storm_unity ${ LOG4CPLUS_LIBRARIES } )
endif ( STORM_USE_COTIRE )
target_link_libraries ( storm-functional-tests ${ LOG4CPLUS_LIBRARIES } )
target_link_libraries ( storm-performance-tests ${ LOG4CPLUS_LIBRARIES } )
# O n L i n u x , w e h a v e t o l i n k a g a i n s t l i b r t
if ( UNIX AND NOT APPLE )
target_link_libraries ( storm rt )
if ( STORM_USE_COTIRE )
target_link_libraries ( storm_unity rt )
endif ( STORM_USE_COTIRE )
target_link_libraries ( storm-functional-tests rt )
target_link_libraries ( storm-performance-tests rt )
endif ( UNIX AND NOT APPLE )
endif ( LOG4CPLUS_INCLUDE_DIR )
if ( CUDD_LIBRARY_DIRS )
if ( MSVC )
set ( cuddMsvcLibs "optimized" "${PROJECT_SOURCE_DIR}/resources/3rdparty/cudd-2.5.0/CUDD_Win32/x64/Release/CUDD_Win32.lib" "debug" "${PROJECT_SOURCE_DIR}/resources/3rdparty/cudd-2.5.0/CUDD_Win32/x64/Debug/CUDD_Win32.lib" )
target_link_libraries ( storm ${ cuddMsvcLibs } )
target_link_libraries ( storm-functional-tests ${ cuddMsvcLibs } )
target_link_libraries ( storm-performance-tests ${ cuddMsvcLibs } )
else ( )
target_link_libraries ( storm "-lobj -lcudd -lmtr -lst -lutil -lepd" )
target_link_libraries ( storm-functional-tests "-lobj -lcudd -lmtr -lst -lutil -lepd" )
target_link_libraries ( storm-performance-tests "-lobj -lcudd -lmtr -lst -lutil -lepd" )
endif ( )
endif ( CUDD_LIBRARY_DIRS )
if ( LTL2DSTAR_LIBRARY_DIRS )
if ( MSVC )
set ( ltl2dstarMsvcLibs "optimized" "${PROJECT_SOURCE_DIR}/resources/3rdparty/ltl2dstar-0.5.1/win32/Ltl2dStar/x64/Release/Ltl2dStar.lib" "debug" "${PROJECT_SOURCE_DIR}/resources/3rdparty/ltl2dstar-0.5.1/win32/Ltl2dStar/x64/Debug/Ltl2dStar.lib" )
target_link_libraries ( storm ${ ltl2dstarMsvcLibs } )
target_link_libraries ( storm-functional-tests ${ ltl2dstarMsvcLibs } )
target_link_libraries ( storm-performance-tests ${ ltl2dstarMsvcLibs } )
else ( )
target_link_libraries ( storm "-lltl2dstar" )
target_link_libraries ( storm-functional-tests "-lltl2dstar" )
target_link_libraries ( storm-performance-tests "-lltl2dstar" )
endif ( )
endif ( LTL2DSTAR_LIBRARY_DIRS )
if ( THREADS_FOUND )
include_directories ( ${ THREADS_INCLUDE_DIRS } )
target_link_libraries ( storm ${ CMAKE_THREAD_LIBS_INIT } )