]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Fix] Avoid SDK headers in include path when package ROOT is specified
authorVsevolod Stakhov <vsevolod@rspamd.com>
Sun, 28 Dec 2025 21:20:12 +0000 (21:20 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Mon, 29 Dec 2025 18:06:05 +0000 (18:06 +0000)
- Add NO_DEFAULT_PATH to FIND_PATH when PKG_ROOT is set to prevent
  macOS SDK C headers from polluting include paths before libc++
- Fix typo: {RSPAMD_DEFAULT_INCLUDE_PATHS} -> ${...}
- Remove obsolete paths (/opt/csw, /sw), add /opt/homebrew for macOS

cmake/Paths.cmake
cmake/ProcessPackage.cmake

index 858cdc265157c11bebc4eec281d54630d81c94bf..7ebdf264f1996b60e27036b3701167eca9482df9 100644 (file)
@@ -68,5 +68,11 @@ IF(NOT SYSTEMDDIR)
     SET(SYSTEMDDIR ${CMAKE_INSTALL_PREFIX}/lib/systemd/system)
 ENDIF(NOT SYSTEMDDIR)
 
-SET(RSPAMD_DEFAULT_INCLUDE_PATHS "/opt;/usr;/usr/local;/opt/local;/usr/pkg;/opt/csw;/sw")
-SET(RSPAMD_DEFAULT_LIBRARY_PATHS "/usr/local;/usr/pkg;/usr;/Library/Frameworks;/sw;/opt/local;/opt/csw;/opt")
+SET(RSPAMD_DEFAULT_INCLUDE_PATHS "/usr;/usr/local;/opt/local;/usr/pkg;/opt")
+SET(RSPAMD_DEFAULT_LIBRARY_PATHS "/usr/local;/usr/pkg;/usr;/opt/local;/opt")
+IF(APPLE)
+    # Homebrew on Apple Silicon uses /opt/homebrew
+    LIST(PREPEND RSPAMD_DEFAULT_INCLUDE_PATHS "/opt/homebrew")
+    LIST(PREPEND RSPAMD_DEFAULT_LIBRARY_PATHS "/opt/homebrew")
+    LIST(APPEND RSPAMD_DEFAULT_LIBRARY_PATHS "/Library/Frameworks")
+ENDIF()
index 316662568bb00b6a465b9b6f24a94242abac5826..a36714cd4d544529bf02e2b9152459ababc7c755 100644 (file)
@@ -77,10 +77,18 @@ MACRO(ProcessPackage PKG_NAME)
                 ENDIF()
             ENDIF(NOT _lib)
 
-            FIND_PATH(_incl ${PKG_INCLUDE}
-                    HINTS ${PKG_ROOT} ${RSPAMD_SEARCH_PATH}
-                    PATH_SUFFIXES ${PKG_INCLUDE_SUFFIXES} include
-                    PATHS      {RSPAMD_DEFAULT_INCLUDE_PATHS})
+            IF(PKG_ROOT)
+                FIND_PATH(_incl ${PKG_INCLUDE}
+                        HINTS ${PKG_ROOT} ${RSPAMD_SEARCH_PATH}
+                        PATH_SUFFIXES ${PKG_INCLUDE_SUFFIXES} include
+                        PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS}
+                        NO_DEFAULT_PATH)
+            ELSE()
+                FIND_PATH(_incl ${PKG_INCLUDE}
+                        HINTS ${RSPAMD_SEARCH_PATH}
+                        PATH_SUFFIXES ${PKG_INCLUDE_SUFFIXES} include
+                        PATHS ${RSPAMD_DEFAULT_INCLUDE_PATHS})
+            ENDIF()
             IF(NOT _incl)
                 IF(PKG_OPTIONAL OR PKG_OPTIONAL_INCLUDE)
                     MESSAGE(STATUS "Cannot find header ${PKG_INCLUDE} for package ${PKG_NAME}")