commit | 54cb95a53f4e41311c5307da5c5911e31330ce2c | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Fri Feb 23 11:09:18 2018 -0800 |
committer | Colin Cross <ccross@android.com> | Fri Feb 23 14:03:56 2018 -0800 |
tree | a073a5356f3b8cac282db4357c984260f1a2027d | |
parent | 759bb61dd5be2c386ed52ed9064d4c0766695cb9 [diff] |
Fix glob cache conflict when excludes=nil and excludes=[]string{} Performing the same glob twice, once with excludes=nil and once with excludes=[]string{} would hit the same entry in the glob cache (since the glob filename would be the same), but fail the verifyGlob check because DeepEqual considers []string(nil) and []string{} to be different. Use a manual array check instead. Test: glob_test.go Change-Id: If0d4fe80163a871077b7276e1b4a3e888a4a4898
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.