CMake:生成单个头文件

Leh*_*hks 5 c++ cmake

我目前正在编写一个实用程序库,该库将附带一个预编译的 DLL 文件和库的头文件。到目前为止,有一大堆头文件,但我想将它们全部编译成一个头文件(有点像只预处理#include指令)。

我想知道,是否以及如何使用 CMake 实现这样的一代。

真诚的,莱克斯

Cla*_*rae 2

这些工具并非特定于 CMake,但可以在 CMake 内部调用。

我最近收集了一些链接来为ApprovalTests.cpp创建单标头版本。

我最初将它们记录在podsiadly/ImageApprovals 中的一个问题的评论中:这个答案是为了使该信息更容易共享。

C++ - 单标头发布脚本

选项:

  • 其中一些工具仅将头文件组合在一起,如果您的主源代码仅包含头文件,那么这很好。
  • 其他人也有一种方法来提取 .cpp 文件,要么添加inline到输出,要么将 .cpp 文件中的所有代码放入输出中的一个位置,这只编译一次。
    • CATCH_CONFIG_MAIN例如,这就是 Catch2 的工作原理。

自称一般

  • 库姆
    • 使用Python
    • 没有提到添加inline
  • 令人兴奋的
    • C++程序
    • 是否具体解释了拉入.cpp文件
    • 是否确认需要添加inline.cpp 中的某些函数:有一个(可定制的)约定用于放入inline_t源代码,其中inline应包含在生成的标头中
  • 科拉德·阿克梅
    • 使用Python
    • 您创建一种模板文件,其中包含#include行、各种模板标记、Pragmas 等
    • 没有提到拉入.cpp文件吗?
    • 没有提到添加inline

图书馆特定