Changes between Initial Version and Version 1 of Unifying the build system


Ignore:
Timestamp:
Apr 27, 2011 2:13:37 PM (13 years ago)
Author:
jchaffraix@webkit.org
Comment:

Dumped my notes

Legend:

Unmodified
Added
Removed
Modified
  • Unifying the build system

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