From 3396d3f24ee59ffb109e7328830479dd1eaa5396 Mon Sep 17 00:00:00 2001 From: Cristian Morales Vega Date: Fri, 6 Nov 2020 10:00:32 +0000 Subject: [PATCH 1/3] Install a CMake configuration file --- CMakeLists.txt | 21 +++++++++++++++++++++ lib/CMakeLists.txt | 6 ++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 50e99a1d..3315d2fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -460,6 +460,27 @@ set(PKGDATADIR "${CMAKE_INSTALL_FULL_DATADIR}/${CMAKE_PROJECT_NAME}") install(FILES README.rst DESTINATION "${CMAKE_INSTALL_DOCDIR}") +install( + EXPORT nghttp2-targets + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/nghttp2" + NAMESPACE nghttp2:: + FILE nghttp2-config.cmake +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + nghttp2-config-version.cmake + VERSION ${nghttp2_VERSION} + COMPATIBILITY SameMajorVersion +) + +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/nghttp2-config-version.cmake" + DESTINATION + "${CMAKE_INSTALL_LIBDIR}/cmake/nghttp2" +) + add_subdirectory(lib) #add_subdirectory(lib/includes) add_subdirectory(third-party) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index a02a534b..91ea1e7c 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -47,11 +47,13 @@ if(ENABLE_SHARED_LIB) C_VISIBILITY_PRESET hidden ) target_include_directories(nghttp2 INTERFACE - "${CMAKE_CURRENT_BINARY_DIR}/includes" - "${CMAKE_CURRENT_SOURCE_DIR}/includes" + "$" + "$" + "$" ) install(TARGETS nghttp2 + EXPORT nghttp2-targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") From 06ab1f6f3eaeec199ea9e86712311eb482a97471 Mon Sep 17 00:00:00 2001 From: Cristian Morales Vega Date: Fri, 6 Nov 2020 10:02:53 +0000 Subject: [PATCH 2/3] Fix cmake warning --- cmake/FindSystemd.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/FindSystemd.cmake b/cmake/FindSystemd.cmake index bafd527c..e7534e5f 100644 --- a/cmake/FindSystemd.cmake +++ b/cmake/FindSystemd.cmake @@ -15,5 +15,5 @@ find_library(SYSTEMD_LIBRARIES NAMES systemd ${PC_SYSTEMD_LIBRARY_DIRS}) find_path(SYSTEMD_INCLUDE_DIRS systemd/sd-login.h HINTS ${PC_SYSTEMD_INCLUDE_DIRS}) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(SYSTEMD DEFAULT_MSG SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) +find_package_handle_standard_args(Systemd DEFAULT_MSG SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES) From d9edfd4ac9289ac5af7e41c7a75482451723b4e0 Mon Sep 17 00:00:00 2001 From: Cristian Morales Vega Date: Fri, 6 Nov 2020 10:31:08 +0000 Subject: [PATCH 3/3] cmake: add RELOCATABLE_PKGCONFIG option --- CMakeLists.txt | 11 +++++++++++ CMakeOptions.txt | 2 ++ 2 files changed, 13 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3315d2fc..aeb87150 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -416,10 +416,21 @@ file(RELATIVE_PATH top_builddir "${CMAKE_CURRENT_BINARY_DIR}/dir" "${CMAKE_CURRE set(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}") set(abs_top_builddir "${CMAKE_CURRENT_BINARY_DIR}") # libnghttp2.pc (pkg-config file) +if(RELOCATABLE_PKGCONFIG) +file(RELATIVE_PATH PKGCONF_TO_PREFIX "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig" "${CMAKE_INSTALL_PREFIX}") +file(RELATIVE_PATH EXEC_PREFIX_TO_LIBDIR "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_FULL_LIBDIR}") +file(RELATIVE_PATH PREFIX_TO_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}") + +set(prefix "\${pcfiledir}/${PKGCONF_TO_PREFIX}") +set(exec_prefix "\${prefix}") +set(libdir "\${exec_prefix}/${EXEC_PREFIX_TO_LIBDIR}") +set(includedir "\${prefix}/${PREFIX_TO_INCLUDEDIR}") +else() set(prefix "${CMAKE_INSTALL_PREFIX}") set(exec_prefix "${CMAKE_INSTALL_PREFIX}") set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") +endif() set(VERSION "${PACKAGE_VERSION}") # For init scripts and systemd service file (in contrib/) set(bindir "${CMAKE_INSTALL_FULL_BINDIR}") diff --git a/CMakeOptions.txt b/CMakeOptions.txt index a8332bf0..b112ca1a 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -27,4 +27,6 @@ option(WITH_SPDYLAY "Use spdylay" option(WITH_MRUBY "Use mruby") option(WITH_NEVERBLEED "Use neverbleed") +option(RELOCATABLE_PKGCONFIG "Make the pkg-config files relocatable") + # vim: ft=cmake: