2

問題は次のとおりです。次のように定義されたいくつかの変数がある環境があります。

env = Environment(CPPPATH=['#/include'])

場合によっては、環境を不必要に汚染しないように、環境に永続的に追加してはならないいくつかの追加の値を使用してビルダーを呼び出す必要があります。

1つの方法は、環境の値とマージすることにより、ビルダー呼び出しに追加の値を追加することです。

env.Object('test.c', CPPPATH=['#/some_other_include_path']+env['CPPPATH'])

それを行うためのよりエレガントな方法はありますか?

4

1 に答える 1

3

これを行うには、次のようにenvのクローンを作成して追加します。

clonedEnv = env.Clone()
clonedEnv.Append(CPPPATH=['#anotherPath'])
clonedEnv.Object('test.c')

あなたがしていることを行うためのよりPythonの(そして効率的な)方法は、python list.extend()関数を使用することです:

cpppath = ['path1', 'path2']
cpppath.extend(env['CPPPATH'])
env.Object('test.c', CPPPATH = cpppath)
于 2012-04-28T18:32:19.470 に答える