This script has the following functionality:
1. Sets up the `out` symlink to point to a default location on disk
2. Copies RBE binaries outside Cog (temporary fix for build stall problem) - b/289391270
3. Exports ANDROID_BUILD_ENVIRONMENT_CONFIG variable to point to googler-cog.json file. This file will be available in aosp-main-with-phones and goog/main and downstream branches.
TESTED=ran the script within and outside the Cog workspace to test it.
Bug: b/295053716
Change-Id: I59cd6d2d5f954be6f7e4ecd7d64de1e63e51b72e
If adb is not found on PATH, which will silently fail and evaluate to
the empty string. This will cause the remaining arguments to be
interpreted as a command to run in the shell, which is generally
undesirable. (Consider, for example, "adb reboot" -> "reboot".)
Bug: 24473359
Test: Just run adb before lunch so it's not on PATH
Change-Id: I6b20722add6c67d1d2627f963dc66095502ab816
Signed-off-by: Saagar Jha <saagarjha@google.com>
Similar to
https://android-review.googlesource.com/c/platform/build/+/2403120.
The directory structure of //development/python-packages/gdbrunner
needs to change to be able to export type info to importers, and this
needs to adapt to keep gdbclient working.
Bug: None
Test: gdbclient.py --help
Change-Id: I8127ec7beae2a7840283be25ee236a8e2af48cae
This replaces support for the unused
TARGET_PLATFORM_VERSION variable.
Now, if you pass three - separated
items the first is product, the
second is release and the third
is variant. If you only pass two
they're still product-variant
and the build system will choose
a reasonable default for release.
Test: run lunch with two and three items, confirmed values in the build banner
Change-Id: I128177d96ffe81b79b6945a24ebf37861c3b25fc
adb root sometimes takes a second, and the next command
will fail.
Bug: N/A
Test: syswrite on device which isn't already rooted
Change-Id: I91754c31c74bf0589ea8cbae77c10e5a120bdce5
Importers of the adb python package like lldbclient.py and gdbrunner
are broken following the restructure that enabled adb to export type
info to importers.
Bug: http://b/266688086
Test: adb.__file__ is no longer None after envsetup.sh/lunch
Change-Id: I7bf27601e800043adee8971c093347ca9b2979a9
Since RBE is default for dev builds, and we no longer set RBE config
through env variables, this error message is incorrect.
Bug: b/265326161
Test: Ran a build and make sure this error message wasn't printed
anymore.
Change-Id: I128616ce37763400407e099b52ef284905239eb4
This is useful for searching Rust config files in external.
Test: cd external/rust/crates; tomlgrep foo
Change-Id: I1ff5118a8eee1a95f1bc6fa44c922673a03ebd8b
If the shell is set to exit on errors, the extraneous (incorrect syntax)
call to lunch.py causes an early exit.
Change-Id: I0176d5c9e7e42640514fd4988d82fbfdd825631d
This gets b (and other scripts that are coming soon) into the path without running lunch.
Also gets rid of the make dumpvar ANDROID_BUILD_PATHS variable, used to set a few more paths,
so that the setting is all in one place, now that the get_abs_build_var is cached.
Test: Lots of manual checks of before and after combinations
Change-Id: I745168c43ccf2fef4cdd22657fd087f1ad07e510
Generate a all_modules.txt file on every build that
can be used for autocompleting.
Because this adds time to every non-incremental build,
I profiled it by using `$(shell date +"%s.%3N")` before
and after, and disovered it only adds about 0.01 seconds
to the build. And of course it won't be rerun if there
weren't build changes.
Bug: 255867758
Test: Manually
Change-Id: I1d3f1008611fd542884322b27b19ea2fa1d341fe
RBE is not used with standalone builds, and it adds unnecessary
overhead.
Test: without this change, b info no-op takes 24s on my machine. with
this change, it drops to 9s.
Fixes: 251441524
Bug: 243596580
Change-Id: I564629064f51e2b2cad836915aacf6f72e84aaeb
The target gcc toolchains have been removed from the tree, remove them
from the PATH set up by envsetup.sh. Also remove GCC_COLORS, since
we always use clang.
Test: source envsetup.sh
Change-Id: I6020816a78d0f3e03ade13812313adb156864ab6
This benefits interactive workflows of folks who are used to typing just
module names on the command line, and lowers the cognitive load to find
the package name, and can be used to check if a module is converted.
Can be used as :
$ bmod libaapt2
//frameworks/base/tools/aapt2:libaapt2
$ b build $(bmod aapt2)
If the mod is not in the bp2build metrics file, it returns:
$ bmod nonexistent
nonexistent is not converted to Bazel.
Test: build/make/core/tests/b_tests.sh
Change-Id: I245665a393621a47598e6743c0fedcd87ac33631
Zsh has some incompatibilties that we've been trying to work around in
the b command. Hopefully this prevents future issues.
Bug: 242759256
Test: build/make/tests/roboleaf_tests.sh
Change-Id: I5e887932e943112377d38e77a77a0f294b43d9b6
Now that orchestrator code has moved into its own project, update the
paths in multitree envesetup
Test: multitree_lunch locally
Change-Id: Ic718b9fa169c68ac161ac3448b6e46635ec2ae10
Context: zsh doesn't do string splitting like bash, so it passes the
post-processed bazel args to bazel as a single arg. So this CL adds a
conditional to split explicitly with zsh using the {=<arg>} flag
syntax.
Reference: https://zsh.sourceforge.io/FAQ/zshfaq03.html (for shwordsplit)
Reference: https://zsh.sourceforge.io/Guide/zshguide05.html (Section 5.4.4)
For bash, this uses array[@] to split the list into separate
shell words.
Test: zsh; source build/envsetup.sh && b test
//system/logging/logd:logd-unit-tests --config=linux_x86_64
Test: bash; source build/envsetup.sh && b test
//system/logging/logd:logd-unit-tests --config=linux_x86_64
Change-Id: Id92462661bbe1799a6de8dd3393799d91e3044e8
zsh doesn't do string splitting like bash, so it passes the
post-processed bazel args to bazel as a single arg. So this CL adds a
conditional to do the splitting correctly for zsh with `setopt
shwordsplit`.
Reference: https://zsh.sourceforge.io/FAQ/zshfaq03.html
For bash, this uses array[@] to split the list into separate
shell words.
Test: zsh; source build/envsetup.sh && b test
//system/logging/logd:logd-unit-tests --config=linux_x86_64
Test: bash; source build/envsetup.sh && b test
//system/logging/logd:logd-unit-tests --config=linux_x86_64
Change-Id: I4e19a062b7f7e119b1612a8ce5c801878378cc69
Note that b autocompletion isn't perfect, given that the autocompletion
script looks into the workspace root for BUILD files, instead of
out/soong/workspace. (Also, out/soong/workspace may not even be
available if bp2build has not yet been run!) However, this is a good
start to autocompletion, as bazel commands, flags, and packages
autocomplete correctly.
Fixes: 196945896
Test: Treehugger
Test: Manual verification of `b` autocompletion
Change-Id: Ia99abcfe50d195c48644c7b3455243c03d5d38f7
eval doesn't seem to be necessary and using it breaks quoted args to query.
$ b cquery 'kind(test, //build/bazel/...)'
-bash: eval: line 99: syntax error near unexpected token `('
-bash: eval: line 99: ')`bazel cquery kind(test, //build/bazel/...)
---config=bp2build ''
Test: source and rerun b cquery with quoted args
Change-Id: I2b8c4387ab729b5f927fe5a629d3a4cd58bcf901
As a replacement for the removal of the avbtool symlink
Bug: 198619163
Test: Manually running `avbtool`
Change-Id: I54d504a5132e5ac89337e67a07bca0a6f410c272
It doesn't really make sense to incur the cost of running Soong tests to
Bazel users. We can shave off 20 seconds from the local critical path
during clean builds (or if Soong itself has changed) by enabling
--skip-soong-tests in the b command.
Test: b build '...'
Test: b build '...' --run-soong-tests
Bug: 240231596
Change-Id: I2325e1992099534b41ae996cee99e126a12f3c62
Bazel also supports `--foo bar` as another way to mean `--foo=bar`,
The current implementation would accidentally catch that and make it
`--foo --config=bp2build bar`. This CL instead requires that additional
arguments to the target come after a `--`.
E.g.
```
b run --args-for-bazel //foo -- --args-for-foo
```
Test: b build //build/bazel/scripts/difftool:difftool
Test: b run //build/bazel/scripts/difftool/difftool.py --level=FINE /tmp/legacyBuildFiles /tmp/bazelBuildFiles --file_type=object
Change-Id: I534caab04e4c919d4e7b6dc83b8a88e020626b18
This reverts commit 56e576dc12.
Reason for revert: breaks `b cquery //foo:bar` - it strips out `//foo:bar`.
Change-Id: I92d8b1c2732efad3160d26ee78116eccc9f8e48a
It doesn't really make sense to incur the cost of running Soong tests to
Bazel users. We can shave off 20 seconds from the local critical path
during clean builds (or if Soong itself has changed) by enabling
--skip-soong-tests in the b command.
Test: b build '...'
Test: b build '...' --run-soong-tests
Bug: 240231596
Change-Id: I77d652502dc000908166e13045aa3e245c2e762c
The grep doesn't work because "Reboot" is capitalized in the
enable-verity output. Now, syswrite gets farther, but fails before the
final remount.
$ syswrite
adbd is already running as root
Successfully disabled verity
Enabled overlayfs
rebooting
restarting adbd as root
error: closed
Test: ran syswrite on freshly flashed device
Change-Id: I26aaa6278d76dcab56fd4bde3d70ac7841ae2a3b
Having the --config flag at the end of a bazel command
will make it get passed to the command you're running
with b run instead of bazel.
Fixes: 242759256
Test: Manually
Change-Id: I6d23a0b022fdee5f822a873c1578674d1eab39c0
Shared trees are supported by specifying the inner-tree as a list in the
mcombo file. This change enables that work.
Bug: None
Test: manual, unittests pass
Change-Id: I161d707d0aada66d134b49b158bf538f0e2a2572