Changes between Initial Version and Version 1 of ImprovingLifeOnWindows

Aug 19, 2009 9:04:58 AM (13 years ago)
Adam Roben

Initial version


  • ImprovingLifeOnWindows

    v1 v1  
     1WebKit development on Windows is currently quite tedious and error-prone. This page lists some ideas for how to improve it.
     3= Improving the Windows Set-up Process =
     5== Check in a Cygwin installation to `` ==
     7[ Chromium] does this (see This would remove the need for [source:trunk/WebKitTools/CygwinDownloader cygwin-downloader], or for users to have Cygwin installed at all.
     9= Improving the Windows Build Process =
     11== Set the `WebKitOutputDir` and `WebKitLibrariesDir` environment variables automatically ==
     13The `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).
     15== Use `.vsprops` files more ==
     17`.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.
     19== Consolidate or eliminate Release and Debug `.def` files ==
     21A 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.
     23Another option would be to eliminate the `.def` files completely by using `__declspec(dllexport)` and `__declspec(dllimport)`.
     25== Switch to using `gyp` ==
     27[ 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`.