Commit Graph

8031 Commits

Author SHA1 Message Date
Jihoon Kang
17f01d976a Revert "Generate runtime stubs in droidstubs"
Revert submission 2929615

Reason for revert: b/328225000

Reverted changes: /q/submissionid:2929615

Change-Id: Ifbec11417103c96b37a4da18dfc9fda73f654d8f
2024-03-05 16:55:49 +00:00
Spandan Das
7e02849734 Merge changes I177441bc,I32daefbd into main am: 1c96fab7d0 am: 5d7d4ba90b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2984038

Change-Id: Ic323eae00fc8c07b42490af6d4caa5298d3e8b0d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-04 09:22:32 +00:00
Spandan Das
5d7d4ba90b Merge changes I177441bc,I32daefbd into main am: 1c96fab7d0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2984038

Change-Id: I567f1873fefdb987776f544e755220cdbea5a97f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-03-04 08:41:18 +00:00
Spandan Das
1c96fab7d0 Merge changes I177441bc,I32daefbd into main
* changes:
  Use BaseModuleName for LOCAL_MODULE
  Disable source javalib dexpreopt when using prebuilt apex
2024-03-04 07:59:06 +00:00
Spandan Das
614a6f2b41 Use BaseModuleName for LOCAL_MODULE
This CL uses OverrideName to ensure that the LOCAL_MODULE does not
contain any version information.

Test: Created CaptiveLoginPortalGoogle.v2, and checked that its
LOCAL_MODULE is CaptiveLoginPortalGoogle

Change-Id: I177441bcd55ca538759b69aafb73d0a8b7261179
2024-03-04 07:57:59 +00:00
Spandan Das
a8afdcb307 Disable source javalib dexpreopt when using prebuilt apex
The apex_contributions in next builds use prebuilt apexes with source
java_sdk_library for javac. The dexpreopt rules of the source
java_sdk_library are disabled via
RELEASE_DEFAULT_MODULE_BUILD_FROM_SOURCE coupled with some complicated
special-casing in android/prebuilt.go

This special-casing breaks if we want to use prebuilts of some modules,
and sources of other modules. To enable per mainline module
toggelability, explicitly disable dexpreopt of source variant of
java_sdk_library if we use prebuilt of the containing apex.

Test: In internal, updated trunk_staging.scl's
RELEASE_APEX_CONTRIBUTIONS_ADSERVICES to use prebuilt followed by m
nothing

Change-Id: I32daefbd38338b396d6f07b899826b2869d8f8e1
2024-03-04 07:57:59 +00:00
Colin Cross
0c5304b481 Merge "Use R.txt files from aar files directly" into main am: 4b6a3ae65c am: d2820e81aa
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2980833

Change-Id: Ica62f75a236a2e8a2cb3039ecdcae73851de1f07
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 20:36:45 +00:00
Colin Cross
0a2c3334d9 Merge changes I8d060594,I2b6a57ae into main am: 5d55b66861 am: 8b64ad9506
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2980832

Change-Id: I3aa663741d26491ffeb10cc2fb2c97a3a83c46be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 20:36:23 +00:00
Colin Cross
d2820e81aa Merge "Use R.txt files from aar files directly" into main am: 4b6a3ae65c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2980833

Change-Id: I2f91f88d0d347e598ddda2dbbeb67b4fc9d19da6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 19:33:27 +00:00
Colin Cross
8b64ad9506 Merge changes I8d060594,I2b6a57ae into main am: 5d55b66861
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2980832

Change-Id: If904b08b58a76b4d82ca3926e4d23d89ffcc588f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 19:33:08 +00:00
Colin Cross
4b6a3ae65c Merge "Use R.txt files from aar files directly" into main 2024-02-29 18:55:17 +00:00
Colin Cross
5d55b66861 Merge changes I8d060594,I2b6a57ae into main
* changes:
  Put extraCombinedJars after the compiled jars
  Use RSP file for long classpaths
2024-02-29 18:46:46 +00:00
Spandan Das
d693e1c289 Add a source_module_name to android_app am: efa146577f am: 85437f2901
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2982635

Change-Id: I208e1e0dac79ee1e865785a5374a958c487914bb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 18:25:59 +00:00
Spandan Das
85437f2901 Add a source_module_name to android_app am: efa146577f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2982635

Change-Id: I86d01156c103b3fc08f105d2890c9882f5fdeb57
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 17:45:16 +00:00
Spandan Das
efa146577f Add a source_module_name to android_app
For multiple mainline prebuilts, we will have multiple versioned
prebuilt apps in the tree. The soong name of these prebuilts will have a
version prefix to prevent name collisions (e.g. MyGoogleApp.v2).

This CL introduces a source_module_name property in android_app_imoprt.
This property will be used for the following
1. Determining installation path. This should be
/system/app/MyGoogleApp/MyGoogleApp.apk
and not
/system/app/MyGoogleApp.v2/MyGoogleApp.apk
(filename prop determines the filename and not the dir name)

2. Preventing duplicate installation rules: This property will be used
   to create a dependency to the source app, and call HideFromMake on
   all the unflagged apps

Test: presubmits
Test: locally # Created CaptivePortalLoginGoogle.v2 and selected it
using one of the RELEASE_APEX_CONTRIBUTION_* flags

Bug: 326995930
Change-Id: If4ab9f9bd295117c96eb062cf3b3d2efc8bfed12
2024-02-29 14:33:16 +00:00
Inseob Kim
fa38c8c032 Merge "Sort jarjar rename keys before using" into main am: 688f824e1a am: 224ac62ba8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2981731

Change-Id: I6e5a5fa9b8cd1bb49a0d90b9996838b4cf3669aa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 02:26:40 +00:00
Inseob Kim
224ac62ba8 Merge "Sort jarjar rename keys before using" into main am: 688f824e1a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2981731

Change-Id: I18ade8539893ac793663217f47c786e76f5a2aff
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-02-29 01:44:15 +00:00
Inseob Kim
688f824e1a Merge "Sort jarjar rename keys before using" into main 2024-02-29 01:04:40 +00:00
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
Colin Cross
bb77d8e948 Use R.txt files from aar files directly
Use the R.txt files from aar imports directly instead of recreating
one using aapt2 from the embedded resources.  Fixes an issue with
com.google.android.material where the jar was referencing
com.google.android.material.R.attr.theme, aapt2 was not producing
"int attr theme 0x0" in R.txt, but the aar's R.txt had it.

Bug: 294256649
Test: builds
Change-Id: Ibe1e5535a75eed59f3b8dbbc12eff9c07af51d37
2024-02-28 11:54:48 -08:00
Colin Cross
fd620b2b44 Put extraCombinedJars after the compiled jars
extraCombinedJars contains the R.jar generated by
ResourceProcessorBusyBox for apps.  It needs to go before any
static_libs dependencies so that the finalized R values take
precedence over any non-final R values that may have been included
in the dependencies.  Moving after the javac and kotlinc compiled
jars helps minimize differences when turning on use_resource_processor
by default by using the MANIFEST.MF generated by soong_zip instead of
the one generated by ResourceProcessorBusyBox, which contains a
different Created-By field.

Bug: 294256649
Test: m javac-check
Change-Id: I8d060594404121fd36ef650ac317f0c5d5f92b23
2024-02-28 11:54:48 -08:00
Colin Cross
c52d523327 Use RSP file for long classpaths
Setting use_resource_processor: true can increase the length of the
classpath enough to trigger "command line too long" errors.  There are
clockwork libraries with 546 transitive android_library dependencies.
Write classpaths longer than 64kB to a separate file and add them
to the javac and turbine command lines with the @file syntax.

Bug: 294256649
Test: m checkbuild
Change-Id: I2b6a57ae30de03347db3221e9c9a4b2efb490115
2024-02-28 11:54:48 -08: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
Inseob Kim
3c0c9d7816 Sort jarjar rename keys before using
To make it deterministic

Bug: 327302642
Test: compare build commands among different targets
Change-Id: I890dcd67c62db58938a6e6d1c4e3fbd323c72b18
2024-02-28 14:28:59 +09: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