Skip to content

Commit fe1a60b

Browse files
authored
Add generation of registry file for pkg-config (#151)
1 parent b326963 commit fe1a60b

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

.pkg-config/taocpp-json.pc.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
includedir="@CMAKE_INSTALL_FULL_INCLUDEDIR@"
2+
3+
Name: @PROJECT_NAME@
4+
Description: taoJSON is a C++ header-only JSON library
5+
Version: @PROJECT_VERSION@
6+
URL: https://github.com/taocpp/json
7+
Cflags: -I${includedir}

CMakeLists.txt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ include(GNUInstallDirs)
1212

1313
set(TAOCPP_JSON_INSTALL_DOC_DIR "${CMAKE_INSTALL_DOCDIR}/tao/json" CACHE STRING "The installation doc directory")
1414
set(TAOCPP_JSON_INSTALL_CMAKE_DIR "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake" CACHE STRING "The installation cmake directory")
15+
set(TAOCPP_JSON_INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig" CACHE STRING "The installation pkgconfig directory")
1516

1617
# define a header-only library
1718
add_library(taocpp-json INTERFACE)
@@ -61,13 +62,20 @@ option(TAOCPP_JSON_INSTALL "Generate the install target" ${TAOCPP_JSON_IS_MAIN_P
6162
if(TAOCPP_JSON_INSTALL)
6263
include(CMakePackageConfigHelpers)
6364

64-
# Make package findable
65+
# Make package findable by CMake
6566
configure_package_config_file(.cmake/taocpp-json-config.cmake.in ${PROJECT_NAME}-config.cmake
6667
INSTALL_DESTINATION ${TAOCPP_JSON_INSTALL_CMAKE_DIR}
6768
NO_CHECK_REQUIRED_COMPONENTS_MACRO
6869
NO_SET_AND_CHECK_MACRO
6970
)
7071

72+
# Make package findable by pkg-config
73+
configure_package_config_file(.pkg-config/taocpp-json.pc.in ${PROJECT_NAME}.pc
74+
INSTALL_DESTINATION ${TAOCPP_JSON_INSTALL_PKGCONFIG_DIR}
75+
NO_CHECK_REQUIRED_COMPONENTS_MACRO
76+
NO_SET_AND_CHECK_MACRO
77+
)
78+
7179
# Ignore pointer width differences since this is a header-only library
7280
unset(CMAKE_SIZEOF_VOID_P)
7381

@@ -84,6 +92,10 @@ if(TAOCPP_JSON_INSTALL)
8492
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake
8593
DESTINATION ${TAOCPP_JSON_INSTALL_CMAKE_DIR}
8694
)
95+
install(FILES
96+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
97+
DESTINATION ${TAOCPP_JSON_INSTALL_PKGCONFIG_DIR}
98+
)
8799
install(EXPORT ${PROJECT_NAME}-targets
88100
NAMESPACE taocpp::
89101
DESTINATION ${TAOCPP_JSON_INSTALL_CMAKE_DIR}

0 commit comments

Comments
 (0)