summaryrefslogtreecommitdiff
path: root/java/java.go
AgeCommit message (Collapse)Author
2020-06-16Add support for running Android lint on java and android modules.Colin Cross
Add a rule that runs Android lint on each java and android module and produces reports in xml, html and text formats. Bug: 153485543 Test: m out/soong/.intermediates/packages/apps/Settings/Settings-core/android_common/lint-report.html Change-Id: I5a530975b73ba767fef45b257d4f9ec901a19fcb
2020-06-16Merge "Do not override "-g:source,lines" for host java binaries when ↵Alex Humesky
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO is set." am: c7f8b74365 am: 849ca22fe0 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1339636 Change-Id: I482dee048952846d251168df148817e5b6c0efbd
2020-06-15Do not override "-g:source,lines" for host java binaries when ↵Alex Humesky
PRODUCT_MINIMIZE_JAVA_DEBUG_INFO is set. Test: Ran unittests Change-Id: Ic061b4bf107bcd931813d69f6d72b521d79fbc35
2020-06-15Consolidate adding common java propertiesColin Cross
Use a method to add the properties that are present on all java modules. Bug: 153485543 Test: m checkbuild Change-Id: I7803b15eb0de810c8ab8d4b9acf2511935a26fb6
2020-06-15Merge "Introduce product variables to select Java code coverage paths in ↵Roland Levillain
Soong." am: d38ab21c6e am: f76e10aa2b Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1326321 Change-Id: I3f66962252aac710d66f3f26908a7b5f530fa712
2020-06-15Merge "Introduce product variables to select Java code coverage paths in Soong."Roland Levillain
2020-06-15Merge "Use EMMA_INSTRUMENT_FRAMEWORK for apex framework libs." am: ↵Chris Gross
a7a36e22fb am: efa623c7e4 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1320475 Change-Id: I2b9bca7a7d7107353541a36d5feeea492fc5ed87
2020-06-15Merge "Use EMMA_INSTRUMENT_FRAMEWORK for apex framework libs."Chris Gross
2020-06-15Define Soong phony rules in MakeColin Cross
To support dist-for-goals in Soong, we need to define all phony rules in Make so that dist-for-goals can insert additional dependencies on them. Collect all the phony rules in phonySingleton and write them out as Make rules when Soong is embedded in Make, or as blueprint.Phony rules when Soong is run standalone. Bug: 153485543 Test: m checkbuild Change-Id: I68201eff30744b0f487fc4f11f033767b53a627d Merged-In: I68201eff30744b0f487fc4f11f033767b53a627d (cherry picked from commit c3d87d31129405975f9a889e3c1c96cdcbe275a4)
2020-06-15Introduce product variables to select Java code coverage paths in Soong.Roland Levillain
Introduce product variables `JavaCoveragePaths` and `JavaCoverageExcludePaths` (resp. populated from environment variables `JAVA_COVERAGE_PATHS` and `JAVA_COVERAGE_EXCLUDE_PATHS`). Use them to control which Java modules are candidate for instrumentation based on their source path. By default (when `JavaCoveragePaths` is empty), have all Java module be candidate for instrumentation, to preserve the existing behavior. Test: export EMMA_INSTRUMENT=true \ && export EMMA_INSTRUMENT_FRAMEWORK=true \ && export JAVA_COVERAGE_PATHS=art \ && m Bug: 158212027 Bug: 156284897 Change-Id: Ibe9c1f41ed6110867411952689c5a7ad6536f277
2020-06-11Use EMMA_INSTRUMENT_FRAMEWORK for apex framework libs.Chris Gross
Static coverage builds that trigger a dexpreopt target for a bootclasspath jar can fail since coverage for jars in apexes are turned on by default which requires jacocoagent to be present on the bootclasspath. Fix this by using EMMA_INSTRUMENT_FRAMEWORK to conditionally instrument framework libs in apexes. Bug: 157737183 Test: EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true m -j droid Change-Id: I2c323553e08741bc46b196bc3bb860614bc3f85b
2020-06-11Define Soong phony rules in Make am: c3d87d3112 am: 970fd93b92Colin Cross
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1325397 Change-Id: I44eba43a7c316b9cb9696d02962a84d0c1d8ebed
2020-06-11Define Soong phony rules in Make am: c3d87d3112Colin Cross
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1325397 Change-Id: Ia6a1f96c75c660525127c25472327dd78ba58124
2020-06-11Merge changes from topics "dist-for-goals", "soong-dist", "tests-PathForSource"Colin Cross
* changes: Add DistForGoal to MakeVarsContext Define Soong phony rules in Make Remove paths from cc.TestConfig Remove most paths from java.TestConfig Allow tests to bypass PathForSource existence checks
2020-06-11Merge "Fix on-device paths to used libraries in dexpreopt." am: 69bd288409 ↵Ulyana Trafimovich
am: 73759b9a5d Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1326319 Change-Id: Iec7143aa2f61c9d5b7b61e8d9510db3a573d794a
2020-06-11Merge "Fix on-device paths to used libraries in dexpreopt."Ulyana Trafimovich
2020-06-10Fix on-device paths to used libraries in dexpreopt.Ulya Trafimovich
Test: lunch aosp_cf_x86_phone-userdebug && m Test: Cherry-pick in internal master and check that on-device path to com.google.android.dialer.support.jar now is on /product partition (as it should be) and not on /system: $ oatdump \ --instruction-set=x86 \ --oat-file=out/target/product/vsoc_x86/product/priv-app/GoogleDialer/oat/x86/GoogleDialer.odex \ | grep '^classpath' \ | grep -o '[^[]*com.google.android.dialer.support.jar' /product/framework/com.google.android.dialer.support.jar Bug: 132357300 Change-Id: Idf279ac713b9b29ff3a29f1b072bc1d57f48db26
2020-06-09Merge "dex_import that isn't available for platform isn't installed"Jiyong Park
2020-06-09Define Soong phony rules in MakeColin Cross
To support dist-for-goals in Soong, we need to define all phony rules in Make so that dist-for-goals can insert additional dependencies on them. Collect all the phony rules in phonySingleton and write them out as Make rules when Soong is embedded in Make, or as blueprint.Phony rules when Soong is run standalone. Test: m checkbuild Change-Id: I68201eff30744b0f487fc4f11f033767b53a627d
2020-06-09Merge "Split the core/platform API into stable and legacy versions." am: ↵Pete Gillin
d7db79cc8b am: 5dbf9e09f2 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1322704 Change-Id: I731da4ed59432a67bdc3df124a8939bcf316aa0c
2020-06-08dex_import that isn't available for platform isn't installed am: afd3d11a79Jiyong Park
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/11787985 Change-Id: I617bce4198e4e4b4dc6779246f0bfadcb6a442a4
2020-06-08dex_import that isn't available for platform isn't installedJiyong Park
This change fixes a bug that dex_import module is always installed to the platform even when the module is not available to the platform. Exempt-From-Owner-Approval: cherry-pick from AOSP Bug: 158284983 Test: OUT_DIR=/tmp/ndk build/soong/scripts/build-ndk-prebuilts.sh Merged-In: I85570506e700be59ee63e4f1d7902a40e36df39c (cherry picked from commit afd3d11a795b9f331637d3587a94142f20e8c55d) Change-Id: I85570506e700be59ee63e4f1d7902a40e36df39c
2020-06-08dex_import that isn't available for platform isn't installedJiyong Park
This change fixes a bug that dex_import module is always installed to the platform even when the module is not available to the platform. Bug: 158284983 Test: OUT_DIR=/tmp/ndk build/soong/scripts/build-ndk-prebuilts.sh Change-Id: I85570506e700be59ee63e4f1d7902a40e36df39c
2020-06-08Split the core/platform API into stable and legacy versions.Pete Gillin
For now, everything outside libcore still uses the legacy version. Test: treehugger Bug: 157640067 Change-Id: If5234e9ee533ff537926801a0af045d36b1caf01
2020-06-05Correct link type for module stubsAnton Hansson
Module stubs compile against module_current, so any module depending on them had to compile against module_current (or broader) too. Treat them as the API surface the stubs are for. Bug: 157010342 Test: m Change-Id: I49b9082dc1b5afe6c22e94126e574dd8061f0f39 Merged-In: I49b9082dc1b5afe6c22e94126e574dd8061f0f39 (cherry picked from commit 0bd88d0b4e782df6aa99475307a4cfab6d617d14)
2020-06-05Improve the structure of the link check methodAnton Hansson
Match by name first, then by kind. Bug: 157010342 Test: m Change-Id: Ic337a073c3bd14ac03b1d899aeb612247a708495 Merged-In: Ic337a073c3bd14ac03b1d899aeb612247a708495 (cherry picked from commit ac103461a47e86665ec78df6e5d9792d7464a57b)
2020-06-05Revert^2 "Rename DexJar interface method to DexJarBuildPath." am: 5539e7b568 ↵Ulyana Trafimovich
am: 0852ac9a6d Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1324492 Change-Id: I75dc93bb6aac621a0d90e5c5051cdeab98f5d1ef
2020-06-04Revert^2 "Rename DexJar interface method to DexJarBuildPath."Ulyana Trafimovich
This reverts commit b0dc851ff4eca650042b52ce4ff06cb7e0312b77. Reason for revert: relanding original change. Build failures were caused by a race with another CL: https://r.android.com/1320920 Test: lunch aosp_cf_x86_phone-userdebug && m Change-Id: Ic9016582dae7773b4d4f84a63425f1ef7a5d061f
2020-06-04Merge "Revert "Rename DexJar interface method to DexJarBuildPath."" am: ↵Ulyana Trafimovich
c55b679e7b am: 651a63ca9d Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1324371 Change-Id: Ic3be6718aff2b04048bac17635b2858581fe7f8a
2020-06-04Merge "Revert "Rename DexJar interface method to DexJarBuildPath.""Ulyana Trafimovich
2020-06-04Revert "Rename DexJar interface method to DexJarBuildPath."Ulyana Trafimovich
This reverts commit 562c240185dd4adcbdb75d2924c69657f6ac7cff. Reason for revert: breaks `lunch full-eng && m checkbuild`. Change-Id: Id7c7d6240d98afaf8edd49b6c96cd05534b784cc
2020-06-04Merge "Rename DexJar interface method to DexJarBuildPath." am: 2a08566634 ↵Ulyana Trafimovich
am: 22cd1b5383 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1322701 Change-Id: I87a6570cc6184bb38dda1f83dac787c30d8aaa54
2020-06-04Merge "Rename DexJar interface method to DexJarBuildPath."Ulyana Trafimovich
2020-06-04dex_import can be added to apexJiyong Park
Bug:157886942 Test: m Change-Id: Ida6f7bb784efe74cc1fa0e8d370eaee803f08b0f Merged-In: Ida6f7bb784efe74cc1fa0e8d370eaee803f08b0f
2020-06-04Merge "dex_import can be added to apex" am: a8bf98852a am: 55110941eaTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1320920 Change-Id: I09342ecaf016ca85ab5ac5812c46af6932179258
2020-06-03Revert "Always run package check"Tej Singh
This reverts commit aa7359ab0c97cc198699607cc17f4df6b3977997. Reason for revert: package-check.sh doesn't work on mac Change-Id: Ia3dcee612c1f6b4121e1351c8710638ae41bc88a Merged-In: I50af71d54d5f1f8b516bfcf1efbcf6217e89c83a
2020-06-03Merge "Revert "Always run package check"" am: 3747336d23 am: 2f0963ecd3Colin Cross
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1323293 Change-Id: I3592365b63fab1597b2a41aafaa68e49d6f1e0f2
2020-06-03Revert "Always run package check"Colin Cross
This reverts commit 91206d9ed1a1e3cb81d1ace021580c4be8362f1f. Reason for revert: package-check.sh doesn't work on mac Bug: 158081251 Bug: 157649935 Change-Id: I50af71d54d5f1f8b516bfcf1efbcf6217e89c83a
2020-06-03Rename DexJar interface method to DexJarBuildPath.Ulya Trafimovich
This is a prerequisite change before adding DexJarInstallPath. Test: lunch aosp_cf_phone-userdebug && m Change-Id: I033e08b8bb06c0a844a6bbbfcdc48ce33e9c95cf
2020-06-02Always run package check am: 91206d9ed1 am: d08b1040cbPaul Duffin
Original change: undetermined Change-Id: I7eed39d6b49b0e837c8ad0689a8e728f7b329e41
2020-06-02Always run package checkPaul Duffin
Previously, the package check was only run when building checkbuild or the phony target created for a specific module. It would not run when building a module that depended upon a library with the permitted_packages property. That was because the package check was only run when the package-check.stamp file was built and that was only added to the phony and checkbuild targets. Instead of touching a separate package-check.stamp file to indicate that the check has been performed this change copies the input jar file to the package check to a separate ../package-check/<jar> file which is then treated as the output of the library and is the input for any dex processing. So, any modules that depend on this library will transitively depend on the output file produced by the package check command and so will ensure that the package check is always run. Test: Removed "android.net" from the permitted_packages for "framework-tethering", build "framework-tethering" which triggered and failed the package check and "com.android.tethering" which did not. Made this change. Built "com.android.tethering" which triggered and then failed the package check. Removed change to "framework-tethering" Bug: 157649935 Merged-In: Ib01aa09e13f80282218049270eb7a58ec5f9f605 Change-Id: Ib01aa09e13f80282218049270eb7a58ec5f9f605 (cherry picked from commit 91206d9ed1a1e3cb81d1ace021580c4be8362f1f)
2020-06-02Always run package checkPaul Duffin
Previously, the package check was only run when building checkbuild or the phony target created for a specific module. It would not run when building a module that depended upon a library with the permitted_packages property. That was because the package check was only run when the package-check.stamp file was built and that was only added to the phony and checkbuild targets. Instead of touching a separate package-check.stamp file to indicate that the check has been performed this change copies the input jar file to the package check to a separate ../package-check/<jar> file which is then treated as the output of the library and is the input for any dex processing. So, any modules that depend on this library will transitively depend on the output file produced by the package check command and so will ensure that the package check is always run. Test: Removed "android.net" from the permitted_packages for "framework-tethering", build "framework-tethering" which triggered and failed the package check and "com.android.tethering" which did not. Made this change. Built "com.android.tethering" which triggered and then failed the package check. Removed change to "framework-tethering" Bug: 157649935 Change-Id: Ib01aa09e13f80282218049270eb7a58ec5f9f605
2020-06-02dex_import can be added to apexJiyong Park
Bug:157886942 Test: m Change-Id: Ida6f7bb784efe74cc1fa0e8d370eaee803f08b0f
2020-05-30Add support for remote-execution / caching of jar/zip actionsKousik Kumar
Test: Ran a build with `RBE_JAR="true" RBE_JAR_EXEC_STRATEGY="remote" RBE_ZIP="true" RBE_ZIP_EXEC_STRATEGY="remote" ... use_rbe m` and that succeeded. Bug: b/156765207 Change-Id: Ia17b532fbb282be414adf879914870082dd0841b Merged-In: Ia17b532fbb282be414adf879914870082dd0841b
2020-05-29Merge "Add support for remote-execution / caching of jar/zip actions" am: ↵Kousik Kumar
c4cdba07d3 am: d996ff6a68 Change-Id: I41f544531788cfdf7a16560e24f27c9d31b186ad
2020-05-29Merge "Collect permitted packages from java_sdk_library instances" into ↵TreeHugger Robot
rvc-dev am: 5cfbb4332f Change-Id: I3d5a7d6de21cfc988f146caef84ae1b8b1fd2a33
2020-05-29Collect permitted packages from java_sdk_library instancesPaul Duffin
Switching an updatable boot jar from java_library to java_sdk_library changed the contents of the updatable-bcp-packages.txt due to the code requiring the module to be *Library. This change updates that to allow it to be any module that implements the PermittedPackagesForUpdatableBootJars interface which is *Library and anything that embeds that like *SdkLibrary. Bug: 155164730 Test: m droid and check the contents of system/etc/updatable-bcp-packages.txt Change-Id: I464af74628da311734f102f77ec8158daec5b32d
2020-05-29Collect permitted packages from java_sdk_library instancesPaul Duffin
Switching an updatable boot jar from java_library to java_sdk_library changed the contents of the updatable-bcp-packages.txt due to the code requiring the module to be *Library. This change updates that to allow it to be any module that implements the PermittedPackagesForUpdatableBootJars interface which is *Library and anything that embeds that like *SdkLibrary. Bug: 155164730 Test: m droid and check the contents of system/etc/updatable-bcp-packages.txt Change-Id: I464af74628da311734f102f77ec8158daec5b32d
2020-05-29apex respects stem of java_library modulesJiyong Park
apex now respects stem of java_library modules. As a follow-up we need to suppor the same for other types of modules. Exempt-From-Owner-Approval: cherry-pick from AOSP Bug: 157638999 Test: m Merged-In: Iaf5023020b5440f1ffd4f5414b5a7864655fc22a (cherry picked from commit a62aa2399031a01620775a06dbae53af0cff5a25) Change-Id: Iaf5023020b5440f1ffd4f5414b5a7864655fc22a
2020-05-29Merge "Add support for remote-execution / caching of jar/zip actions"Kousik Kumar