@@ -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