Version 2 (modified by Adam Roben, 14 years ago) (diff)


Making the Windows build system more maintainable

The 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.

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.

Move header/resource copying into separate scripts

Header/resource copying currently happens in build events inside the .vcproj files. These are XML-escaped and not line-wrapped and thus very hard to parse or edit by hand. Moving the copying into separate scripts would make it much easier to modify.

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.