diff options
author | Colin Cross <ccross@android.com> | 2017-12-05 15:31:19 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2017-12-06 13:27:56 -0800 |
commit | 1bd8780881ffdeb4b16bfedc4410f54fc6e2fabb (patch) | |
tree | 9f8604346d429f6183a5e411bf806302a774c55b | |
parent | 7a6fcbe302dd581deeda341b76d853af3f6ec12c (diff) | |
download | build_soong-1bd8780881ffdeb4b16bfedc4410f54fc6e2fabb.tar.gz build_soong-1bd8780881ffdeb4b16bfedc4410f54fc6e2fabb.tar.bz2 build_soong-1bd8780881ffdeb4b16bfedc4410f54fc6e2fabb.zip |
Add more dex_preopt properties
Move dex_preopt to dex_preopt.enabled, and add dex_preopt.app_image,
dex_preopt.profile_guided, and dex_preopt.profile. These values will
be passed back to Make if provided to control dex preopting.
Test: m checkbuild
Change-Id: I54a4b1de697a08be20ab65d2a5dc43ce0046692d
-rw-r--r-- | androidmk/cmd/androidmk/android.go | 7 | ||||
-rw-r--r-- | java/androidmk.go | 14 | ||||
-rw-r--r-- | java/java.go | 21 |
3 files changed, 36 insertions, 6 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go index 18756a9f..bb9d140f 100644 --- a/androidmk/cmd/androidmk/android.go +++ b/androidmk/cmd/androidmk/android.go @@ -94,6 +94,8 @@ func init() { "LOCAL_NOTICE_FILE": "notice", "LOCAL_JAVA_LANGUAGE_VERSION": "java_version", "LOCAL_INSTRUMENTATION_FOR": "instrumentation_for", + + "LOCAL_DEX_PREOPT_PROFILE_CLASS_LISTING": "dex_preopt.profile", }) addStandardProperties(bpparser.ListType, map[string]string{ @@ -151,7 +153,10 @@ func init() { "LOCAL_PROPRIETARY_MODULE": "proprietary", "LOCAL_VENDOR_MODULE": "vendor", "LOCAL_EXPORT_PACKAGE_RESOURCES": "export_package_resources", - "LOCAL_DEX_PREOPT": "dex_preopt", + + "LOCAL_DEX_PREOPT": "dex_preopt.enabled", + "LOCAL_DEX_PREOPT_APP_IMAGE": "dex_preopt.app_image", + "LOCAL_DEX_PREOPT_GENERATE_PROFILE": "dex_preopt.profile_guided", }) } diff --git a/java/androidmk.go b/java/androidmk.go index f52d5e95..acf597bb 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -36,8 +36,18 @@ func (library *Library) AndroidMk() android.AndroidMkData { } if library.dexJarFile != nil { fmt.Fprintln(w, "LOCAL_SOONG_DEX_JAR :=", library.dexJarFile.String()) - if library.deviceProperties.Dex_preopt != nil && *library.deviceProperties.Dex_preopt == false { - fmt.Fprintln(w, "LOCAL_DEX_PREOPT := false") + if library.deviceProperties.Dex_preopt.Enabled != nil { + fmt.Fprintln(w, "LOCAL_DEX_PREOPT :=", *library.deviceProperties.Dex_preopt.Enabled) + } + if library.deviceProperties.Dex_preopt.App_image != nil { + fmt.Fprintln(w, "LOCAL_DEX_PREOPT_APP_IMAGE :=", *library.deviceProperties.Dex_preopt.App_image) + } + if library.deviceProperties.Dex_preopt.Profile_guided != nil { + fmt.Fprintln(w, "LOCAL_DEX_PREOPT_GENERATE_PROFILE :=", *library.deviceProperties.Dex_preopt.Profile_guided) + } + if library.deviceProperties.Dex_preopt.Profile != nil { + fmt.Fprintln(w, "LOCAL_DEX_PREOPT_GENERATE_PROFILE := true") + fmt.Fprintln(w, "LOCAL_DEX_PREOPT_PROFILE_CLASS_LISTING := $(LOCAL_PATH)/"+*library.deviceProperties.Dex_preopt.Profile) } } fmt.Fprintln(w, "LOCAL_SDK_VERSION :=", String(library.deviceProperties.Sdk_version)) diff --git a/java/java.go b/java/java.go index 0e54e3c6..3663253c 100644 --- a/java/java.go +++ b/java/java.go @@ -167,9 +167,24 @@ type CompilerDeviceProperties struct { // If true, export a copy of the module as a -hostdex module for host testing. Hostdex *bool - // If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to - // true. - Dex_preopt *bool + Dex_preopt struct { + // If false, prevent dexpreopting and stripping the dex file from the final jar. Defaults to + // true. + Enabled *bool + + // If true, generate an app image (.art file) for this module. + App_image *bool + + // If true, use a checked-in profile to guide optimization. Defaults to false unless + // a matching profile is set or a profile is found in PRODUCT_DEX_PREOPT_PROFILE_DIR + // that matches the name of this module, in which case it is defaulted to true. + Profile_guided *bool + + // If set, provides the path to profile relative to the Android.bp file. If not set, + // defaults to searching for a file that matches the name of this module in the default + // profile location set by PRODUCT_DEX_PREOPT_PROFILE_DIR, or empty if not found. + Profile *string + } // When targeting 1.9, override the modules to use with --system System_modules *string |