upstream: fix: multiarch: file-conflict
authorJerome Benoit <calculus@rezozer.net>
Fri, 28 Jun 2024 20:51:42 +0000 (20:51 +0000)
committerJerome Benoit <calculus@rezozer.net>
Fri, 28 Jun 2024 20:51:42 +0000 (20:51 +0000)
Origin: debian
Forwarded: https://github.com/igraph/igraph/pull/2372
Last-Update: 2023-07-15

This patch installs architecture/built specific C headers
in a per-architecture location to avoid conflict on multiarch
systems. It is meant to be submitted to the upstream maintainer.

Gbp-Pq: Name upstream-fix-multiarch-file_conflict.patch

etc/cmake/pkgconfig_helpers.cmake
igraph.pc.in
src/CMakeLists.txt

index d0d9ecb0ab433277ab840cb95226d3e1f1f491a6..a410a6126c98bbc38c007037b99fe00ffb3c419f 100644 (file)
@@ -68,6 +68,11 @@ endif()
 
 join_paths(PKGCONFIG_LIBDIR "\${exec_prefix}" "${CMAKE_INSTALL_LIBDIR}")
 join_paths(PKGCONFIG_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}")
+join_paths(PKGCONFIG_CFLAGS_ONLY_I "-I\${includedir}" "igraph")
+if(CMAKE_LIBRARY_ARCHITECTURE)
+  join_paths(PKGCONFIG_CFLAGS_ONLY_I_ARCH "-I\${includedir}" "${CMAKE_LIBRARY_ARCHITECTURE}" "igraph")
+  set(PKGCONFIG_CFLAGS_ONLY_I "${PKGCONFIG_CFLAGS_ONLY_I_ARCH} ${PKGCONFIG_CFLAGS_ONLY_I}")
+endif()
 configure_file(
   ${PROJECT_SOURCE_DIR}/igraph.pc.in
   ${PROJECT_BINARY_DIR}/igraph.pc
index f869537d6336b6c9a244b8be378f459bcccce1de..2edd6de734467fb5b45228a783795c39253d6071 100644 (file)
@@ -10,4 +10,4 @@ URL: @PROJECT_HOMEPAGE_URL@
 Libs: -L${libdir} -ligraph
 Libs.private: @PKGCONFIG_LIBS_PRIVATE@
 Requires.private: @PKGCONFIG_REQUIRES_PRIVATE@
-Cflags: -I${includedir}/igraph
+Cflags: @PKGCONFIG_CFLAGS_ONLY_I@
index 16f3c574ee93dc25386ee347a17537f4524d08ec..f1debfff37bc55276cd434df45b15273c6fa2480 100644 (file)
@@ -431,6 +431,11 @@ use_all_warnings(igraph)
 # GNUInstallDirs be included before generating the pkgconfig file, as it defines
 # CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR variables.
 include(GNUInstallDirs)
+if(CMAKE_LIBRARY_ARCHITECTURE)
+  set(CMAKE_INSTALL_INCLUDEDIR_ARCHITECTURE "${CMAKE_INSTALL_INCLUDEDIR}/${CMAKE_LIBRARY_ARCHITECTURE}")
+else()
+  set(CMAKE_INSTALL_INCLUDEDIR_ARCHITECTURE "${CMAKE_INSTALL_INCLUDEDIR}")
+endif()
 
 # Generate pkgconfig file
 include(pkgconfig_helpers)
@@ -474,7 +479,7 @@ install(
 )
 install(
   DIRECTORY ${PROJECT_BINARY_DIR}/include/
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/igraph
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR_ARCHITECTURE}/igraph
   FILES_MATCHING PATTERN "*.h"
 )
 install(