This is an automated email from the ASF dual-hosted git repository. jdanek pushed a commit to branch jd_PROTON-2433_interface_library_dirs in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
commit cce81221dd4c12f003856a957a66a4cab5789129 Author: Jiri Danek <jda...@redhat.com> AuthorDate: Mon Sep 20 12:30:39 2021 +0200 PROTON-2254 Generate correct relocatable pc files --- CMakeLists.txt | 14 +++++++------- c/CMakeLists.txt | 1 + c/src/ProtonConfig.cmake.in | 6 +++--- c/src/libqpid-proton-core.pc.in | 8 ++++---- c/src/libqpid-proton-proactor.pc.in | 8 ++++---- c/src/libqpid-proton.pc.in | 8 ++++---- cpp/CMakeLists.txt | 1 + cpp/ProtonCppConfig.cmake.in | 2 +- cpp/libqpid-proton-cpp.pc.in | 8 ++++---- 9 files changed, 29 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0eb169a..1b5c794 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -276,18 +276,18 @@ set (MAN_INSTALL_DIR share/man CACHE PATH "Manpage directory") mark_as_advanced (INCLUDE_INSTALL_DIR LIB_INSTALL_DIR SYSCONF_INSTALL_DIR SHARE_INSTALL_DIR MAN_INSTALL_DIR) -# ${PACKAGE_PREFIX_DIR} is expanded from @PACKAGE_INIT@ -# by configure_package_config_file(), and available in ProtonConfig.cmake -macro (pn_relative_install_dir NAME VALUE) +# Sets variable NAME to contain relative path from ROOT to VALUE +# if VALUE is already relative, it does nothing +macro (pn_relative_install_dir NAME ROOT VALUE) if (IS_ABSOLUTE ${VALUE}) - message(WARNING "Build was given an absolute path '${VALUE}'. As a result, `make DESTDIR=... install` will not work.") - set (${NAME} "${VALUE}") + file(RELATIVE_PATH "${NAME}" "${CMAKE_INSTALL_PREFIX}" "${VALUE}") else () - set (${NAME} "\${PACKAGE_PREFIX_DIR}/${VALUE}") + set (${NAME} "${VALUE}") endif () endmacro () -pn_relative_install_dir (INCLUDEDIR ${INCLUDE_INSTALL_DIR}) +pn_relative_install_dir (INCLUDEDIR "${CMAKE_INSTALL_PREFIX}" "${INCLUDE_INSTALL_DIR}") +pn_relative_install_dir (LIBDIR "${CMAKE_INSTALL_PREFIX}" "${LIB_INSTALL_DIR}") ## LANGUAGE BINDINGS diff --git a/c/CMakeLists.txt b/c/CMakeLists.txt index f505ff8..7066409 100644 --- a/c/CMakeLists.txt +++ b/c/CMakeLists.txt @@ -597,6 +597,7 @@ include(WriteBasicConfigVersionFile) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/src/ProtonConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfig.cmake + PATH_VARS INCLUDE_INSTALL_DIR INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/Proton) write_basic_config_version_file( ${CMAKE_CURRENT_BINARY_DIR}/ProtonConfigVersion.cmake diff --git a/c/src/ProtonConfig.cmake.in b/c/src/ProtonConfig.cmake.in index 24c2e13..f7b8abb 100644 --- a/c/src/ProtonConfig.cmake.in +++ b/c/src/ProtonConfig.cmake.in @@ -52,17 +52,17 @@ if (Proton_USE_STATIC_LIBS) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH_OLD}) endif() -set (Proton_INCLUDE_DIRS @INCLUDEDIR@) +set (Proton_INCLUDE_DIRS @PACKAGE_INCLUDE_INSTALL_DIR@) set (Proton_LIBRARIES Proton::qpid-proton) set (Proton_FOUND True) -set (Proton_Core_INCLUDE_DIRS @INCLUDEDIR@) +set (Proton_Core_INCLUDE_DIRS @PACKAGE_INCLUDE_INSTALL_DIR@) set (Proton_Core_LIBRARIES Proton::core) set (Proton_Core_FOUND True) set (HAS_PROACTOR @HAS_PROACTOR@) if (HAS_PROACTOR) - set (Proton_Proactor_INCLUDE_DIRS @INCLUDEDIR@) + set (Proton_Proactor_INCLUDE_DIRS @PACKAGE_INCLUDE_INSTALL_DIR@) set (Proton_Proactor_LIBRARIES Proton::proactor) set (Proton_Proactor_FOUND True) endif() diff --git a/c/src/libqpid-proton-core.pc.in b/c/src/libqpid-proton-core.pc.in index ff99108..48cd02e 100644 --- a/c/src/libqpid-proton-core.pc.in +++ b/c/src/libqpid-proton-core.pc.in @@ -17,10 +17,10 @@ * under the License. */ -prefix=@PREFIX@ -exec_prefix=@EXEC_PREFIX@ -libdir=@LIBDIR@ -includedir=@INCLUDEDIR@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/@INCLUDEDIR@ +includedir=${prefix}/@LIBDIR@ Name: Proton Core Description: Qpid Proton C core protocol library diff --git a/c/src/libqpid-proton-proactor.pc.in b/c/src/libqpid-proton-proactor.pc.in index c9f7ddb..a6539ca 100644 --- a/c/src/libqpid-proton-proactor.pc.in +++ b/c/src/libqpid-proton-proactor.pc.in @@ -17,10 +17,10 @@ * under the License. */ -prefix=@PREFIX@ -exec_prefix=@EXEC_PREFIX@ -libdir=@LIBDIR@ -includedir=@INCLUDEDIR@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/@INCLUDEDIR@ +includedir=${prefix}/@LIBDIR@ Name: Proton Proactor Description: Qpid Proton C proactive IO library diff --git a/c/src/libqpid-proton.pc.in b/c/src/libqpid-proton.pc.in index a045c3f..121ebc6 100644 --- a/c/src/libqpid-proton.pc.in +++ b/c/src/libqpid-proton.pc.in @@ -17,10 +17,10 @@ * under the License. */ -prefix=@PREFIX@ -exec_prefix=@EXEC_PREFIX@ -libdir=@LIBDIR@ -includedir=@INCLUDEDIR@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/@INCLUDEDIR@ +includedir=${prefix}/@LIBDIR@ Name: Proton Description: Qpid Proton C library diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 0376461..03fe80a 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -202,6 +202,7 @@ include(WriteBasicConfigVersionFile) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/ProtonCppConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfig.cmake + PATH_VARS INCLUDE_INSTALL_DIR INSTALL_DESTINATION ${LIB_INSTALL_DIR}/cmake/ProtonCpp) write_basic_config_version_file( ${CMAKE_CURRENT_BINARY_DIR}/ProtonCppConfigVersion.cmake diff --git a/cpp/ProtonCppConfig.cmake.in b/cpp/ProtonCppConfig.cmake.in index e869170..74ddfaa 100644 --- a/cpp/ProtonCppConfig.cmake.in +++ b/cpp/ProtonCppConfig.cmake.in @@ -31,7 +31,7 @@ endif() set (ProtonCpp_VERSION @PN_VERSION@) -set (ProtonCpp_INCLUDE_DIRS @INCLUDEDIR@) +set (ProtonCpp_INCLUDE_DIRS @PACKAGE_INCLUDE_INSTALL_DIR@) set (ProtonCpp_LIBRARIES Proton::cpp) set (ProtonCpp_FOUND True) diff --git a/cpp/libqpid-proton-cpp.pc.in b/cpp/libqpid-proton-cpp.pc.in index 4b556f4..0218109 100644 --- a/cpp/libqpid-proton-cpp.pc.in +++ b/cpp/libqpid-proton-cpp.pc.in @@ -17,10 +17,10 @@ * under the License. */ -prefix=@PREFIX@ -exec_prefix=@EXEC_PREFIX@ -libdir=@LIBDIR@ -includedir=@INCLUDEDIR@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${prefix}/@INCLUDEDIR@ +includedir=${prefix}/@LIBDIR@ Name: Proton C++ Description: Qpid Proton C++ library --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org