How to append values in xcconfig variables?

前端 未结 8 743
借酒劲吻你
借酒劲吻你 2020-12-12 21:58

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

8条回答
  •  清歌不尽
    2020-12-12 22:48

    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.

提交回复
热议问题