diff options
author | Martin Stjernholm <mast@google.com> | 2020-01-11 00:37:30 +0000 |
---|---|---|
committer | Martin Stjernholm <mast@google.com> | 2020-01-24 22:18:42 +0000 |
commit | 335d596384a84ecfda0161500806eb9b1cc8a668 (patch) | |
tree | 76f16c72b684ccbfb96cae8c5e6d3f283f0aed0f /java/java_test.go | |
parent | dae8a8042648db84af3720be97845636a2dd57c6 (diff) |
Get the dex2oat host tool path from module dependency on the binary
module.
This uses the Once cache for GlobalSoongConfig to propagate the dex2oat
path from a module dependency to the singletons (both the one that
writes out dexpreopt_soong.config and the one that creates the
dexpreopted boot images). Unless dexpreopting is disabled altogether
through DisablePreopt in dexpreopt.config, that means:
- We must ensure at least one module registers a dex2oat tool
dependency and resolves a GlobalSoongConfig using it, or else the
singletons fail. That means we litter dex2oat dependencies in java
modules even when they won't get dexpreopted and hence don't really
need them.
- We still assume there's at least one java_library or android_app in
the build.
Bug: 145934348
Test: m
(check that out/soong/dexpreopt_soong.config points to dex2oatd64)
Test: env USE_DEX2OAT_DEBUG=false m
(check that out/soong/dexpreopt_soong.config points to dex2oat)
Test: env OUT_DIR=out-tools prebuilts/build-tools/build-prebuilts.sh
on the aosp-build-tools branch
Change-Id: I38317f2d5e5cf6822f87daae25745767c8a3656c
Diffstat (limited to 'java/java_test.go')
-rw-r--r-- | java/java_test.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/java/java_test.go b/java/java_test.go index f047486e6..b724b4de2 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -57,6 +57,8 @@ func TestMain(m *testing.M) { } func testConfig(env map[string]string, bp string, fs map[string][]byte) android.Config { + bp += dexpreopt.BpToolModulesForTest() + config := TestConfig(buildDir, env, bp, fs) // Set up the global Once cache used for dexpreopt.GlobalSoongConfig, so that @@ -92,6 +94,8 @@ func testContext() *android.TestContext { cc.RegisterRequiredBuildComponentsForTest(ctx) ctx.RegisterModuleType("ndk_prebuilt_shared_stl", cc.NdkPrebuiltSharedStlFactory) + dexpreopt.RegisterToolModulesForTest(ctx) + return ctx } |