NMake 可选依赖项

Posted

技术标签:

【中文标题】NMake 可选依赖项【英文标题】:NMake Optional Dependencies 【发布时间】:2016-08-22 19:49:11 【问题描述】:

我们目前正在将我们古老的构建系统从一堆批处理脚本升级为使用 NMake 的 makefile 系统。这很有挑战性,因为我们使用了一种最终被翻译成 C++ 的自定义中间语言,我们的一些翻译人员可以生成 10 个文件,这些文件在文件名中有共同的部分。另一个具有挑战性的事情是我们使用一堆 CSV 文件来配置我们的接口,这些文件被传递给我们的配置工具,从而生成更多的源代码文件。现在我专注于为我们的配置文件创建简单的规则,但如果依赖项存在,我似乎无法找到一种将依赖项与规则关联的方法。我尝试使用 $(wildcard xxx.csv) 但发现此命令在 NMake 中不存在,就像在 GNU Make 中一样。

如果我有两个始终存在的依赖 csv 文件和仅在我的项目需要它时才存在的第三个 csv 文件,我该如何创建我的规则以便它执行并运行我的命令?

【问题讨论】:

【参考方案1】:

[..] 仅在我的项目需要时才存在?

这有点不清楚。假设有一个命令 - 根据某些外部情况 - 可能会生成第三个 csv 文件,您可以使用“stamp file”(我认为他们在 NMAKE 中将其称为“伪目标”):

stamp:
    command_that_might_generate_csv3
    touch stamp # updates timestamp of "stamp" (or creates it)

target: csv1 csv2 stamp
    command_using_all_of csv1 csv2 csv3

【讨论】:

抱歉,这有点含糊。让我澄清一下。我正在尝试使这个 makefile 有点通用,以便我们可以将它用于使用此工具集的多个项目。如果有任何特定于项目的内容,它将被移至单独的文件中。所以我们的系统有一组定义的 CSV 文件,用于根据我们插入机架的卡来配置系统。少数 CSV 文件必须存在,其他仅在使用相关硬件时才必须存在。希望这是有道理的

以上是关于NMake 可选依赖项的主要内容,如果未能解决你的问题,请参考以下文章

Maven 可选的依赖和依赖排除

在 Maven 中隐式包含可选依赖项

Gradle 不包含可选依赖

maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

Maven中的可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)