@@ -5,10 +5,12 @@ project(libjsonexpr LANGUAGES CXX)
5
5
include (FetchContent )
6
6
set (FETCHCONTENT_QUIET FALSE )
7
7
8
+ set (LIBJSONEXPR_EXPORT_TARGETS "" )
8
9
if (NOT JSONEXPR_USE_SYSTEM_JSON )
9
10
FetchContent_Declare (json
10
11
URL https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.zip )
11
12
FetchContent_MakeAvailable (json )
13
+ list (APPEND LIBJSONEXPR_EXPORT_TARGETS nlohmann_json )
12
14
else ()
13
15
find_package (nlohmann_json REQUIRED )
14
16
endif ()
@@ -19,6 +21,7 @@ if (NOT JSONEXPR_USE_STD_EXPECTED AND NOT JSONEXPR_USE_SYSTEM_EXPECTED)
19
21
FetchContent_Declare (expected
20
22
URL https://github.com/TartanLlama/expected/archive/refs/tags/v1.1.0.zip )
21
23
FetchContent_MakeAvailable (expected )
24
+ list (APPEND LIBJSONEXPR_EXPORT_TARGETS expected )
22
25
else ()
23
26
find_package (tl-expected REQUIRED )
24
27
endif ()
@@ -82,3 +85,42 @@ if (NOT JSONEXPR_USE_STD_EXPECTED)
82
85
endif ()
83
86
84
87
add_library (jsonexpr::libjsonexpr ALIAS libjsonexpr )
88
+ set_target_properties (libjsonexpr PROPERTIES EXPORT_NAME jsonexpr::libjsonexpr )
89
+
90
+ list (APPEND LIBJSONEXPR_EXPORT_TARGETS libjsonexpr )
91
+
92
+ set (LIBJSONEXPR_INCLUDES
93
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/ast.hpp
94
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/base.hpp
95
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/eval.hpp
96
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/expected.hpp
97
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/functions.hpp
98
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/jsonexpr.hpp
99
+ ${PROJECT_SOURCE_DIR} /include/jsonexpr/parse.hpp
100
+ ${PROJECT_BINARY_DIR} /jsonexpr/config.hpp )
101
+
102
+ install (
103
+ FILES ${LIBJSONEXPR_INCLUDES}
104
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /include/jsonexpr )
105
+
106
+ # Setup CMake config file
107
+ install (TARGETS ${LIBJSONEXPR_EXPORT_TARGETS} EXPORT libjsonexpr-targets )
108
+
109
+ install (EXPORT libjsonexpr-targets
110
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /lib/cmake/jsonexpr
111
+ NAMESPACE jsonexpr::
112
+ COMPONENT Development )
113
+
114
+ export (EXPORT libjsonexpr-targets )
115
+
116
+ include (CMakePackageConfigHelpers )
117
+ configure_package_config_file (
118
+ "${PROJECT_SOURCE_DIR} /cmake/jsonexpr-config.cmake.in"
119
+ "${PROJECT_BINARY_DIR} /jsonexpr-config.cmake"
120
+ INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX} /lib
121
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
122
+ NO_SET_AND_CHECK_MACRO )
123
+
124
+ install (FILES
125
+ "${PROJECT_BINARY_DIR} /jsonexpr-config.cmake"
126
+ DESTINATION ${CMAKE_INSTALL_PREFIX} /lib/cmake/jsonexpr COMPONENT Development )
0 commit comments