aboutsummaryrefslogtreecommitdiff
path: root/java/java.go
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Split Java libraries per apex"Jiyong Park2019-07-251-10/+1
| | | | | | | | This reverts commit aa53324ac8308d974435cf2c8566835b87e3e05d. Reason for revert: b/138337109 (broke ndk build) Change-Id: I9497cb4337add3f8c491a684bcaadea3bdbfaa85
* Split Java libraries per apexJiyong Park2019-07-231-1/+10
| | | | | | | | | | Just like native libs, a java library that is included in an APEX is mutated for the APEX. This allows us to infer the context (e.g. sdk_version, etc.) for building a java library in an APEX. Bug: 138182343 Test: apex_test added Change-Id: I9292ea097b98e74a8a794f164bd2bed3921d6337
* Add a systemModules utility typeColin Cross2019-07-181-8/+3
| | | | | | | | | | | Storing system modules in a classpath is clumsy, as there should only ever be one system modules, and it needs to store both a directory to pass as the argument and a set of generated files to use as dependencies. Store them in a separate systemModules type instead. Test: m checkbuild Change-Id: I020556c736bd5091865bcca51dc0fb9e4db6b45b
* Merge changes from topic "buildnumberfromfile"Colin Cross2019-07-171-2/+2
|\ | | | | | | | | | | | | | | | | | | | | * changes: Allow jar wrapper to take quoted arguments Add rspfile support to RuleBuilder Prepare droiddoc for using RuleBuilder Manually escape BuildNumberFromFile Fix android.Expand and ninja escaping Add RuleBuilder helper functions for built and prebuilt tools Add documentation to droiddoc.go module types
| * Add RuleBuilder helper functions for built and prebuilt toolsColin Cross2019-07-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Replace the common pattern of: cmd.Tool(ctx.Config().HostToolPath(ctx, "tool")) with: cmd.BuiltTool("tool") And similarly for PrebuiltBuildTool. Test: m checkbuild Change-Id: I7d63188505362c7df6a3b3e7330b4a2cca5a2409
* | Merge changes Ia106d48e,Ib6c0e778Colin Cross2019-07-161-5/+1
|\ \ | | | | | | | | | | | | | | | * changes: Remove use of deprecated ExtractSourcesDeps Dedup path properties across property structs
| * | Remove use of deprecated ExtractSourcesDepsColin Cross2019-07-161-5/+1
| |/ | | | | | | | | | | | | | | Tag DexImportProperties.Jars with `android:"path"` and remove the call to ExtractSourcesDeps. Test: m checkbuild Change-Id: Ia106d48ecf7e3fc98637a757a9812edcf65f5b82
* / Revert "Don't build hiddenapi flags or encode dex for unbundled builds"Jiyong Park2019-07-151-5/+3
|/ | | | | | | | | | This reverts commit 7b8a567f44b3fdb30eac8211e8ed8e27fb162797. Bug: 137282010 Test: With the CL above this one, the unbundled mainline module build does not fail. Change-Id: I2f49fa7dbe1da92cb282a9bc14acd5830888ed17
* Merge "Enforce hidden api usage in vendor (soong)"Treehugger Robot2019-07-011-2/+14
|\
| * Enforce hidden api usage in vendor (soong)Jeongik Cha2019-06-281-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | From aosp/588578, if vendor app doesn't fill sdk_version, build scirpt overwrites system_current to sdk_version. But there is no similar enforcement in soong. So, as make does, sdkVersion() returns "system_current" if it is device-specific or soc-specific module. and sdk_version is not filled. Test: pass soong test Bug: 132780927 Change-Id: I69bb3d7bfcf7c27c2db4d0efbe046f9c7879b4bc
* | Remove the no_framework_libs propertyPaul Duffin2019-06-241-8/+1
|/ | | | | | | | | | | | Corrects an error message that refers to no_framework_libs. Removes any tests that use no_framework_libs:true where possible as there are duplicate tests for sdk_version:"core_platform". Otherwise, switches them over to use sdk_version:"core_platform". Bug: 134566750 Test: m droid Change-Id: I41abe1a49f5c744e3393ca9cdf0c41888f810c9f
* Depend on all the files from system modulesDan Willemsen2019-06-181-2/+5
| | | | | | | Instead of just one of the files that we pass into javac. Test: treehugger Change-Id: I8478e88656487c9f667893d7c17839f0ea63c78f
* Add sdk_version:"core_platform" to replace no_framework_libs:truePaul Duffin2019-06-171-3/+8
| | | | | | | | | | | | | | | | | Where possible this duplicates any tests that use no_framework_libs:true with ones that use sdk_version:"core_platform". If not possible (e.g. in the default targets included in java/testing.go) it switches some to use sdk_version:"core_platform" to ensure that there is no regression in the behavior of no_framework_libs:true. Follow up changes will switch all usages of no_framework_libs:true over to use sdk_version:"core_platform" at which point no_framework_libs will be removed. Bug: 134566750 Test: m droid Change-Id: I42cb181f628b723c8f32a158ae4752b4c83365ae
* Remove the no_standard_libs propertyPaul Duffin2019-06-171-10/+2
| | | | | | | | | | | | | | | | | | | Corrects an error message that refers to no_standard_libs. Removes any tests that use no_standard_libs:true where possible as there are duplicate tests for sdk_version:"none". Otherwise, switches them over to use sdk_version:"none". The androidmk mapping from LOCAL_NO_STANDARD_LIBRARIES to no_standard_libs has also been removed. There was little point in updating the tool to map it through to sdk_version:"none" as there are only a couple of places where it is used, in art's test running mk targets and in some unbundled packages to work around some limitation in .mk based build. Bug: 134566750 Test: m droid Change-Id: I6413c9b1fe3e63b93753a6a017d2981e32b7e013
* Add sdk_version:"none" to replace no_standard_libs:truePaul Duffin2019-06-131-3/+3
| | | | | | | | | | | | | | | | Where possible this duplicates any tests that use no_standard_libs:true with ones that use sdk_version:"none". If not possible (e.g. in the default targets included in java/testing.go) it switches some to use sdk_version:"none" to ensure that there is no regression in the behavior of no_standard_libs:true. Follow up changes will switch all usages of no_standard_libs:true over to use sdk_version:"none" at which point no_standard_libs will be removed. Bug: 134566750 Test: m droid Change-Id: I5f0fd3daa980f6b223abe454cba7f25a97a39d7a
* Make sdkDep/decodeSdkDep the source of truth about the sdkPaul Duffin2019-06-131-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, different parts of the build used different sources of information about the SDK (i.e. the default libraries) against which a Java module aimed at the device was built. Some used the sdk_version property, others used the no_standard_libs or no_framework_libs, some used a combination of all three. That lead to inconsistent handling in the code, e.g. some parts treated no_standard_libs: true as implying no_framework_libs: true and others did not, and also in the build files, e.g. some modules specified no_framework_libs: true and sdk_version: "system_current" which makes no sense, or no_standard_libs: true and sdk_version: "core_current" which are inconsistent. This is the first step in a refactoring to simplify the sdk selection process by replacing the no_standard_libs/no_framework_libs properties with some extra options for the sdk_version property. This change consists of: 1) Extra functions sdkContext to access the no_standard_libs and no_framework_libs properties. 2) Extra field/functions in sdkDep to store and access the value of no_standard_libs/no_framework_libs. 3) Changes to decodeSdkDep(...) to pass the values of the no_... properties through to the returned sdkDep. 4) Change all code that accesses the no_... properties directly to call decodeSdkDep(...) to get an sdkDep object and then accessing the values of the no_... properties from there. The accessor functions on sdkDep are called has...() rather than no...() as most callers of the methods invert the value anyway and !no...() is harder to reason about than has...(). The hasFrameworkLibs() function returns true if and only if no_standard_libs and no_framework_libs are false. That is consistent with all but one usage of the no_framework_libs property and that is not affected by it. Bug: 134566750 Test: m droid Change-Id: I196e3304e8bd802fb154e897397b0dd337f868e2 Exempt-From-Owner-Approval: Colin has already given +2 modulo some minor nits and this blocking other changes.
* Add GenerateAndroidBuildActions to DefaultsModuleBaseColin Cross2019-06-101-3/+0
| | | | | | | | | Add an empty GenerateAndroidBuildActiosn to DefaultsModuleBase so that every defaults module doesn't need to provide one. This will also allow adding an implementation in the next patch. Test: m checkbuild Change-Id: I13554bdb3a287c2f18e1efab74d4f08a1ba8620c
* Consolidate baseContext, BaseContext, and BaseModuleContextColin Cross2019-06-061-4/+4
| | | | | | | | | | | blueprint.BaseModuleContext is the set of methods available to all module-specific calls (GenerateBuildActions or mutators). The android package split the same functionality across baseContext (nee androidBaseContext), BaseModuleContext, and BaseContext. Consolidate all of them into android.BaseModuleContext. Test: m checkbuild Change-Id: I2d7f5c56fd4424032cb93edff6dc730ff33e4f1e
* Merge "Touch up manifest if there's no source code."Jaewoong Jung2019-06-061-7/+6
|\
| * Touch up manifest if there's no source code.Jaewoong Jung2019-06-031-7/+6
| | | | | | | | | | | | | | | | | | | | | | The new package manager behavior requires packages without source code to have an application element with hasCode attribute set to false in their manifest. With this change, Soong can now automatically insert one for codeless apps. Test: app_test.go, manifest_fixer_test.py Fixes: 124375490 Change-Id: Ied89a8d07c63805ab910859a4f7c45fc1c60bb73
* | Add .jar tag to java modulesColin Cross2019-06-041-0/+2
| | | | | | | | | | | | | | | | | | Allow java modules to be referenced as ":module{.jar}" to get the classes .jar. Bug: 122333007 Test: m checkbuild Change-Id: I2d07f774ae8ed5a39206059c4102727c6802d26e
* | Support tagged module referencesColin Cross2019-06-041-7/+8
|/ | | | | | | | | | | | | | There are cases where a module needs to refer to an intermediate output of another module instead of its final output. For example, a module may want to use the .jar containing .class files from another module whose final output is a .jar containing classes.dex files. Support a new ":module{.tag}" format in any property that is annotated with `android:"path"`, which will query the target module for its ".tag" output(s). Test: path_properties_test.go, paths_test.go Test: no unexpected changes in build.ninja Change-Id: Icd3c9b0d83ff125771767c04046fcffb9fc3f65a
* Merge "AIDEGen: Collect the srcjar into out/soong/module_bp_java_deps.json"Treehugger Robot2019-05-311-0/+1
|\
| * AIDEGen: Collect the srcjar into out/soong/module_bp_java_deps.jsonpatricktu2019-05-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build module_bp_java_deps.json without this change: Build time: 3m53.761s File size: 12,955,363 Bytes Build module_bp_java_deps.json with this change: Build time: 3m49.106s File size: 13,361,647 Bytes Bug: 132407603 Test: 1. SOONG_COLLECT_JAVA_DEPS=false make nothing 2. SOONG_COLLECT_JAVA_DEPS=true make nothing 3. Check module_bp_java_deps.json in /out/soong. In SettingsProvider section there should contain "srcjars": [ "out/soong/.intermediates/frameworks/base/packages/SettingsProvider/SettingsProvider/android_common/gen/R.jar" ] Change-Id: I800a4d4f13b280d7ef87005e599cbd0aaf8c93f4
* | Port uses-shared library verification and dexpreopting to SoongColin Cross2019-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ports 09f3b97f4b488cd3a7b7d72038b173575b02c162 (Add support for preopt with uses-libraries) from Make to Soong to support verifying and preopting shared libraries. This reapplies Id25f55f07a55120bebe2a9b32c094209efc85c8b with fixes for unbundled builds and builds with ALLOW_MISSING_DEPENDENCIES=true set. Bug: 132357300 Test: app_test.go Test: m checkbuild Change-Id: I964309a68ec4ed081f3f3154879c71048ecb5455
* | Merge "Revert "Port uses-shared library verification and dexpreopting to Soong""Colin Cross2019-05-291-1/+0
|\ \
| * | Revert "Port uses-shared library verification and dexpreopting to Soong"Colin Cross2019-05-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit b66d7b1c20f7e54a5920780ba6643e971d216d31. Reason for revert: broke unbundled builds Change-Id: I96ae287885107079de4a26e6b100ad8ed66961c0
* | | Merge changes from topic "verify_uses_libraries"Treehugger Robot2019-05-291-0/+1
|\| | | | | | | | | | | | | | | | | * changes: Port uses-shared library verification and dexpreopting to Soong Move verify_uses_libraries.sh out of dexpreopt
| * | Port uses-shared library verification and dexpreopting to SoongColin Cross2019-05-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ports 09f3b97f4b488cd3a7b7d72038b173575b02c162 (Add support for preopt with uses-libraries) from Make to Soong to support verifying and preopting shared libraries. Bug: 132357300 Test: app_test.go Test: m checkbuild Change-Id: Id25f55f07a55120bebe2a9b32c094209efc85c8b
* | | Don't build hiddenapi flags or encode dex for unbundled buildsColin Cross2019-05-281-3/+5
|/ / | | | | | | | | | | | | | | | | Builds with TARGET_BUILD_APPS shouldn't build the hiddenapi flags or encode dex files even if frameworks/base exists. Bug: 133343287 Test: mainline modules build Change-Id: I0647451420fd09bb680808b35e1ad3b8f514ba46
* | Merge "Add kotlin-stdlib-jdk8 when using Kotlin"Colin Cross2019-05-211-2/+3
|\ \
| * | Add kotlin-stdlib-jdk8 when using KotlinColin Cross2019-05-151-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | kotlin-stdlib-jdk8 contains extensions to the Kotlin standard library for use when targeting Java language level 8. Test: m checkbuild Change-Id: Iac5f977f9080d8e0e2402b08a992a93c909744e9
* | | Merge "Avoid targeting Java 9 for targets with SDK version up to 29."Pete Gillin2019-05-211-1/+1
|\ \ \
| * | | Avoid targeting Java 9 for targets with SDK version up to 29.Pete Gillin2019-05-201-1/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Targets with sdk_version values up to and including 29 should not use Java language level 9, even if EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=true is set. This change fixes a downstream issue. Bug: 131678633 Test: EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=true make droid tests docs cts java Test: (same test in downstream branch) Change-Id: Ic58e8df2e06d6e07bc42255314521831dc41b239
* | | Turn off dex actions for sourceless modules.Jaewoong Jung2019-05-151-5/+16
| |/ |/| | | | | | | | | Test: dexpreopt_test.go Fixes: 129370564 Change-Id: Ic292f37c4f782b14fce625b85817b58c31d3f276
* | Merge "Don't hide *.kotlin_module in turbine dependencies"Treehugger Robot2019-05-131-1/+1
|\ \
| * | Don't hide *.kotlin_module in turbine dependenciesColin Cross2019-05-081-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The jars containing the merged header classes from transitive static dependencies were stripping all of META-INF/. Kotlin puts metadata in META-INF that is used to map the package to the static class that contains the package-level functions. This also exposed that the metadata in META-INF is always called "name.kotlin_module", so a library that contains kotlin files with a dependency that also contains kotlin files would shade the metadata file. Use a unique name instead. Fixes: 131709692 Test: m checkbuild Change-Id: I5cd276e563206e37c4c0d90fe9f346e9396f88c0
* / Make core-generated-annotation-stubs link as core stubs.Pete Gillin2019-05-101-1/+1
|/ | | | | | | | | | Bug: 123891440 Test: EXPERIMENTAL_USE_OPENJDK9=true make droid (cherry picked from commit 4528becc46d69963a838c5af05e6ad9075b63bbe) Merged-In: I117828f13a604030d1c36bdb60fffec4c4e08d6e Change-Id: I17fa4e0c4106b63bf3cb0e3c3f78498a4072d9f5
* Track sources for srcjars across modulesColin Cross2019-05-061-13/+33
| | | | | | | | | Robolectric coverage needs a srcjar that sometimes needs to include sources of dependencies. Track the arguments and dependencies necessary to jar the sources. Test: TestIncludeSrcs Change-Id: I9979d2b8350923a2237e743c232e6e548f54ba3b
* Allow module types to generate resourcesColin Cross2019-05-061-0/+7
| | | | | | | | Robolectric will need to generate extra resources to be added to the jar. Test: TestResources Change-Id: I028f91ea8fc5d1e59e4e805876d70f57d8899f11
* Reverse merge order of resources and implementationColin Cross2019-04-291-2/+2
| | | | | | | | | | Merge the resources first in case one of the static libraries merge into the implementation jars contains a duplicate resource. Also put the manifest into the resource jar so that the default manifest doens't override the custom manifest. Test: m checkbuild Change-Id: I96d117c306bc9f1346720251d3993031992cef66
* Merge "Support target.hostdex.required"Colin Cross2019-04-251-0/+7
|\
| * Support target.hostdex.requiredColin Cross2019-04-241-0/+7
| | | | | | | | | | | | | | | | | | Hostdex modules sometimes need extra required modules, add target.hostdex.required. Bug: 131167818 Test: manual Change-Id: I599f3499f0b738556baeb27185371a42b4c2701b
* | Make java_test_helper_library installableColin Cross2019-04-241-0/+3
|/ | | | | | | | | java_test_helper_library should product an installabler, dexed library, the same as java_test just without the auto-generated test config. Test: m checkbuild Change-Id: Ie573c1d24969ba9c4feb8a2e85f8969d5d713064
* Merge "Build framework.aidl in Soong"Colin Cross2019-04-211-16/+22
|\
| * Build framework.aidl in SoongColin Cross2019-04-181-16/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | Move the rules to build framework.aidl into Soong, and use it when compiling aidl files with sdk_version: "current". Also fixes incorrectly using the aidl includes exported by the "framework" module when the proguardRaiseDep dependency was added. Bug: 130798034 Test: sdk_test.go Change-Id: I126adf1d9e7b6acb528875ff62b974ba7ad9a337
* | Fix handling optimize.enabled from java_defaultsSasha Smundak2019-04-171-1/+7
|/ | | | | | | | | | | | | 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
* Add support for prebuilt java_sdk_library modulesColin Cross2019-04-171-1/+1
| | | | | | | | | | Add java_sdk_library_import for use when a java_sdk_library may be used by unbundled branches that do not have the project that contains the original java_sdk_library module. Bug: 130287656 Test: m checkbuild Change-Id: I62df4bccc0da95ed6c8b31dab8f2c32cc3215e9e
* Check package restrictions for Java libs.Vladimir Marko2019-04-081-0/+20
| | | | | | | Test: m checkbuild; inspect verbose log. Test: Manual - compile with unmet restrictions. Bug: 122937705 Change-Id: I9360ae8b6d9ce016b7827be5e8ffc6eb521809b7
* Add support for protoc pluginsColin Cross2019-04-021-6/+1
| | | | | | | | | Add a proto.plugin property to allow specifying a custom protoc plugin to generate the code. Fixes: 70706119 Test: m am StreamingProtoTest Change-Id: I1ecdd346284b42bbcc8297019d98d2cd564eb94c