Cmake 3.30 似乎破坏了 Xcode Generator 的 $(ARCHS_STANDARD) 的使用

问题描述 投票:0回答:1

在 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 片段)并且它现在才浮出水面?

xcode macos cmake apple-silicon cmake-generators
1个回答
0
投票

在我报告该错误后,这已在 Cmake 3.30.2 中修复。

© www.soinside.com 2019 - 2024. All rights reserved.