commit | 08e4954a8cf5e072cd4a4583a2bbc1c7bd294273 | [log] [tgz] |
---|---|---|
author | Colin Cross <ccross@android.com> | Mon Nov 14 15:23:33 2016 -0800 |
committer | Colin Cross <ccross@android.com> | Mon Nov 14 15:41:41 2016 -0800 |
tree | 59268f5b320523b41ffd717537b8e377aea050bf | |
parent | 36518a611511ea654e4ca831f9db0dc1dda18bd5 [diff] |
Fix optional_subdirs globbing Bypassing c.glob() and using filepath.Glob() directly for non-glob paths does not add dependencies on directories that contain missing files. For optional_subdirs, this means no dependency is added to rerun the primary builder when an Android.bp file is added to an optional_subdirs directory. Always use c.glob(), for the non-optional case it will not insert any dependencies if the file exists (as tested by glob_test.go's no-wild tests), and if the file doesn't exist the len(matches) == 0 will error out. Change-Id: I370479c6e89f5ff590897702e256256a4dca6952
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.