@@ -5,10 +5,12 @@ project(libjsonexpr LANGUAGES CXX)
55include (FetchContent)
66set (FETCHCONTENT_QUIET FALSE )
77
8+ set (LIBJSONEXPR_EXPORT_TARGETS "" )
89if (NOT JSONEXPR_USE_SYSTEM_JSON)
910 FetchContent_Declare(json
1011 URL https://github.com/nlohmann/json/archive/refs/tags/v3.11.3.zip)
1112 FetchContent_MakeAvailable(json)
13+ list (APPEND LIBJSONEXPR_EXPORT_TARGETS nlohmann_json)
1214else ()
1315 find_package (nlohmann_json REQUIRED)
1416endif ()
@@ -19,6 +21,7 @@ if (NOT JSONEXPR_USE_STD_EXPECTED AND NOT JSONEXPR_USE_SYSTEM_EXPECTED)
1921 FetchContent_Declare(expected
2022 URL https://github.com/TartanLlama/expected/archive/refs/tags/v1.1.0.zip)
2123 FetchContent_MakeAvailable(expected)
24+ list (APPEND LIBJSONEXPR_EXPORT_TARGETS expected)
2225else ()
2326 find_package (tl-expected REQUIRED)
2427endif ()
@@ -82,3 +85,42 @@ if (NOT JSONEXPR_USE_STD_EXPECTED)
8285endif ()
8386
8487add_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