Current status
- 8 build systems
- XCode -> Mac
- VCProj -> Win, WinCairo
- CMake -> WinCE, EFL
- QMake -> Qt
- MakeFile -> Gtk
- GYP -> Chromium
- Android.mk -> Android
- wx
- Some of them requiring a special IDE to add a file
- Adding and removing a file is more and more expensive which hinders refactoring the code
- As an example, someone removed some empty files lately that were in the tree for years, presumably because of the barrier to removing files
- Potential unifying systems: CMake, GYP and QMake were mentioned
GYP
- Constraint: people use whatever IDE they currently use (XCode, Visual Studio)
- CMake vs GYP (http://code.google.com/p/gyp/wiki/GypVsCMake)
- GYP keeps the look'n'feel of the native build system
- For example, it is easy to map from GYP to the native system and vice-versa
- There is currently no tool to propagate native changes back to GYP though
CMake
- Used by several projects
- However CMake generated files calls back CMake which made some of the Apple people sad
The current implementation
- We had a look at some of the GYP files
- The current way is sub-optimal as it uses a lot of arcane 'exclude' (this gave rise to a lot of comments)
- We would need to refactor the way it is done for people to be fine with such a change
- A one GYP per platform was mentioned (and using some include mechanism)
Constraints on the build system files
- Adding/Removing a file is a rare operation whereas checking out the source is common
- Thus we should not put a burden on the most common operation
- There was a discussion about adding the XCode files as we don't want to add another step
- Also this would introduce some issues with Apple internal build system
- The tools to generate the native build system should either use XCode or a Makefile on Mac
Workflow
- If we check-in the build files, we have issues with people just doing 'svn up' and building using make or native method
- There is a cost with this switch and we need to solve them before making the big switch
Other ports
- Qt and Gtk have their own build integration constraint that needs to be captured
- CMake is used an 'include' system and not an 'exclude' system
Last modified
14 years ago
Last modified on Apr 27, 2011, 2:13:37 PM
Note:
See TracWiki
for help on using the wiki.