From ba8d547dfa81539f4e8474152d92e866ad89241b Mon Sep 17 00:00:00 2001 From: Nadia Holmquist Pedersen Date: Thu, 18 Apr 2024 12:25:41 +0200 Subject: [PATCH] Windows: Work around CMake not finding libarchive's include directory because MSYS2 CMake doesn't like UNIX paths. --- cmake/FixInterfaceIncludes.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmake/FixInterfaceIncludes.cmake b/cmake/FixInterfaceIncludes.cmake index 513c1117..5c285d7a 100644 --- a/cmake/FixInterfaceIncludes.cmake +++ b/cmake/FixInterfaceIncludes.cmake @@ -19,6 +19,13 @@ function(fix_interface_includes) if (PARENT_DIR MATCHES "include$") list(APPEND NEW_DIRS "${PARENT_DIR}") endif() + + # HACK + # The libarchive pkg-config file in MSYS2 seems to include a UNIX-style path for its + # include directory and CMake doesn't like that. + if (WIN32 AND MINGW AND target STREQUAL PkgConfig::LibArchive) + list(FILTER DIRS EXCLUDE REGEX "^/[^.]+64/.*") + endif() endforeach() list(APPEND DIRS ${NEW_DIRS})