summaryrefslogtreecommitdiff
path: root/java/base.go
AgeCommit message (Collapse)Author
2024-10-07[Ravenwood] Run Ravenizer on resource jars John Wu
Bug: 292141694 Flag: EXEMPT host test change only Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh Change-Id: Ia84a40a390e83e0ab297cbcc8261d19603003649
2024-10-04[Ravenwood] Allow sending additional args to Ravenizer John Wu
Provide a new property to send the "--strip-mockito" argument to the Ravenizer tool through Android.bp. Bug: 292141694 Flag: EXEMPT host test change only Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh Change-Id: I88a11640244f02e9a02858245307f9ad887eedda
2024-10-02Remove the java property `exclude_static_libs` Jihoon Kang
All usages of the property has been converted to using select syntax. Test: m nothing --no-skip-soong-tests Bug: 368127911 Change-Id: I130f15d8524b56b6905c4dd3e7283731f437f88d
2024-09-27Merge "Remove blueprint.Module helper functions" into main Colin Cross
2024-09-27Remove blueprint.Module helper functions Colin Cross
Now that blueprint_go_binary modules are wrapped in a module type that implements android.Module Soong should never see a blueprint.Module. Remove the versions of the context methods that allow working with blueprint.Modules. Genrules still need VisitDirectDepsAllowDisabled, as they use a hack that adds dependencies on host tools after the prebuilts mutators have run, which means they may have a dependency on a disabled prebuilt and need to manually forward it to the corresponding source module. Test: all soong tests pass Flag: EXEMPT refactor Change-Id: I9147b450269749326e8fe75c5af310bd2d898d8c
2024-09-26Merge "Remove the SdkLibraryDependency interface" into main Treehugger Robot
2024-09-26Merge "Use providers for lint" into main Colin Cross
2024-09-26Remove the SdkLibraryDependency interface Jihoon Kang
Instead, provide the information of the source/prebuilt java_sdk_library to the rdeps via the SdkLibraryInfoProvider. Test: m nothing --no-skip-soong-tests && diff ninja file Bug: 348040422 Change-Id: If6cd3cd260a8ce8dccead7f302840cabf68a9fae
2024-09-26Merge "Fix coverage when transitive jars are enabled" into main Colin Cross
2024-09-25Use providers for lint Colin Cross
Bug: b/348040422 Test: lint_test.go Flag: EXEMPT refactor Change-Id: I420bee2c7056a3f4acee3af5955f79c504ea61d9
2024-09-25Fix coverage when transitive jars are enabled Colin Cross
Coverage instrumentation is performed on the combined jar contaning all the transitive dependencies, replace the exported list of transitive dependencies with the instrumented jar. This relands I1f417f5b4dc8e895eb1800da39121e0aefc754d9 with a fix to prevent using the instrumented jar as a dependency. Bug: 368161965 Test: TestCoverage Flag: EXEMPT bugfix Change-Id: I73ba60bcda241e6b4522310a9c65f717869638a6
2024-09-25Remove checkPartitionsForJavaDependency() Jihoon Kang
The check adds restriction on inter-partition dependencies. This is now a no-op given that the container enforcement serves the same purpose. Also, the error guides the user to depend on java_sdk_library for inter-partition dependency, while depending on java_sdk_library directly is now restricted. Test: m nothing Bug: 308827369 Change-Id: I29f88b7b61e3d98d047e185e8757b9ffcf09582e
2024-09-20Revert^2 "Restrict java_sdk_library in libs" Jihoon Kang
Instead, the module should specify the submodule it actually depends on. This is a prereq change to removing the java_sdk_library "magic" Test: m nothing --no-skip-soong-tests Bug: 366069293 Change-Id: Idb4b0b0a953f5391c24e50294c940522b73c34f2
2024-09-19Make dexpreopt properties configurable Cole Faust
Spurred by ag/27778860 Test: m nothing --no-skip-soong-tests Change-Id: I0e48144172eee1c589f46875cd94e3aa19d43873
2024-09-12Merge changes from topic "kotlin_kythe" into main Spandan Das
* changes: Add kotlin kzips to build_kzip.bash Create .kzip files for kotlin translation units
2024-09-11Create .kzip files for kotlin translation units Spandan Das
This CL creates the build rules to invoke the standalone kotlin extractor and create .kzip files for each kotlin translation unit. These will be indexed by the internal g3 kotlin indexers Implementation details - Create a `kotlinKytheExtract` static rule. Its inputs will be source .kt/.srcjar files and other verbatim args passed to kotlinc. The extrator will serialize this information into a .kzip file. The .kzip file should contain the necessary information to "replay" the compilation - Create a xref_kotlin phony rule to build all .kzip files corresponding to kotlin translation units. This implementation has one limitation. Since the kotlin indexers "replay" the compilation using its own version of kotlinc-jvm, there might be indexing issues caused by kotlinc version skew between android builds and indexing builds. `-kotlin-home` can likely solve that, but this CL defers that for now. Bug: 265428637 Test: Built the phony `xref_kotlin`, and ran the indexer locally using go/kythe-git-local-run#indexing-to-local-xrefs-server Change-Id: Ifb370f2df8aa46f71df3fe1ae7d7aa5da773cc8b
2024-09-07Merge "Merge 24Q3 to AOSP main" into main Xin Li
2024-09-06Merge "Fix ravenizer when transitive classpath is enabled" into main Treehugger Robot
2024-09-06Fix ravenizer when transitive classpath is enabled Colin Cross
Ravenizer and the other rules that modify the output jar also need to replace the implementation jar depset with the modified output jar. Bug: 308016794 Test: atest CtsOsTestCasesRavenwood Flag: build.RELEASE_USE_TRANSITIVE_JARS_IN_CLASSPATH Change-Id: I87ec143431c09ed878f8e1c3541b56d8077e23b5
2024-09-06Merge "Make the java static_libs property configurable" into main Cole Faust
2024-09-05Make the java static_libs property configurable Cole Faust
Bug: 362579941 Test: m nothing --no-skip-soong-tests Change-Id: Iccc93cf14753aae1adb26c6eedd00aabf1c2f6a6
2024-09-05Merge "Remove obsolete robolectric test runner integration" into main am: ↵ Colin Cross
151446cb41 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3254252 Change-Id: Ib1d5f7a2fa7491e1ecbb4873513c182d309275f1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Use transitive header jars in classpaths Colin Cross
Skip combining jars into turbine-combined, combined, and withres jars and instead collect transitive jars to use in the classpath and to produce the final dexed jar. This reduces the size of a `m checkbuild` in git_main by 11%, from 1300 KiB to 1154 KiB. It may also improve caching and reduce uplink network bandwidth when building with RBE, as now the classpath inputs to rules are themselves outputs of previous rules and so already in the RBE CAS. The downside is that the classpath inputs to each rule are now much longer, increasing the Soong ninja file size 11%, from 4.6 GiB to 5.1 GiB. This could be mitigated in the future by supporting something like depsets in the generated ninja file to reduce duplication. Bug: 308016794 Test: TestSimple, TestKotlin, TestClasspath Flag: build.RELEASE_USE_TRANSITIVE_JARS_IN_CLASSPATH Change-Id: I2b7b4261375494370da70f98597c8719f1d561cf
2024-09-04Remove obsolete robolectric test runner integration Colin Cross
The `m Run*RoboTests` test runner is no longer supported, remove the code to generate the Make rules for it. Also reduce the number of combining steps by passing the extra jars that need to be combined into the compile step. This relands Icf05079bf570bed7a10962cbf03459bd53c51f99 with a fix to reorder the instrumented app classes after dependency classes. Test: atest --host SystemUiRoboTests Flag: EXEMPT refactor Change-Id: I174ceb95af5557e1859eeb12a2f5fac2332975a8
2024-09-04Merge "Move the caching/restoring code from soong to blueprint to fully skip ↵ Yu Liu
build actions." into main am: c55b25f125 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3249489 Change-Id: I43e2ee71097e95e313eab8631742acb8048e36d4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Move the caching/restoring code from soong to blueprint to fully skip ↵ Yu Liu
build actions." into main
2024-09-04Move the caching/restoring code from soong to blueprint to fully skip build ↵ Yu Liu
actions. Bug: 358425833 Test: Manually verified the generated ninja and mk files and CI. Change-Id: Ieebb822c46f37c0ff55fad08531e9870a76cbd7b
2024-09-04Merge "Rename collectTransitiveHeaderJars and friends to mention R8" into ↵ Colin Cross
main am: 13d8e82c5e Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3216678 Change-Id: I8a425dc292fd5ce81a2e5343fd18f21fa3d472d6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Rename collectTransitiveHeaderJars and friends to mention R8" into main Colin Cross
2024-09-04Merge "Move checkbuild targets of Soong modules into Soong" into main am: ↵ Colin Cross
ca3bf2be39 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3237626 Change-Id: Id72a093f81785ece92211cc63a73c0a53576fb7b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Move checkbuild targets of Soong modules into Soong" into main Colin Cross
2024-09-04Merge "Apply apimapper instrument tool on android tests" into main am: ↵ Yihan Dong
a596b12878 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3249673 Change-Id: Ifd8f3a190c3794aed0dec5d872915fa294440db7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Apply apimapper instrument tool on android tests" into main Yihan Dong
2024-09-03Rename collectTransitiveHeaderJars and friends to mention R8 Colin Cross
collectTransitiveHeaderJarsForR8 visits direct dependencies and collects all transitive libs and static_libs header jars. The semantics of the collected jars are odd (it collects combined jars that contain the static libs, but also the static libs, and it collects transitive libs dependencies of static_libs), so these are only used to expand the --library arguments to R8. Rename the method and all the fields it uses with a "ForR8" suffix to avoid confusion when more transitive header jar collection is added to support transitive classpaths. Bug: 308016794 Test: all soong tests pass Change-Id: I291a86fbbc2e2f088598fb309d1b992080d60941
2024-09-03Move checkbuild targets of Soong modules into Soong Colin Cross
Pass the name of Soong's checkbuild target for each module to Make so that it can depend on it from the main checkbuild rule. This will give better control over which files get built, allowing checkbuild to skip the jar combining step when transitive classpath jars are enabled. The per-module checkbuild targets are passed to make instead of added directly as a dependency of checkbuild in order to maintain the existing behavior of only building modules exposed to make in checkbuild. Also tweak the existing calls to CheckbuildFile and add InstallFileWithoutCheckbuild to match the files that are in the Make-based checkbuild. Bug: 308016794 Test: m checkbuild Change-Id: Ic5140819381d58f4d00f23a7a12447950c4cf268
2024-09-02Apply apimapper instrument tool on android tests Yihan Dong
Apimapper is a tool to instrument android tests to log potentail API calls at the run time. The real tool is developed internally. We use a placeholder binary in AOSP before the real tool is ready. The tool will only take affect when the enviroment var EMMA_API_MAPPER is set to true. Test: m cts Bug: 328699028 Change-Id: Iece53b8afdb9803334b7393527f4fa24e22f71a8
2024-08-30Merge "Revert^4 "Implement detecting container violations."" into main am: ↵ Jihoon Kang
7344482ff3 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3248019 Change-Id: I440053bd684fa56172b82b4012348bd0a93e84c5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-29Revert^4 "Implement detecting container violations." Jihoon Kang
This change introduces a method to detect violating inter-container dependencies between modules. The method is run in `ModuleBase.GenerateBuildActions`, after the container info provider is set. Given that the provider of the direct dependencies would have been set at this time, the method utilizes this information to determine the violations, which are introduced in https://r.android.com/3141104. Note that this enforcement does not turn all inter-container dependencies as errors. Instead, it will only turn dependencies that matches the pre-defined violations into errors. Even if the dependency matches the violation, an error will not be thrown if the dependency satisfies any of the exception functions (e.g. the dependent module is stubs, or the two modules belong to the same apexes). Test: m nothing --no-skip-soong-tests Bug: 338660802 Change-Id: Ib9ddc0761fa46f1309b1a1a4f759d9a4e04fd70e
2024-08-28Merge "Revert^3 "Implement detecting container violations."" into main am: ↵ Priyanka Advani (xWF)
88a8daf8ca Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3248525 Change-Id: I7969a4be11e013e100f4be9fb13914244b094b7f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28Revert^3 "Implement detecting container violations." Priyanka Advani (xWF)
2a88491afc72707c21a125b81f7dcd252d2fc5f1 Change-Id: Iba4527f391a093703978fe01177b56fec4604b28
2024-08-28Merge changes Ia693c4a5,I8e5620d2 into main am: c14be38f1a Jihoon Kang
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3247222 Change-Id: Id0c06c93eda0e4978d9df052542370f28e64da38 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28Revert^2 "Implement detecting container violations." Jihoon Kang
This change introduces a method to detect violating inter-container dependencies between modules. The method is run in `ModuleBase.GenerateBuildActions`, after the container info provider is set. Given that the provider of the direct dependencies would have been set at this time, the method utilizes this information to determine the violations, which are introduced in https://r.android.com/3141104. Note that this enforcement does not turn all inter-container dependencies as errors. Instead, it will only turn dependencies that matches the pre-defined violations into errors. Even if the dependency matches the violation, an error will not be thrown if the dependency satisfies any of the exception functions (e.g. the dependent module is stubs, or the two modules belong to the same apexes). Test: m nothing --no-skip-soong-tests Bug: 338660802 Change-Id: Ia693c4a53369c757a3e96656a769405c759b111c
2024-08-28Merge "Revert "Implement detecting container violations."" into main am: ↵ Satish Yalla
f2d6e5004f Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3244001 Change-Id: Ibfcf7b1965a52402917a32a203bf55cb82d1626b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28Merge "Revert "Implement detecting container violations."" into main Satish Yalla
2024-08-28Revert "Implement detecting container violations." Satish Yalla
This reverts commit bb678f82d6bb5cd89bf282e88a879123d9763d61. Reason for revert: Droidmonitor created revert due to b/362639013. Will be verifying through ABTD before submission. Change-Id: I1dcb71672eeb44a17cf176d3731bcaf9aaf81edf
2024-08-28Merge "Implement detecting container violations." into main am: 26f071db92 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3155659 Change-Id: Id60c6920d6c964193b53c8b5f7026472c5fcacb0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28Merge "Implement detecting container violations." into main Treehugger Robot
2024-08-28Merge changes from topic "ctx_in_ideinfo" into main am: 9cbbafe300 Treehugger Robot
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3246818 Change-Id: Ia2b721e9967c0772acd7dd261ec18315f6c26b5e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-27Add ctx argument to IDEInfo() Cole Faust
The IDEInfo() methods read properties. To make those properties configurable, we need a context to evaluate them with. Bug: 362579941 Test: m nothing --no-skip-soong-tests Change-Id: I26d4b7084439b3006e50b02277298f74a929e1aa
2024-08-27Implement detecting container violations. Jihoon Kang
This change introduces a method to detect violating inter-container dependencies between modules. The method is run in `ModuleBase.GenerateBuildActions`, after the container info provider is set. Given that the provider of the direct dependencies would have been set at this time, the method utilizes this information to determine the violations, which are introduced in https://r.android.com/3141104. Note that this enforcement does not turn all inter-container dependencies as errors. Instead, it will only turn dependencies that matches the pre-defined violations into errors. Even if the dependency matches the violation, an error will not be thrown if the dependency satisfies any of the exception functions (e.g. the dependent module is stubs, or the two modules belong to the same apexes). Test: m nothing --no-skip-soong-tests Bug: 338660802 Change-Id: I36e9cd956c5a076a53635be0c6ff27f77725516e