gpt4 book ai didi

dependencies - 是否可以在 cmake 中包含生成的 make 样式(不是 cmake 样式)依赖项文件?

转载 作者:行者123 更新时间:2023-12-04 05:30:07 26 4
gpt4 key购买 nike

我正在与 Vala 一起工作,它首先编译为 C,然后正常从 C 编译。
valac 的一项功能(Vala 编译器)是为 .vala 生成“fast-vapi”文件。 fast-vapi 本质上是为 .vala 生成的头文件。文件。 fast-vapis 的重点是它们允许增量构建。

因此,构建项目的简化命令序列如下所示:

valac --fast-vapi=source1.vapi source1.vala # generate source1.vapi
valac --fast-vapi=source2.vapi source2.vala # generate source2.vapi
valac -C --use-fast-vapi=source2.vapi source1.vapi # generate source1.c
valac -C --use-fast-vapi=source1.vapi source2.vapi # generate source2.c

source1.c的cmake依赖时,一种方法是让它依赖于每个 fast-vapi 但它自己的。对于大型项目,这很快变得很麻烦,因为对其他 .vapis 的更改通常不会影响 source1.vala .所以 valac支持 --deps旗帜:
valac -C --deps=source1.dep --use-fast-vapi=source2.vapi source1.vapi

这会为 source1.dep 生成 make-style 依赖项在 source1.dep .例如:
source1.dep: source2.vapi source5.vapi ...

如果我在写一个普通的 Makefile ,我可以简单地做 include source1.dep .但是,我找不到 cmake 的任何类似结构。 .

如何在 cmake 中包含生成的 make 样式依赖文件?

最佳答案

如果没有更改,Vala 编译器将不会编写新的 C 文件。如果您的程序由多个源文件组成并且您重新编译,则 Vala 编译器只会更新已更改的 C 和头文件,然后您的 C 编译器的依赖进程可以选择其余的。

Vala 编译器本身使用 make 和 autotools,不提供有关 Vala 编译器和构建系统之间依赖关系的任何信息。 Vala 编译器被调用并生成 C 文件,然后 autotool 确定 C 文件依赖关系的方法接管。没有理由不能在 CMake 中使用逻辑。

关于dependencies - 是否可以在 cmake 中包含生成的 make 样式(不是 cmake 样式)依赖项文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com