我目前正在编写一个实用程序库,它将附带预编译的DLL文件和库的头文件。截至目前,有一大堆头文件,但我想将它们全部编译成一个头文件(有点像只预处理Transform
指令)。
我想知道,使用CMake是否以及如何使用这样的一代。
此致 Lehks
答案 0 :(得分:0)
这些工具并非特定于CMake,但可以在CMake内部调用。
我最近收集了一些链接,以为ApprovalTests.cpp创建一个单头发行版。
我最初将它们记录在对an issue in podsiadly/ImageApprovals的评论中:这个答案是为了使这些信息更易于共享。
选项:
inline
添加到输出中,或者将.cpp文件中的所有代码放入输出中的一个位置,该文件仅被编译一次。
CATCH_CONFIG_MAIN
的工作方式。inline
.cpp
个文件inline
:具有(可自定义)约定,用于将inline_t
放入源代码中,其中inline
应该包含在源代码中生成的标题#include
行以及各种模板标记,语法和类似内容.cpp
文件吗?inline
// ~*~* CATCH_CPP_STITCH_PLACE *~*~
-在include/internal/catch_impl.hpp中找到该文本,并按字母顺序粘贴所有.cpp文件#include
(在preprocess_file
中)a.hpp
包含b.hpp
,则b.hpp
将首先被处理,SingleHeaderGen.generate
)#ifdef/#endif
中。ImageApprovals_IMPLEMENT
时,.cpp文件中的.cpp
个文件.cpp
个文件