[Cocoa] Allow overriding the frameworks directory independently of using a staging...
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Jan 2016 20:13:57 +0000 (20:13 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 9 Jan 2016 20:13:57 +0000 (20:13 +0000)
commit54ac3dd9033076bb28062b3b56a6a9d6a6143d1e
treec54b1e1ad449e1734d1589f34f51e5ee8c0333fd
parent9e04c8bab15930601029b1012a3d8d33a36bca01
[Cocoa] Allow overriding the frameworks directory independently of using a staging install path
https://bugs.webkit.org/show_bug.cgi?id=152926

Reviewed by Tim Horton.

Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.

Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.

Source/JavaScriptCore:

* Configurations/Base.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define JAVASCRIPTCORE_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.
* Configurations/JSC.xcconfig:
  Add quotes to account for spaces.
* Configurations/ToolExecutable.xcconfig:
  Ditto.
* postprocess-headers.sh:
  Ditto.

Source/ThirdParty:

* gtest/xcode/Config/General.xcconfig:
  Add quotes to account for spaces.
* gtest/xcode/Config/ProductionProject.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBCORE_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

Source/WebCore:

* Configurations/WebCore.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBCORE_FRAMEWORKS_DIR and PRODUCTION_FRAMEWORKS_DIR based on
  WK_OVERRIDE_FRAMEWORKS_DIR.

* WebCore.xcodeproj/project.pbxproj: Work around make’s inability to handle spaces in paths
  by creating a symlink to JAVASCRIPTCORE_PRIVATE_HEADERS_DIR under BUILT_PRODUCTS_DIR and
  using the symlink as the value of JavaScriptCore_SCRIPTS_DIR.

Source/WebInspectorUI:

* Configurations/Base.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
* Configurations/WebInspectorUIFramework.xcconfig:
- Define INSTALL_PATH and PRODUCTION_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

Source/WebKit/mac:

* Configurations/WebKitLegacy.xcconfig:
- Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
  WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
- Define WEBKIT_LEGACY_FRAMEWORKS_DIR, PRODUCTION_FRAMEWORKS_DIR, and
  WEBCORE_PRIVATE_HEADERS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.

* MigrateHeaders.make:
  Use a symlink under BUILT_PRODUCTS_DIR to the WebCore Private Headers. Use a
  BUILT_PRODUCTS_DIR-based path to the framework instead of a TARGET_BUILD_DIR-based one in
  order to avoid spaces.
* migrate-headers.sh:
  Make the symlink to WEBCORE_PRIVATE_HEADERS_DIR that the makefile now uses.

Source/WebKit2:

* Configurations/BaseTarget.xcconfig:
- Add quotes to account for spaces.
- Define WEBKIT_FRAMEWORKS_DIR and UMBRELLA_FRAMEWORKS_DIR based on
  WK_OVERRIDE_FRAMEWORKS_DIR.

* WebKit2.xcodeproj/project.pbxproj:
- In the Migrate WebKitLegacy Headers build phase, work around make’s inability to handle
  spaces in paths by creating a symlink to WEBKIT_LEGACY_PRIVATE_HEADERS_DIR under
  BUILT_PRODUCTS_DIR and using the symlink as the value of
  WEBKIT_LEGACY_PRIVATE_HEADERS_DIR.
- In the Postprocess WKBase.h and Postprocess WKFoundation.h build phases, add quotes to
  account for spaces.

* mac/MigrateHeadersFromWebKitLegacy.make:
  Use a BUILT_PRODUCTS_DIR-based path to the framework instead of a TARGET_BUILD_DIR-based
  one in order to avoid spaces.

* mac/postprocess-framework-headers.sh:
  Add quotes to account for spaces.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
23 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/Configurations/Base.xcconfig
Source/JavaScriptCore/Configurations/JSC.xcconfig
Source/JavaScriptCore/Configurations/ToolExecutable.xcconfig
Source/JavaScriptCore/postprocess-headers.sh
Source/ThirdParty/ChangeLog
Source/ThirdParty/gtest/xcode/Config/General.xcconfig
Source/ThirdParty/gtest/xcode/Config/ProductionProject.xcconfig
Source/WebCore/ChangeLog
Source/WebCore/Configurations/WebCore.xcconfig
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/Configurations/Base.xcconfig
Source/WebInspectorUI/Configurations/WebInspectorUIFramework.xcconfig
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/Configurations/WebKitLegacy.xcconfig
Source/WebKit/mac/MigrateHeaders.make
Source/WebKit/mac/migrate-headers.sh
Source/WebKit2/ChangeLog
Source/WebKit2/Configurations/BaseTarget.xcconfig
Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
Source/WebKit2/mac/MigrateHeadersFromWebKitLegacy.make
Source/WebKit2/mac/postprocess-framework-headers.sh