Author: brane
Date: Wed Jul  2 21:58:48 2025
New Revision: 1926921

URL: http://svn.apache.org/viewvc?rev=1926921&view=rev
Log:
In the CMake build, make the generated pkgconfig file relocatable.

* CMakeLists.txt
  (SERF_PC_FILE): New, the name of the pkg-config file.
  (make_pkgconfig): Make the prefix relative to ${pcfiledir}.

Modified:
    serf/trunk/CMakeLists.txt

Modified: serf/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/serf/trunk/CMakeLists.txt?rev=1926921&r1=1926920&r2=1926921&view=diff
==============================================================================
--- serf/trunk/CMakeLists.txt (original)
+++ serf/trunk/CMakeLists.txt Wed Jul  2 21:58:48 2025
@@ -465,9 +465,15 @@ install(FILES ${HEADERS} DESTINATION "${
 
 # Generate the pkg-config module file.
 if(NOT SERF_WINDOWS)
+  set(SERF_PC_FILE "serf-${SERF_MAJOR_VERSION}.pc")
+
   # Use a separate variable scope for the substitutions in serf.pc.in.
   function(make_pkgconfig)
-    set(PREFIX ${CMAKE_INSTALL_PREFIX})
+    # Use a relative prefix to create a relocatable PC file.
+    file(RELATIVE_PATH relfragment "/${SERF_INSTALL_PKGCONFIG}" "/")
+    file(TO_CMAKE_PATH "\${pcfiledir}/${relfragment}" relprefix)
+
+    set(PREFIX ${relprefix})
     set(INCLUDE_SUBDIR ${SERF_INCLUDE_SUBDIR})
     set(LIBDIR \${prefix}/${SERF_INSTALL_LIBRARIES})
     set(VERSION ${SERF_VERSION})
@@ -487,11 +493,11 @@ if(NOT SERF_WINDOWS)
     foreach(DEPLIB ${SERF_INTERFACE_LIBS})
       string(APPEND LIBS " ${DEPLIB}")
     endforeach()
-    configure_file("build/serf.pc.in" "serf-${SERF_MAJOR_VERSION}.pc" @ONLY)
+    configure_file("build/serf.pc.in" "${SERF_PC_FILE}" @ONLY)
   endfunction()
 
   make_pkgconfig()
-  install(FILES "${CMAKE_CURRENT_BINARY_DIR}/serf-${SERF_MAJOR_VERSION}.pc"
+  install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${SERF_PC_FILE}"
           DESTINATION "${SERF_INSTALL_PKGCONFIG}")
 endif()
 


Reply via email to