This project is mirrored from https://github.com/CherishOS/android_build_blueprint.git.
Pull mirroring updated .
- Mar 21, 2015
-
-
Jamie Gennis authored
-
Jamie Gennis authored
-
jgennis authored
bpfmt fixes
-
jgennis authored
Add error checking for calling CreateVariations with no variants
-
- Mar 20, 2015
-
-
Colin Cross authored
Running bpfmt or bpmodify on a Blueprints file that references variables defined in a parent Blueprints file causes parse errors on unknown variables. Modify the parser to parse in two modes, parser.Parse and parser.ParseAndEval. The first parses without attempting to evaluate variables and expressions, the second performs a full evaluation. Change-Id: Ic11948ea77c8e65379d7260591ada15db0e4f5b9
-
Colin Cross authored
Trying to handle all the whitespace and newline printing inside printToken got overly complicated, and resulted in a few bugs in the layout around comments and indentation that were hard to fix. Rewrite the whitespace and newline handling to be handled directly by the object printers, using requestSpace() to ensure whitespace is inserted and requestNewline() to ensure a newline is inserted. Also fixes unnecessarily left aligning all comments that contain indentation, and fixes accidentally unindenting comments that are the last token in their indented block. Change-Id: I18707802726107cf0b6ec7de9b542d0ec1d2c0dd
-
- Mar 19, 2015
-
-
Colin Cross authored
Calling CreateVariations with no variants will corrupt the modules list with a module with nil logicModule, panic early with a useful message instead. Change-Id: Ic5c921efcba70c54efb5bb21a9626b2999376a69
-
- Mar 16, 2015
-
-
jgennis authored
Document subtle behavior in createVariations
-
jgennis authored
Fix a bug in spliceModules and add tests
-
jgennis authored
Add CONTRIBUTING.md file
-
Colin Cross authored
createVariations relies on reusing the logicModule for the first variant in order to replace the original module in the global module map, which prevents leaving old split modules around in the global module map. Add comments to explain the behavior. Change-Id: Ia06d7fa4bc777e807241996d4e8bf977e641d741
-
colincross authored
Fix typo
-
Norwack authored
-
Colin Cross authored
spliceModules was carefully reallocating the slice if necessary, and then throwing away the reallocated slice and writing to the too-short original slice. Fix the bug, and add tests that would have caught it. Change-Id: Ifc13b2025198b270c97097fd7d28cd36e460c98c
-
Colin Cross authored
Add file to describe the procedure for submitting patches to Blueprint. Change-Id: I9601b5ab47e9d1230c2b3064a590d9eac1478433
-
- Mar 15, 2015
-
-
Norwack authored
-
- Mar 14, 2015
-
-
colincross authored
Support for early mutators
-
- Mar 13, 2015
-
-
Colin Cross authored
"Variant" has been used to mean two slightly concepts in Blueprint. The first and most obvious is a variant of a module, meaning a list of all the ways that on version of a module differs from other versions of the same modules, for example "arch:arm, link:static". The other is for the specific way that a version of a module differs, "arch:arm". Rename all of uses of "variant" as the second meaning to "variation", and update the documentation to clarify "variant" vs. "variation". This modifies the build logic api to convert CreateVariants to CreateVariations. Change-Id: I789ef209ae6ddd39ec12e0c032f9f47f86698fe6
-
Colin Cross authored
The mutators that run after dependencies are resolved can be too late to support build logic that needs to vary the dependencies based on the mutated axis, for example architecture. This patch provides an EarlyMutator interface that can be used to mutate modules before any dependencies have been resolved. In order for dependencies to be satisifed in a later pass, all dependencies of a module must either have an identical variant, must have a single variant, or must be inserted using DynamicDependencyModuleContext.AddVariantDependency. Change-Id: Ic6ae57e98edfd6c8c09a7788983128d3e4e992f0
-
Colin Cross authored
Move actionDefs from moduleGroup to moduleInfo. This will result in multiple build.ninja headers for a single Blueprint file module if it has multiple variants, each one specifying the variant used to generate the following rules. Change-Id: I414cd4d3266da8c2e92118b295569627ddf48cdd
-
Colin Cross authored
Instead of iterating through groups and then iterating through the group's modules, iterate through the modules directly. This will allow circular dependencies between groups as long as the individual modules don't have circular dependencies. In order to maintain the ordering of modules in a group, each module is considered to have an implicit dependency on any earlier modules in the same group. Change-Id: Ibce67167c7234db70ede0a6b5c2b43fb8e0bb05d
-
Colin Cross authored
Replace the array of mutator name/variant name pairs with a map of mutator name to variant name, and store the string variant name separately. Change-Id: I181c2fcb05724c8755b90aaf866fdce9ef720b01
-
Colin Cross authored
Move most of the contents of moduleGroup into moduleInfo. This will eventually reduce moduleGroup to a simple list of variants of the same module. Change-Id: I4289eb9953509751d7637558cd6db73373ccdf78
-
Colin Cross authored
Forcing module names to be valid ninja names is an unnecessary restraint on the project build logic. Allow any string as a module name, and sanitize and uniquify the module name for use in module-scoped variables. Also move the module scope to be per-module instead of per-group so that modules can use the same local variable name for each variant. Change-Id: If44cca20712305e2c0b6d6b39daa5eace335c148
-
- Mar 11, 2015
-
-
jgennis authored
Bugfixes
-
Colin Cross authored
The cycle check can panic if the first call to check happens to land on the first module in a cycle. Print the cycle instead of panicking. Change-Id: I6fc1c66dcc37b1eb6b11b9e65343452af3c8538d
-
Colin Cross authored
If proptools.CopyProperties is passed two values that point same slice then setting the destination slice to a new slice will overwrite the source slice, and the properties struct that is both the source and destination will have an empty slice. Copy into the new slice using a new reflect.Value, and then update the destination. Change-Id: I1bfcdc51e4278ea7c7ed81dafc928a5471219f05
-
- Mar 10, 2015
-
-
Colin Cross authored
Change-Id: I75875cbf60efc9aaf7c2df5709533c2c04b6fba4
-
jgennis authored
New features
-
- Mar 06, 2015
- Mar 04, 2015
-
-
Colin Cross authored
Variant errors can be introduced by Blueprints files, so print a module error instead of panicing.
-
Colin Cross authored
Switch back to: moduleType { name: value, arch: { x86: { name: value, }, }, } This provides better consistency between properties defined at the top level of a module and properties defined inside a map. The parser will continue to support the other format for now, but the printer will only produce the original format.
-
Colin Cross authored
Change-Id: Ia9c5408b1b159843dbc57e2e480ca2972598186d
-
Colin Cross authored
Add support for + operator on maps. The semantics are that keys that exist in both maps are added with the + operator, and keys that exist in one map are copied to the resulting map. Change-Id: Iba9a6f886477a1eb7311272d07944800c806e368
-
Colin Cross authored
Change-Id: I271db2120aba1a5c99f21198f1eff6370e6e2389
-
Colin Cross authored
Support += assignments to variables. Variables are now mutable up until they are referenced, then they become immutable. This will allow variables to be modified in a conditional, or allow better commenting on why parts of a variable are set. Change-Id: Iad964da7206b493365fe3686eedd7954e6eaf9a2
-
Colin Cross authored
The printer was allowing extra newlines in odd places, for example between a property name and the '=' in a module definition. Make newline location stricter by explicitly allowing newlines or line comments.
-
Colin Cross authored
generateModuleBuildActions was continuing to call GenerateBuildActions on all modules even after one returned an error. This could cause a later module to panic because it was missing information that was supposed to be generated by the module that returned an error, hiding the earlier error message. If a module returns an error, stop triggering any new goroutines to call GenerateBuildActions on later modules.
-
Colin Cross authored
If .ninja_log contains an entry that used to be a file but is now a non-empty directory the os.Remove call will fail. Silently ignore this error, if the files in the directory are abandoned the directory will be cleaned up when the files are removed.
-