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
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user