dict(**h[0]) was only copying the top level dictionary
object, but not any other dictionaries/lists inside of
it. This was causing us to not find all the changes to
variables the board configuration was making, and so
some variables were not included in the output.
Bug: 201700692
Test: ./build/bazel/ci/rbc_regression_test.sh mainline_system_x86_64-userdebug
Test: ./out/soong/rbcrun ./build/make/tests/run.rbc
Change-Id: I4467eead7e597f6f49119a8c4832126f39d646e7
external/zucchini/version_info.h contains version info for zucchini
diffing algorithm. OTA tools will use these version info to check for
compatibility and determine if zucchini can be used safely. Owners of
zucchini agreed to keep the format of version_info.h stable so it's
parser friendly.
Bug: 194237829
Test: m dist
Change-Id: If8e37533933b346d3f03adab9263679910ab328c
Certain board configurations reference $(PRODUCT_OUT)
through deferred expansion, which will no longer work
after conversion to starlark.
Bug: 201700692
Test: build/bazel/ci/rbc_regression_test.sh -b yukawa-userdebug
Change-Id: I02055f5c4a05e540c1752d5964d4db4306292c3b
This is a follow-up CL for https://r.android.com/1900565.
This is needed because product makefiles may need to add their own
APEX boot jars, and they cannot insert them in the correct alphabetical
order on the list. So it needs to be sorted automatically. Do this
after processing all product makefiles and populating the variable,
but before passing it to Soong.
Bug: 207474880
Test: lunch aosp_cf_x86_64_phone-userdebug && launch_cvd
# cuttlefish device boots successfully
Change-Id: I86b58ef8aeac595e401d872f59a2936a67bedeec
dexopt defaults to dex2oat32 unless instructed otherwise. Since
dex2oat32 doesn't exist on a 64-bit-only build, make sure dex2oat64
is selected instead.
Test: boot aosp_cf_x86_64_only_phone and check that installd doesn't
try to use dex2oat32
Change-Id: Ia67e746894684a52a4e5b765bfde0f6dd0efbf6e
This is needed because product makefiles may need to add their own
system server jars to this variable, and they cannot insert them in
the correct alphabetical order on the list. So it needs to be sorted
automatically. Do this after processing all product makefiles and
populating the variable, but before passing it to Soong.
Bug: 207474880
Test: atest art_standalone_dexpreopt_tests:art_standalone_dexpreopt_tests.DexpreoptTest#ForSystemServer
Change-Id: I80dbf555c395c92539c506d3d8b1f2f101a58bce
Test: lunch armv8
- Check that PATH has no "::".
- Check that an executable script in CWD doesn't get executed.
Change-Id: I3a97eb661c614ff2e09723e9ccca0bdeb63dbdc5
TARGET_BUILD_APPS is supposed to be a list of apps to
build, so having it be a bool was incorrect. Change it
to properly reflect what it is, because the starlark
product configuration relies on soong's interpretation
of variables types.
Bug: 201700692
Test: Presubmits
Change-Id: I00109b57abbcda86077f0465f982f54b4a77a7f0
mk2rbc has a few predefined variables that can't be
set in the product/board config makefiles, unless they're
set to their predefined values. Exclude these variables
from the board config input variables so that they don't
conflict.
Bug: 201700692
Test: m RBC_BOARD_CONFIG=1 mainline_system_x86_64-userdebug (ninja files differ still but this fixes a compilation error)
Change-Id: Idc11b2c5029d28116236b289ad1f09afaaf83cc3
The board config can actually change a few product config
variables that are not made read-only.
Bug: 201700692
Test: ./build/bazel/ci/rbc_regression_test.sh -b aosp_cf_x86_64_phone
Change-Id: Ib2ac04ac2c5a56d32bca51fc8189e44e180075ee
location of ota_from_target_files changed from
out/host/linux-x86/bin to
out/soong/host/linux-x86/bin . This changes relative position of
signapj.jar. To fix, use ANDROID_HOST_OUT as search path
Change-Id: I5397171566e9d7598b5ef16ae26641f0c183d748
builds (reland).
- Use art/build/boot/boot-image-profile.txt for the primary boot image
in the ART module, both when it's built from source in platform and
as an unbundled module.
- Use frameworks/base/boot/boot-image-profile.txt for the framework
extension image in platform, but not in unbundled builds.
This should obsolete the combined profile
frameworks/base/config/boot-image-profile.txt.
This relands https://r.android.com/1881863 with a fix to allow multiple
values on PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION.
Test: build/soong/soong_ui.bash --dumpvar-mode \
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION
and check that it prints both art/build/boot/boot-image-profile.txt
and frameworks/base/boot/boot-image-profile.txt in a platform build
on master.
Test: build/soong/soong_ui.bash --dumpvar-mode \
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION
and check that it prints only art/build/boot/boot-image-profile.txt
in an unbundled build on master-art.
Test: banchan com.android.art && m
on master-art and check that
out/soong/.intermediates/art/build/apex/com.android.art/android_common_com.android.art_image/image.apex/javalib/x86_64/boot.oat
shrinks from 14 MB to 4.7.
Test: m droid
on master together with https://r.android.com/1895131 and check that
out/soong/.intermediates/art/build/apex/com.android.art/android_common_com.android.art_image/image.apex/javalib/x86_64/boot.oat
and out/target/product/vsoc_x86_64/system/framework/x86_64/boot-framework.oat
are identical.
Test: lunch armv8-eng && art/tools/buildbot-build.sh
on master-art
Bug: 174746397
Change-Id: I9114271bc69cf0888150b2c778a086bc50b73045
Soong now installs to the same directory as Make, point SOONG_HOST_OUT
at HOST_OUT.
Bug: 204136549
Test: m checkbuild
Change-Id: I49bfc0466056d270c8023288a6fe778c3445a900
In preparation for Soong handling the installation rules, extract
the primary APK from the apk set in Soong.
Bug: 204136549
Test: build test android_app_set
Change-Id: I416b57009101ca4c05c11102f260e102af13bf0d
mk2rbc would already translate notdir calls,
but since there was no implementation it would
fail at runtime.
Bug: 201700692
Test: m rbcrun; rbcrun build/make/tests/run.rbc
Change-Id: Ie0f4e7b65448e612fa56f87b0bc138648cc0ad58
The board configuration doesn't use init_globals(),
which is where _soong_config_namespaces_key normally
is set. Just assume empty dictionaries in
soong_config_namespace where appropriate.
Bug: 201700692
Test: build/bazel/ci/rbc_product_config.sh -b armv8-userdebug
Change-Id: I5f1e52fa0bdde32bff0e8db54861557dcb327190
Host modules shouldn't use the logic for device modules to determine
the java language version to use, always default to 1.9.
Bug: 202761304
Test: m checkbuild
Change-Id: I268dd34d887db4646e188858c7f2aedc30966856
Soong creates install rules and lists them in LOCAL_SOONG_INSTALL_PAIRS,
where they get copied to ALL_MODULE.$(m).BUILT_INSTALLED. BUILT_INSTALLED
is used by package-modules.mk to copy the built modules to alternate
install locations for building zips like continuous_native_tests.zip.
Translate Soong's built module location, which is listed in
LOCAL_PREBUILT_MODULE_FILE, into $(LOCAL_BUILT_MODULE) when setting
BUILT_INSTALLED so that package-modules.mk copies from
$(LOCAL_BUILT_MODULE) instead of $(LOCAL_PREBUILT_MODULE_FILE). This
ensures that the transitive dependencies added to $(LOCAL_BUILT_MODULE),
for example the unstripped symbols files, are present when
continuous_native_tests.zip is built.
Bug: 206137439
Test: manual
Change-Id: I1a45cd6d3c81d6435a10f4d29557e521753068a4