Changes between Initial Version and Version 1 of April 2012 Reducing build systems


Ignore:
Timestamp:
Apr 20, 2012 11:28:14 AM (12 years ago)
Author:
dbates@webkit.org
Comment:

First pass at notes.

Legend:

Unmodified
Added
Removed
Modified
  • April 2012 Reducing build systems

    v1 v1  
     1Reducing build systems
     2
     3Moderator: Eric Seidel, Scribe: Daniel Bates
     4
     5= Eric's notes =
     6
     7Currently WebKit has 7 build systems:
     8
     9* XCode (Mac)
     10* Visual Studio (Win, WinCairo)
     11* QMake (Qt)
     12* AutoMake (Gtk)
     13* CMake (EFL, Blackberry, WinCE)
     14* GYP (Chromium Mac/Win/Linux/Android/etc.)
     15* WAF (WX)
     16
     17Problems with our current build systems:
     18* Duplication of logic
     19*Difficulty adding files
     20
     21= Additional notes =
     22
     23Eric Seidel: My goal a year from now not to have 7 but to have 6, more aggressive goal is to have 5 or 4.
     24
     25Eric Seidel: How many people have added a file to webkit?
     26(Majority raised our hands.)
     27
     28Q: Why to get rid of build systems?
     29Eric Seidel: Remove build systems for simplicity.
     30
     31Eric Seidel: Want to move rendering directories into a line box directory, thought can do that between sessions, but realized couldn't because its complicated.
     32
     33Eric Seidel: One problem is that some build systems need to be edited using specialized tools.
     34
     35Eric Seidel: We have too many build systems. I would like us to have 6.
     36
     37Q: Are there other solutions than just reducing them? Could we share more?
     38A: We could theoretically share more for systems that have a functional make. Having tooling, say add-build-file, to automate adding of new files to all build systems. Two people, related to Chromium, have written Xcode editing Python scripts that have been put up for review but haven't landed.
     39
     40Q: Would there be alternative to having 6 files that list all files?
     41A: Xcode cannot read a newline delimited text file of source files.
     42
     43Eric Seidel: One of the things we did last year was split out the existing build systems...splitting out the logic for the build from the list of files. Meta systems are great at generating lists of files not good at generating logic.
     44
     45Nate Chapin: Can we have a policy against new build systems when ports come in?
     46
     47Eric Seidel: We don't.
     48
     49Nate Chapin: Can we have one please?
     50
     51Eric Seidel: The reality is when a new port comes along with a new build systems it doesn't matter. They are small, will get broken, and only half implemented.
     52
     53Eric Seidel: Don't have an explicitly policy against having more build systems.
     54
     55Q: What's blocking the Chromium Python patches?
     56Dirk Pranke: Waiting to be broken up into logical chunks and reviewed.
     57
     58Dirk Pranke: Have you thought of a script to pull data from gyp file to qmake?
     59Tor Arne Vestbø: Would be possible to auto generate the list.
     60
     61Eric Seidel: There exists things like meta build systems, which generates a build system. We're using three of them: CMake, qmake, gyp. My goal is to talk about using more of these [meta build systems]? Using qmake, CMake, gyp of the world instead of using Visual Studio or Xcode by itself.
     62
     63Tor Arne Vestbø: When integrating with Qt can't have dependencies on Python.
     64
     65Eric Seidel: Do you see the qmake pull a list of files from some other central repo/sys?
     66
     67Tor Arne Vestbø: Yes. Qmake has support for reading an arbitrary text file for source files...Need some kind of if/def logic to include platform-specific files and exclude others
     68
     69Steve Falkenburg: Looking to moving to Visual Studio 2010.
     70
     71Eric Seidel: Have you started?
     72Steve Falkenburg (Paraphrase): Part of the problem of both Apple ports is that we don't think we can run CMake for official builds.
     73
     74Eric Seidel: May find value to have list of files and checkin the Xcode, Visual Stduio files. [We may] benefit from [an] add a file script. If the Apple ports are interested in a meta build system then just we checkin the files.
     75
     76== Another approach: scripts; requirements for such scripts ==
     77
     781. Want add file, remove file, move file
     792. Central list of feature defines; "don't know a way to get there" (Eric Seidel)
     803. Ability to add/remove feature defines
     814. Change include paths
     825. Change file paths