scons 自定义决策函数是否需要成为 class 成员?
Does scons customized decider function require to be class member?
我从网上搜索了如何在scons中编写我们自己的决策函数,至于how/when应该重建一个源文件,像这样:
Program('hello.c')
def decide_if_changed(dependency,target,prev_ni):
if self.get_timestamp()!=prev_ni.timestamp:
dep=str(dependency)
tgt=str(target)
if specific_part_of_file_has_changed(dep,tgt):
return true;
return false;
Decider(decide_if_changed)
我有一个 hello.c,没问题,但是当 运行 scons 时提示 python 错误:
$ scons -Q
scons: *** [o.o] NameError : global name 'self' is not defined
self 是提及 class 成员函数的 python 关键字。在 SContruct 文件中,有一个 class 但只有一个 decide_if_changed 函数。问题:
Do I have to add a class here? Why it prompts python error saying 'self' is not defined?
This example script a function call of specific_part_of_file_has_changed, is it a scons's own file that can be called by any pythong statement?
名称 self
未定义,因为文档中有错字。决策者的第二行应该是:
if dependency.get_timestamp()!=prev_ni.timestamp:
实现 specific_part_of_file_has_changed()
方法(或任何类似的确定文件是否已更改的系列步骤)完全取决于您..."customer"。毕竟你确实想要 "custom decider",对吧? ;)
我从网上搜索了如何在scons中编写我们自己的决策函数,至于how/when应该重建一个源文件,像这样:
Program('hello.c')
def decide_if_changed(dependency,target,prev_ni):
if self.get_timestamp()!=prev_ni.timestamp:
dep=str(dependency)
tgt=str(target)
if specific_part_of_file_has_changed(dep,tgt):
return true;
return false;
Decider(decide_if_changed)
我有一个 hello.c,没问题,但是当 运行 scons 时提示 python 错误:
$ scons -Q
scons: *** [o.o] NameError : global name 'self' is not defined
self 是提及 class 成员函数的 python 关键字。在 SContruct 文件中,有一个 class 但只有一个 decide_if_changed 函数。问题:
Do I have to add a class here? Why it prompts python error saying 'self' is not defined?
This example script a function call of specific_part_of_file_has_changed, is it a scons's own file that can be called by any pythong statement?
名称 self
未定义,因为文档中有错字。决策者的第二行应该是:
if dependency.get_timestamp()!=prev_ni.timestamp:
实现 specific_part_of_file_has_changed()
方法(或任何类似的确定文件是否已更改的系列步骤)完全取决于您..."customer"。毕竟你确实想要 "custom decider",对吧? ;)