Commit Graph

8009 Commits

Author SHA1 Message Date
Jihoon Kang
693ba5cfbf Merge "Enable non-"everything" stubs generation in java_api_library" into main am: 641bd9daee am: 04338c8ae2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2977092

Change-Id: I8297262de0e3260b8af19e683e1b46876de71a59
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-28 23:32:21 +00:00
Jihoon Kang
04338c8ae2 Merge "Enable non-"everything" stubs generation in java_api_library" into main am: 641bd9daee
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2977092

Change-Id: I91772243047e96a6144134694f2038878ed7b0ea
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-28 22:50:53 +00:00
Jihoon Kang
5d701272e4 Enable non-"everything" stubs generation in java_api_library
This change adds support to generate non-"everything" (i.e. "runtime"
and "exportable") stubs in java_api_library, which generates the stubs
from the api signature files.

Unlike droidstubs module that generates "everything", "exportable" and
"runtime" stubs in a single module, java_api_library generates a single
set of stubs per module, which is set by the default-"everything"
property `stubs_type`. This is because java_api_library is responsible
for both generation and the compilation of the stubs srcjar, and
compilation of the stubs srcjar are done in separate java_library
modules for from-source stubs.

Utilization of this feature will be done in a follow up change that
generates the "exportable" java_api_library modules in java_sdk_library.

Test: m nothing --no-skip-soong-tests
Bug: 318009570
Change-Id: I1051544ac3bcdb3ba1f78bfec28eba4e9fad9c2d
2024-02-28 07:55:32 +00:00
Jihoon Kang
0978cbbab9 Merge changes I14928b7b,Ia009df3d into main am: 60bdd05b21 am: 58551161ca
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2929615

Change-Id: I08398780e76df2a9f67a90da15c12ae9f793589c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-28 01:56:24 +00:00
Jihoon Kang
58551161ca Merge changes I14928b7b,Ia009df3d into main am: 60bdd05b21
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2929615

Change-Id: I6c50871814d4165f6b546edae39ca8b16ebba9fc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-28 01:15:48 +00:00
Jihoon Kang
60bdd05b21 Merge changes I14928b7b,Ia009df3d into main
* changes:
  Generate runtime stubs in droidstubs
  Additional cleanup prior to adding the runtime stubs
2024-02-28 00:29:08 +00:00
Zi Wang
e107986ffd Merge "Add property Skip_jarjar_repackage" into main 2024-02-27 17:54:19 +00:00
Treehugger Robot
e08e32b45a Merge "Support new property "arch_dpi" for android_import" into main am: 8bf3013844 am: a948adc496
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2967069

Change-Id: Ib498f26d7c63d9ec3ab209bad7dac75c61afb2f4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-27 04:07:27 +00:00
Treehugger Robot
a948adc496 Merge "Support new property "arch_dpi" for android_import" into main am: 8bf3013844
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2967069

Change-Id: I0eb96ab1d45a47c4a67d4fef7f79d813846a6441
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-27 03:26:27 +00:00
Treehugger Robot
8bf3013844 Merge "Support new property "arch_dpi" for android_import" into main 2024-02-27 02:56:45 +00:00
Zi Wang
9bdd4228cb Add property Skip_jarjar_repackage
If this property is set to true on a module, this module will
not have jarjar repackaging.

Test: CI
Bug: 327009143
Change-Id: I9384c9c25ce581ac00d309a188cf7533eb2e44a6
Ignore-AOSP-First: Will cp to aosp
2024-02-27 02:26:25 +00:00
Jihoon Kang
ca2f9e8bf4 Generate runtime stubs in droidstubs
Similar to how the exportable stubs are generated in droidstubs, this
change adds the rule to generate the runtime stubs in droidstubs. Unlike
the exportable stubs, which the artifacts are dist'ed during the sdk
build, the runtime stubs will only used in the hiddenapi flags
generation. Therefore, only the stubs are generated and no other
artifacts are generated during the "runtime" metalava invocation. When
`aconfig_declarations` property is not defined (i.e. no flags are
enabled, thus the exportable and the runtime stubs are identical), the
runtime stubs are simple copied from the exportable stubs.

Note that the runtime stubs are not a dependency of `droid` as of now.
The dependency of the hiddenapi flags will be replaced to the runtime
stubs in the child CL.

Test: m nothing --no-skip-soong-tests && m api-stubs-docs-non-updatable
Bug: 319162970
Change-Id: I14928b7b5619522c4caab1dfc795bc9c7e929639
2024-02-27 01:51:05 +00:00
Jihoon Kang
6b93b38e34 Additional cleanup prior to adding the runtime stubs
This change performs additional cleanups in the build rules of the
droidstubs module, specifically optionalizing annotationFlags(...) and
apiLevelsAnnotationsFlags(...). This is required as "runtime" stubs
would not generate other artifacts than the stubs, and thus
`stubsArtifacts` would not be generated for "runtime".

Test: m nothing
Bug: 319162970
Change-Id: Ia009df3d01f49841d5041fb2dfdfa7ef8671bf18
2024-02-27 01:01:44 +00:00
Herbert Xue
04354ae88b Support new property "arch_dpi" for android_import
Support the feature with new property combined with architecture and dpi
resolution.

Bug: 319381869
Test: go test -run TestAndroidAppImport_ArchVariants
Change-Id: Ib43cbae8868fc35701e6666867b2325f5abbb2c7
2024-02-26 10:46:18 +08:00
Jihoon Kang
40d6280eb2 Convert the build flag RELEASE_EXPORT_RUNTIME_APIS to a product variable am: 35349466cd am: d881124481
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2973435

Change-Id: Ibd79e6f44a9f776293db83efac8636c32a2acf85
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-23 02:55:32 +00:00
Jihoon Kang
d881124481 Convert the build flag RELEASE_EXPORT_RUNTIME_APIS to a product variable am: 35349466cd
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2973435

Change-Id: If699df9c820f06564446c5fac15ad79e2bb9365f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-23 02:36:45 +00:00
Jihoon Kang
35349466cd Convert the build flag RELEASE_EXPORT_RUNTIME_APIS to a product variable
RELEASE_EXPORT_RUNTIME_APIS build flag is currently used to modify the
filter condition for the "exportable" stubs, so that it exposes wider
set of flagged apis (ENABLED && READ_ONLY vs ENABLED || READ_WRITE).
This flag was originally introduced as a build flag to be enabled in
specific release configurations, but instead this is used as a product
variable that will be enabled in the product `sdk_with_runtime_apis`,
which will be introduced in a future change.

Test: m nothing --no-skip-soong-tests
Bug: 326312949
Change-Id: Ieb3cee517dd6cedcca844a9eab270aedf8199d4e
2024-02-22 20:10:22 +00:00
Jihoon Kang
cc24fce7f1 Merge "Modify sdk_library to dist exportable api files by default" into main am: 5135a0df57 am: c09ef10f8d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2970651

Change-Id: I8f4f37a00d0be29616201c212f1e62b721a06bcf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-21 08:28:39 +00:00
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
Treehugger Robot
d73e69f031 Merge "AOSP platform_apis violations" into main am: dcda79b5e7 am: 7fd2b6f964
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2969671

Change-Id: I7c40ea056e1651cb9d8c1e05521989585f744ee4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-20 23:23:09 +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
542093ed4a Merge "Disable dexpreopt if optional_uses_libs does not have an impl" into main am: 4bec95e2f6 am: 8a1033139c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2963583

Change-Id: Idd3198fc02b39ea6a8efa5f70437d3be4ad6e99c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-20 09:22:36 +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
60f5873911 Merge "Add jarjar_prefix propagation support for aconfig_declarations_group module type" into main am: 0fd4bb8c70 am: 2559a85af4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2967332

Change-Id: I90376ba499d5845607c58baaa09d232d83c81f05
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-17 02:46:47 +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
646fa99f59 Merge "Fix characteristic rro for overridden packages" into main am: f617e18741 am: aab9ab67ad
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2963742

Change-Id: I57f2014d7d86689ef1257a642eb5e0f6b9bfb2eb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-16 03:04:02 +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
a924175dd7 Merge changes I42eb64d3,I93d73757 into main am: e4c98ae235 am: ade9e28515
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2962842

Change-Id: Iebdca1639072e5e44f6667f11cf172481108c4e4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 23:39:06 +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
cb1ccf0cae Merge "Always use aapt2 --no-static-lib-packages" into main am: 308d64ed72 am: 8113101892
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2962085

Change-Id: I2ec8ca4bc09d2b27d23eafef005301ab35f03a21
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 21:34:12 +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
e45f82b28c Merge "Skip passing "--product default" to aapt2" into main am: d8bab3758b am: 4532d929bf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2960503

Change-Id: I9a0262f4933bdb9e0aee109954dc81e30c725272
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-14 02:32:17 +00: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