macOS中的CMake,预编译的头文件(.pch)支持

佐哈尔81

我当时正在考虑将我的项目编译从繁琐的Xcode移到方便的CMake环境中。

但是,我无法在模拟Xcode流的macOS中找到对预编译头文件(.pch)的cmake支持。

在Xcode中,第一步是ProcessPCH根据源语言将pch文件编译为独立文件(我的项目包含m mmcpp文件)

IE浏览器:

1. objective-c(.m): `-x objective-c-header` 
2. objective-c++(.mm): `-x objective-c++-header` 
3. c++(.cpp): `-x c++-header`
... 

结果是带有后缀的二进制Macho目标.pch.pch

然后,为了使用项目中的每个源文件对pch进行预编译,将以下标志添加到编译命令中 -include <pch_output_file_from_the_previous_stage>

在CMake中有什么办法吗?有什么等效的选择吗?

编辑:

我透露曾经可以使用常规.h文件和GCC编译器为macOS项目设置预编译的标头,但我还没有找到clang/clang++Xcode现在使用的相应标志

set_target_properties(
    executable
    PROPERTIES
    XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "path/stdwx.h"
    XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
)
剑龙

CMake刚刚获得了对PCH的支持,它将在即将于2019年10月1日发布的3.16版本中提供:

https://gitlab.kitware.com/cmake/cmake/merge_requests/3553

  target_precompile_headers(<target>
    <INTERFACE|PUBLIC|PRIVATE> [header1...]
    [<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])

关于支持在目标之间共享PCH的讨论正在进行中:https ://gitlab.kitware.com/cmake/cmake/issues/19659

这也包括对xcode生成器的支持。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章