I'm using Xcode and .xcconfig files. I'm trying to append some values in the preprocessor definitions, but I simply can't make it work.
I tried the following (as well as many variations of this), but no luck so far:
GCC_PREPROCESSOR_DEFINITIONS = '$(GCC_PREPROCESSOR_DEFINITIONS) NEW_VALUE'
The NEW_VALUE
symbol is simply never added to the preprocessor definitions.
Does anyone had success appending new values to variables in xcconfig files?
For reasons stated in other answers to this question, you can't inherit values easily.
I recommend defining your settings in cascade. Let's assume APP is your project prefix and make this simple defining only a few CFLAGS:
platform.xcconfig:
APP_PLATFORM_CFLAGS = -DMAS=1
project.xcconfig:
#include "platform.xcconfig"
APP_PROJECT_CFLAGS = -DBETA=1
target-one.xcconfig:
#include "project.xcconfig"
APP_TARGET_CFLAGS = -DSUPER_COOL=1
#include "merge.xcconfig"
target-two.xcconfig:
#include "project.xcconfig"
APP_TARGET_CFLAGS = -DULTRA_COOL=1
#include "merge.xcconfig"
merge.xcconfig:
OTHER_CFLAGS = $(inherited) $(APP_PLATFORM_CFLAGS) $(APP_PROJECT_CFLAGS) $(APP_TARGET_CFLAGS)
Then, you'll base each of your targets build configurations on target-xxx.xcconfig
. A real project will use more complex setups, using a configuration file for the project and a different one for the target, but you get the idea.
Also, remember that $(inherited)
refers to higher level in the hierarchy, not earlier. For instance, it inherits from Project level at Target level. Not sure if this apply to Xcode 4 too.
This is a simplification of GTM, go there to learn more.