aboutsummaryrefslogtreecommitdiffstats
path: root/java/dex.go
Commit message (Collapse)AuthorAgeFilesLines
* Fix handling optimize.enabled from java_defaultsSasha Smundak2019-04-221-1/+1
| | | | | | | | | | | | | | | Some module types (`android_test`, etc.) set `optimize.enabled` by default. If such module happens to have `defaults` attribute which clears `optimize.enabled`, the latter value is ignored. Fixes: 129858282 Test: unit tests in java_test.go, `atest CtsExtendedMockingTestCases` succeeds with aog/936802 reverted (that is, with cts/test/mocking converted to Android.bp) Change-Id: Ib8e3a0ab0bd489d70ed07f626082aeae31c45e7c Merged-In: Ib8e3a0ab0bd489d70ed07f626082aeae31c45e7c (cherry picked from commit 2057f82161dec05cb23535da713ec0fae44c38d1)
* Optimize CPU time when running d8 and r8Colin Cross2019-03-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Pass -XX:+TieredCompilation -XX:TieredStopAtLevel=1 to the JVM to reduce the time spent JITing, which in local experiments reduced the CPU time of R8 while increasing the wall time, and reduced the total number of runnable threads. Without the new flags: $ time out/soong/host/linux-x86/bin/r8-compat-proguard -injars out/target/common/obj/APPS/Dialer_intermediates/classes.jar ... real 0m30.090s user 4m35.337s sys 0m12.853s With the new flags: $ time out/soong/host/linux-x86/bin/r8-compat-proguard -JXX:+TieredCompilation -JXX:TieredStopAtLevel=1 -injars out/target/common/obj/APPS/Dialer_intermediates/classes.jar ... real 0m35.674s user 2m45.135s sys 0m9.531s The increase in wall time should be offset by the better parallelism from the reduced CPU time. Bug: 119270658 Test: m checkbuild Change-Id: I8fc78b5ef1f8c6f51fd97a29461b96ae2b35cada
* soong_zip after dex should not fail when no *.dex files were generatedSasha Smundak2019-02-151-2/+2
| | | | | | | | | | | This can happen if Android application has only a manifest file and no java code. Fixes: 124483155 Test: treehugger with Android.mk converted to Android.bp in platforms/frameworks/base/tests/privapp-permnissions Change-Id: I45f95680b62a7a4bda0e7ab156f3df24b0dad70b
* Always do zipalign with uncompressDex.Nicolas Geoffray2019-01-231-0/+5
| | | | | | | Also preserve the alignment with hiddenapi. Test: conscrypt apex has its conscrypt.jar zipaligned. Change-Id: I43cc0eadb9548c3d8055e12c077fb7bbe1935fe6
* Pass annotation processors to kotlincColin Cross2019-01-221-2/+2
| | | | | | | | | | Enable the kotlin-annotation-processing plugin and pass annotation processors to it. Bug: 122251693 Test: m checkbuild Test: TestKapt in kotlin_test.go Change-Id: I841df454beaaa7edd263eea714ca0d958a03c9de
* Use debug mode when running R8 for eng builds.Jaewoong Jung2018-11-301-0/+5
| | | | | | Bug: 119601874 Test: Built for different variants. Change-Id: I2250587eb3e457ca15265eb9f8359872e9b08363
* Store dex files uncompressed and unstripped in privileged APKsColin Cross2018-10-251-9/+16
| | | | | | | | | | | Privileged APKs need to store their dex files uncompressed so they can be verified and mapped directly out of the APK. Also track whether the module will be dexpreopted or not in order to determine if the dex file should be stripped before signing. Test: SystemUI.apk contains an uncompressed dex file Change-Id: I4dca86c7f8778595882405b34adcf2a7bae03c67
* Fix instrumentation_for to match LOCAL_INSTRUMENTATION_FORColin Cross2018-10-181-2/+2
| | | | | | | | | | | | | | | The value from instrumentation_for should not go to aapt2 link --rename-instrumentation-target-package, that should be the equivalent of LOCAL_MANIFEST_INSTRUMENTATION_FOR. That property is never used in Make, so it is left unimplemented in Soong. Add the module listed in instrumentation_for as a shared library for javac, but don't import its resources. Bug: 117804211 Test: m checkbuild Change-Id: I7f035dc0ecb964a3ca391ae1ca2b87cb0f6a7cec
* Use file glob for zipping classes*.dex filesColin Cross2018-09-281-2/+2
| | | | | | | | | | Using a directory to zip the output of d8 and r8 was causing the empty classes.dex.jar file in the output directory to get zipped in. Use a file glob instead so that it only picks up the classes*.dex files even if classes.dex.jar already exists. Test: m checkbuild Change-Id: I1f3c1cbc23439fc52756aad027ab8cac10213d1d
* Add dependencies on d8 and r8 library argumentsColin Cross2018-09-281-3/+12
| | | | | | | | | | | | d8 and r8 were missing dependencies on jars passed as library arguments. This normally worked because the input jar is likely to also depend on the same jars. When the classpath was added to d8 it started to fail on libraries that have no code but include other static libraries. Bug: 116840360 Test: rm out/soong/.intermediates/external/nist-sip/nist-sip/android_common/turbine-combined/nist-sip.jar && m out/soong/.intermediates/frameworks/base/ext/android_common/dex/ext.jar Change-Id: Ie642f4a343b949778d8ee6dcc4511f3fd7633be1
* Pass classpath to d8Colin Cross2018-09-271-9/+18
| | | | | | | | | | d8 requires the full classpath if --min-api requires default method or try-with-resources desugaring. Always pass the full classpath, since it will already have been built to generate the input jar. Bug: 116243313 Test: m checkbuild Change-Id: Ib0c18873880697b7cf942e0548dd2c53ee5ad23c
* Don't include data resources when running R8Søren Gjesse2018-09-141-0/+1
| | | | | | | | | The change https://r8-review.googlesource.com/c/r8/+/26482 made R8 process data resources by default. This is not expected for the Android Platform build Test: m -j PRODUCT-aosp_x86-userdebug core-oj Change-Id: Idb17e39dae524dacf4b258c9f27be86e3179667f
* Ensure that the R8 minification map (ProGuard dictionary) file existsSøren Gjesse2018-08-271-0/+2
| | | | | | | | R8 no longer outputs an empty map file when minification (obfuscation) is turned off. Test: m -j PRODUCT-aosp_x86-eng Change-Id: I317e703597368dc8c16751bcc8d0e43f985614fa
* Don't pass resources to r8Colin Cross2018-08-161-1/+0
| | | | | | | | | | R8 complains when it gets dex files in the input jar, but some tests use dex files or dex jars as resources. Keep resources separate from classes until after r8 has been run. Test: java_test.go Test: m checkbuild Change-Id: I1d9164d60d6b054ebb138648da07d80ee769177f
* Make :module provide the output file for java modulesColin Cross2018-08-161-1/+1
| | | | | | | | | | | Make :module on a java_library provide the output file, which is normally the implementation jar. For java_library modules with installable: true or compile_dex: true this will be the dexjar instead. For android_app modules this will be the apk. Bug: 80144045 Test: no change to out/soong/build.ninja Change-Id: I739674aee60a38bfccb859369e4414b46f293d82
* Add proguard_flags_files to r8 command lineColin Cross2018-08-131-0/+2
| | | | | | | | | We were not passing the proguard_flags_files files as -include arguments to R8. Bug: 112462307 Test: m checkbuild Change-Id: I8f3b10fc338aa4b15c0fb220ee2891efbb0b020f
* Make merge_zips -stripFile use blueprint style globsColin Cross2018-07-161-2/+2
| | | | | | | | | | merge_zips -stripFile was only considering the name of the file and ignoring the path. Make it more useful by supporting blueprint style globs. The previous behavior can be recreated by prefixing with **/. Bug: 111389216 Test: m checkbuild Change-Id: I25760fe3f1f77704dd9da9d107d9a38a415d681f
* Add support for min_sdk_versionColin Cross2018-07-091-1/+6
| | | | | | | | | | | Add min_sdk_version properties and use it for aapt2 --min-sdk-version and --target-sdk-version flags. Add an sdkContext interface that any function that needs an sdk version can take in order to get the values for the current module. Bug: 110848854 Test: m checkbuild Change-Id: Ic69f1f935d8b865ec77689350407df08bfac5925
* Revert "Revert "Remove desugar support""Colin Cross2018-06-061-109/+11
| | | | | | | | This reverts commit 7576916efcc5e73d3b5e6437187697a451dd43f0. Reason for revert: includes art veridex fix this time Change-Id: Ia8da00b5ec8ed3dc3ce2a2521f0a7b2b2b131960
* Revert "Remove desugar support"Colin Cross2018-06-061-11/+109
| | | | | | | | This reverts commit 000280bb0e13902b2d19fd102ecf68d0dbbabfba. Reason for revert: broke art veridex build Change-Id: I9f7d7cdbe8e34671614687ac0b34c0338ef240e7
* Remove desugar supportColin Cross2018-06-061-109/+11
| | | | | | | Desugaring is always handled by d8 now. Test: m checkbuild Change-Id: I29e8f68e51b194a4090866acc63f19f0605e318d
* Declare proguard_dictionary as implicit output of r8Colin Cross2018-05-171-6/+8
| | | | | | | | | | Soong was generating proguard_dictionary, but not marking it as an output, so ninja would fail with: ninja: error: 'out/soong/.intermediates/bootable/recovery/tools/recovery_l10n/RecoveryLocalizer/android_common/proguard_dictionary', needed by 'out/target/common/obj/APPS/RecoveryLocalizer_intermediates/proguard_dictionary', missing and no known rule to make it Fixes: 78770148 Test: mmma bootable/recovery/tools/recovery_l10n Change-Id: I956f92519ea81d4fb1322114214099d46d734906
* Add EMMA_INSTRUMENT_STATIC supportColin Cross2018-01-041-0/+5
| | | | | | | Add jacocoagent when instrumenting with EMMA_INSTRUMENT_STATIC. Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true Change-Id: I451bb9d16b7f0a66fd06c2da576062b28830e470
* Add R8 supportColin Cross2018-01-031-16/+107
| | | | | | | Add support for R8 to optimize apps and java libraries. Test: m checkbuild Change-Id: I2afd5d7a84912d3ab613c32c599bd1ebe60562e0
* Refactor dexingColin Cross2018-01-021-0/+181
Move dexing support into java/dex.go, including the rules and logic from builder.go and the function from java.go. Test: no change to build.ninja Change-Id: I098d2a9774e28079ba44791679a0db6f876fe3e6