Commit Graph

8671 Commits

Author SHA1 Message Date
Treehugger Robot
cd08b3bfda Merge "dexpreopt rules for google mainline prebuilts with missing source" into main am: 529da9b897
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3241767

Change-Id: Ic80a3aef33c0b43c1c28e1bc8c8b9501a6bd4799
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-28 01:28:20 +00:00
Treehugger Robot
529da9b897 Merge "dexpreopt rules for google mainline prebuilts with missing source" into main 2024-08-28 01:25:52 +00:00
Treehugger Robot
e1028aa539 Merge changes from topic "ctx_in_ideinfo" into main am: 9cbbafe300
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-28 00:53:10 +00:00
Treehugger Robot
9cbbafe300 Merge changes from topic "ctx_in_ideinfo" into main
* changes:
  Add ctx argument to IDEInfo()
  Add configurable property support to neverallow
2024-08-28 00:49:13 +00:00
Treehugger Robot
cc02a664cf Merge "Make IdeInfo into a provider" into main am: 78a3761bde
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3245754

Change-Id: If90b650d7e0832de74a858c541277f9658f477c3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-27 23:55:40 +00:00
Treehugger Robot
78a3761bde Merge "Make IdeInfo into a provider" into main 2024-08-27 23:49:10 +00:00
Cole Faust
b36d31d870 Add ctx argument to IDEInfo()
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-27 16:04:28 -07:00
Cole Faust
08c7f86575 Make IdeInfo into a provider
In order to keep the changes minimal, call the old IdeInfo method right
after GenerateAndroidBuildActions and then set the result of that
into a provider.

Test: Diff'd ninja files and saw no difference.
Change-Id: Ic706e7dbcb7c6e3d2a381ddae383eb87e105f385
2024-08-27 15:50:35 -07:00
Spandan Das
8a2c56c516 dexpreopt rules for google mainline prebuilts with missing source
AddFarVariationDependencies runs into issues in partner workspaces which
do not contain the sources of google mainline prebuilts, since the
prebuilt would be renamed in a prior prebuilt_rename mutator. To account
for this rename, add `prebuilt_` prefix in
`addDependenciesOntoSelectedBootImageApexes` to ensure that the prebuilt
apex does not get elided

Test: m nothing --no-skip-soong-tests
Test: in v-aml-prebuilt dev,
aninja -t query out/soong/dexpreopt_arm64/dex_bootjars_input/okhttp.jar | head -n3
out/soong/dexpreopt_arm64/dex_bootjars_input/okhttp.jar:
  input: g.android.Cp
    out/soong/.intermediates/vendor/partner_modules/ArtPrebuilt/prebuilt_com.google.android.art_compressed.deapexer/android_common/deapexer/javalib/okhttp.jar
(uses the prebuilt deapexed boot jar, and no the source apex boot jar)

Bug: 362163831
Change-Id: Ie94a36911ab40ac09a470efe505fd00ef3a5bf9c
2024-08-27 22:01:11 +00:00
Spandan Das
8bd23c11bd Merge "Contents validation of override_apex's bootclasspath fragments" into main am: 39d61f53ff
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3241777

Change-Id: Ib59bb6607b8b35a3fe4e85815d5d2c325f9b4899
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-27 20:41:11 +00:00
Spandan Das
ed7a030c6c Contents validation of override_apex's bootclasspath fragments
https://r.android.com/3083813 added support for overriding
min_sdk_version, and creating separate variants of transitive
dependencies of override apexes. This causes issues when there is a skew
between apex boot jars of source and prebuilt mainline modules. For
mediaprovider google apex, we now have _two_ source variants of
mediaprovider bcp fragment module.

This CL uses ApexInfo.BaseApexName to skip the check on both variants of
bootclasspath/systemserverclasspath fragments.

This CL also removes the prefix based check to determine if prebuilts
are active. If RELEASE_APEX_CONTRIBUTIONS for a specific mainline module
is set, it will be assumed that prebuilts for that mainline module are
active.

Test: go test ./apex ./java
Bug: 361771739

Change-Id: I01f7ef437df8f10b74ffa397ba461ff4f1f9bed6
2024-08-27 18:48:46 +00:00
Spandan Das
3f90d0bfe6 Merge "Move installation rules of dexpreopt'd apex systemserver jars to soong" into main am: 18c2607bde
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3237119

Change-Id: I340ad00b8bff36520f3335f11fec8b307531f1ec
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-26 22:36:51 +00:00
Spandan Das
18c2607bde Merge "Move installation rules of dexpreopt'd apex systemserver jars to soong" into main 2024-08-26 22:27:57 +00:00
Treehugger Robot
b354c61de5 Merge "Guarantee frameworks.aidl stability." into main am: 7389ad5c18
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3236516

Change-Id: Ife4978df1cc8bd8272a4ea4ce36f197ee93c4fb5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-26 21:29:22 +00:00
Treehugger Robot
7389ad5c18 Merge "Guarantee frameworks.aidl stability." into main 2024-08-26 21:21:19 +00:00
Spandan Das
746161db0c Move installation rules of dexpreopt'd apex systemserver jars to soong
This will eventually allow us to build devices by skipping `katiBuild`
and moving straight to `katiPackaging`.

Implementation details
- Replace ctx.PackageFile with ctx.InstallFile. These makes these rules
  available to both make and soong packaging systems. This will be done
inside d.dexpreopt function
- Add InstallDepNeeded on the dependency tags in this chain
(apex --> sscp_fragment --> (java_library|java_sdk_library)). This is
necessary for the soong packaging system.
- Remove `LOCAL_SOONG_INSTALLED_MODULE=""`. A non-empty string ensures
  that kati honors the installation rules generated by soong.

Bug: 355509400
Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug (mainline source)
Test: lunch cf_x86_64_only_phone-ap3a-userdebug (mainline prebuilts)
(no diff in system_intermediates/file_list.txt in both cases)

Change-Id: I190a919e9480e7d9981a6b9b96a50d9c33ceea02
2024-08-26 20:58:10 +00:00
Treehugger Robot
85beba636a Merge "Remove suffix based stub matching logic" into main am: 65c530c17e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3235808

Change-Id: Iad8c5a6fc68dc6e8cc2770a4f3f57a9fac18d3be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-23 03:52:13 +00:00
Treehugger Robot
65c530c17e Merge "Remove suffix based stub matching logic" into main 2024-08-23 03:42:12 +00:00
Treehugger Robot
97f6eac103 Merge "Make java_sdk_library phony target depend on its stub jar" into main am: fe5f57b27f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3236043

Change-Id: Iea26027f6a9948fa3407df84831a075b957463be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-23 03:20:34 +00:00
Treehugger Robot
fe5f57b27f Merge "Make java_sdk_library phony target depend on its stub jar" into main 2024-08-23 03:14:53 +00:00
Jihoon Kang
4b9220af10 Make java_sdk_library phony target depend on its stub jar
Currently, the (from-text) stub jar depends on the check api timestamp
of the same api scope droidstubs. However, building the top level
sdk_library phony target does not trigger check api, as the top level
java_sdk_library "depends" on the stub submodules but the top level
phony target does not build the stubs generated by its submodule, nor
the top level java_sdk_library generate any output files.

In order to support the user's workflow of observing checkapi failure
after modifying the api by running `m <java_sdk_library name>`, this
change adds the paths to the stub jars as dependencies as the top level
java_sdk_library phony target.

Bug: 234113632
Test: modify source file api, run m <java_sdk_library name> and observe checkapi failure
Change-Id: Iccd42c8ef7d5de20f71c347455c1a90d83a6c70c
2024-08-22 22:11:04 +00:00
Jihoon Kang
fa3f0782f7 Remove suffix based stub matching logic
This change prevents non-stub modules with stub suffix from being
determined as the stub module, and instead makes the check more robust
by determining the condition based on the user-hidden
`Stub_contributing_api` property, which is only set for the stub
submodules generated by `java_sdk_library`.

Test: m nothing --no-skip-soong-tests
Bug: 361179822
Change-Id: I28a599c5b4fe1e8460e60580c0535aaf19e39ba3
2024-08-22 22:05:03 +00:00
Yu Liu
de9f7f2f00 Merge "Access output files thru providers in Soong tests." into main am: fed2be9f98
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3233572

Change-Id: If5bbef16025bfe3d95615398ac4afa97604daf29
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-21 17:31:58 +00:00
Steven Moreland
465baeed14 Guarantee frameworks.aidl stability.
Apps share these classes from the BCP, so even if
they are changed, they stay in sync.

Bug: 258850063
Test: build
Change-Id: I50b6a928c29f5d9eca9496b91363a8fc5d397b00
2024-08-21 16:47:49 +00:00
Yu Liu
51c2231eab Access output files thru providers in Soong tests.
The outputFiles field on ModuleBase will be removed next.

Bug: 358425833
Test: CI
Change-Id: I6d665ac13134d9278e5908f64c454366bc6bca5e
2024-08-21 00:03:50 +00:00
Treehugger Robot
c59a128390 Merge "Restrict R8 -libraryjars refs for stable targets" into main am: 0fd3de6151
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3233562

Change-Id: I719d8ec110b692833aed69550f24eaa7159de6f7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-20 22:37:26 +00:00
Treehugger Robot
0fd3de6151 Merge "Restrict R8 -libraryjars refs for stable targets" into main 2024-08-20 22:31:28 +00:00
Jared Duke
2246844554 Restrict R8 -libraryjars refs for stable targets
The current R8 dex pipeline gathers transitive header jars to avoid
issues with missing class definitions. While this is benign for
platform targets not using a stable SDK, it can introduce issues
for stable targets (e.g., duplicate class defs for mainline framework
modules).

Bypass this transitive jar referencing for such targets that should
reference explicit, stable, stub API libraries. A follow-up change
will resolve specific issues with mainline system server targets.

Bug: 360905238
Test: m
Change-Id: I11a136d33ca9dd0dfff436c7045bf1807d17b1e7
2024-08-20 20:45:35 +00:00
Cole Faust
0821a8cf57 Merge "Only add deps on java_binary's jni_libs on host" into main am: b4cc88efef
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3230584

Change-Id: I5a6588ee4724f6b128e0e2ed5092b3f52c57996c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-20 20:13:16 +00:00
Cole Faust
3dac486013 Only add deps on java_binary's jni_libs on host
The jni_libs property of java_binary is documented to only install
the jni libraries on host. However, it was adding installable
deptag deps on those libraries, even if they were for device. This
caused soong to emit installation rules for the jni libraries, causing
them to be installed to the staging directory, but not emitting
proper information to make, so they wouldn't be included on the built
partitions.

Only install them if the module is built for host, so that they don't
erroneously appear in the staging directory.

Bug: 344695913
Test: Presubmits
Change-Id: Ic40b4fc6d7dbd51c03b08e28037be5428db49c33
2024-08-20 11:44:04 -07:00
Treehugger Robot
903a500065 Merge changes Ia0e1b307,I63c7c33e into main am: a5289ac9ef
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3216639

Change-Id: I5de31ae329756b4fd028e58e1bf9299eb3ad8347
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-17 04:43:09 +00:00
Treehugger Robot
a5289ac9ef Merge changes Ia0e1b307,I63c7c33e into main
* changes:
  Define unstable container
  Define additional exception functions for container enforcement
2024-08-17 04:07:00 +00:00
Jihoon Kang
0f3b1a7288 Define unstable container
Unstable container marks modules that are static reverse dependencies of
"framework-minus-apex". These modules contain unstable implementation
details of the platform, and should not be accessed by the CTS tests.

Test: m nothing
Bug: 338660802
Change-Id: Ia0e1b3070f0f7b2c1b9c27306323e2428d9722ca
2024-08-16 22:57:57 +00:00
Jihoon Kang
224ea08ee6 Define additional exception functions for container enforcement
These exception functions allow restriction to be loosened for some
inter-container dependencies.

Note that these functions are still no-op. Restriction enforcement will
be done in the child change.

Test: m nothing
Bug: 338660802
Change-Id: I63c7c33e33f271d4c2a84cc6070eb4896e030ab4
2024-08-16 22:57:39 +00:00
Colin Cross
11b14d2eda Merge "Track resources separately in java_import" into main am: 7c2af51a3d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3221407

Change-Id: Ib4bd8f81be30ef3c82244f24bf267bdbb7363c60
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:31:35 +00:00
Colin Cross
5e989b554c Merge "Convert more stored WritablePaths to Paths" into main am: 6ca3f758d0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3221406

Change-Id: I162b94190cb28fa7f74901557d9b45c313b1b66a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:30:59 +00:00
Colin Cross
7c2af51a3d Merge "Track resources separately in java_import" into main 2024-08-16 22:30:33 +00:00
Treehugger Robot
099f466484 Merge "Run "ravenizer" on ravenwood jars" into main am: 08e76d9591
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3225782

Change-Id: I1c9c6faadae080fd32d769b1acafc090ed1d85e4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:30:08 +00:00
Yu Liu
a5c0d1f355 Merge "Remove more internal fields from ModuleBase." into main am: fb995a1e3c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3221927

Change-Id: Icafa7150b5320cbff6dffaef15453a078f39c9a8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:27:52 +00:00
Colin Cross
6ca3f758d0 Merge "Convert more stored WritablePaths to Paths" into main 2024-08-16 22:16:56 +00:00
Treehugger Robot
08e76d9591 Merge "Run "ravenizer" on ravenwood jars" into main 2024-08-16 22:16:41 +00:00
Yu Liu
fb995a1e3c Merge "Remove more internal fields from ModuleBase." into main 2024-08-16 22:14:01 +00:00
Colin Cross
45e2c9ba92 Merge "Move kotlin stdlib to normal dependency tag" into main am: f0df94a76d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3216738

Change-Id: Ib86bb51550db89f2e926229610b969fa98e2a79a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 21:19:48 +00:00
Colin Cross
f0df94a76d Merge "Move kotlin stdlib to normal dependency tag" into main 2024-08-16 21:01:23 +00:00
Colin Cross
53c33178d1 Merge "Use rsp files to pass turbine inputs to RBE" into main am: f330b3dc77
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3214560

Change-Id: Ib5d6c8c78d29a68414f2c5161a78047e37cc5d43
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 20:40:52 +00:00
Colin Cross
f330b3dc77 Merge "Use rsp files to pass turbine inputs to RBE" into main 2024-08-16 20:18:09 +00:00
Makoto Onuki
7ded3827a4 Run "ravenizer" on ravenwood jars
Ravenizer is a new tool to preprocess ravenwood tests.

It can optionally be applied to other java targets (for analyzing them,
etc).

The actual tool is being implemented internally, so in AOSP, we just
use a script that copies the jar file as a replacement.

Test: manual -- run `m RavenwoodBivalentTest` and make sure the ravenizer
    log message shows up.
Flag: EXEMPT host test change only
Bug: 360390999
Change-Id: I6d1f81e7c425397b16c37e7c30267957097387fd
2024-08-16 12:08:35 -07:00
Colin Cross
53529a9061 Track resources separately in java_import
java_import currently collects the "implementation and resource jar"
from each of its dependencies.  This results in different resource
conflict resolution than other java modules, which collect
implementation jars and resource jars separately.  Modify java_import
to match the other module types.

Flag: EXEMPT refactor
Test: all soong tests pass
Change-Id: I06134e2621582799b3a525d2c12b900b8d86d171
2024-08-16 11:56:19 -07:00
Colin Cross
77965d9bd4 Convert more stored WritablePaths to Paths
Similar to I40f28075ce151e4be80d6cfc7ec173dfa46f9bbf, convert
more long-lived WritablePaths to Paths.

Test: all soong tests pass
Flag: EXEMPT refactor
Change-Id: I9be448f811694fe0524fbbd7c5d4553cf69d533a
2024-08-15 20:43:39 -07:00
Yu Liu
d46e5ae670 Remove more internal fields from ModuleBase.
Bug: 358425833
Test: Manual compare the generated ninja and mk files and CI.
Change-Id: I4edd0dc646ac035594f47cd9044cc4eb5f710e64
2024-08-16 00:20:27 +00:00