From: Jerome Benoit Date: Sat, 18 Jan 2025 23:34:52 +0000 (+0000) Subject: upstream: fix: multiarch: file-conflict X-Git-Tag: archive/raspbian/0.10.15+ds-2+rpi1^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d772954c82237084f40d91b12204b20819cf0eb0;p=igraph.git upstream: fix: multiarch: file-conflict Origin: debian Forwarded: https://github.com/igraph/igraph/pull/2372 Last-Update: 2024-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 --- diff --git a/etc/cmake/pkgconfig_helpers.cmake b/etc/cmake/pkgconfig_helpers.cmake index d0d9ecb..a410a61 100644 --- a/etc/cmake/pkgconfig_helpers.cmake +++ b/etc/cmake/pkgconfig_helpers.cmake @@ -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 diff --git a/igraph.pc.in b/igraph.pc.in index f869537..2edd6de 100644 --- a/igraph.pc.in +++ b/igraph.pc.in @@ -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@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ac95f94..544f59e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -377,6 +377,14 @@ target_include_directories( "$<$:${PLFIT_INCLUDE_DIRS}>" ) +if(CMAKE_LIBRARY_ARCHITECTURE) + target_include_directories( + igraph + PUBLIC + $ + ) +endif() + if(MATH_LIBRARY) target_link_libraries(igraph PUBLIC ${MATH_LIBRARY}) endif() @@ -433,6 +441,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) @@ -476,7 +489,7 @@ install( ) install( DIRECTORY ${PROJECT_BINARY_DIR}/include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/igraph + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR_ARCHITECTURE}/igraph FILES_MATCHING PATTERN "*.h" ) install(