Version 1 (modified by 16 years ago) ( diff ) | ,
---|
WebKit development on Windows is currently quite tedious and error-prone. This page lists some ideas for how to improve it.
Improving the Windows Set-up Process
Check in a Cygwin installation to svn.webkit.org
Chromium does this (see http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/cygwin/). This would remove the need for cygwin-downloader, or for users to have Cygwin installed at all.
Improving the Windows Build Process
Set the WebKitOutputDir
and WebKitLibrariesDir
environment variables automatically
The WebKitOutputDir
and WebKitLibrariesDir
environment variables have to be set to be able to build inside Visual Studio. We should set these automatically as part of running update-webkit
(maybe by tickling HKCU\Environment
directly).
Use .vsprops
files more
.vsprops
files allow us to reduce setting duplication within and between .vcproj
files. Using .vsprops
files more would make it easier and less error-prone to modify the Windows build files.
Consolidate or eliminate Release and Debug .def
files
A common build mistake is to only update the Release or only update the Debug .def
file for JavaScriptCore or WebKit. By consolidating these files we could eliminate this kind of error. Consolidation would probably require the use of a script, which would unfortunately make the build more complicated, but the extra complexity might be worth the reduction in user-error.
Another option would be to eliminate the .def
files completely by using __declspec(dllexport)
and __declspec(dllimport)
.
Switch to using gyp
gyp is a project-file-generation tool that can be used to generate .vcproj
and .sln
files (and .xcodeproj
, etc.). It has a much easier to read format than .vcproj
, and might be more easily modified by hand than .vcproj
files. The Chromium port is already using gyp
, so we'd have some extra help in maintaining the files (assuming we could share gyp
files with them). If we switched Mac to using gyp
, too, then we'd really reduce the likelihood of someone forgetting to add a new file to a .vcproj
.