CMakeScripts的目的是什么?

eml*_*lai 6 xcode cmake

我配置了我的构建cmake -G Xcode和一个名为CMakeScriptsappear 的目录,其中包含以下内容:

ALL_BUILD_cmakeRulesBuildPhase.makeDebug
ALL_BUILD_cmakeRulesBuildPhase.makeMinSizeRel
ALL_BUILD_cmakeRulesBuildPhase.makeRelease
ALL_BUILD_cmakeRulesBuildPhase.makeRelWithDebInfo
ReRunCMake.make
ZERO_CHECK_cmakeRulesBuildPhase.makeDebug
ZERO_CHECK_cmakeRulesBuildPhase.makeMinSizeRel
ZERO_CHECK_cmakeRulesBuildPhase.makeRelease
ZERO_CHECK_cmakeRulesBuildPhase.makeRelWithDebInfo
Run Code Online (Sandbox Code Playgroud)

我在这个文件夹上找不到任何正式的CMake文档,但它似乎只是由Xcode生成器创建的.

那么,这个文件夹的目的是什么,而不是其他CMake文件夹(例如CMakeFiles),为什么它只被Xcode使用?

usr*_*567 1

它们是用于破解 Xcode make 文件的内部脚本。我检查了Source/cmGlobalXCodeGenerator.cxxCMakeScripts 路径的硬编码位置。存储该路径的变量称为CurrentXCodeHackMakefile

这打印在您可以在 CMakeScripts 中找到的文件之一中,它表明这是一个辅助 make 文件:

不要编辑此 makefile 确保所有可链接目标与它们链接到默认值的任何内容都是最新的:
echo“不要直接调用”

为每个目标创建一个虚拟规则,以便目标不必存在