Skip to content

Commit ea6bd3f

Browse files
Added cmake "packaging" to jsoncpp project
1 parent 9c17e61 commit ea6bd3f

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,45 @@ ADD_SUBDIRECTORY( src )
128128

129129
#install the includes
130130
ADD_SUBDIRECTORY( include )
131+
132+
133+
###############
134+
135+
### Install ###
136+
# * https://github.com/forexample/package-example
137+
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
138+
139+
set(config_install_dir "lib/cmake/${PROJECT_NAME}")
140+
set(include_install_dir "include")
141+
142+
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
143+
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
144+
set(targets_export_name "${PROJECT_NAME}Targets")
145+
set(namespace "${PROJECT_NAME}::")
146+
147+
include(CMakePackageConfigHelpers)
148+
write_basic_package_version_file(
149+
"${version_config}" COMPATIBILITY SameMajorVersion
150+
)
151+
152+
# Note: use 'targets_export_name'
153+
configure_file("cmake/Config.cmake.in" "${project_config}" @ONLY)
154+
155+
install(
156+
TARGETS spdlog
157+
EXPORT "${targets_export_name}"
158+
INCLUDES DESTINATION "${include_install_dir}"
159+
)
160+
161+
install(DIRECTORY "include/spdlog" DESTINATION "${include_install_dir}")
162+
163+
install(
164+
FILES "${project_config}" "${version_config}"
165+
DESTINATION "${config_install_dir}"
166+
)
167+
168+
install(
169+
EXPORT "${targets_export_name}"
170+
NAMESPACE "${namespace}"
171+
DESTINATION "${config_install_dir}"
172+
)

cmake/Config.cmake.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake")

0 commit comments

Comments
 (0)