Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用SCON创建任意配方?_Python_Makefile_Scons - Fatal编程技术网

Python 如何使用SCON创建任意配方?

Python 如何使用SCON创建任意配方?,python,makefile,scons,Python,Makefile,Scons,我想要一个替代方案,在这里我可以轻松地使用一些Python代码生成一些中间文件 我碰上了声称与Make相似的烤饼。我想将这种Makefile转换成scon,其中对Python的调用将被转换成scon本身 .PHONY all clean mrproper all: out A=$(wildcard *.a) B=$(A:.b=.a) C=$(B:.c=.b) D=$(wildcard *.d) C=$(D:.c=.d) -include $(wildcard *.dep) *.b :

我想要一个替代方案,在这里我可以轻松地使用一些Python代码生成一些中间文件

我碰上了声称与Make相似的烤饼。我想将这种Makefile转换成scon,其中对Python的调用将被转换成scon本身

.PHONY all clean mrproper

all: out

A=$(wildcard *.a)
B=$(A:.b=.a)
C=$(B:.c=.b)
D=$(wildcard *.d)
C=$(D:.c=.d)

-include $(wildcard *.dep) 

*.b : *.a
    python -mfoo a2b $< -o $@ -M $@.dep

*.c : *.b
    python -mfoo b2c $< -o $@

*.e : *.d
    python -mfoo d2e $< -o $@

out: $(E) $(C)
    python -mfoo out $^ -o $@

clean: 
    $(RM) $(B) $(C) $(E)

mrproper: clean
    $(RM) out *.dep
它适用于标准扩展(
*.c
*.s
,…)。不幸的是,我不想做一个程序,我想指定配方。换言之,我正在寻找更像这样的东西:

env.append(env.Recipe(target='%.b', deps=['out/%.a', 'out'], builder=foo_a2b))

这听起来像是您想要编写/定义自己的构建器,用SCons的说法。请看一下我们的网站,它试图解释如何向SCons教授新的“构建食谱”。请注意,如何始终为操作指定一个真正的Python可调用(例如函数)而不是一个字符串。您可能还想查看(特别是关于“操作对象”的部分)和,以更好、更详尽地介绍此构建系统

最后,欢迎加入我们的团队,并在那里提出后续问题。我们的社区总是渴望帮助

env.append(env.Recipe(target='%.b', deps=['out/%.a', 'out'], builder=foo_a2b))