From: Vsevolod Stakhov Date: Sun, 28 Dec 2025 21:20:12 +0000 (+0000) Subject: [Fix] Avoid SDK headers in include path when package ROOT is specified X-Git-Tag: 3.14.3~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cef648357093b826d575c15b936391a553489201;p=thirdparty%2Frspamd.git [Fix] Avoid SDK headers in include path when package ROOT is specified - 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 --- diff --git a/cmake/Paths.cmake b/cmake/Paths.cmake index 858cdc2651..7ebdf264f1 100644 --- a/cmake/Paths.cmake +++ b/cmake/Paths.cmake @@ -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() diff --git a/cmake/ProcessPackage.cmake b/cmake/ProcessPackage.cmake index 316662568b..a36714cd4d 100644 --- a/cmake/ProcessPackage.cmake +++ b/cmake/ProcessPackage.cmake @@ -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}")