在CMake中生成的依赖项文件

在CMake中生成的依赖项文件,cmake,Cmake,我们有一些源处理工具,可以从多个“片段”生成原始汇编文件 当从make使用这些工具时,我们可以通过让源处理工具发出“依赖文件”来确保最新的构建,就像gcc使用其-MD标志一样 例如,假设我有一个程序集模板文件Frob.asmtmpl,以及一个名为asm_templater的模板引擎,它的作用类似于一个增强的C预处理器 我们运行asm_templater-d Frob.asmtmpl,它生成Frob.s和Frob.d。后者是一个makefile依赖项片段,如下所示: Frob.s:Frob.asm

我们有一些源处理工具,可以从多个“片段”生成原始汇编文件

当从
make
使用这些工具时,我们可以通过让源处理工具发出“依赖文件”来确保最新的构建,就像
gcc
使用其
-MD
标志一样

例如,假设我有一个程序集模板文件
Frob.asmtmpl
,以及一个名为
asm_templater
的模板引擎,它的作用类似于一个增强的C预处理器

我们运行
asm_templater-d Frob.asmtmpl
,它生成
Frob.s
Frob.d
。后者是一个makefile依赖项片段,如下所示:

Frob.s:Frob.asmtmpl ThingIncludedByFrob.asmclude其他thingincluded.asmclude

在基于makefile的构建系统中,我们将
include(Frob.d)
如果存在,告诉make
Frob.asmtmpl
的实际dep是什么

我们如何为CMake做类似的事情?似乎CMake(生成然后构建)的两个过程的性质,以及需要支持多个生成引擎,导致了这样一个结论,即必须有某种原生的CMake方法来实现这一点,我还没有弄清楚


我需要向CMake指出,
Frob.s
之间存在依赖关系。和
内容包括dbyfRob.asmincl
,但这都是由
Frob.asmtmpl
的内容决定的,因此需要通过工具提取

关键是您必须知道“源处理工具”的输出。如果输出名称确实不同(例如,取决于输入名称),则很难实现(您必须在CMake中实现输入到输出的名称转换)。我没有搜索过类似的问题,但我很肯定以前见过。你能提供更多你已经尝试过的东西的细节吗?为什么它们不能满足你的需求?输出很容易描述,但实际上是计算的DEP。为了清楚起见,我将对问题进行编辑:我希望编辑的目的是为了澄清。我面临着同样的问题,你找到解决方案了吗?谢谢