If TARGET_NO_KERNEL is true (device has prebuilt boot.img), then the
init_boot.img build arguments wouldn't be propagated correctly.
This is because INTERNAL_INIT_BOOT_IMAGE_ARGS is misplaced within a
`ifneq ($(strip $(TARGET_NO_KERNEL)),true)` conditional block.
Fix this by moving INTERNAL_INIT_BOOT_IMAGE_ARGS initialization into the
`ifeq ($(BUILDING_INIT_BOOT_IMAGE),true)` block, which is closer to its
first use.
Bug: 237630862
Test: m initbootimage
Change-Id: I6c0ee2c4b5d0be77a93311eba714e0ed555ffd25
Some test modules such as `android_test` use the `host_required` attribute to include additional harness dependencies. For example, `CtsLibcoreTestCases` references `cts-dalvik-host-test-runner` in the `host_required` attribute since those jars are required by Tradefed at runtime.
This information needs to present in module_info.json and exported to properly generate Bazel targets that include these runtime dependencies.
Test: m out/target/product/coral/module-info.json
Bug: 220991354
Change-Id: I8d2ab0da04c9f4aff17d290999c69ffe0534729f
Currently the only way to do this is to enable deduplication.
Bug: N/A
Test: BOARD_EROFS_COMPRESSOR := none
Change-Id: I7f8b99fbcefe7bbc15dfab7062b321aa3e2cf1ca
The makefile product inheritance code was supposed
to deduplicate inheritance calls, but there was
a bug in the uniq-word function that caused it
to not work when duplicated words were adjacent.
$(subst |||x|||,||| |||,|||x|||x|||) produces
||| |||x||| instead of ||| ||| |||.
Rewrite the uniq-word function to fix the bug.
This issue was causing a discrepency between
the makefile and starlark based product configurations,
as the starlark implementation didn't have this bug.
Bug: 237019892
Test: ./build/bazel/ci/rbc_dashboard.py --quick on an internal-only product
Change-Id: I543a80746412ffcb9743203399413a0e707111e6
SymlinkTree is one of the action types Blaze returns in response to
`aquery` (action query). build-runfiles is a tool copied from Bazel
to implement this action (see src/main/tools/build-runfiles.cc in
the Bazel Git repo). It creates a symlink farm (i.e., a directory
hiearchy consisting of symlinks) from a given manifest. Mixed builds
need this tool the mixed builds (in particular, every Python applicaion
has a runtime symlink farm).
Bug: 232085015
Test: m USE_BAZEL_ANALYSIS=1 com.android.adbd
Change-Id: I9cfcb33cb7d0f63bd36ffd2b4101f53cfc6a42fc
Uniform the split() function
str.split() will return a list split all spaces in str,
while str.split(' ') will return a list might contain ''
which might have potential issues.
Signed-off-by: jiajia tang <tangjiajia@xiaomi.com>
Change-Id: I0961659b140f800bdbe285f63bb4f02b8459ff8b
Signed-off-by: jiajia tang <tangjiajia@xiaomi.com>
(cherry picked from commit dccd189954)
Previously, any setting of SOONG_CONFIG_<m>_module_source_build (where
<m> is one of wifi, uwb or bluetooth) that was made before the
core/android_soong_config_vars.mk was processed would be replaced with
false. This change will only set them to false if they have not been
previously set.
Bug: 233965247
Test: m nothing
# After setting SOONG_CONFIG_wifi_module_source=true before this
# code. Without this change out/soong/soong.variables uses false
# for the wifi_module/module_source config variable. With this
# change it uses true.
Merged-In: I1dffeb055a68250f574630d4ef5fedc51bad4a2b
Change-Id: I1dffeb055a68250f574630d4ef5fedc51bad4a2b
Flip the setting that controls R8 shrinking for system_server from
opt-in to opt-out. This can be controlled by vendor makefiles and from
the command-line using the `SYSTEM_OPTIMIZE_JAVA` boolean build flag.
Note that this change only enables code shrinking for system_server,
and should not impact stack traces except for certain stack frames
involving synthetics.
Additional (vendor) code that is loaded dynamically into
system_server, that references system_server code, should use
system_server APIs that are expicitly annotated with
`@android.annotation.SystemApi`.
Additional (vendor) code added directly to services.jar,
which doesn't fall into existing keep patterns in the services
proguard.flags configuration and would otherwise be stripped, should be
annotated with `@com.android.internal.annotations.Keep`.
Results: services.jar (20MB -> 17MB)
Bug: 210510433
Test: atest
CtsInstalledLoadingProgressHostTests
CtsAutoFillServiceTestCases
CtsAppSecurityHostTestCases
CtsAppTestCases
Change-Id: Icc77c9451d9a4a83e02cb591693354988f8d0ec4
It turns out dist goals do not map well to units of code distributed.
They often build a combination of files to distribute and files for
internal use only.
This change creates license texts and lists of projects to share for
individual files in dist instead of for dist goals.
If a distribution needs the license texts for part of a dist file or
for a combination of multiple files, whoever is distributing will have
to create a suitable text notice using `gen_notice{}` or `testnotice`
and include it among the dist files for the goal using `dist-for-goals`
or equivalent.
Bug: 151177513
Bug: 210912771
Bug: 235333302
Bug: 232138105
Bug: 235302632
Test: m cts dist
Test: m droid dist
Test: tapas google-tradefed-all && m dist
Change-Id: Id78f032575a2ac1a3cc70643b3ae4d2e6c32da04
This reverts commit 1e27f4fff9.
Reason for revert: Rolling forward again without 'all' target.
Bug: 151177513
Bug: 210912771
Bug: 235333302
Bug: 232138105
Test: m droid dist reportmissinglicenses
Test: tapas google-tradefed-all && m dist
Change-Id: I392047ec50ac6e74b9accf260c62e77aef1640d5
Even though it doesn't have google modules in PRODUCT_PACKAGES,
the docs build wants to use prebuilts when the rest of the branch
does.
Bug: 230478310
Test: m docs (inspect MODULE_BUILD_FROM_SOURCE)
Merged-In: I1d67f4099e9fdc5fbaeeb0bf0fce80aa91c05eb5
Change-Id: I1d67f4099e9fdc5fbaeeb0bf0fce80aa91c05eb5