Skip to content

triplets: Explicit set VCPKG_OSX_SYSROOT for macOS triplets #45155

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

ADKaster
Copy link
Contributor

Starting with CMake 4.x, CMake intentionally no longer chooses any SDK or passes an -isysroot flag to the compiler by default. CMake now expects that a compiler will have default detection for the SDK itself.

However, upstream llvm does not actually do this, only Apple Clang does. To support homebrew clang and manually compiled clang from llvm/llvm-project, explicitly set VCPKG_OSX_SYSROOT in each macOS triplet file.


The port build failure (but not question) in #45148 is resolved with this PR.

n.b.:

llvm/llvm-project#135459 (comment)
https://gitlab.kitware.com/cmake/cmake/-/issues/26863
https://cmake.org/cmake/help/latest/release/4.0.html#other-changes

Related to:

#44273

Starting with CMake 4.x, CMake intentionally no longer chooses any SDK
or passes an -isysroot flag to the compiler by default. CMake now
expects that a compiler will have default detection for the SDK itself.

However, upstream llvm does not actually do this, only Apple Clang does.
To support homebrew clang and manually compiled clang from
llvm/llvm-project, explicitly set VCPKG_OSX_SYSROOT in each macOS
triplet file.
@BillyONeal
Copy link
Member

However, upstream llvm does not actually do this, only Apple Clang does. To support homebrew clang and manually compiled clang from llvm/llvm-project, explicitly set VCPKG_OSX_SYSROOT in each macOS triplet file.

It seems like that is something that should be in triplets expecting to use those compilers rather than our bundled ones, which expect to use the platform's default compiler (Apple Clang in this case)

@Mengna-Li Mengna-Li added the category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed label Apr 22, 2025
@BillyONeal
Copy link
Member

[1/2] "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" -E chdir ".." "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" "/Users/vcpkg/Data/b/godot-cpp/src/4.4-stable-8421839c48.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/godot-cpp_arm64-osx" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DPython3_EXECUTABLE=/opt/homebrew/bin/python3" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/2/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_SYSROOT=macosx" "-DCMAKE_OSX_ARCHITECTURES=arm64"
FAILED: ../CMakeCache.txt 
"/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" -E chdir ".." "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" "/Users/vcpkg/Data/b/godot-cpp/src/4.4-stable-8421839c48.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/godot-cpp_arm64-osx" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DPython3_EXECUTABLE=/opt/homebrew/bin/python3" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/2/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_SYSROOT=macosx" "-DCMAKE_OSX_ARCHITECTURES=arm64"
CMake Error at cmake/macos.cmake:17 (find_library):
  Could not find COCOA_LIBRARY using the following names: Cocoa
Call Stack (most recent call first):
  cmake/godotcpp.cmake:31 (include)
  CMakeLists.txt:40 (include)


-- Configuring incomplete, errors occurred!
[2/2] "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" -E chdir "../../arm64-osx-dbg" "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" "/Users/vcpkg/Data/b/godot-cpp/src/4.4-stable-8421839c48.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/godot-cpp_arm64-osx/debug" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DPython3_EXECUTABLE=/opt/homebrew/bin/python3" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/2/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_SYSROOT=macosx" "-DCMAKE_OSX_ARCHITECTURES=arm64"
FAILED: ../../arm64-osx-dbg/CMakeCache.txt 
"/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" -E chdir "../../arm64-osx-dbg" "/Users/vcpkg/Data/downloads/tools/cmake-3.30.1-osx/cmake-3.30.1-macos-universal/CMake.app/Contents/bin/cmake" "/Users/vcpkg/Data/b/godot-cpp/src/4.4-stable-8421839c48.clean" "-G" "Ninja" "-DCMAKE_BUILD_TYPE=Debug" "-DCMAKE_INSTALL_PREFIX=/Users/vcpkg/Data/p/godot-cpp_arm64-osx/debug" "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" "-DPython3_EXECUTABLE=/opt/homebrew/bin/python3" "-DCMAKE_MAKE_PROGRAM=/opt/homebrew/bin/ninja" "-DCMAKE_SYSTEM_NAME=Darwin" "-DBUILD_SHARED_LIBS=OFF" "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/toolchains/osx.cmake" "-DVCPKG_TARGET_TRIPLET=arm64-osx" "-DVCPKG_SET_CHARSET_FLAG=ON" "-DVCPKG_PLATFORM_TOOLSET=external" "-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON" "-DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON" "-DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE" "-DCMAKE_VERBOSE_MAKEFILE=ON" "-DVCPKG_APPLOCAL_DEPS=OFF" "-DCMAKE_TOOLCHAIN_FILE=/Users/vcpkg/Data/work/2/s/scripts/buildsystems/vcpkg.cmake" "-DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON" "-DVCPKG_CXX_FLAGS=" "-DVCPKG_CXX_FLAGS_RELEASE=" "-DVCPKG_CXX_FLAGS_DEBUG=" "-DVCPKG_C_FLAGS=" "-DVCPKG_C_FLAGS_RELEASE=" "-DVCPKG_C_FLAGS_DEBUG=" "-DVCPKG_CRT_LINKAGE=dynamic" "-DVCPKG_LINKER_FLAGS=" "-DVCPKG_LINKER_FLAGS_RELEASE=" "-DVCPKG_LINKER_FLAGS_DEBUG=" "-DVCPKG_TARGET_ARCHITECTURE=arm64" "-DCMAKE_INSTALL_LIBDIR:STRING=lib" "-DCMAKE_INSTALL_BINDIR:STRING=bin" "-D_VCPKG_ROOT_DIR=/Users/vcpkg/Data/work/2/s" "-D_VCPKG_INSTALLED_DIR=/Users/vcpkg/Data/installed" "-DVCPKG_MANIFEST_INSTALL=OFF" "-DCMAKE_OSX_SYSROOT=macosx" "-DCMAKE_OSX_ARCHITECTURES=arm64"
CMake Error at cmake/macos.cmake:17 (find_library):
  Could not find COCOA_LIBRARY using the following names: Cocoa
Call Stack (most recent call first):
  cmake/godotcpp.cmake:31 (include)
  CMakeLists.txt:40 (include)


-- Configuring incomplete, errors occurred!
ninja: build stopped: subcommand failed.

@BillyONeal BillyONeal marked this pull request as draft April 24, 2025 20:49
@ADKaster
Copy link
Contributor Author

ADKaster commented May 6, 2025

This PR is OBE due to a patch that will be included in CMake 4.0.2

https://gitlab.kitware.com/cmake/cmake/-/merge_requests/10734

@ADKaster ADKaster closed this May 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:vcpkg-feature The issue is a new capability of the tool that doesn’t already exist and we haven’t committed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants