Как определить версию Xcode при выборе с помощью Bazel

Есть ли способ использовать значение версии Xcode в select или каком-либо эквивалентном динамическом механизме?

Мотивация для этого заключается в том, что мы должны поддерживать несколько версий Xcode в нашем конвейере и на наших рабочих столах разработчиков. При поддержке нескольких версий Xcode с одной и той же инфраструктурой сборки желательно программно изменить аргументы командной строки, используемые для CFLAGS, например, указать разные флаги оптимизации, отладки и предупреждения. Например, мы хотели бы указать определенные флаги только для Xcode 8.3 или выше.

Я вижу, что есть фрагменты конфигурации для xcode_toolchain и xcode_version, но не думаю, что смогу их выбрать. Мы бы предпочли не сообщать Bazel, какую версию Xcode он использует (для целей CFLAGS), либо с помощью спецификации конфигурации командной строки, либо путем динамического создания BUILD файлов, если это вообще возможно, тем более что Bazel уже должен знать, какую версию он использует.

Есть ли лучший рекомендуемый подход для этого сценария?


person Thomas Marsh    schedule 03.04.2017    source источник


Ответы (2)


Я вижу, что есть фрагменты конфигурации для xcode_toolchain и xcode_version, но не думаю, что смогу их выбрать.

Какие проблемы у вас возникают с последним?

Если вы укажете параметр конфигурации с помощью xcode_version, например:

config_setting(
  name = "xcode_7_1" + vers,
  values = {"xcode_version": "7.1"},
)

Вы должны иметь возможность выбрать это.

person Christopher Parsons    schedule 10.05.2017