1

gypのドキュメントには、次の'variables'ようなセクションが記載されています。

「変数」:ファイルの他のさまざまな部分で補間および使用できる変数の定義。

(強調鉱山)。これは、含まれているgypファイルで変数を使用することを除外しているようであり、変数を設定する他のgypファイルを含める可能性も除外しているようです。

これは正しいです?これらの変数のスコープは何ですか? また、変数をグローバルに設定するにはどうすればよいですか? build/common.gypiChromium ではが多くの変数を設定していることがわかりますが、 Chromiumgyp_chromiumは plain とは異なるマジック スクリプトも使用していgypます。

4

1 に答える 1

1

変数のスコープは GYP であり、C++ のローカル変数のスコープと非常によく似ています。variables辞書で変数を定義するとしましょうFOO。で定義された変数のスコープは、 の親であるFOOディクショナリです。これらの変数は、その内部のどこでも使用でき、外部のどこでも使用できません。BARFOOBAR


変数をグローバルに設定するにはどうすればよいですか?

説明されているルールを知っていれば、それは非常に簡単です。variables辞書を gyp スクリプトの最上位辞書に追加し、その中でいくつかの変数を定義します。これらは、このスクリプトのどこでも使用できます


これは、インクルードされたgypファイルで変数を使用することを除外し、変数gypを設定する他のファイルをインクルードする可能性も除外するようです。

本当じゃない。スクリプトに含めるとinclude.gypiしましょう。最上位のディクショナリにセクションがある場合、これらの変数は のどこからでもアクセスできgenerator.gypます。明らかに、最上位の辞書に定義されていない変数にはアクセスできません。include.gypivariablesgenerator.gyp


1includes変数展開の前に解析されることに注意してください。したがって、インクルード パスで変数を使用することはできません。

于 2013-08-08T05:48:43.090 に答える