Browse Source

Changed the target directory for the downloaded Eigen headers so that they are now located within the build folder (hopefully avoiding conflicts with multiple build-folders).

Made the include path for the Eigen headers more unique, so we no longer use the headers at /urs/include/ instead.
tempestpy_adaptions
Tim Quatmann 5 years ago
parent
commit
74f7cd17ea
  1. 1
      CHANGELOG.md
  2. 13
      resources/3rdparty/CMakeLists.txt
  3. 7
      src/storm/utility/eigen.h

1
CHANGELOG.md

@ -11,6 +11,7 @@ Version 1.5.x
- Scheduler export: Properly handle models with end components. Added export in .json format. - Scheduler export: Properly handle models with end components. Added export in .json format.
- CMake: Search for Gurobi prefers new versions - CMake: Search for Gurobi prefers new versions
- CMake: We no longer ship xerces-c. If xerces-c is not found on the system, storm-gspn will not be able to parse xml-based GSPN formats - CMake: We no longer ship xerces-c. If xerces-c is not found on the system, storm-gspn will not be able to parse xml-based GSPN formats
- `Eigen' library: The source code of Eigen is no longer included but downloaded from an external repository instead. Incremented Eigen version to 3.3.7 which fixes a compilation issue with recent XCode Versions.
- Tests: Enabled tests for permissive schedulers - Tests: Enabled tests for permissive schedulers
- `storm-counterexamples`: fix when computing multiple counterexamples in debug mode - `storm-counterexamples`: fix when computing multiple counterexamples in debug mode
- `storm-dft`: Renamed setting `--show-dft-stats` to `dft-statistics` and added approximation information to statistics. - `storm-dft`: Renamed setting `--show-dft-stats` to `dft-statistics` and added approximation information to statistics.

13
resources/3rdparty/CMakeLists.txt

@ -3,6 +3,7 @@ add_custom_target(test-resources)
set(STORM_3RDPARTY_SOURCE_DIR ${PROJECT_SOURCE_DIR}/resources/3rdparty) set(STORM_3RDPARTY_SOURCE_DIR ${PROJECT_SOURCE_DIR}/resources/3rdparty)
set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty) set(STORM_3RDPARTY_BINARY_DIR ${PROJECT_BINARY_DIR}/resources/3rdparty)
set(STORM_3RDPARTY_INCLUDE_DIR ${PROJECT_BINARY_DIR}/include/resources/3rdparty)
############################################################# #############################################################
@ -45,12 +46,14 @@ list(APPEND STORM_DEP_TARGETS gmm)
############################################################# #############################################################
# Checkout Eigen version 3.3.7 # Checkout Eigen version 3.3.7
message (STATUS "Storm - Including Eigen 3.3.7.")
ExternalProject_Add( ExternalProject_Add(
eigen_src eigen_src
GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git
GIT_SHALLOW 1 GIT_SHALLOW 1
GIT_TAG 21ae2afd4edaa1b69782c67a54182d34efe43f9c GIT_TAG 21ae2afd4edaa1b69782c67a54182d34efe43f9c
SOURCE_DIR ${STORM_3RDPARTY_SOURCE_DIR}/eigen
SOURCE_DIR ${STORM_3RDPARTY_INCLUDE_DIR}/StormEigen
PREFIX ${STORM_3RDPARTY_BINARY_DIR}/StormEigen-3.3.7
PATCH_COMMAND git apply ${STORM_3RDPARTY_SOURCE_DIR}/patches/eigen.patch PATCH_COMMAND git apply ${STORM_3RDPARTY_SOURCE_DIR}/patches/eigen.patch
UPDATE_COMMAND "" UPDATE_COMMAND ""
CONFIGURE_COMMAND "" CONFIGURE_COMMAND ""
@ -58,9 +61,9 @@ ExternalProject_Add(
INSTALL_COMMAND "" INSTALL_COMMAND ""
LOG_INSTALL ON LOG_INSTALL ON
) )
add_imported_library_interface(Eigen "${STORM_3RDPARTY_SOURCE_DIR}/eigen")
list(APPEND STORM_DEP_TARGETS Eigen)
add_dependencies(Eigen eigen_src)
add_imported_library_interface(StormEigen "${STORM_3RDPARTY_INCLUDE_DIR}/StormEigen")
list(APPEND STORM_DEP_TARGETS StormEigen)
add_dependencies(StormEigen eigen_src)
@ -121,7 +124,7 @@ set(SPARSEPP_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/sparsepp/spar
file(GLOB SPARSEPP_HEADERS "${SPARSEPP_INCLUDE_DIR}/*.h") file(GLOB SPARSEPP_HEADERS "${SPARSEPP_INCLUDE_DIR}/*.h")
# Add the sparsepp headers to the headers that are copied to the include directory in the build directory. # Add the sparsepp headers to the headers that are copied to the include directory in the build directory.
set(SPARSEPP_BINDIR_DIR ${CMAKE_BINARY_DIR}/include/resources/3rdparty/sparsepp)
set(SPARSEPP_BINDIR_DIR ${STORM_3RDPARTY_INCLUDE_DIR}/sparsepp)
include_directories("${SPARSEPP_BINDIR_DIR}") include_directories("${SPARSEPP_BINDIR_DIR}")
foreach(HEADER ${SPARSEPP_HEADERS}) foreach(HEADER ${SPARSEPP_HEADERS})
string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/src/?" "" RELATIVE_HEADER_PATH ${HEADER}) string(REGEX REPLACE "${PROJECT_SOURCE_DIR}/src/?" "" RELATIVE_HEADER_PATH ${HEADER})

7
src/storm/utility/eigen.h

@ -14,9 +14,10 @@
#endif #endif
// Finally include the parts of Eigen we need. // Finally include the parts of Eigen we need.
#include <Eigen/Dense>
#include <Eigen/Sparse>
#include <unsupported/Eigen/IterativeSolvers>
// Make sure to include our patched version of Eigen (and not a pre-installed one e.g. located at /usr/include)
#include <resources/3rdparty/StormEigen/Eigen/Dense>
#include <resources/3rdparty/StormEigen/Eigen/Sparse>
#include <resources/3rdparty/StormEigen/unsupported/Eigen/IterativeSolvers>
#if defined(__clang__) #if defined(__clang__)
#pragma clang diagnostic pop #pragma clang diagnostic pop

Loading…
Cancel
Save