XCBuild changes the way xcconfig variables are evaluated. In short, all config file assignments are now considered in part of the evaluation. When using the new build system and an .xcconfig file contains multiple assignments of the same build setting: - Later assignments using $(inherited) will inherit from earlier assignments in the xcconfig file. - Later assignments not using $(inherited) will take precedence over earlier assignments. An assignment to a more general setting will mask an earlier assignment to a less general setting. For example, an assignment without a condition ('FOO = bar') will completely mask an earlier assignment with a condition ('FOO[sdk=macos*] = quux'). This affects some of our .xcconfig files, in that sometimes platform- or sdk-specific definitions appear before the general definitions. Under the new evaluations rules, the general definitions alway take effect because they alway overwrite the more-specific definitions. The solution is to swap the order, so that the general definitions are established first, and then conditionally overwritten by the more-specific definitions.
<rdar://problem/47532439>
Created attachment 360126 [details] Patch
Comment on attachment 360126 [details] Patch I was under the impression that order didn't matter in these files, but if these changes are necessary, ok.
Your impression used to be correct.
Comment on attachment 360126 [details] Patch Clearing flags on attachment: 360126 Committed r240508: <https://trac.webkit.org/changeset/240508>
All reviewed patches have been landed. Closing bug.