RESOLVED FIXED 188732
[CMake] Sync unified build with Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=188732
Summary [CMake] Sync unified build with Cocoa ports
Michael Catanzaro
Reported 2018-08-19 11:11:31 PDT
Sync unified build with Cocoa ports. This enables unified build for WebKit/Platform and WebKit/Shared. Lots of files need to be moved around since the existing Sources.txt was not copied from CMakeLists.txt. This replaces the Sources.txt with the sources list from CMakeList.txt. Files that are not built for Cocoa are moved to SourcesGTK.txt, SourcesWPE.txt, and PlatformWin.cmake. Files that are built only on Cocoa are moved to SourcesCocoa.txt. There's plenty of room to determine if many of these files really need to be platform-specific in the future, but let's not change that now.
Attachments
Patch (60.14 KB, patch)
2018-08-19 11:16 PDT, Michael Catanzaro
no flags
Patch (61.82 KB, patch)
2018-08-19 11:29 PDT, Michael Catanzaro
no flags
Patch (61.81 KB, patch)
2018-08-19 11:39 PDT, Michael Catanzaro
no flags
Archive of layout-test-results from ews202 for win-future (12.92 MB, application/zip)
2018-08-19 13:34 PDT, EWS Watchlist
no flags
Patch (66.47 KB, patch)
2018-08-19 18:21 PDT, Michael Catanzaro
no flags
Archive of layout-test-results from ews205 for win-future (12.93 MB, application/zip)
2018-08-19 20:47 PDT, EWS Watchlist
no flags
Patch (66.83 KB, patch)
2018-08-19 23:51 PDT, Fujii Hironori
no flags
Archive of layout-test-results from ews205 for win-future (12.91 MB, application/zip)
2018-08-20 12:12 PDT, EWS Watchlist
no flags
Patch (84.32 KB, patch)
2018-08-20 14:44 PDT, Tim Horton
thorton: review+
Michael Catanzaro
Comment 1 2018-08-19 11:16:42 PDT
Michael Catanzaro
Comment 2 2018-08-19 11:29:05 PDT
Michael Catanzaro
Comment 3 2018-08-19 11:39:13 PDT
Michael Catanzaro
Comment 4 2018-08-19 11:53:59 PDT
GTK will need a bit more work due to *grumble* PluginProcess2. I'll try again later today.
EWS Watchlist
Comment 5 2018-08-19 13:34:38 PDT
Comment on attachment 347461 [details] Patch Attachment 347461 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8910813 New failing tests: http/tests/security/contentSecurityPolicy/video-with-https-url-allowed-by-csp-media-src-star.html
EWS Watchlist
Comment 6 2018-08-19 13:34:51 PDT
Created attachment 347464 [details] Archive of layout-test-results from ews202 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews202 Port: win-future Platform: CYGWIN_NT-6.1-2.10.0-0.325-5-3-x86_64-64bit
Michael Catanzaro
Comment 7 2018-08-19 18:21:08 PDT
Michael Catanzaro
Comment 8 2018-08-19 18:23:48 PDT
This patch should work for everything except Windows. I have a linker error on the Windows EWS. I don't know what's wrong. I tried to ensure the files that are being built did not change. Help with Windows would be much appreciated.
Michael Catanzaro
Comment 9 2018-08-19 18:26:17 PDT
Hm, actually the Apple Windows bot bot is fine, it's only WinCairo that's having trouble. That's quite odd.
Michael Catanzaro
Comment 10 2018-08-19 18:34:57 PDT
Well something in that last version broke iOS again... I'll check it tomorrow.
EWS Watchlist
Comment 11 2018-08-19 20:47:28 PDT
Comment on attachment 347475 [details] Patch Attachment 347475 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8913193 New failing tests: legacy-animation-engine/imported/blink/transitions/unprefixed-transform.html
EWS Watchlist
Comment 12 2018-08-19 20:47:39 PDT
Created attachment 347479 [details] Archive of layout-test-results from ews205 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews205 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Tim Horton
Comment 13 2018-08-19 21:05:25 PDT
(In reply to Michael Catanzaro from comment #9) > Hm, actually the Apple Windows bot bot is fine, it's only WinCairo that's > having trouble. That's quite odd. Apple Win port doesn’t build WebKit2, so I think this overstates the oddness :)
Fujii Hironori
Comment 14 2018-08-19 23:51:37 PDT
Created attachment 347482 [details] Patch WEBKIT_COMPUTE_SOURCES wasn't called for Windows port. * Call WEBKIT_COMPUTE_SOURCES for all ports
Michael Catanzaro
Comment 15 2018-08-20 06:27:09 PDT
Ahhh, thanks Fujii! Now I'd better investigate why all Cocoa ports are broken. I had not changed too much since I had them green....
Michael Catanzaro
Comment 16 2018-08-20 09:13:39 PDT
I think the problem with iOS and macOS is that the Sources.txt has changed too much and now the results no longer match the XCode project. I had to un-unify several files under Shared/ (everything used by WebKitPluginProcess2) and all of Platform/ (it's all used by WebKitPluginProcess2) and those need to be restored to the XCode project. Tim, would you be able to help with this?
Michael Catanzaro
Comment 17 2018-08-20 09:15:11 PDT
(In reply to Michael Catanzaro from comment #16) > I think the problem with iOS and macOS is that the Sources.txt has changed > too much and now the results no longer match the XCode project. I had to > un-unify several files under Shared/ (everything used by > WebKitPluginProcess2) and all of Platform/ (it's all used by > WebKitPluginProcess2) and those need to be restored to the XCode project. > Tim, would you be able to help with this? The only other solution I can think of would be to move ALL of these files to the platform-specific SourcesCocoa.txt, SourcesWin.txt, SourcesWPE.txt, and SourcesGTK.txt, so they could remain unified for all ports except GTK. Then I could probably land this without needing help from someone with XCode. But that seems worse to me.
Tim Horton
Comment 18 2018-08-20 11:20:18 PDT
(In reply to Michael Catanzaro from comment #17) > (In reply to Michael Catanzaro from comment #16) > > I think the problem with iOS and macOS is that the Sources.txt has changed > > too much and now the results no longer match the XCode project. I had to > > un-unify several files under Shared/ (everything used by > > WebKitPluginProcess2) and all of Platform/ (it's all used by > > WebKitPluginProcess2) and those need to be restored to the XCode project. > > Tim, would you be able to help with this? > > The only other solution I can think of would be to move ALL of these files > to the platform-specific SourcesCocoa.txt, SourcesWin.txt, SourcesWPE.txt, > and SourcesGTK.txt, so they could remain unified for all ports except GTK. > Then I could probably land this without needing help from someone with > XCode. But that seems worse to me. Is that worse? Not sure why the other ports should leave things ununified just for GTK :P Even just unifying platform + shared was a (small) build time win. Also, we didn't have Sources.txt until very recently so having lots of things in the platform-specific ones would be semi-status-quo?
EWS Watchlist
Comment 19 2018-08-20 12:11:54 PDT
Comment on attachment 347482 [details] Patch Attachment 347482 [details] did not pass win-ews (win): Output: https://webkit-queues.webkit.org/results/8919172 New failing tests: http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html
EWS Watchlist
Comment 20 2018-08-20 12:12:05 PDT
Created attachment 347524 [details] Archive of layout-test-results from ews205 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews205 Port: win-future Platform: CYGWIN_NT-6.1-2.9.0-0.318-5-3-x86_64-64bit
Michael Catanzaro
Comment 21 2018-08-20 12:40:23 PDT
(In reply to Tim Horton from comment #18) > Is that worse? Not sure why the other ports should leave things ununified > just for GTK :P Even just unifying platform + shared was a (small) build > time win. Also, we didn't have Sources.txt until very recently so having > lots of things in the platform-specific ones would be semi-status-quo? Benefits: very small (probably not noticeable) build speedup for non-GTK ports, and avoids needing to scatter those TODOs throughout the cross-platform Sources.txt Costs: a bunch of cross-platform files need to be duplicated in every platform-specific Sources.txt (currently only a few files are duplicated), also makes it easier for GTK developers to break the build for other ports since we won't be able to reproduce unified build problems affecting these files Either way is OK, of course, so we can do whatever you prefer. But I'd say the costs probably outweigh the benefits. If this were a large number of files, then I would be pretty concerned about unifying different files on different ports, since unified build issues are already tricky enough to handle when they're not platform-specific. For this small number of files, it's probably OK. (On the other hand, if this were a large number of files, the potential benefit would also be much greater.)
Tim Horton
Comment 22 2018-08-20 14:44:16 PDT
Michael Catanzaro
Comment 23 2018-08-20 15:59:27 PDT
Radar WebKit Bug Importer
Comment 24 2018-08-20 16:49:05 PDT
Note You need to log in before you can comment on or make changes to this bug.