在 Macos 设备上的所有 Cmake 构建中,我一直在使用
$(ARCHS_STANDARD)
将构建配置为“胖库”或通用二进制文件。
if(CMAKE_GENERATOR STREQUAL "Xcode")
set(CMAKE_OSX_ARCHITECTURES $(ARCHS_STANDARD) CACHE STRING "")
endif()
自从我更新到 Cmake 3.30 后,这似乎不再起作用了。 Cmake 3.29.6 仍然可以正常工作。我正在使用 Xcode 15.1。
尝试使用 Cmake 生成 Xcode 项目时出现以下错误:
The C compiler targets architectures:
"x86_64;arm64"
but CMAKE_OSX_ARCHITECTURES is
"$(ARCHS_STANDARD)"
如果我将其明确设置为
set(CMAKE_OSX_ARCHITECTURES "x86_64;arm64" CACHE STRING "")
,一切都会按预期进行。我假设 Cmake 中的这个新的“一致性检查”是在 $(ARCHS_STANDARD)
尚未评估时执行的。
谁能确认这是 Cmake 错误吗?或者我一直在做这个错误(参见我的 Cmake 片段)并且它现在才浮出水面?
在我报告该错误后,这已在 Cmake 3.30.2 中修复。