Changes between Initial Version and Version 1 of ImprovingLifeOnWindows


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

Initial version

Legend:

Unmodified
Added
Removed
Modified
  • ImprovingLifeOnWindows

    v1 v1  
     1WebKit development on Windows is currently quite tedious and error-prone. This page lists some ideas for how to improve it.
     2
     3= Improving the Windows Set-up Process =
     4
     5== Check in a Cygwin installation to `svn.webkit.org` ==
     6
     7[http://www.chromium.org/ Chromium] does this (see http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/cygwin/). This would remove the need for [source:trunk/WebKitTools/CygwinDownloader cygwin-downloader], or for users to have Cygwin installed at all.
     8
     9= Improving the Windows Build Process =
     10
     11== Set the `WebKitOutputDir` and `WebKitLibrariesDir` environment variables automatically ==
     12
     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).
     14
     15== Use `.vsprops` files more ==
     16
     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.
     18
     19== Consolidate or eliminate Release and Debug `.def` files ==
     20
     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.
     22
     23Another option would be to eliminate the `.def` files completely by using `__declspec(dllexport)` and `__declspec(dllimport)`.
     24
     25== Switch to using `gyp` ==
     26
     27[http://code.google.com/p/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`.