Python 如何使用基于规则的任务生成器目标在Waf的源目录内输出?

Python 如何使用基于规则的任务生成器目标在Waf的源目录内输出?,python,build-system,waf,Python,Build System,Waf,我的wscript文件如下:- def build(bld): bld( rule = 'cp ${SRC} ${TGT}', source = 'a.txt', target = 'b.txt', ) 默认情况下,输出目标在生成目录build/b.txt中创建, 但是,我希望在当前wscript文件所在的源目录中创建目标。 我尝试过的一种方法是: def build(bld): bld( rule =

我的wscript文件如下:-

def build(bld):

    bld(
        rule = 'cp ${SRC} ${TGT}',
        source = 'a.txt',
        target = 'b.txt',
    )
默认情况下,输出目标在生成目录
build/b.txt
中创建, 但是,我希望在当前wscript文件所在的源目录中创建目标。 我尝试过的一种方法是:

def build(bld):

    bld(
        rule = 'cp ${SRC} b.txt',
        source = 'a.txt',
        cwd = './',
    )

这将在源目录中相对于当前wscript文件输出
b.txt
,但是我面临的问题是,由于我没有提供目标,我丢失了自动依赖项计算或重建。

我终于找到了一种方法。
def build(bld):

    bld(
        rule = 'cp ${SRC} ${TGT}',
        source = 'a.txt',
        target = bld.path.make_node('/path_you_want/b.txt')
    )
我们可以做的是将节点对象传递给目标

def build(bld):

    bld(
        rule = 'cp ${SRC} ${TGT}',
        source = 'a.txt',
        target = bld.path.make_node('/path_you_want/b.txt')
    )