-
Notifications
You must be signed in to change notification settings - Fork 7
/
export.cmake
95 lines (80 loc) · 3.41 KB
/
export.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# the following is inspired by https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/How-to-create-a-ProjectConfig.cmake-file
# some of the parts still need adjustment
# Add all targets to the build-tree export set
export(TARGETS ${HYPRO_TARGETS} FILE "${PROJECT_BINARY_DIR}/hyproTargets.cmake")
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
if (EXPORT_TO_CMAKE)
message(STATUS "Exporting to cmake")
set(CMAKE_EXPORT_PACKAGE_REGISTRY True)
export(PACKAGE ${PROJECT_NAME})
else ()
message(STATUS "Not exporting to cmake")
endif ()
if (STATICLIB_SWITCH)
if (HYPRO_MATLAB_BINDINGS)
export_target(DEPENDENT_TARGETS Matlab_STATIC)
endif ()
else ()
if (HYPRO_MATLAB_BINDINGS)
#export_target(DEPENDENT_TARGETS Matlab_SHARED)
endif ()
endif ()
export_target(DEPENDENT_TARGETS GLPK_STATIC)
export_target(DEPENDENT_TARGETS ANTLR4_STATIC)
export_target(DEPENDENT_TARGETS ANTLR4_SHARED)
if (HYPRO_USE_SERIALIZATION)
export_target(DEPENDENT_TARGETS cereal::cereal)
endif ()
if (HYPRO_USE_MIMALLOC)
export_target(DEPENDENT_TARGETS mimalloc_SHARED)
export_target(DEPENDENT_TARGETS mimalloc_STATIC)
endif ()
if (HYPRO_USE_CLP)
export_target(DEPENDENT_TARGETS clp_STATIC)
export_target(DEPENDENT_TARGETS coinUtils_STATIC)
endif ()
if (HYPRO_USE_SMTRAT)
export_target(DEPENDENT_TARGETS smtrat-solver-shared)
export_target(DEPENDENT_TARGETS smtrat-module-LRAModule-shared)
export_target(DEPENDENT_TARGETS smtrat-solver-static)
export_target(DEPENDENT_TARGETS smtrat-module-LRAModule-static)
endif ()
if (HYPRO_ENABLE_SPACEEX_OUTPUT)
export_target(DEPENDENT_TARGETS HYPRO_TINYXML_STATIC)
endif ()
if (HYPRO_USE_Z3)
export_target(DEPENDENT_TARGETS z3_SHARED)
endif ()
if (HYPRO_GSL_INTEGRATION)
export_target(DEPENDENT_TARGETS GSL_SHARED)
endif ()
if (HYPRO_HAS_GRAPHVIZ)
export_target(DEPENDENT_TARGETS CGRAPH_SHARED)
export_target(DEPENDENT_TARGETS GVC_SHARED)
endif ()
include(CMakePackageConfigHelpers)
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/hyproConfigVersion.cmake
VERSION ${hypro_VERSION}
COMPATIBILITY SameMajorVersion)
set(TARGET ${PROJECT_NAME})
# Create the hyproConfig.cmake and hyproConfigVersion files
# ... for the build tree
set(CONF_INCLUDES ${INCLUDES})
set(CONF_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/include")
configure_package_config_file(cmake/hyproConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/hyproConfig.cmake
INSTALL_DESTINATION ${PROJECT_BINARY_DIR}
PATH_VARS PROJECT_BINARY_DIR #SYSCONFIG_INSTALL_DIR
)
file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_DIR}" "${INCLUDE_INSTALL_DIR}")
# ... for the install tree
set(CONF_INCLUDE_DIRS "\${hypro_CMAKE_DIR}/${REL_INCLUDE_DIR}")
configure_package_config_file(cmake/hyproConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/installedConfig/hyproConfig.cmake
INSTALL_DESTINATION ${CMAKE_INSTALL_DIR}
PATH_VARS INCLUDE_INSTALL_DIR #SYSCONFIG_INSTALL_DIR
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/installedConfig/hyproConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/hyproConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_DIR})
install(EXPORT ${PROJECT_NAME} FILE "${PROJECT_NAME}Targets.cmake" DESTINATION ${CMAKE_INSTALL_DIR})
# Install the export set for use with the install-tree
#install(EXPORT ${HYPRO_TARGETS} DESTINATION ${PROJECT_BINARY_DIR}) # COMPONENT dev)