Commit Graph

7894 Commits

Author SHA1 Message Date
Jihoon Kang
c09ef10f8d Merge "Modify sdk_library to dist exportable api files by default" into main am: 5135a0df57
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2970651

Change-Id: I75c03735713efc3d920cacc04bae33229138ac0f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-21 08:09:38 +00:00
Jihoon Kang
5135a0df57 Merge "Modify sdk_library to dist exportable api files by default" into main 2024-02-21 07:30:30 +00:00
Jihoon Kang
d1799f6835 Modify sdk_library to dist exportable api files by default
Currently, the "exportable" stubs are copied to the dist directory by
default when building the java_sdk_library module. However, "everything"
api files (current & removed) are copied to the dist directory, causing
confusion to the developers. This change modifies the default behavior
so that the "exportable" api files are copied to the dist directory and
match the behavior of the stubs.

Test: m nothing
Bug: 325639165
Change-Id: I2e3b158bb638d30629120b32aa3e88bb26231020
2024-02-20 23:06:11 +00:00
Treehugger Robot
7fd2b6f964 Merge "AOSP platform_apis violations" into main am: dcda79b5e7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2969671

Change-Id: I8e411a5390f9af312a4dd2f54abb04f41e5b5884
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-20 23:04:31 +00:00
Spandan Das
8469e939f3 AOSP platform_apis violations
This allowlist contains java_library modules which set the no-op
property `platform_apis`. This allowlist will help enforce that there
are no new violations.

This should be a no-op till
https://android-review.git.corp.google.com/c/platform/build/soong/+/2969451
is submitted

Test: presubmits
Bug: 215379393
Change-Id: I49372e1d476201f607cd717be26aa3909668ff26
2024-02-20 17:22:22 +00:00
Spandan Das
8a1033139c Merge "Disable dexpreopt if optional_uses_libs does not have an impl" into main am: 4bec95e2f6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2963583

Change-Id: I49ab495bfeb2e2d4c9a6c170ed73c47e0efe9802
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-20 08:42:37 +00:00
Spandan Das
4bec95e2f6 Merge "Disable dexpreopt if optional_uses_libs does not have an impl" into main 2024-02-20 08:08:35 +00:00
Zi Wang
2559a85af4 Merge "Add jarjar_prefix propagation support for aconfig_declarations_group module type" into main am: 0fd4bb8c70
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2967332

Change-Id: I0aedb1a1c34054269666a6f25624c68e079a73f6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-17 02:07:27 +00:00
Zi Wang
0fd4bb8c70 Merge "Add jarjar_prefix propagation support for aconfig_declarations_group module type" into main 2024-02-17 01:24:09 +00:00
Jihoon Kang
03d014ff2b Add jarjar_prefix propagation support for aconfig_declarations_group module type
jarjar_prefix propagation logic currently depends on the type of the
providers of the dependencies, thus the logic needs to be updated when a
new provider is added. Since `aconfig_declarations_group` module type
utilizes its custom provider "CodegenInfoProvider", this change adds
jarjar_prefix propagation support for this provider.

Test: Set aconfig_declaration module's exportable property to true && m framework-minus-apex and inspect if "repackaged-jarjar" subdir exists in outdir
Bug: 310504781
Change-Id: I1689027d7810687a53ec34b9cfda479806f2ec87
2024-02-16 22:22:18 +00:00
Spandan Das
0727ba76b1 Disable dexpreopt if optional_uses_libs does not have an impl
At ToT, an optional_uses_libs is not added to the build time CLC if it
does not exist in the tree. One edge case here is
java_sdk_library_import, which might exist in the tree, but without an
implementation. This cause issues during analysis when we try to verify
the correctness of the build time CLC.

This CL disables dexpreopt if a dependency does not have an
implementation. To limit inadvertent side effects, this is restricted to
java_sdk_library(_import) module types. (more precisely, it is restricted
to java_sdk_library_import, since the source module type will always
have an impl)

Bug: 315802285
Test: Added a unit test
Test: m nothing
Test: printf debugging in internal main, verified that this CL does not
disable dexpreopt on any android app inadvertently

Change-Id: I173fc2f3ff654fe4091e9a43322164afd3222ee7
2024-02-16 18:00:27 +00:00
Inseob Kim
aab9ab67ad Merge "Fix characteristic rro for overridden packages" into main am: f617e18741
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2963742

Change-Id: Iada941f7badf0686bf0352fe8a74ea030cfd21cc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-16 02:23:48 +00:00
Inseob Kim
f617e18741 Merge "Fix characteristic rro for overridden packages" into main 2024-02-16 01:41:48 +00:00
Treehugger Robot
ade9e28515 Merge changes I42eb64d3,I93d73757 into main am: e4c98ae235
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2962842

Change-Id: Ifdb4658032d8c4ef35a6bdf207843cf69de03973
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 22:59:14 +00:00
Treehugger Robot
e4c98ae235 Merge changes I42eb64d3,I93d73757 into main
* changes:
  Enable droidstubs to depend on aconfig_declarations_group module type
  Introduce module type aconfig_declarations_group
2024-02-14 22:14:30 +00:00
LaMont Jones
3b885b43ec Merge changes from topic "is_stubs_module" into main am: b45200bd0b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2962046

Change-Id: I0f169223082b697ec370cee91d1e3ed041bbe584
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 21:59:36 +00:00
Jihoon Kang
d60be87b3c Introduce library property is_stubs_module am: fe914ed17f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2959347

Change-Id: I4bad4dfcdefa6bf118ffee2bafc206cb8d3bf23c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 21:59:29 +00:00
LaMont Jones
b45200bd0b Merge changes from topic "is_stubs_module" into main
* changes:
  Improve determination whether to propagate JarJarProvider
  Introduce library property is_stubs_module
2024-02-14 21:38:20 +00:00
Colin Cross
8113101892 Merge "Always use aapt2 --no-static-lib-packages" into main am: 308d64ed72
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2962085

Change-Id: Ida814c476605753b7e43cd90ba5a8e52b9bad0a1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 20:33:57 +00:00
Colin Cross
308d64ed72 Merge "Always use aapt2 --no-static-lib-packages" into main 2024-02-14 20:01:25 +00:00
Jihoon Kang
38e4f258f7 Enable droidstubs to depend on aconfig_declarations_group module type
This change enabled aconfig_declarations_group module type to be added
as `aconfig_declarations` property of droidstubs module. Similar to
aconfig_declrations module, the aconfig_declarations_group module
provides the intermediate cache files of the aconfig_declarations
modules of the listed codegen modules to droidstubs module.

Test: m nothing --no-skip-soong-tests
Change-Id: I42eb64d3ab65e679ea733c5bb98833971e49a8e8
2024-02-14 18:52:51 +00:00
Inseob Kim
5b90d3a703 Fix characteristic rro for overridden packages
Overridden packages can have different package names. This change reads
output APKs to parse package name, instead of manifest xml.

Bug: 325011777
Test: boot and idmap2 dump
Change-Id: I748b9db8bd6282d7f3a1478cf94b21580c7683e7
2024-02-14 16:55:33 +09:00
Treehugger Robot
4532d929bf Merge "Skip passing "--product default" to aapt2" into main am: d8bab3758b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2960503

Change-Id: If075e7b1fa924b2c7e72b1deb3a0cc465d1e39c2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 01:52:58 +00:00
Treehugger Robot
d8bab3758b Merge "Skip passing "--product default" to aapt2" into main 2024-02-14 01:20:52 +00:00
LaMont Jones
63683e40c4 Improve determination whether to propagate JarJarProvider
Add more explicit checks to not propagate JarJarProvider when we will be
linking against stubs.

Bug: b/310504781
Test: treehugger
Merged-In: I3219d0bf7e84a386b16b248314f11b4e9edcd0fa
Change-Id: I3219d0bf7e84a386b16b248314f11b4e9edcd0fa
2024-02-13 17:04:17 -08:00
Jihoon Kang
fe914ed17f Introduce library property is_stubs_module
is_stubs_module property signifies whether the module compiles stubs or
not. The information is propagated to the reverse dependencies of the
java_library/java_sdk_library modules via JavaInfoProvider as
StubsLinkType, a ternary state that provides information about whether
the provided jars are compilation of stubs or implementation, or
unknown.

When java_sdk_library sets StubsLinkType, its state is Unknown as the
decision of providing stubs vs implementation jar differs by the reverse
dependency.

Note that this CL does NOT propagate the property up to its reverse
dependencies. This will be done in follow up CLs.

Test: m nothing
Bug: 310504781
Merged-In: Ic81488dbd1c9af1b5d31a33e5e9441d9f1416dbe
Change-Id: Ic81488dbd1c9af1b5d31a33e5e9441d9f1416dbe
2024-02-13 16:56:38 -08:00
Colin Cross
7c4dc5d185 Always use aapt2 --no-static-lib-packages
--no-static-lib-packages was removed when compiling libraries with
use_resource_processor: true enabled, but that caused problems resolving
attributes of styleables.  androidx.preference declares the "icon"
attribute inside a <declare-styleable>, but doesn't give it a format.
aapt2 refuses to create a new attribute for this case (b/131100106),
but without --no-static-lib-packages aapt2 can resolve the attribute
from the one defined in androidx.appcompat.

Bug: 294256649
Test: builds
Change-Id: I13661be83ba6501b0c2b1af8e632f260f405a370
2024-02-13 14:29:45 -08:00
Spandan Das
59bb373c64 Merge "Restrict verify_overlaps to pre S modules" into main am: 2dc86ebd3e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2958292

Change-Id: I350dea6abb51cb96bcfe8b093570ed809d8ccc62
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-13 13:58:59 +00:00
Jihoon Kang
4e0e9d3108 Merge "Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA" into main am: a0ccab683b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2952892

Change-Id: I311062919b44a6d6e469f831008d9952d0c8a6aa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-13 13:56:46 +00:00
Spandan Das
2dc86ebd3e Merge "Restrict verify_overlaps to pre S modules" into main 2024-02-13 10:53:23 +00:00
Jihoon Kang
a0ccab683b Merge "Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA" into main 2024-02-13 04:27:21 +00:00
Inseob Kim
10af6edc52 Skip passing "--product default" to aapt2
Because
1) it has no effect.
2) it will simplify build commands, which will minimize differences
   among targets using generate_product_characteristics_rro

Bug: 322932641
Test: TH
Change-Id: I16afae597038da7489989483f8c926916d207df5
2024-02-13 12:56:46 +09:00
Spandan Das
38c64f62cf Restrict verify_overlaps to pre S modules
The runtime in S and above does not have the same constraints that
require the hiddenapi flags to be generated in a monolithic manner.
This CL restricts the verify_overlaps to pre S modules. This will
filter out hiddenapi signature discrepancies that do not require
any action.

Test: verify_overlaps diff with this change https://diff.googleplex.com/#key=xxB0ky93hZRn
Test: presubmits
Bug: 313672880

Change-Id: Ie626a6779fc924563bec90b6c1ab0c7e8b4b23c2
2024-02-13 02:33:12 +00:00
Treehugger Robot
485ca86b31 Merge "[Ravenwood] Install transitive JNI libraries too" into main am: c521446153
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2956237

Change-Id: Ic47b8d8812223fca5bfd45871a586b8b39af9b89
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-12 23:20:56 +00:00
Jihoon Kang
842b999a53 Add environment variable UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA
UNBUNDLED_BUILD_TARGET_SDK_WITH_DESSERT_SHA enables user to specify
${codename}.${sha} as min_sdk_version and target_sdk_version in order to
support mainline train building into android build.

Test: TH
Bug: 295905124
Change-Id: I032d464aaa7314520f98b8eafa53d962940075ce
2024-02-12 21:12:58 +00:00
Makoto Onuki
2ca8427124 [Ravenwood] Install transitive JNI libraries too
Ignore-AOSP-First: Will cherry-pick later.
Bug: 318393625
Bug: 323931246

Test: run-ravenwood-tests.sh
Test: (with local change) atest RavenwoodBivalentTest_device RavenwoodMockitoTest_device
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:55c035761c8b7b758d710ed5eeb9192525677057)
Merged-In: Ie0f6bbf1aa6252d415c53cfc19178f0986cc57f1

Change-Id: Ie0f6bbf1aa6252d415c53cfc19178f0986cc57f1
2024-02-09 16:45:43 -08:00
Jihoon Kang
5c1baf9627 Merge "Enable exportable stubs to include READ_WRITE aconfig flagged apis" into main am: 63f4cb6ed5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2952680

Change-Id: Ib2713f22f0046c989d30cd5feca95fc72f464a39
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-09 00:41:26 +00:00
Jihoon Kang
63f4cb6ed5 Merge "Enable exportable stubs to include READ_WRITE aconfig flagged apis" into main 2024-02-08 23:52:47 +00:00
Yu Liu
ca23de78ab Merge "Add dedup flag to aconfig dump-cache calls." into main am: 01beacee28
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2955616

Change-Id: I31221f46e38b6a60ccb956af9208780e123b6a86
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-08 21:33:25 +00:00
Makoto Onuki
c2e3e73deb Support native SOs in ravenwood runtime am: 68676578b1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2952952

Change-Id: I8dc233fe93227af458fe2c0fa2c6e4d9f5cf6c56
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-08 21:33:10 +00:00
Yu Liu
01beacee28 Merge "Add dedup flag to aconfig dump-cache calls." into main 2024-02-08 20:58:55 +00:00
Yu Liu
748ade2f85 Add dedup flag to aconfig dump-cache calls.
Bug: None
Test: CI
Change-Id: I34a73576a7a7ea43178895049a0f7dbcd9e329bc
2024-02-08 19:11:39 +00:00
Makoto Onuki
68676578b1 Support native SOs in ravenwood runtime
Bug: 323931246
Test: m nothing --no-skip-soong-tests
Test: Manual test using a locally created build rule

Merged-in: Icd15d63c29560dc219dba07cc9db2a5e1b883532
Change-Id: Icd15d63c29560dc219dba07cc9db2a5e1b883532
2024-02-08 09:25:41 -08:00
Jeff Sharkey
4bbf86f4f0 Include Ravenwood tests in general-tests.
EngProd has indicated that we need to be included in that suite to
support TEST_MAPPING files in their infrastructure.

Bug: 308854804
Test: TH
Merged-in: I763b033f0f5f275091db45ab62df6af48dcddc66
Change-Id: I763b033f0f5f275091db45ab62df6af48dcddc66
2024-02-08 09:25:41 -08:00
Jeff Sharkey
ddb5152a9f Fix tests that are broken on darwin builds.
Bug: 292141694
Test: m nothing --no-skip-soong-tests
Merged-in: Ie9a2f8961a8c43bbe1388471fc0d7aadc1456c57
Change-Id: Ie9a2f8961a8c43bbe1388471fc0d7aadc1456c57
2024-02-08 09:25:41 -08:00
Makoto Onuki
4a9869d066 Add android_ravenwood_test build rule
Modeled after android_robolectric_test.

Bug: 292141694
Test: m nothing --no-skip-soong-tests
Test: m hoststubgen ravenwood-runtime tradefed atest && atest-dev HostStubGenTest-framework-test
Merged-in: Ibef8953db45b86264c8a827868793b42f8f2d6ab
Change-Id: Ibef8953db45b86264c8a827868793b42f8f2d6ab
2024-02-08 09:25:35 -08:00
Zi Wang
0a8522286e Merge "Ignore proguardRaiseTag in jarjar repackage" into main am: 5eab6d0a31
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2955307

Change-Id: I204ca7b679c250dd7617c18556d6dc5fde04f8e0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-08 00:33:44 +00:00
Zi Wang
bacee38680 Ignore proguardRaiseTag in jarjar repackage
Test: CI

Bug: 310504781

Ignore-AOSP-First: Will cp to aosp
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ffd200a12546237b1ac0f615c73cb3c9614a8237)
Merged-In: I1c926f374cc6e0f963c32d049ea120b8fbf18eb1
Change-Id: I1c926f374cc6e0f963c32d049ea120b8fbf18eb1
2024-02-07 19:57:14 +00:00
Spandan Das
715a3892e1 Merge changes Ia899d75e,I9f885ffa into main am: f8c004263a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2951496

Change-Id: I53d240f6e28a95ec60fa43f3c68814f16841dee6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-07 01:44:15 +00:00
Jihoon Kang
5919815f80 Enable exportable stubs to include READ_WRITE aconfig flagged apis
Currently in SDK build, "exportable" stubs are used to generate the
android.jar and the corresponding build artifacts, as well as the
hiddenapi flags. "exportable" stubs only include the flagged apis that
are "enabled" and "read only", and exclude all other flagged apis. This
will be replaced with "runtime" stubs in the long run, which include
"read_write" flagged apis on top of the "enabled" and "read only" flags.

Prior to Trunk Stable, the SDK build did not distinguish the target
audience of the SDK. That is, the identical build target was used to
generate the SDK targeted toward the Google3 developers (i.e. Google3
SDK drop) and the SDK targeted toward the public (i.e. Developer
Preview). However, given that we now have "experimental" apis with Trunk
Stable, there are demands to differentiate the SDK based on the target
audience, so that the "experimental" APIs are included in the SDK
targeted toward Google3 while they are excluded in the public facing
SDK.

The long term solution to achieve this is to generate the hiddenapi
flags and (conditionally) the SDKs using the runtime stubs. However, as
this is high priority, this change resolves the problem by modifying the
filter condition of the "exportable" stubs to include the "read_write"
flagged apis on top of the "enabled" and "read only" flagged apis when
the value of the default-false build flag "RELEASE_EXPORT_RUNTIME_APIS"
is set to true.

Note that this is a temporary solution; However, we might need to keep
the "RELEASE_EXPORT_RUNTIME_APIS" build flag even in the long run to
determine what set of apis are included in the generated SDK, based on
the target audience of the SDK.

Test: m nothing --no-skip-soong-tests
Bug: 323188988
Change-Id: If0d5fa74b3ba6f4a57c86aade8d340f149a657a2
2024-02-07 01:17:59 +00:00