From e718acffba9bd6fa47efe144551bfa978824bb3c Mon Sep 17 00:00:00 2001 From: sjunges Date: Sun, 13 Aug 2017 17:18:08 +0200 Subject: [PATCH] move cli stuff from storm lib to an own small lib --- src/CMakeLists.txt | 1 + src/storm-cli-utilities/CMakeLists.txt | 40 +++++++++++++++++++ .../cli => storm-cli-utilities}/cli.cpp | 6 +-- src/{storm/cli => storm-cli-utilities}/cli.h | 0 src/storm-dft-cli/CMakeLists.txt | 2 +- src/storm-dft-cli/storm-dyftee.cpp | 4 +- .../modelchecker/dft/DFTModelChecker.cpp | 2 + src/storm-gspn-cli/CMakeLists.txt | 2 +- src/storm-gspn-cli/storm-gspn.cpp | 4 +- src/storm-pgcl-cli/CMakeLists.txt | 2 +- src/storm-pgcl-cli/storm-pgcl.cpp | 2 +- src/storm/CMakeLists.txt | 2 +- src/storm/storm.cpp | 2 +- 13 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 src/storm-cli-utilities/CMakeLists.txt rename src/{storm/cli => storm-cli-utilities}/cli.cpp (99%) rename src/{storm/cli => storm-cli-utilities}/cli.h (100%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 38b884cf7..acf819119 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,6 +5,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) add_custom_target(binaries) add_subdirectory(storm) +add_subdirectory(storm-cli-utilities) add_subdirectory(storm-pgcl) add_subdirectory(storm-pgcl-cli) add_subdirectory(storm-gspn) diff --git a/src/storm-cli-utilities/CMakeLists.txt b/src/storm-cli-utilities/CMakeLists.txt new file mode 100644 index 000000000..64c2848c7 --- /dev/null +++ b/src/storm-cli-utilities/CMakeLists.txt @@ -0,0 +1,40 @@ +file(GLOB_RECURSE ALL_FILES ${PROJECT_SOURCE_DIR}/src/storm-cli-utilities/*.h ${PROJECT_SOURCE_DIR}/src/storm-cli-utilities/*.cpp) + +register_source_groups_from_filestructure("${ALL_FILES}" storm-cli-utilities) + + + +file(GLOB_RECURSE STORM_CLI_UTIL_SOURCES ${PROJECT_SOURCE_DIR}/src/storm-cli-utilities/*.cpp) +file(GLOB_RECURSE STORM_CLI_UTIL_HEADERS ${PROJECT_SOURCE_DIR}/src/storm-cli-utilities/*.h) + + +# Create storm-pars. +add_library(storm-cli-utilities SHARED ${STORM_CLI_UTIL_SOURCES} ${STORM_CLI_UTIL_HEADERS}) + +# Remove define symbol for shared libstorm. +set_target_properties(storm-cli-utilities PROPERTIES DEFINE_SYMBOL "") +#add_dependencies(storm resources) +list(APPEND STORM_TARGETS storm-cli-utilities) +set(STORM_TARGETS ${STORM_TARGETS} PARENT_SCOPE) + +target_link_libraries(storm-cli-utilities PUBLIC storm) + +# Install storm headers to include directory. +foreach(HEADER ${STORM_CLI_UTIL_HEADERS}) + string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/src/?" "" RELATIVE_HEADER_PATH ${HEADER}) + string(REGEX MATCH "(.*)[/\\]" RELATIVE_DIRECTORY ${RELATIVE_HEADER_PATH}) + string(REGEX REPLACE "${RELATIVE_DIRECTORY}/?" "" HEADER_FILENAME ${RELATIVE_HEADER_PATH}) + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/include/${RELATIVE_DIRECTORY}${HEADER_FILENAME} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include/${RELATIVE_DIRECTORY} + COMMAND ${CMAKE_COMMAND} -E copy ${HEADER} ${CMAKE_BINARY_DIR}/include/${RELATIVE_DIRECTORY}${HEADER_FILENAME} + DEPENDS ${HEADER} + ) + list(APPEND STORM_CLI_UTIL_OUTPUT_HEADERS "${CMAKE_BINARY_DIR}/include/${RELATIVE_DIRECTORY}${HEADER_FILENAME}") +endforeach() +add_custom_target(copy_storm_cli_util_headers DEPENDS ${STORM_CLI_UTIL_OUTPUT_HEADERS} ${STORM_CLI_UTIL_HEADERS}) +add_dependencies(storm-cli-utilities copy_storm_pars_headers) + +# installation +install(TARGETS storm-cli-utilities RUNTIME DESTINATION bin LIBRARY DESTINATION lib OPTIONAL) + diff --git a/src/storm/cli/cli.cpp b/src/storm-cli-utilities/cli.cpp similarity index 99% rename from src/storm/cli/cli.cpp rename to src/storm-cli-utilities/cli.cpp index 42a76a7b2..66d83ece7 100644 --- a/src/storm/cli/cli.cpp +++ b/src/storm-cli-utilities/cli.cpp @@ -1,4 +1,4 @@ -#include "storm/cli/cli.h" +#include "cli.h" #include "storm/storage/SymbolicModelDescription.h" @@ -65,12 +65,12 @@ namespace storm { storm::utility::setUp(); storm::cli::printHeader("Storm", argc, argv); storm::settings::initializeAll("Storm", "storm"); - + storm::utility::Stopwatch totalTimer(true); if (!storm::cli::parseOptions(argc, argv)) { return -1; } - + processOptions(); totalTimer.stop(); diff --git a/src/storm/cli/cli.h b/src/storm-cli-utilities/cli.h similarity index 100% rename from src/storm/cli/cli.h rename to src/storm-cli-utilities/cli.h diff --git a/src/storm-dft-cli/CMakeLists.txt b/src/storm-dft-cli/CMakeLists.txt index 0d104405e..b8cdbbd27 100644 --- a/src/storm-dft-cli/CMakeLists.txt +++ b/src/storm-dft-cli/CMakeLists.txt @@ -1,6 +1,6 @@ # Create storm-dft. add_executable(storm-dft-cli ${PROJECT_SOURCE_DIR}/src/storm-dft-cli/storm-dyftee.cpp) -target_link_libraries(storm-dft-cli storm-dft) # Adding headers for xcode +target_link_libraries(storm-dft-cli storm-dft storm-cli-utilities) # Adding headers for xcode set_target_properties(storm-dft-cli PROPERTIES OUTPUT_NAME "storm-dft") add_dependencies(binaries storm-dft-cli) diff --git a/src/storm-dft-cli/storm-dyftee.cpp b/src/storm-dft-cli/storm-dyftee.cpp index b2dc40006..8eef6f0b5 100644 --- a/src/storm-dft-cli/storm-dyftee.cpp +++ b/src/storm-dft-cli/storm-dyftee.cpp @@ -1,12 +1,12 @@ #include "storm/logic/Formula.h" #include "storm/utility/initialize.h" #include "storm/api/storm.h" -#include "storm/cli/cli.h" +#include "storm-cli-utilities/cli.h" #include "storm/exceptions/BaseException.h" #include "storm/logic/Formula.h" -#include "storm/settings/modules/GeneralSettings.h" +#include "storm/settings/modules/IOSettings.h" #include "storm/settings/modules/CoreSettings.h" #include "storm/settings/modules/DebugSettings.h" #include "storm/settings/modules/GmmxxEquationSolverSettings.h" diff --git a/src/storm-dft/modelchecker/dft/DFTModelChecker.cpp b/src/storm-dft/modelchecker/dft/DFTModelChecker.cpp index 8721efd7c..d6b7e9138 100644 --- a/src/storm-dft/modelchecker/dft/DFTModelChecker.cpp +++ b/src/storm-dft/modelchecker/dft/DFTModelChecker.cpp @@ -1,5 +1,6 @@ #include "DFTModelChecker.h" +#include "storm/settings/modules/IOSettings.h" #include "storm/builder/ParallelCompositionBuilder.h" #include "storm/utility/bitoperations.h" #include "storm/utility/DirectEncodingExporter.h" @@ -357,6 +358,7 @@ namespace storm { explorationTimer.stop(); // Export the model if required + // TODO move this outside of the model checker? if (storm::settings::getModule().isExportExplicitSet()) { std::ofstream stream; storm::utility::openFile(storm::settings::getModule().getExportExplicitFilename(), stream); diff --git a/src/storm-gspn-cli/CMakeLists.txt b/src/storm-gspn-cli/CMakeLists.txt index 72e51a6da..39d656a4c 100644 --- a/src/storm-gspn-cli/CMakeLists.txt +++ b/src/storm-gspn-cli/CMakeLists.txt @@ -1,5 +1,5 @@ add_executable(storm-gspn-cli ${PROJECT_SOURCE_DIR}/src/storm-gspn-cli/storm-gspn.cpp) -target_link_libraries(storm-gspn-cli storm-gspn) # Adding headers for xcode +target_link_libraries(storm-gspn-cli storm-gspn storm-cli-utilities) # Adding headers for xcode set_target_properties(storm-gspn-cli PROPERTIES OUTPUT_NAME "storm-gspn") add_dependencies(binaries storm-gspn-cli) diff --git a/src/storm-gspn-cli/storm-gspn.cpp b/src/storm-gspn-cli/storm-gspn.cpp index 9a77a56be..fc493391a 100644 --- a/src/storm-gspn-cli/storm-gspn.cpp +++ b/src/storm-gspn-cli/storm-gspn.cpp @@ -12,7 +12,7 @@ #include "storm/utility/initialize.h" #include "api/storm.h" -#include "storm/cli/cli.h" +#include "storm-cli-utilities/cli.h" #include "storm/parser/FormulaParser.h" @@ -27,7 +27,7 @@ #include "storm/exceptions/FileIoException.h" -#include "storm/settings/modules/GeneralSettings.h" +#include "storm/settings/modules/IOSettings.h" #include "storm/settings/modules/GSPNSettings.h" #include "storm/settings/modules/GSPNExportSettings.h" #include "storm/settings/modules/CoreSettings.h" diff --git a/src/storm-pgcl-cli/CMakeLists.txt b/src/storm-pgcl-cli/CMakeLists.txt index 0f051a1b4..4778d1e93 100644 --- a/src/storm-pgcl-cli/CMakeLists.txt +++ b/src/storm-pgcl-cli/CMakeLists.txt @@ -1,5 +1,5 @@ add_executable(storm-pgcl-cli ${PROJECT_SOURCE_DIR}/src/storm-pgcl-cli/storm-pgcl.cpp) -target_link_libraries(storm-pgcl-cli storm-pgcl) +target_link_libraries(storm-pgcl-cli storm-pgcl storm-cli-utilities) set_target_properties(storm-pgcl-cli PROPERTIES OUTPUT_NAME "storm-pgcl") # installation diff --git a/src/storm-pgcl-cli/storm-pgcl.cpp b/src/storm-pgcl-cli/storm-pgcl.cpp index 423afb087..ce579938f 100644 --- a/src/storm-pgcl-cli/storm-pgcl.cpp +++ b/src/storm-pgcl-cli/storm-pgcl.cpp @@ -2,7 +2,7 @@ #include "logic/Formula.h" #include "utility/initialize.h" -#include "storm/cli/cli.h" +#include "storm-cli-utilities/cli.h" #include "storm/exceptions/BaseException.h" #include "storm/utility/macros.h" #include diff --git a/src/storm/CMakeLists.txt b/src/storm/CMakeLists.txt index 193a6d4bb..0ed4b0d1c 100644 --- a/src/storm/CMakeLists.txt +++ b/src/storm/CMakeLists.txt @@ -49,7 +49,7 @@ set(STORM_TARGETS ${STORM_TARGETS} PARENT_SCOPE) # Create storm. add_executable(storm-main ${STORM_MAIN_SOURCES} ${STORM_MAIN_HEADERS}) -target_link_libraries(storm-main PUBLIC storm) +target_link_libraries(storm-main PUBLIC storm storm-cli-utilities) set_target_properties(storm-main PROPERTIES OUTPUT_NAME "storm") # Install storm headers to include directory. diff --git a/src/storm/storm.cpp b/src/storm/storm.cpp index 8e915d6e7..3cba6dd3d 100644 --- a/src/storm/storm.cpp +++ b/src/storm/storm.cpp @@ -1,7 +1,7 @@ #include "storm/utility/macros.h" #include "storm/exceptions/BaseException.h" -#include "storm/cli/cli.h" +#include "storm-cli-utilities/cli.h" /*! * Main entry point of the executable storm.