Version bpglob command line arguments

bpglob is executed through the rules in build-globs.ninja to determine
whether soong_build needs to rerun.  That means when the arguments
accepted by bpglob change it will be called with the old arguments,
then soong_build will rerun and update build-globs.ninja with the new
arguments.

To avoid having to maintain backwards compatibility with old arguments
across the transition, a version argument is used to detect the
transition in order to stop parsing arguments, touch the output file
and exit immediately.  The version number in
pathtools.BPGlobArgumentVersion should be manually incremented when
the bpglob argument format changes.

If the version argument is not passed then a version mismatch is assumed.

Bug: 159845846
Test: build/soong/tests/bootstrap_test.sh
Change-Id: Id6742c7acc51af8d0d224d51e47bddea78e6e363
3 files changed
tree: ad35526229544e0a0a68d716733530bd6e1c7e4e
  1. .github/
  2. bootstrap/
  3. bpfmt/
  4. bpmodify/
  5. deptools/
  6. gotestmain/
  7. gotestrunner/
  8. loadplugins/
  9. microfactory/
  10. parser/
  11. pathtools/
  12. proptools/
  13. tests/
  14. .gitignore
  15. .gofmt.sh
  16. blueprint.bash
  17. blueprint_impl.bash
  18. Blueprints
  19. bootstrap.bash
  20. CODEOWNERS
  21. context.go
  22. context_test.go
  23. CONTRIBUTING.md
  24. doc.go
  25. glob.go
  26. glob_test.go
  27. go.mod
  28. LICENSE
  29. live_tracker.go
  30. mangle.go
  31. module_ctx.go
  32. module_ctx_test.go
  33. name_interface.go
  34. ninja_defs.go
  35. ninja_strings.go
  36. ninja_strings_test.go
  37. ninja_writer.go
  38. ninja_writer_test.go
  39. OWNERS
  40. package_ctx.go
  41. PREUPLOAD.cfg
  42. provider.go
  43. provider_test.go
  44. README.md
  45. scope.go
  46. singleton_ctx.go
  47. splice_modules_test.go
  48. visit_test.go
README.md

Blueprint Build System

Blueprint is being archived on 2021 May 3.

On 2021 May 3, we will be archiving the Blueprint project. This means it will not be possible to file new issues or open new pull requests for this GitHub project. As the project is being archived, patches -- including security patches -- will not be applied after May 3. The source tree will remain available, but changes to Blueprint in AOSP will not be merged here and Blueprint's source tree in AOSP will eventually stop being usable outside of Android.

Whereas there are no meta-build systems one can use as a drop-in replacement for Blueprint, there are a number of build systems that can be used:

  • Bazel, Google's multi-language build tool to build and test software of any size, quickly and reliably
  • Soong, for building the Android operating system itself
  • CMake, an open-source, cross-platform family of tools designed to build, test and package software
  • Buck, a fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages
  • The venerable GNU Make