From da07c8ad2afe1f96cdc54d1827b6bb01fdef75d9 Mon Sep 17 00:00:00 2001 From: Alexander Grund Date: Thu, 2 Jan 2025 08:17:22 -0500 Subject: [PATCH] macOS: Detect homebrew prefix from brew tool Although not recommended by homebrew, users can install it in a non-standard prefix. Ask `brew --prefix` before using defaults. --- Modules/Platform/Darwin.cmake | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index f334c5f5cd..c34e2717f0 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -248,10 +248,26 @@ unset(_apps_paths) include(Platform/UnixPaths) -if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") - list(PREPEND CMAKE_SYSTEM_PREFIX_PATH - /opt/homebrew # Brew on Apple Silicon - ) +if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + execute_process( + COMMAND brew --prefix + OUTPUT_VARIABLE _cmake_homebrew_prefix + RESULT_VARIABLE _brew_result + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + if (_brew_result EQUAL 0 AND IS_DIRECTORY "${_cmake_homebrew_prefix}") + list(PREPEND CMAKE_SYSTEM_PREFIX_PATH "${_cmake_homebrew_prefix}") + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + list(PREPEND CMAKE_SYSTEM_PREFIX_PATH + /opt/homebrew # Brew on Apple Silicon + ) + else() + list(PREPEND CMAKE_SYSTEM_PREFIX_PATH + /usr/local # Brew on Intel + ) + endif() + unset(_cmake_homebrew_prefix) + unset(_brew_result) endif() if(_CMAKE_OSX_SYSROOT_PATH)