Create .xcfilelist files
authorkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Nov 2018 00:13:04 +0000 (00:13 +0000)
committerkrollin@apple.com <krollin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 9 Nov 2018 00:13:04 +0000 (00:13 +0000)
commit798e8000160621299e674a9d57945fc31c18846c
treed52ec724acd276e07b9bf4707cb10401738a25d5
parent5188d53172c1851b69aea2ca92136316b9568d09
Create .xcfilelist files
https://bugs.webkit.org/show_bug.cgi?id=191324
<rdar://problem/45852819>

Reviewed by Alex Christensen.

As part of preparing for enabling XCBuild, create and use .xcfilelist
files. These files are using during Run Script build phases in an
Xcode project. If a Run Script build phase produces new files that are
used later as inputs to subsequent build phases, XCBuild needs to know
about these files. These files can be either specified in an "output
files" section of the Run Script phase editor, or in .xcfilelist files
that are associated with the Run Script build phase.

This patch takes the second approach. It consists of three sets of changes:

- Modify the DerivedSources.make files to have a
  'print_all_generated_files" target that produces a list of the files
  they create.

- Create a shell script that produces .xcfilelist files from the
  output of the previous step, as well as for the files created in the
  Generate Unified Sources build steps.

- Add the new .xcfilelist files to the associated projects.

Note that, with these changes, the Xcode workspace and projects can no
longer be fully loaded into Xcode 9. Xcode will attempt to load the
projects that have .xcfilelist files associated with them, but will
fail and display a placeholder for those projects instead. It's
expected that all developers are using Xcode 10 by now and that not
being able to load into Xcode 9 is not a practical issue. Keep in mind
that this is strictly an IDE issue, and that the projects can still be
built with `xcodebuild`.

Also note that the shell script that creates the .xcfilelist files can
also be used to verify that the set of files that's currently checked
in is up-to-date. This checking can be used as part of a check-in hook
or part of check-webkit-style to sooner catch cases where the
.xcfilelist files need to be regenerated.

Source/JavaScriptCore:

* DerivedSources.make:
* DerivedSources.xcfilelist: Added.
* JavaScriptCore.xcodeproj/project.pbxproj:
* UnifiedSources.xcfilelist: Added.

Source/WebCore:

No new tests -- no changed functionality.

* DerivedSources.make:
* DerivedSources.xcfilelist: Added.
* UnifiedSources.xcfilelist: Added.
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* DerivedSources.make:
* DerivedSources.xcfilelist: Added.
* UnifiedSources.xcfilelist: Added.
* WebKit.xcodeproj/project.pbxproj:

Tools:

* DumpRenderTree/DerivedSources.make:
* DumpRenderTree/DerivedSources.xcfilelist: Added.
* Scripts/generate-xcfilelists: Added.
* WebKitTestRunner/DerivedSources.make:
* WebKitTestRunner/DerivedSources.xcfilelist: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@238008 268f45cc-cd09-0410-ab3c-d52691b4dbfc
21 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/DerivedSources.make
Source/JavaScriptCore/DerivedSources.xcfilelist [new file with mode: 0644]
Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
Source/JavaScriptCore/UnifiedSources.xcfilelist [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/DerivedSources.xcfilelist [new file with mode: 0644]
Source/WebCore/UnifiedSources.xcfilelist [new file with mode: 0644]
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebKit/ChangeLog
Source/WebKit/DerivedSources.make
Source/WebKit/DerivedSources.xcfilelist [new file with mode: 0644]
Source/WebKit/UnifiedSources.xcfilelist [new file with mode: 0644]
Source/WebKit/WebKit.xcodeproj/project.pbxproj
Tools/ChangeLog
Tools/DumpRenderTree/DerivedSources.make
Tools/DumpRenderTree/DerivedSources.xcfilelist [new file with mode: 0644]
Tools/Scripts/generate-xcfilelists [new file with mode: 0755]
Tools/WebKitTestRunner/DerivedSources.make
Tools/WebKitTestRunner/DerivedSources.xcfilelist [new file with mode: 0644]