Re: Target settings not inheriting from Project settings
Re: Target settings not inheriting from Project settings
- Subject: Re: Target settings not inheriting from Project settings
- From: Christiaan Hofman <email@hidden>
- Date: Wed, 23 Jun 2010 20:49:32 +0200
On Jun 23, 2010, at 18:46, Christiaan Hofman wrote:
>
> On Jun 23, 2010, at 18:02, Steve Mills wrote:
>
>> I'm looking at something odd in a project. The Project Settings (based on nothing) show these 2 settings as NOT defined at this level:
>>
>> GCC_INLINES_ARE_PRIVATE_EXTERN = NO
>> GCC_SYMBOLS_PRIVATE_EXTERN = NO
>>
>> But in the Target Settings (also based on nothing), those same 2 settings have a different default settings when also NOT defined at this level:
>>
>> GCC_INLINES_ARE_PRIVATE_EXTERN = YES
>> GCC_SYMBOLS_PRIVATE_EXTERN = YES
>>
>> I thought the Target Settings were supposed to be the same value as the Project Settings when they are not defined to be different. Why is this not the case here? Xcode 3.2.1.
>>
>> Steve Mills
>> Drummer, Mac geek
>
> AFAICS the docs don't say anything about settings that are not defined at any level. I am also somewhat confused because of that. But here is how I interpret it. Your general expectation is certainly not correct for default settings, it is only true for settings that are set anywhere in a (higher) level. Essentially build settings on a particular level really seem to have three types of settings at each level, not two as the UI and the docs seem to suggest. 1. settings defined at that level, 2. settings inherited from a higher level and 3. settings that are not set (which get a default value). It's just very confusing that the UI does not show a difference between the second and third type. For the third type, the default value actually depends on the level (project or target) as well as the type of target (it also seems to depend on the project version). This makes sense, as for instance some settings should have a different default for apps, frameworks, CLTs, etc (and they do!). For instance, the "Mach-O Type" setting by default is "Executable" for an app target, but empty for the project level, which of course makes sense. And bundle targets have an Info.plist File setting, while non-bundle targets and project levels don't. Now of course Apple should do some more effort in its docs to make this distinction and tell us a bit about how it determines the default values, it can certainly be considered a documentation bug (think I'll file one.)
>
> Christiaan
>
Bug filed, rdar://problem/8123034.
Christiaan
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden