Update WebKitAdditions.xcconfig with correct order of variable definitions
authorkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Jan 2019 22:19:25 +0000 (22:19 +0000)
committerkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 25 Jan 2019 22:19:25 +0000 (22:19 +0000)
https://bugs.webkit.org/show_bug.cgi?id=193793
<rdar://problem/47532439>

Reviewed by Alex Christensen.

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 always 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.

Source/JavaScriptCore:

* Configurations/Version.xcconfig:

Source/ThirdParty/libwebrtc:

* Configurations/Version.xcconfig:

Source/WebCore:

No new tests since there should be no observable behavior difference.

* Configurations/Base.xcconfig:
* Configurations/Version.xcconfig:

Source/WebKit:

* Configurations/BaseTarget.xcconfig:
* Configurations/Version.xcconfig:
* Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/Version.xcconfig:
* Configurations/WebKitLegacy.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240508 268f45cc-cd09-0410-ab3c-d52691b4dbfc

14 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/Configurations/Version.xcconfig
Source/ThirdParty/libwebrtc/ChangeLog
Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
Source/WebCore/ChangeLog
Source/WebCore/Configurations/Base.xcconfig
Source/WebCore/Configurations/Version.xcconfig
Source/WebKit/ChangeLog
Source/WebKit/Configurations/BaseTarget.xcconfig
Source/WebKit/Configurations/Version.xcconfig
Source/WebKit/Configurations/WebKit.xcconfig
Source/WebKitLegacy/mac/ChangeLog
Source/WebKitLegacy/mac/Configurations/Version.xcconfig
Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig

index 60c4a71..e901570 100644 (file)
@@ -1,5 +1,36 @@
 2019-01-25  Keith Rollin  <krollin@apple.com>
 
+        Update WebKitAdditions.xcconfig with correct order of variable definitions
+        https://bugs.webkit.org/show_bug.cgi?id=193793
+        <rdar://problem/47532439>
+
+        Reviewed by Alex Christensen.
+
+        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 always 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.
+
+        * Configurations/Version.xcconfig:
+
+2019-01-25  Keith Rollin  <krollin@apple.com>
+
         Update existing .xcfilelists
         https://bugs.webkit.org/show_bug.cgi?id=193791
         <rdar://problem/47201706>
index 585cb91..c5a3f6f 100644 (file)
@@ -33,12 +33,12 @@ BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));
 SHORT_VERSION_STRING = $(SHORT_VERSION_STRING_$(CONFIGURATION))
 
 // The system version prefix is based on the current system version.
-SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 SYSTEM_VERSION_PREFIX = $(SYSTEM_VERSION_PREFIX_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
 SYSTEM_VERSION_PREFIX_macosx_101200 = 12;
 SYSTEM_VERSION_PREFIX_macosx_101300 = 13;
 SYSTEM_VERSION_PREFIX_macosx_101400 = 14;
 SYSTEM_VERSION_PREFIX_macosx_101500 = 15;
+SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 
 // The production build always uses the full version with a system version prefix.
 BUNDLE_VERSION_Production = $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION);
index 7e16131..f97a53a 100644 (file)
@@ -1,3 +1,34 @@
+2019-01-25  Keith Rollin  <krollin@apple.com>
+
+        Update WebKitAdditions.xcconfig with correct order of variable definitions
+        https://bugs.webkit.org/show_bug.cgi?id=193793
+        <rdar://problem/47532439>
+
+        Reviewed by Alex Christensen.
+
+        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 always 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.
+
+        * Configurations/Version.xcconfig:
+
 2019-01-22  Youenn Fablet  <youenn@apple.com>
 
         Resync libwebrtc with latest M72 branch
index 585cb91..c5a3f6f 100644 (file)
@@ -33,12 +33,12 @@ BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));
 SHORT_VERSION_STRING = $(SHORT_VERSION_STRING_$(CONFIGURATION))
 
 // The system version prefix is based on the current system version.
-SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 SYSTEM_VERSION_PREFIX = $(SYSTEM_VERSION_PREFIX_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
 SYSTEM_VERSION_PREFIX_macosx_101200 = 12;
 SYSTEM_VERSION_PREFIX_macosx_101300 = 13;
 SYSTEM_VERSION_PREFIX_macosx_101400 = 14;
 SYSTEM_VERSION_PREFIX_macosx_101500 = 15;
+SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 
 // The production build always uses the full version with a system version prefix.
 BUNDLE_VERSION_Production = $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION);
index 34de67a..71c5f71 100644 (file)
@@ -1,5 +1,39 @@
 2019-01-25  Keith Rollin  <krollin@apple.com>
 
+        Update WebKitAdditions.xcconfig with correct order of variable definitions
+        https://bugs.webkit.org/show_bug.cgi?id=193793
+        <rdar://problem/47532439>
+
+        Reviewed by Alex Christensen.
+
+        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 always 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.
+
+        No new tests since there should be no observable behavior difference.
+
+        * Configurations/Base.xcconfig:
+        * Configurations/Version.xcconfig:
+
+2019-01-25  Keith Rollin  <krollin@apple.com>
+
         Update existing .xcfilelists
         https://bugs.webkit.org/show_bug.cgi?id=193791
         <rdar://problem/47201706>
index f2d8dd3..30519ba 100644 (file)
@@ -154,8 +154,8 @@ WK_XCODE_VERSION_BEFORE_9_0800 = YES;
 WK_XCODE_VERSION_BEFORE_9_0700 = YES;
 
 WK_USER_LTO_MODE = $(WK_USER_LTO_MODE_$(WK_LTO_MODE));
-WK_USER_LTO_MODE_full[arch=i386] = $(WK_USER_LTO_MODE_thin);
 WK_USER_LTO_MODE_full = YES;
+WK_USER_LTO_MODE_full[arch=i386] = $(WK_USER_LTO_MODE_thin);
 WK_USER_LTO_MODE_thin = YES_THIN;
 WK_USER_LTO_MODE_none = NO;
 WK_USER_LTO_MODE_ = $(WK_DEFAULT_LTO_MODE);
index 01aee66..42d9ee5 100644 (file)
@@ -33,12 +33,12 @@ BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));
 SHORT_VERSION_STRING = $(SHORT_VERSION_STRING_$(CONFIGURATION))
 
 // The system version prefix is based on the current system version.
-SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 SYSTEM_VERSION_PREFIX = $(SYSTEM_VERSION_PREFIX_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
 SYSTEM_VERSION_PREFIX_macosx_101200 = 12;
 SYSTEM_VERSION_PREFIX_macosx_101300 = 13;
 SYSTEM_VERSION_PREFIX_macosx_101400 = 14;
 SYSTEM_VERSION_PREFIX_macosx_101500 = 15;
+SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 
 // The production build always uses the full version with a system version prefix.
 BUNDLE_VERSION_Production = $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION);
index 1b19e78..2e0e8d2 100644 (file)
@@ -1,5 +1,38 @@
 2019-01-25  Keith Rollin  <krollin@apple.com>
 
+        Update WebKitAdditions.xcconfig with correct order of variable definitions
+        https://bugs.webkit.org/show_bug.cgi?id=193793
+        <rdar://problem/47532439>
+
+        Reviewed by Alex Christensen.
+
+        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 always 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.
+
+        * Configurations/BaseTarget.xcconfig:
+        * Configurations/Version.xcconfig:
+        * Configurations/WebKit.xcconfig:
+
+2019-01-25  Keith Rollin  <krollin@apple.com>
+
         Update existing .xcfilelists
         https://bugs.webkit.org/show_bug.cgi?id=193791
         <rdar://problem/47201706>
index 9fa08f5..0b9f319 100644 (file)
@@ -28,8 +28,8 @@ WK_PRIVATE_FRAMEWORKS_DIR = $(WK_PRIVATE_FRAMEWORKS_DIR_$(USE_INTERNAL_SDK));
 WK_PRIVATE_FRAMEWORKS_DIR_[sdk=iphone*] = $(PROJECT_DIR)/../../WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/$(WK_TARGET_IOS_VERSION_MAJOR);
 
 FRAMEWORK_SEARCH_PATHS_base = "$(UMBRELLA_FRAMEWORKS_DIR)"
-FRAMEWORK_SEARCH_PATHS[sdk=iphone*] = $(FRAMEWORK_SEARCH_PATHS_base) $(WK_PRIVATE_FRAMEWORKS_DIR);
 FRAMEWORK_SEARCH_PATHS = $(FRAMEWORK_SEARCH_PATHS_base);
+FRAMEWORK_SEARCH_PATHS[sdk=iphone*] = $(FRAMEWORK_SEARCH_PATHS_base) $(WK_PRIVATE_FRAMEWORKS_DIR);
 
 SYSTEM_FRAMEWORK_SEARCH_PATHS = $(inherited) $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks $(SDKROOT)$(SYSTEM_LIBRARY_DIR)/Frameworks;
 
index a349dce..612f2c7 100644 (file)
@@ -33,12 +33,12 @@ BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));
 SHORT_VERSION_STRING = $(SHORT_VERSION_STRING_$(CONFIGURATION))
 
 // The system version prefix is based on the current system version.
-SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 SYSTEM_VERSION_PREFIX = $(SYSTEM_VERSION_PREFIX_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
 SYSTEM_VERSION_PREFIX_macosx_101200 = 12;
 SYSTEM_VERSION_PREFIX_macosx_101300 = 13;
 SYSTEM_VERSION_PREFIX_macosx_101400 = 14;
 SYSTEM_VERSION_PREFIX_macosx_101500 = 15;
+SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 
 // The production build always uses the full version with a system version prefix.
 BUNDLE_VERSION_Production = $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION);
index f2318ec..d9296a3 100644 (file)
@@ -101,8 +101,8 @@ WK_OPENGL_LDFLAGS_macosx = -framework OpenGL;
 
 WK_PDFKIT_LDFLAGS = $(WK_PDFKIT_LDFLAGS_$(WK_PLATFORM_NAME));
 WK_PDFKIT_LDFLAGS_iphoneos = -framework PDFKit;
-WK_PDFKIT_LDFLAGS_iphonesimulator = $(WK_PDFKIT_LDFLAGS_iphoneos);
 WK_PDFKIT_LDFLAGS_iphoneos[sdk=iphone*11.*] = ;
+WK_PDFKIT_LDFLAGS_iphonesimulator = $(WK_PDFKIT_LDFLAGS_iphoneos);
 WK_PDFKIT_LDFLAGS_iphonesimulator[sdk=iphone*11.*] = ;
 
 WK_PROXIMITY_NETWORKING_LDFLAGS = $(WK_PROXIMITY_NETWORKING_LDFLAGS_$(WK_PLATFORM_NAME));
@@ -110,11 +110,11 @@ WK_PROXIMITY_NETWORKING_LDFLAGS_watchos = -framework IDS -framework MobileWiFi -
 
 WK_SAFE_BROWSING_LDFLAGS = $(WK_SAFE_BROWSING_LDFLAGS_$(WK_PLATFORM_NAME));
 WK_SAFE_BROWSING_LDFLAGS_iphoneos = -framework SafariSafeBrowsing;
+WK_SAFE_BROWSING_LDFLAGS_iphoneos[sdk=iphone*10.*] = ;
 WK_SAFE_BROWSING_LDFLAGS_iphonesimulator = -framework SafariSafeBrowsing;
+WK_SAFE_BROWSING_LDFLAGS_iphonesimulator[sdk=iphone*10.*] = ;
 WK_SAFE_BROWSING_LDFLAGS_watchos = -framework SafariSafeBrowsing;
 WK_SAFE_BROWSING_LDFLAGS_watchsimulator = -framework SafariSafeBrowsing;
-WK_SAFE_BROWSING_LDFLAGS_iphoneos[sdk=iphone*10.*] = ;
-WK_SAFE_BROWSING_LDFLAGS_iphonesimulator[sdk=iphone*10.*] = ;
 WK_SAFE_BROWSING_LDFLAGS_macosx = $(WK_SAFE_BROWSING_LDFLAGS$(WK_MACOS_1013));
 WK_SAFE_BROWSING_LDFLAGS_MACOS_SINCE_1013 = -weak_framework SafariSafeBrowsing;
 
index af938e5..3c6d71d 100644 (file)
@@ -1,3 +1,35 @@
+2019-01-25  Keith Rollin  <krollin@apple.com>
+
+        Update WebKitAdditions.xcconfig with correct order of variable definitions
+        https://bugs.webkit.org/show_bug.cgi?id=193793
+        <rdar://problem/47532439>
+
+        Reviewed by Alex Christensen.
+
+        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 always 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.
+
+        * Configurations/Version.xcconfig:
+        * Configurations/WebKitLegacy.xcconfig:
+
 2019-01-25  David Kilzer  <ddkilzer@apple.com>
 
         Move soft-linking of Lookup.framework out of LookupSPI.h
index 01aee66..42d9ee5 100644 (file)
@@ -33,12 +33,12 @@ BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));
 SHORT_VERSION_STRING = $(SHORT_VERSION_STRING_$(CONFIGURATION))
 
 // The system version prefix is based on the current system version.
-SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 SYSTEM_VERSION_PREFIX = $(SYSTEM_VERSION_PREFIX_$(PLATFORM_NAME)_$(TARGET_MAC_OS_X_VERSION_MAJOR));
 SYSTEM_VERSION_PREFIX_macosx_101200 = 12;
 SYSTEM_VERSION_PREFIX_macosx_101300 = 13;
 SYSTEM_VERSION_PREFIX_macosx_101400 = 14;
 SYSTEM_VERSION_PREFIX_macosx_101500 = 15;
+SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;
 
 // The production build always uses the full version with a system version prefix.
 BUNDLE_VERSION_Production = $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION);
index 4fbbbef..ea1e1dd 100644 (file)
@@ -63,10 +63,10 @@ INSTALL_PATH = $(INSTALL_PATH_COCOA_TOUCH_$(WK_IS_COCOA_TOUCH));
 INSTALL_PATH_COCOA_TOUCH_YES = $(WK_ALTERNATE_WEBKIT_SDK_PATH)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
 INSTALL_PATH_COCOA_TOUCH_NO = $(WEBKIT_LEGACY_FRAMEWORKS_DIR);
 
-DYLIB_INSTALL_NAME_BASE[sdk=iphone*] = $(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
 DYLIB_INSTALL_NAME_BASE = $(DYLIB_INSTALL_NAME_BASE_$(WK_USE_ALTERNATE_FRAMEWORKS_DIR));
 DYLIB_INSTALL_NAME_BASE_NO = $(NORMAL_WEBKIT_LEGACY_FRAMEWORKS_DIR);
 DYLIB_INSTALL_NAME_BASE_YES = $(DYLIB_INSTALL_NAME_BASE);
+DYLIB_INSTALL_NAME_BASE[sdk=iphone*] = $(SYSTEM_LIBRARY_DIR)/PrivateFrameworks;
 
 INSTALLHDRS_COPY_PHASE = YES;
 INSTALLHDRS_SCRIPT_PHASE = YES;