Skip to content

Commit 67650c8

Browse files
committed
Add missing cmake install
1 parent cb6c33c commit 67650c8

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
build*/
33
.sublime-tests/
44
fuzzing/output
5+
install/

libjsonexpr/CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@ project(libjsonexpr LANGUAGES CXX)
55
include(FetchContent)
66
set(FETCHCONTENT_QUIET FALSE)
77

8+
set(LIBJSONEXPR_EXPORT_TARGETS "")
89
if (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)
1214
else()
1315
find_package(nlohmann_json REQUIRED)
1416
endif()
@@ -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)
2225
else()
2326
find_package(tl-expected REQUIRED)
2427
endif()
@@ -82,3 +85,42 @@ if (NOT JSONEXPR_USE_STD_EXPECTED)
8285
endif()
8386

8487
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)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@PACKAGE_INIT@
2+
3+
file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/jsonexpr*-targets.cmake")
4+
foreach(f ${CONFIG_FILES})
5+
include(${f})
6+
7+
string(REGEX MATCH "${CMAKE_CURRENT_LIST_DIR}/(jsonexpr.*)-targets.cmake" match ${f})
8+
set(target ${CMAKE_MATCH_1})
9+
10+
if (NOT TARGET jsonexpr::${target})
11+
add_library(jsonexpr::${target} ALIAS ${target})
12+
endif()
13+
endforeach()

0 commit comments

Comments
 (0)