2011-12-07 17 views
2

pythonスクリプトにプッシュされた後にビルドディレクトリに送信したいファイルがあります。私はどのようにこれをwafでやるのだろうか?例えばWaf:生成されたファイルを出力するには?

、私はこのようなファイルを持っていた場合:

VERSION=%%VERSION%% 
DATADIR=%%DATADIR%% 

をそして、WAFビルドディレクトリにあることをoutputing前に%% VERSION %%と%% DATADIR %%を交換したかった、私はどのように行うのでしょうそれ?

私はそれはの線に沿って何かを知っている:

ctx(rule='???' 
source='versionfile.ver', 
target='versionfile.out' 
) 

しかし、私は、ルールがどうなるか分かりません。

また、そのファイルが生成されたら、それを他のタスクで使用することはできますか?

答えて

3

あなたは、単にあなたのversionfile.verファイルの入力を代用したい場合は、この

[email protected]@ 
[email protected]@ 

のようになります。値が

bld.new_task_gen (
    features = "subst", 
    source= "versionfile.ver", 
    target= "versionfile.out", 
    VERSION = bld.env['VERSION'], 
    DATADIR = bld.env['DATADIR']) 

置換されますので、今、あなたは、であるためには、次のタスクを使用することができますbldからバージョンにアクセスするには、設定時に定義する必要があります

conf.env['VERSION'] = '0.7.0' 

このwafタスクを実際に見つけるhereこのタスクの出力ファイルは、他のタスクの入力として使用することができます。

ただし、使用可能なPythonスクリプトまたは任意のコマンドを使用してソースファイルに渡したいときに、次を使用することができます。

lib_typelib = bld.new_task_gen(
    name = 'versionfile', 
    source = 'versionfile.ver', 
    target = 'versionfile.out', 
    rule='/path/to/your/python/script ${SRC} -o ${TGT}') 

使用可能なサンプルhereこの場合、G-IR-もありますあなたの場合にはPythonスクリプトとなるコンパイラが使われます。

+0

subst機能は私が以前に見たことのない正確に私が探していたものです。 – Jeff

関連する問題