2017-12-22 11 views
1

私はwafビルドツールを初めて使いました。私はグーグルで答えを求めましたが、役に立たないリンクはほとんどありません。wafスクリプトでosプラットフォームを指定する方法は?

誰でも知っていますか?

wscriptは本質的にはPythonスクリプトなので、osパッケージを使用することができますか?

+1

他のpythonスクリプトでも可能な限り、どこでも 'import os'を使うことができます。 'wscript'sは多かれ少なかれプラットフォームに依存しません。私は個人的に 'platform'を使用し、' os'は使用しません。 WindowsとLinux/Unix上で動作が異なる場合は、platform.system()if lower()。startswith( 'win'): a = 'x' else: a = 'y' '。これはあなたの質問に答えますか?それから私は答えとして完全な例を挙げます。 – user69453

+0

@ user69453:あなたのコメントを答えにすることをお勧めします。質問が変わると編集することができます。 – neuro

答えて

0

importは、他のPythonスクリプトを使用できるあらゆる時点で使用できます。

という属性を評価する代わりに、関数os-agnosticをプログラミングする場合は、platformを使用することをお勧めします。

import platform 

top = '.' 
out = 'build_directory' 

def configure(ctx): 
    pass 

def build(ctx): 
    if platform.system().lower().startswith('win'): 
     cp = 'copy' 
    else: 
     cp = 'cp' 
    ctx(rule=cp+' ${SRC} ${TGT}', source='foo.txt', target='bar.txt') 
1

DEST_*変数を使用代わりに、osモジュールを使用しないでください:オン

ctx.load('compiler_c') 
print (ctx.env.DEST_OS, ctx.env.DEST_CPU, ctx.env.DEST_BINFMT) 

waf book OSに依存しないでBuild-related commands例を書く

は、このようなものを見ることができます私のマシンではこれは('linux', 'x86_64', 'elf')を印刷します。その後、あなたはその上にディスパッチすることができます。