对于“简单的”模板系统有什么建议?

时间:2018-10-12 16:41:28

标签: makefile templating

基于How do I make multiple targets from a set of templates for the source?,我现在想实现一个简单的模板引擎。

我很高兴使用sed进行直接替换,但我也希望有条件。

例如,如果模板看起来像这样:

This is the file for engine:#if version != 'latest'##version#-#endif#alpine

不同版本(例如7.0和最新版本)的输出。

This is the file for engine:7.0-alpine
This is the file for engine:alpine

sed中写这个词虽然可能,但这确实意味着我不得不重新发明轮子。

对于unix环境,有哪些关于简单模板的建议?

1 个答案:

答案 0 :(得分:0)

GNUmake是一种完整但很尴尬的功能编程语言。这样做的好处是您可以随意编码,但是您喜欢,因为a)没有“ GNUmake的教会”会看不起您的编码风格,并且b)它的外观看起来很难看。也就是说,从源代码库中获得一些帮助,可以掩盖许多奇怪之处,这并不是一个坏建议。

使用gmtt,您的示例如下所示:

include gmtt.mk

version = latest

VERSION_STR = $(if $(call str-eq,$(version),latest),,$(version))
$(info This is the file for engine: $(VERSION_STR)alpine)