Skip to content

Commit 5d2d87a

Browse files
Added basic cmake packaging
1 parent ea6bd3f commit 5d2d87a

2 files changed

Lines changed: 47 additions & 43 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# vim: et ts=4 sts=4 sw=4 tw=0
22

3-
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
4-
PROJECT(jsoncpp)
3+
CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
4+
PROJECT(jsoncpp VERSION 0.10.5)
55
ENABLE_TESTING()
66

77
OPTION(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" ON)
@@ -129,44 +129,3 @@ ADD_SUBDIRECTORY( src )
129129
#install the includes
130130
ADD_SUBDIRECTORY( include )
131131

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

src/lib_json/CMakeLists.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,48 @@ IF(BUILD_STATIC_LIBS)
7878
ENDIF()
7979

8080
ENDIF()
81+
82+
83+
###############
84+
85+
### Install ###
86+
# * https://github.com/forexample/package-example
87+
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
88+
89+
set(config_install_dir "lib/cmake/${PROJECT_NAME}")
90+
set(include_install_dir "include/json")
91+
92+
set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
93+
set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
94+
set(targets_export_name "${PROJECT_NAME}Targets")
95+
set(namespace "${PROJECT_NAME}::")
96+
97+
include(CMakePackageConfigHelpers)
98+
write_basic_package_version_file(
99+
"${version_config}" COMPATIBILITY SameMajorVersion
100+
)
101+
102+
# Note: use 'targets_export_name'
103+
configure_file("${CMAKE_SOURCE_DIR}/cmake/Config.cmake.in" "${project_config}" @ONLY)
104+
105+
install(
106+
TARGETS jsoncpp_lib_static
107+
EXPORT "${targets_export_name}"
108+
LIBRARY DESTINATION "lib"
109+
ARCHIVE DESTINATION "lib"
110+
RUNTIME DESTINATION "bin"
111+
INCLUDES DESTINATION "${include_install_dir}"
112+
)
113+
114+
install(DIRECTORY "${CMAKE_SOURCE_DIR}/include/json" DESTINATION "${include_install_dir}")
115+
116+
install(
117+
FILES "${project_config}" "${version_config}"
118+
DESTINATION "${config_install_dir}"
119+
)
120+
121+
install(
122+
EXPORT "${targets_export_name}"
123+
NAMESPACE "${namespace}"
124+
DESTINATION "${config_install_dir}"
125+
)

0 commit comments

Comments
 (0)