Changes between Initial Version and Version 1 of MakingTheWindowsBuildSystemMoreMaintainable


Ignore:
Timestamp:
Aug 19, 2009 9:20:52 AM (15 years ago)
Author:
Adam Roben
Comment:

Initial version (content came from ImprovingLifeOnWindows)

Legend:

Unmodified
Added
Removed
Modified
  • MakingTheWindowsBuildSystemMoreMaintainable

    v1 v1  
     1= Making the Windows build system more maintainable =
     2
     3The Windows build system is currently not very maintainable, especially for users on other platforms trying to edit the Windows build files by hand. This page lists ideas for how to make the system more maintainable, and thus reduce the number of build breakages that occur.
     4
     5== Use `.vsprops` files more ==
     6
     7`.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.
     8
     9== Consolidate or eliminate Release and Debug `.def` files ==
     10
     11A 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.
     12
     13Another option would be to eliminate the `.def` files completely by using `__declspec(dllexport)` and `__declspec(dllimport)`.
     14
     15== Switch to using `gyp` ==
     16
     17[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`.