У меня есть проект с одним основным приложением Cocoa, кучей плагинов и парой вспомогательных приложений. У вспомогательных приложений есть свои собственные цели, и, поскольку я хочу, чтобы приложение могло быть построено без плагинов, у основного приложения есть своя собственная цель (назовите ее AppTarget), но я обычно строю все это в совокупной цели (назовите ее TargetA). У меня также есть еще одна Aggregate Target с TargetA, другой плагин и дополнительная фаза сборки файлов копирования (TargetB). Это все работает, как ожидалось. Я пытаюсь создать новую Aggregate Target, TargetC, которая содержит TargetA и в которой будет (но пока нет) фаза сборки сценария запуска оболочки.
Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь использовать GCC_PREPROCESSOR_DEFINITIONS, чтобы # определить символ TARGETC для условной компиляции (#ifdef TARGETC ... #endif), но он не включается в параметры сборки когда я смотрю в журнале сборки и поведение приложения совпадает с журналом сборки - GCC_PREPROCESSOR_DEFINITIONS не удалось (я пробовал и TARGETC, и TARGETC = 1. Я попытался добавить пользовательскую настройку OTHER_CFLAGS (установив ее в -DTARGETC = 1 ), но это тоже не сработало.
Документация гласит, что пользовательские настройки для совокупных целей сводятся к их подзадачам, но кажется, что это снижается только на один уровень - TargetA может получать его, но AppTarget точно не знает. Это ошибка, ожидаемое поведение или я что-то не так делаю?