2013-03-16 3 views
1

gyp documentation документирует 'variables' раздел как это:Какова область видимости переменных в gyp?

«переменные»: Определения переменных, которые могут быть интерполированы и , используемые в различных других частях файловой.

(акцент мой). Это, по-видимому, исключает использование переменных в включенных gyp-файлах, а также исключает возможность включения других gyp-файлов, которые устанавливают переменные.

Это правильно? Какова область этих переменных и как вы устанавливаете переменные глобально? Я вижу, что в Chromium build/common.gypi задает множество переменных, но Chromium также использует магический скрипт gyp_chromium, который отличается от простого gyp.

ответ

1

Объем переменных GYP очень похож на область локальных переменных в C++. Предположим, вы определили переменную в словаре variablesFOO. Объем переменных, определенных в FOO, - это словарь BAR, который является родителем FOO. Вы можете использовать эти переменные где-нибудь внутри BAR и нигде за его пределами.


как установить переменные глобально?

Зная описанные правила, это очень просто. Добавьте словарь variables в словарь верхнего уровня вашего gyp-скрипта и определите в нем некоторые переменные. Они будут доступны в любом месте в этом скрипте.


Это, кажется, исключает использование переменных в включаемых файлах Gyp и также исключают возможность включения других gyp файлов, установленных переменных.

Это неправда. Допустим, вы включили include.gypi в скрипт generator.gyp. Если include.gypi имеет variables раздел в словаре верхнего уровня, эти переменные будут доступны в любом месте в generator.gyp. Очевидно, что переменные, определенные не в словаре верхнего уровня, не будут доступны.


Имейте в виду, что includes разобраны до расширения переменных. Таким образом, вы не можете использовать переменные в include-пути.

Смежные вопросы