【发布时间】:2020-08-02 22:04:06
【问题描述】:
我的 C 应用程序可以使用不同的模式构建,这些模式的行为取决于config.h 的内容。
在我的 meson.build 文件中,我使用函数 configure_file() 生成此标头。
现在我想改进我的构建系统,以便在单个构建中为多个模式编译二进制文件。这意味着我必须同时管理不同版本的config.h。
我的计划是创建不同版本的config.h 并将它们保存在不同的文件夹中。然后,为每个 Meson 目标自定义包含目录,以选择我正在构建的 mode 的标题。
不幸的是,我发现您无法在configure_file() 的output 选项中指定子文件夹。该文件将始终创建在与当前正在执行的 meson.build 相同的位置。
这意味着我总是必须包含'.' 并且无法区分不同的模式。注意:更改 C 源文件中的 #include 指令不是一种选择。
有没有办法在 Meson 中解决这个问题?
【问题讨论】:
-
与其尝试将 config.h 保存到不同的目录,是否可以先更改目录?即: mkdir config1 && cd config1 &&
&& mkdir ../config2 && cd ../config2 && 如果不是这样,那么可能运行一个循环: for i in (config1, config2);执行 mkdir $i; mv config.h $i;完成 -
感谢您的评论,是否可以直接从介子文件中移动标题而不是使用 bash 脚本?
-
不知道,抱歉。这不是我使用的工具,这些建议只是我过去遇到类似情况的想法。
标签: c meson-build