Port the dexpreopt logic from Make to the dexpreopt package in Soong, and use it to dexpreopt Soong modules. The same package is also compiled into the dexpreopt_gen binary to generate dexpreopt scripts for Make modules. This relands Ib67e2febf9ed921f06e8a86b9ec945c80dff35eb and I462182638bd57b1367b5bfb0718e975c11ae66f7, along with multiple fixes to depsfile generation in dexpreopt_gen that caused .odex files for modules in defined make to be missing dependencies on boot.art, and a fix to not dexpreopt and strip tests. Bug: 119412419 Bug: 120273280 Test: no differences to dexpreopt outputs on aosp_sailfish system/, only expected changes to dexpreopt outputs on system_other (.vdex files for privileged Soong modules no longer incorrectly contain .dex contents). Test: OUT_DIR=$PWD/out m Test: NINJA_ARGS="-t deps out/target/product/sailfish/obj/APPS/Contacts_intermediates/dexpreopt.zip" m Change-Id: I6bb2c971cee65d2338839753aa0d84939f335b1b
82 lines
2.8 KiB
Go
82 lines
2.8 KiB
Go
// Copyright 2017 Google Inc. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package config
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"android/soong/android"
|
|
)
|
|
|
|
func init() {
|
|
android.RegisterMakeVarsProvider(pctx, makeVarsProvider)
|
|
}
|
|
|
|
func makeVarsProvider(ctx android.MakeVarsContext) {
|
|
ctx.Strict("TARGET_DEFAULT_JAVA_LIBRARIES", strings.Join(DefaultLibraries, " "))
|
|
ctx.Strict("TARGET_DEFAULT_BOOTCLASSPATH_LIBRARIES", strings.Join(DefaultBootclasspathLibraries, " "))
|
|
ctx.Strict("DEFAULT_SYSTEM_MODULES", DefaultSystemModules)
|
|
|
|
if ctx.Config().TargetOpenJDK9() {
|
|
ctx.Strict("DEFAULT_JAVA_LANGUAGE_VERSION", "1.9")
|
|
} else {
|
|
ctx.Strict("DEFAULT_JAVA_LANGUAGE_VERSION", "1.8")
|
|
}
|
|
|
|
ctx.Strict("ANDROID_JAVA_HOME", "${JavaHome}")
|
|
ctx.Strict("ANDROID_JAVA8_HOME", "prebuilts/jdk/jdk8/${hostPrebuiltTag}")
|
|
ctx.Strict("ANDROID_JAVA9_HOME", "prebuilts/jdk/jdk9/${hostPrebuiltTag}")
|
|
ctx.Strict("ANDROID_JAVA_TOOLCHAIN", "${JavaToolchain}")
|
|
ctx.Strict("JAVA", "${JavaCmd}")
|
|
ctx.Strict("JAVAC", "${JavacCmd}")
|
|
ctx.Strict("JAR", "${JarCmd}")
|
|
ctx.Strict("JAR_ARGS", "${JarArgsCmd}")
|
|
ctx.Strict("JAVADOC", "${JavadocCmd}")
|
|
ctx.Strict("COMMON_JDK_FLAGS", "${CommonJdkFlags}")
|
|
|
|
ctx.Strict("DX", "${D8Cmd}")
|
|
ctx.Strict("DX_COMMAND", "${D8Cmd} -JXms16M -JXmx2048M")
|
|
ctx.Strict("R8_COMPAT_PROGUARD", "${R8Cmd}")
|
|
|
|
ctx.Strict("TURBINE", "${TurbineJar}")
|
|
|
|
if ctx.Config().RunErrorProne() {
|
|
ctx.Strict("ERROR_PRONE_JARS", strings.Join(ErrorProneClasspath, " "))
|
|
ctx.Strict("ERROR_PRONE_FLAGS", "${ErrorProneFlags}")
|
|
ctx.Strict("ERROR_PRONE_CHECKS", "${ErrorProneChecks}")
|
|
}
|
|
|
|
ctx.Strict("TARGET_JAVAC", "${JavacCmd} ${CommonJdkFlags}")
|
|
ctx.Strict("HOST_JAVAC", "${JavacCmd} ${CommonJdkFlags}")
|
|
|
|
ctx.Strict("JLINK", "${JlinkCmd}")
|
|
ctx.Strict("JMOD", "${JmodCmd}")
|
|
|
|
ctx.Strict("SOONG_JAVAC_WRAPPER", "${SoongJavacWrapper}")
|
|
ctx.Strict("DEXPREOPT_GEN", "${DexpreoptGen}")
|
|
ctx.Strict("ZIPSYNC", "${ZipSyncCmd}")
|
|
|
|
ctx.Strict("JACOCO_CLI_JAR", "${JacocoCLIJar}")
|
|
ctx.Strict("DEFAULT_JACOCO_EXCLUDE_FILTER", strings.Join(DefaultJacocoExcludeFilter, ","))
|
|
|
|
ctx.Strict("EXTRACT_JAR_PACKAGES", "${ExtractJarPackagesCmd}")
|
|
|
|
ctx.Strict("MANIFEST_FIXER", "${ManifestFixerCmd}")
|
|
|
|
ctx.Strict("ANDROID_MANIFEST_MERGER_DEPS", "${ManifestMergerJars}")
|
|
ctx.Strict("ANDROID_MANIFEST_MERGER",
|
|
"${JavaCmd} -classpath ${ManifestMergerClasspath} com.android.manifmerger.Merger")
|
|
}
|