相关疑难解决方法(0)

立即构建工具,以便稍后在相同的CMake运行中使用

我有一个有趣的鸡蛋问题和一个潜在的解决方案(请参阅我的帖子回答),但该解决方案以不寻常的方式使用CMake.欢迎更好的替代方案或评论.

问题:

该问题的简单版本可以描述为具有以下特征的单个CMake项目:

  1. 其中一个构建目标是命令行可执行文件,我将其命名为mycomp,其源代码在a mycompdir中,并且无法对该目录的内容进行任何修改.
  2. 该项目包含文本文件(我将其称为foo.mybar.my),需要mycomp运行它们以生成一组C++源代码和标题以及一些 CMakeLists.txt定义从这些源构建的库的文件.
  3. 同一项目中的其他构建目标需要链接到由这些生成的CMakeLists.txt文件定义的库.这些其他目标也有#include一些生成标题的源.

您可以将mycomp视为类似编译器的内容,将第2步中的文本文件视为某种源文件.这提出了一个问题,因为CMake CMakeLists.txt在配置时需要文件,但mycomp在构建时间之前不可用,因此在第一次运行时不能及时创建CMakeLists.txt文件.

NON-解答:

通常情况下,基于ExternalProject的超级构建安排将是一个潜在的解决方案,但上面是我正在处理的实际项目的相当简化,我没有自由将构建分成不同的部分或执行其他大型规模重组工作.

cmake

15
推荐指数
1
解决办法
2821
查看次数

标签 统计

cmake ×1