commit | ff092863b39366904e582fe8ee3b294daf5fd3df | [log] [tgz] |
---|---|---|
author | Dan Willemsen <dwillemsen@google.com> | Tue Aug 08 13:14:40 2017 -0700 |
committer | Dan Willemsen <dwillemsen@google.com> | Tue Aug 08 13:19:26 2017 -0700 |
tree | 274250f400f6143087150757e15dca8509cce6d1 | |
parent | f00c03da534e93ae4ffe0317b3a1a349c3453219 [diff] |
Allow microfactory to be used as a package In addition to running with `go run` and creating a microfactory binary, allow microfactory to be used as a package from other go tools as well. To allow other packages to use this, it needs to be in a non-main package, but `go run` requires a main package. So microfactory.bash runs a sed script before running microfactory with `go run`. This could also be solved by using a relative import, but neither blueprint nor microfactory currently support that. Change-Id: I084163b14720102b3fb93a3c9d44b5d0225ff2c8
Blueprint is a meta-build system that reads in Blueprints files that describe modules that need to be built, and produces a Ninja manifest describing the commands that need to be run and their dependencies. Where most build systems use built-in rules or a domain-specific language to describe the logic for converting module descriptions to build rules, Blueprint delegates this to per-project build logic written in Go. For large, heterogenous projects this allows the inherent complexity of the build logic to be maintained in a high-level language, while still allowing simple changes to individual modules by modifying easy to understand Blueprints files.