Skip to content

BuildSystem

berkus edited this page Nov 8, 2012 · 1 revision

What is needed from the build system?

  • Simplicity

    • Declarative programming is best - just tell what you want to get and let the buildsystem figure out the rest.
  • Sub-directories/sub-projects support

    • With possibility to infer settings from subproject into a dependency (much like uselib in waf)
    • Subprojected must be able to poke at parent's environment and use it by default.
  • Parallel execution

    • Tasks must be extremely parallelizable. Everything that is not dependent on a particular result must be possible to run, fully utilizing available cores.
  • Custom tasks support

    • Should be easy to specify dependencies of a custom task and how to run it when they are satisfied.
  • Cross-platform building

    • Should be possible to easily build from same sources a set of different resulting binaries, including cross-tools building for other architectures.
  • Config file generation for a specific configuration

    • Should support cross-platform building
  • Out-of-source-directory builds

Clone this wiki locally