C++ macOS中的CMake,预编译头文件(.pch)支持
我正在考虑将我的项目编译从繁琐的Xcode转移到方便的CMake环境中 但是,我在macOS中找不到对模拟Xcode流的预编译头文件(.pch)的cmake支持 在Xcode中,第一阶段是C++ macOS中的CMake,预编译头文件(.pch)支持,c++,objective-c,xcode,cmake,clang,C++,Objective C,Xcode,Cmake,Clang,我正在考虑将我的项目编译从繁琐的Xcode转移到方便的CMake环境中 但是,我在macOS中找不到对模拟Xcode流的预编译头文件(.pch)的cmake支持 在Xcode中,第一阶段是ProcessPCH,其中pch文件编译根据源代码语言编译为独立文件(我的项目包含mmm和cpp文件) 即: 结果是后缀为.pch.pch的二元Macho目标 然后,为了使用项目中的每个源文件预编译pch,将以下标志添加到编译命令-include 在CMake中有什么方法可以做到这一点吗?有没有同等的替代方案
ProcessPCH
,其中pch文件编译根据源代码语言编译为独立文件(我的项目包含m
mm
和cpp
文件)
即:
结果是后缀为.pch.pch
的二元Macho目标
然后,为了使用项目中的每个源文件预编译pch,将以下标志添加到编译命令-include
在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"
)
CMake刚刚获得了对PCHs的支持,应在即将发布的3.16版本中提供,该版本将于2019-10-01发布:
target\u预编译\u头(
[校长1…]
[[校长2…]…])
目前正在讨论支持目标公司之间共享PCH:
这也包括对xcode生成器的支持
set_target_properties(
executable
PROPERTIES
XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "path/stdwx.h"
XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
)
target_precompile_headers(<target>
<INTERFACE|PUBLIC|PRIVATE> [header1...]
[<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])