【发布时间】:2018-01-23 07:47:16
【问题描述】:
我正在考虑将我的项目编译从繁琐的 Xcode 转移到方便的 CMake 环境中。
但是,我无法在 macOS 中找到对模拟 Xcode 流程的预编译头文件 (.pch) 的 cmake 支持。
在Xcode中,第一阶段是ProcessPCH,其中pch文件编译根据源代码语言编译为独立文件(我的项目包含mmm和cpp文件)
IE:
1. objective-c(.m): `-x objective-c-header`
2. objective-c++(.mm): `-x objective-c++-header`
3. c++(.cpp): `-x c++-header`
...
结果是带有后缀.pch.pch的二进制Macho目标。
然后,为了使用项目中的每个源文件预编译 pch,将以下标志添加到编译命令 -include <pch_output_file_from_the_previous_stage>
在 CMake 中有什么方法可以做到这一点吗?有没有等效的替代品?
编辑:
我透露曾经可以使用常规 .h 文件和 GCC 编译器为 macOS 项目设置预编译头文件,但我还没有找到 Xcode 现在使用的 clang/clang++ 的相应标志
set_target_properties(
executable
PROPERTIES
XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "path/stdwx.h"
XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
)
【问题讨论】:
-
这能回答你的问题吗? Using pre-compiled headers with CMake
标签: c++ objective-c xcode cmake clang