Xcode: Как установить среду отладки с несколькими файлами xcconfig? - PullRequest
15 голосов
/ 10 сентября 2009

Я использую Xcode 3.2 с xcconfig файлами. Файлы организованы по цели. Например, у меня есть файл debug.xcconfig и файл release.xcconfig. Оба используют общие настройки, поэтому я добавил файл shared.xcconfig, который включен в оба.

Файл shared.xcconfig выглядит следующим образом:

GCC_C_LANGUAGE_STANDARD = c99
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_UNUSED_VARIABLE = YES
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS

Файл debug.xcconfig выглядит следующим образом:

#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0

Теперь я хотел бы добавить определение препроцессора DEBUG в файл debug.xcconfig. Как показано в этом вопросе , должен работать следующий метод:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"

Это не работает в Xcode 3.2. В документации XCode также явно упоминается, что изменение переменных невозможно, вы можете только перезаписать их.

Как бы вы, ребята, решили эту проблему?

Ответы [ 4 ]

19 голосов
/ 10 сентября 2009

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

В shared.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz

В debug.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG)

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

5 голосов
/ 07 января 2013

Вы также можете использовать следующий формат в файле .xcconfig. (работает в xcode 4, не тестировался в xcode 3). Это только пример, похоже, работает для всех настроек.

ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64
2 голосов
/ 27 сентября 2012

Должны работать следующие:

xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) BAR=1'
0 голосов
/ 26 октября 2011

Как насчет использования $ (наследуется)?

GCC_PREPROCESSOR_DEFINITIONS = $ (наследуется) DEBUG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...