backend-infra-engineer: Release v0.3.2 snapshot
This commit is contained in:
45
cmake/llvm-brew.toolchain.cmake
Normal file
45
cmake/llvm-brew.toolchain.cmake
Normal file
@@ -0,0 +1,45 @@
|
||||
# cmake/toolchains/homebrew-llvm.toolchain.cmake
|
||||
#
|
||||
# CMake Toolchain File for using the Homebrew LLVM/Clang installation on macOS.
|
||||
# This ensures that the main project and all dependencies (like gRPC) use the
|
||||
# correct compiler and header search paths.
|
||||
|
||||
# 1. Set the target system (macOS)
|
||||
set(CMAKE_SYSTEM_NAME Darwin)
|
||||
|
||||
# 2. Find the Homebrew LLVM installation path
|
||||
# We use execute_process to make this portable across machine architectures.
|
||||
execute_process(
|
||||
COMMAND brew --prefix llvm@18
|
||||
OUTPUT_VARIABLE HOMEBREW_LLVM_PREFIX
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT EXISTS "${HOMEBREW_LLVM_PREFIX}")
|
||||
message(FATAL_ERROR "Homebrew LLVM not found. Please run 'brew install llvm'. Path: ${HOMEBREW_LLVM_PREFIX}")
|
||||
endif()
|
||||
|
||||
message(STATUS "Using Homebrew LLVM from: ${HOMEBREW_LLVM_PREFIX}")
|
||||
|
||||
# 3. Set the C and C++ compilers
|
||||
set(CMAKE_C_COMPILER "${HOMEBREW_LLVM_PREFIX}/bin/clang")
|
||||
set(CMAKE_CXX_COMPILER "${HOMEBREW_LLVM_PREFIX}/bin/clang++")
|
||||
|
||||
# 4. Set the system root (sysroot) to the macOS SDK
|
||||
# This correctly points to the system-level headers and libraries.
|
||||
execute_process(
|
||||
COMMAND xcrun --show-sdk-path
|
||||
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
set(CMAKE_SYSROOT "${CMAKE_OSX_SYSROOT}")
|
||||
message(STATUS "Using macOS SDK at: ${CMAKE_SYSROOT}")
|
||||
|
||||
# 5. **[THE CRITICAL FIX]** Explicitly define the C++ standard library include directory.
|
||||
# This forces CMake to add Homebrew's libc++ headers to the search path *before*
|
||||
# any other system paths, resolving the header conflict for the main project
|
||||
# and all dependencies.
|
||||
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "${HOMEBREW_LLVM_PREFIX}/include/c++/v1")
|
||||
|
||||
# 6. Set the default installation path for macOS frameworks
|
||||
set(CMAKE_FIND_FRAMEWORK FIRST)
|
||||
Reference in New Issue
Block a user