Определенные флаги компилятора для определенных файлов в XCode - PullRequest
9 голосов
/ 04 мая 2010

Мне было поручено работать над проектом, который имеет некоторые запутанные атрибуты.

Проект такого характера, что он не будет компилироваться для симулятора iPhone и устройства iPhone с одинаковыми настройками компиляции. Я думаю, что это связано с необходимостью специальной компиляции для x86 или arm6 / 7 в зависимости от целевой платформы.

Таким образом, настройки сборки проекта при просмотре в представлении «Настройки сборки Xcode» не позволяют мне устанавливать определенные флаги компилятора для определенных файлов. Тем не менее, предыдущий разработчик, который работал над этим проектом, как-то объявил строку:

CE7FEB5710F09234004DE356 /* MyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7FEB5510F09234004DE356 /* MyFile.m */; settings = {COMPILER_FLAGS = "-fasm-blocks -marm -mfpu=neon"; }; };

Есть ли способ сделать это без редактирования файла проекта вручную? Я знаю, что редактирование файла проекта может привести к его полному нарушению, поэтому я бы предпочел этого не делать, поскольку я, очевидно, не знаю так много, как предыдущий разработчик.

Итак, чтобы уточнить, вопрос:

Сборка завершается неудачно при компиляции для симулятора, если я не уберу флаг -fasm-blocks. Сборка завершается неудачно при компиляции для устройства, если я не добавлю флаг -fasm-blocks. Есть ли способ установить этот флаг для каждого файла без редактирования файла проекта вручную?

Ответы [ 3 ]

7 голосов
/ 10 октября 2012

Это сообщение в блоге Джошуа Ноззи объясняет, как это сделать в Xcode 4, где он говорит:

... выберите свой проект в Навигаторе проектов, выберите соответствующую цель (у вас может быть только одна), затем выберите вкладку Фазы сборки. Разверните фазу Компиляция источников и альт! Столбец «Флаги компилятора» позволяет установить флаги каждого файла для этой цели.

7 голосов
/ 04 мая 2010

Вы можете определить дополнительные флаги компилятора для отдельных исходных файлов следующим образом:

  • сначала выберите цель, которую вы собираетесь построить
  • щелкните правой кнопкой мыши по исходному файлу
  • выберите "Получить информацию"
  • нажмите на вкладку "Сборка"
  • определите ваши дополнительные флаги компилятора

Однако в вашем случае кажется, что лучшим решением будет просто дублировать цель и иметь две цели - одну для реального устройства и одну для симулятора. Наследуйте общие параметры сборки на уровне проекта и при необходимости настраивайте параметры сборки для каждой цели.

2 голосов
/ 04 мая 2010

Вызовите GetInfo для конкретного файла, вы можете установить там настройки Build для этого файла. Об этом см. Также Руководство по управлению проектами XCode.

...