summaryrefslogtreecommitdiff
path: root/java/java.go
AgeCommit message (Collapse)Author
2020-08-24Merge "Add imports_sdk_version to prebuilt_apis"Liz Kammer
2020-08-21Merge "Add extra_test_configs option"Treehugger Robot
2020-08-20Add imports_sdk_version to prebuilt_apisLiz Kammer
This allows setting the prebuilt sdk's generated java_imports sdk_version to "none". Test: go tests Test: m Bug: 160455085 Change-Id: Id24aca811f0f09692971e63418da6685d8351737
2020-08-20Merge "Collect paths to transitive SDK Java library dependencies."Ulyana Trafimovich
2020-08-19Add extra_test_configs optionDan Shi
Bug: 163344047 Test: m -j HelloWorldHostTest hello_world_test HelloWorldTests Change-Id: I237e3aa3f40df1f6387ba8ff6a16e56535cdeae9
2020-08-19Collect paths to transitive SDK Java library dependencies.Ulya Trafimovich
Previously only the names were collected, and later used in the manifest_fixer to add missing <uses-library> entries to the manifest. Now we also need to collect build-time and on-device paths, to be used in class loader context for dexpreopt. This commit only collects paths, but does not pass them to dexpreopt yet. Test: lunch aosp_cf_x86_phone-userdebug && m Bug: 132357300 Change-Id: I34b229ee68f16ba215ba03770feadb4d890ec2bf
2020-08-18Merge "Remove special-cased stub deps on framework-res"Anton Hansson
2020-08-17Remove special-cased stub deps on framework-resAnton Hansson
This dep is now possible to express in native Android.bp syntax, which makes the build easier to understand. Bug: 161214753 Test: build sdk, diff out/dist before and after Change-Id: I878eda49b5bf54aaf581fc52e0fe9719e4bcdfce Merged-In: I878eda49b5bf54aaf581fc52e0fe9719e4bcdfce
2020-08-13Rename ApexName to ApexVariationNameColin Cross
In preparation for reusing the same variation for multiple apexes, rename ApexName to ApexVariationName. Bug: 164216768 Test: all soong tests Change-Id: I88f2c5b192ffa27acd38e01952d0cefd413222a0
2020-08-04Refactor java compileDexLiz Kammer
We want to support a compile_dex property for java_import. This splits dex-related properties into a dexer struct which can be embedded in relevant modules. Test: m Test: soong tests Bug: 160455085 Change-Id: If56a51dac43f630d49483a36db29cd50e9ccd529
2020-07-27Add `data_native_bins` property to java_test_hostLiz Kammer
When multiple os/arch variants are supported, java_test_host could not find a matching arch due to java having arch:common, whereas native binaries support a specific architecture. This change adds the property `data_native_bins` in order to support binaries with the appropriate os/arch variants. Test: m FirmwareDtboVerification with data_native_bins Test: forrest Bug: 153848038 Change-Id: I45adebff0fde2811d5ef5620c697b97b768c951f
2020-07-22Build transitive lint reports for apex modulesColin Cross
Build and export transitive lint report zips for apex modules. Bug: 153485543 Test: m TARGET_BUILD_APPS=com.google.android.wifi lint-check dist Change-Id: I5a1805440452301a7e2c4ca91482b989638b54fb
2020-07-16Merge "Pass unstripped JNI libraries to Make" am: bf81ed4fd1 am: 9a6d827dc3Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1356262 Change-Id: I99a111aafcab5a8a8a5b704b9dd67904c93b0aea
2020-07-10Pass unstripped JNI libraries to MakeColin Cross
Pass a list of unstripped JNI libraries to Make so that they can be installed into the symbols directory. Bug: 159726429 Test: forrest Change-Id: Ieb4bffbb3d0a09f476da011399c5b8b1611929d7
2020-07-08Merge "Support kotlin multiplatform sources" am: 0ae555df1a am: 202dbc4ec0Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1351108 Change-Id: Icbd63ed880b0df404170466c55b295aa4deb821c
2020-07-06Support kotlin multiplatform sourcesColin Cross
Add a common_srcs property and propagate it to the module.xml file passed to kotlinc. Test: m checkbuild Change-Id: Ief768bafb943513c9ffbc01e829abc078f0a72bc
2020-07-01Merge changes Ib7ad715d,I3a83b5ed am: 7d9deed9fd am: 5befecfe64Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1353932 Change-Id: Ic5de5a55a939f2a1ae8ce922c31e52b6f7c443e3
2020-07-01Merge changes Ib7ad715d,I3a83b5edTreehugger Robot
* changes: Remove frameworkResModule from sdkCorePlatform. Remove the concept of useDefaultLibs from Soong.
2020-07-01Merge "Rename the Default* constants in java/config." am: 8f70db2b48 am: ↵Treehugger Robot
98d8ee9bd8 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1353886 Change-Id: Ibf0533b6bd01244d30c5df89aa849a7f8da6f777
2020-07-01Merge "Rename the Default* constants in java/config."Treehugger Robot
2020-07-01Rename the Default* constants in java/config.Pete Gillin
These values are used in two out of the many possible sdk_version configurations, and therefore weren't really defaults in any meaningful sense. Giving them more descriptive names makes the code easier to follow. Bug: 157640067 Test: m nothing Change-Id: Icf38a9c0be2606ad0478929e1b40dfcee36cddef
2020-07-01Remove the concept of useDefaultLibs from Soong.Pete Gillin
This field in the java/sdk structure was used in two of the many possible configurations, so it wasn't really a "default". It also meant that, to understand those configurations, the reader had to know what was considered the default, which was only possibly by reading the code in java.go and droiddoc.go which implemented special code paths when useDefaultLibs was true. By eliminating that setting and explicitly setting the required values, the code is simpler and easier to understand. This change is a straight refactoring, in the sense that the output of the build should be unchanged. Regarding the changes to the proguardRaiseTag dependency in java.go: - This is a noop for anything which had sdkDep.useModule = true prior to this change, because they all had the same value for hasFrameworkLibs() and hasStandardLibs(). - This is a noop for anything which had sdkDep.useDefaultLibs = true prior to this change, because they do not use proguard settings. - Therefore, it is a noop overall. - Nevertheless, it is required to make sdkCorePlatform work. Without this change, such modules would pick up a dependency on framework libs via the (unused) proguardRaiseTag, which creates a circular dependency, because this is the sdk_version used when building framework libs themselves. Bug: 157640067 Test: m java docs droid Change-Id: I3a83b5edc1bd48c16b55f6f77e3e710fc8fbd8fa
2020-06-29Apply hiddenapi encoding to java_sdk_library .implPaul Duffin
Adds a ConfigurationName property, and ConfigurationName() method that allows a library to separate its name (e.g. framework-tethering.impl) from the name used in the build configuration, e.g. ctx.Config().BootJars(). Updates hiddenapi processing to use ConfigurationName() instead of ctx.ModuleName(). Changes java_sdk_library to set the ConfigurationName property of the implementation library to the name of the module instead of <module>.impl so that it will match the name in the boot jars list. Bug: 159683330 Test: m framework-tethering dexdump ${PRODUCT_OUT}/apex/com.android.tethering/javalib/framework-tethering.jar | grep hiddenapi | wc -l Verify that there are >0 hiddenapi entries. Add java_sdk_library_import prefer=true for framework-tethering and repeat the above to verify that there are 0 hiddenapi entries. Apply this change, repeat above and verify that there are the same # of entries as before. Remove the prebuilt for framework-tethering Repeat the above and verify that there is no change to the # of entries Merged-In: I6c3016c35d0fcb1b95d4f9b37a307a69878f8e0a Change-Id: I6c3016c35d0fcb1b95d4f9b37a307a69878f8e0a (cherry picked from commit c4422106a7cf4731e27d664646bc0d57ad3f37fa)
2020-06-27Merge "Add `soong.java.testProperties` to `java_defaults` module type." am: ↵Roland Levillain
e95eb455cc am: 64b188b28f Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1235127 Change-Id: Ibada0f3a014aeb37c28e704e89721d9c67453b83
2020-06-26Apply hiddenapi encoding to java_sdk_library .impl am: c4422106a7Paul Duffin
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/11988739 Change-Id: I9e257b70bc401b8b69273c787b74d0f4c04870f1
2020-06-26Apply hiddenapi encoding to java_sdk_library .implPaul Duffin
Adds a ConfigurationName property, and ConfigurationName() method that allows a library to separate its name (e.g. framework-tethering.impl) from the name used in the build configuration, e.g. ctx.Config().BootJars(). Updates hiddenapi processing to use ConfigurationName() instead of ctx.ModuleName(). Changes java_sdk_library to set the ConfigurationName property of the implementation library to the name of the module instead of <module>.impl so that it will match the name in the boot jars list. Bug: 159683330 Test: m framework-tethering dexdump ${PRODUCT_OUT}/apex/com.android.tethering/javalib/framework-tethering.jar | grep hiddenapi | wc -l Verify that there are >0 hiddenapi entries. Add java_sdk_library_import prefer=true for framework-tethering and repeat the above to verify that there are 0 hiddenapi entries. Apply this change, repeat above and verify that there are the same # of entries as before. Remove the prebuilt for framework-tethering Repeat the above and verify that there is no change to the # of entries Change-Id: I6c3016c35d0fcb1b95d4f9b37a307a69878f8e0a
2020-06-26Add `soong.java.testProperties` to `java_defaults` module type.Roland Levillain
This is so that we can use some test properties in a `java_defaults` module for ART run-tests. Test: atest art-run-test-001-HelloWorld Bug: 147814778 Change-Id: Ifb9817ca2f08e64f911c123a4022fbf688405547
2020-06-26Merge "Support multiple dists per Android.bp module, and dist output ↵Jingwen Chen
selection." am: d06f11ee71 am: 3779799731 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1335521 Change-Id: I2ca43562972b4d50f1e9fd4a801026aa9abb6816
2020-06-25Support multiple dists per Android.bp module, and dist output selection.Jingwen Chen
This CL adds "dists" to the base property struct to support multiple dist file configurations, and generic tag support to dist tagged outputs of modules. Fixes: b/152834186 Test: soong tests and `m sdk dist` Change-Id: I80c86bc9b7b09e671f640a4480c45d438bdd9a2a Signed-off-by: Jingwen Chen <jingwen@google.com>
2020-06-25Merge "apex/apk: enforce min_sdk_version of all deps" am: 14a08f5b28 am: ↵Jooyung Han
afdc5239b8 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1287253 Change-Id: I63074e39f5f319789920e55802d4f7934b556e0a
2020-06-25Merge "apex/apk: enforce min_sdk_version of all deps"Jooyung Han
2020-06-24Merge "Include resources in sdk snapshot of java library impl" am: ↵Treehugger Robot
29abfb7fd1 am: 742dfaa142 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1348682 Change-Id: I02456391e111a91721aa04be044f41f59e7d3183
2020-06-24Include resources in sdk snapshot of java library implPaul Duffin
Bug: 159607838 Test: m nothing Change-Id: Ie7ddbffc3957f832abfadb27292c436e8e5dcbf3
2020-06-24apex/apk: enforce min_sdk_version of all depsJooyung Han
Enforce min_sdk_version for every payload dependency of updatable APEX/APKs. android.CheckMinSdkVersion() calls ApexModule.ShouldSupportSdkVersion for every transitive dependency from APEX/APK modules to see if it meets the min_sdk_version requirements. The common implementation for apex/android_app is provided in android/apex.go. Bug: 145796956 Bug: 152655956 Bug: 153333044 Test: m nothing Change-Id: I4a947dc94026df7cebd552b6e8ccdb4cc1f67170
2020-06-20Fix check-boot-jars when a boot jar is provided by prebuiltPaul Duffin
Previously, when a boot jar was provided by a java_sdk_library_import module the check-boot-jars check failed because the file it depended on was not available. In an incremental build the build failed due to the file in the out directory not having a rule to generate it. That was because the module was named prebuilt_<module>.<apex> instead of <module>.<apex>. This was fixed by simply removing prebuilt_ prefix from the name if it was present. After fixing that the check-boot-jars still did not work properly because it was expecting a jar file containing .class files but instead was given a jar file containing .dex files which meant the check did not work properly. This was fixed by defining a new ApexDependency interface for use by the apex/apex.go code to use instead of java.Dependency for generating the androidmk entries. The *SdkLibraryImport type then implemented those, by delegating to the implementation library. Bug: 158304459 Bug: 159112414 Test: m check-boot-jars m checkbuild manual inspection of the .jar file used by check-boot-jars to ensure it contained .class files and not .dex files. Change-Id: I545c5c9072dd472337d2f9b4dfdf08f53c981662 Merged-In: I545c5c9072dd472337d2f9b4dfdf08f53c981662
2020-06-19Merge changes I25c77994,I7da78ef4,I89197d0a am: 181c2a40d8 am: 7be9f60488Colin Cross
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1344320 Change-Id: I8b955daa70d3348ab011dee437ce028dd8c74a2f
2020-06-19Support adding extra lint checksColin Cross
Add a lint.extra_check_modules property to list modules to use as plugins to Lint. Bug: 153485543 Test: m checkbuild Change-Id: I25c7799438cfec43163e757637c65b8657488d36 Merged-In: I25c7799438cfec43163e757637c65b8657488d36 (cherry picked from commit 92e4b46af561503506b54f9e4c925615bd03a069)
2020-06-19Allow kotlin modules to skip packaging the kotlin stdlibColin Cross
Host tools like lint may package their own version of the kotlin stdlib, and any jars loaded by them shouldn't contain the platform version. Add a static_kotlin_stdlib property that defaults to true to allow building the module without staticalling including the kotlin stdlib. Bug: 153485543 Test: m ApiFinder Change-Id: I7da78ef493806ce4ab0050e4ee9e8d330b0509c8 Merged-In: I7da78ef493806ce4ab0050e4ee9e8d330b0509c8 (cherry picked from commit 0b67a8bd0fc87c7c584d165abfeeb9314ce22f18)
2020-06-19Fix annotation processors in kotlin modules that generate resourcesColin Cross
The kapt rule was only keeping the generated sources, and not the generated classes directory. The generated classes directory will contain resources generated by the annotation processor and needs to be added to the final jar. Test: m ApiFinder Bug: 153485543 Change-Id: I89197d0afcb1eee011c01aa400f9977e66f43768 Merged-In: I89197d0afcb1eee011c01aa400f9977e66f43768 (cherry picked from commit 9ca38d22a49127901dadb14ffa093e29a2942f2d)
2020-06-18Support adding extra lint checksColin Cross
Add a lint.extra_check_modules property to list modules to use as plugins to Lint. Bug: 153485543 Test: m checkbuild Change-Id: I25c7799438cfec43163e757637c65b8657488d36
2020-06-18Allow kotlin modules to skip packaging the kotlin stdlibColin Cross
Host tools like lint may package their own version of the kotlin stdlib, and any jars loaded by them shouldn't contain the platform version. Add a static_kotlin_stdlib property that defaults to true to allow building the module without staticalling including the kotlin stdlib. Bug: 153485543 Test: m ApiFinder Change-Id: I7da78ef493806ce4ab0050e4ee9e8d330b0509c8
2020-06-18Fix annotation processors in kotlin modules that generate resourcesColin Cross
The kapt rule was only keeping the generated sources, and not the generated classes directory. The generated classes directory will contain resources generated by the annotation processor and needs to be added to the final jar. Test: m ApiFinder Bug: 153485543 Change-Id: I89197d0afcb1eee011c01aa400f9977e66f43768
2020-06-18Add 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 Merged-In: I5a530975b73ba767fef45b257d4f9ec901a19fcb (cherry picked from commit 014489c1e6cbd2801970b88d5b608dc5c45b403c)
2020-06-18Consolidate 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 Merged-In: I7803b15eb0de810c8ab8d4b9acf2511935a26fb6 (cherry picked from commit ce6734e666086814df721b681158dc90f7bcf6dd)
2020-06-18Merge "Add support for running Android lint on java and android modules." ↵Colin Cross
am: a553358b34 am: 05394377ba Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1324098 Change-Id: Iae0b83aef382b116bedefa896e72d0c244046c61
2020-06-18Merge "Add support for running Android lint on java and android modules."Colin Cross
2020-06-17Merge "Consolidate adding common java properties" am: d7ffbb578d am: 6eb9a491eaTreehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1337094 Change-Id: I680fe974df8e68207c8bbb2bc0fce24635d4bdc8
2020-06-17Merge "Consolidate adding common java properties"Treehugger Robot
2020-06-17Merge "Fix check-boot-jars when a boot jar is provided by prebuilt" am: ↵Anton Hansson
0e63a8e761 am: ac2a42054f Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1341756 Change-Id: Ife514f78e7aea0b8ed05f74c21d3ce95054796cc
2020-06-17Fix check-boot-jars when a boot jar is provided by prebuiltPaul Duffin
Previously, when a boot jar was provided by a java_sdk_library_import module the check-boot-jars check failed because the file it depended on was not available. In an incremental build the build failed due to the file in the out directory not having a rule to generate it. That was because the module was named prebuilt_<module>.<apex> instead of <module>.<apex>. This was fixed by simply removing prebuilt_ prefix from the name if it was present. After fixing that the check-boot-jars still did not work properly because it was expecting a jar file containing .class files but instead was given a jar file containing .dex files which meant the check did not work properly. This was fixed by defining a new ApexDependency interface for use by the apex/apex.go code to use instead of java.Dependency for generating the androidmk entries. The *SdkLibraryImport type then implemented those, by delegating to the implementation library. Bug: 158304459 Bug: 159112414 Test: m check-boot-jars m checkbuild manual inspection of the .jar file used by check-boot-jars to ensure it contained .class files and not .dex files. Change-Id: I545c5c9072dd472337d2f9b4dfdf08f53c981662