Commit Graph

3641 Commits

Author SHA1 Message Date
Treehugger Robot
5f42006902 Merge "Remove apexFilesForAndroidMk from prebuilt apex module types" into main 2024-08-21 16:53:00 +00:00
Spandan Das
a18d42d324 Remove apexFilesForAndroidMk from prebuilt apex module types
This seems to be unused

Test: no diff in ninja file
Change-Id: Ib711294a4f30fe1db564e3b01d944e8813d0b4ac
2024-08-21 00:54:07 +00:00
Cole Faust
9a8df16ac3 Merge "Make native_shared_libs configurable" into main am: 5fdb54d439 am: c6c90e61a9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3233522

Change-Id: I1c7d71b2b5d5e6000acbefd7dc2f2a187b83ed25
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-20 23:12:51 +00:00
Treehugger Robot
40c2548b66 Merge "apex: apex_available with prefix" into main am: d4daa43150 am: 7af3d43dfb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3223005

Change-Id: I5aecf775722fd2fdd209adb9d1e6a492d544032b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-20 21:46:49 +00:00
Cole Faust
ac92f3e3f4 Make native_shared_libs configurable
So that you can use selects with it.

This cl also creates a ResolvedApexNativeDependencies to represent
a merged and evaluated set of ApexNativeDependencies. Previously other
properties added their own "resolved" versions individually, but I
think it's better design for the property structs to remain unchanged,
so I created a new non-property struct to contain the resolved values.
Immutable property structs is one of the things we want to add for
performance (removing property struct copies).

Bug: 342006386
Test: Presubmits
Change-Id: Ibf222c4a7c01df7d5ccc5a85b2e3c9b3f9243b9a
2024-08-20 13:26:52 -07:00
Jooyung Han
9a419e28f5 apex: apex_available with prefix
We now support prefix form (com.foo.*) in apex_available list.

Bug: 360265761
Test: m --no-skip-soong-tests
Change-Id: I50ab884651dd6321950cfd4563b59ef3ed0f07fd
2024-08-20 10:50:04 +09:00
Treehugger Robot
61e7802b97 Merge "Clean up: remove com.android.gki.*" into main am: 75b14ee1a6 am: 48f28c9232
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3223004

Change-Id: I8073c82e183c1519885c9c9f64892426c9f3443b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 22:47:04 +00:00
Jooyung Han
40b7917fd0 Clean up: remove com.android.gki.*
It's abandoned.

Bug: n/a
Test: m nothing --no-skip-soong-tests
Change-Id: I220bea87329ee532d494cc4eaa4c6a8c1b0bff07
2024-08-16 16:02:42 +09:00
Kiyoung Kim
e43049d38a Merge "Introduce vintf_fragment module type" into main am: dd00f2de3c am: a1d5004a0f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3213372

Change-Id: I9cd4a450e7e56268bee2177f687f79271ccdcd14
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-16 00:59:21 +00:00
Kiyoung Kim
dd00f2de3c Merge "Introduce vintf_fragment module type" into main 2024-08-16 00:26:16 +00:00
Treehugger Robot
f1387a54a1 Merge "Improve docs for Deapexer modules" into main am: 334efc0fb1 am: 27811bb576
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3217132

Change-Id: I2d1973ca44f54b0cdd40f2f575e797f95c2187ed
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-15 22:55:15 +00:00
Spandan Das
357ffcc146 Add stub generation support to cc_prebuilt_library
The `stubs` property in `cc_prebuilt_library` currently does not support
generating stubs from an API symbol file. Reverse dependencies are
always linked against the .so file listed in `srcs`. This CL adds
support to generate the shared library from the .map.txt symbol file of
the prebuilt library.

Implementation details:
1. Add a compiler. This will convert the .map.txt file to a stub .c file.
  The build rules for this are common to the compiler of the source cc_*
moudule types. This has been refactored into a new function named
`compileModuleLibApiStubs`
2. Update the linker to link the aforementioned stub.c file into a .so
  file. Since this happens only for stub variants, it is conditionally
called only when p.buildStubs is true.
3. Call `addStubDependencyProviders`. This will populate the impl
   variant of the library with Stub information. cc#ChooseStubOrImpl
will use this information to resolve rdeps to the stub .so file if the
dependency crosses an api domain boundary.

(2) requires some special casing for now, since the module sdk at HEAD
does not contain symbol files, so the stub.c files will be empty. Once
the symbol files are added to module sdk, the special casing will be
removed.

Test: m nothing --no-skip-soong-tests
Bug: 275273834
Change-Id: I57f5b0a97fac4dfc8c24e07b06a330015add977d
2024-08-15 22:18:48 +00:00
Treehugger Robot
334efc0fb1 Merge "Improve docs for Deapexer modules" into main 2024-08-15 22:13:04 +00:00
Treehugger Robot
3dd87f7a81 Merge "Support configurable prebuilt apex sources" into main am: 3306d84c07 am: ce1a11c339
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3219956

Change-Id: I0c98f74fac97834f64dcce782186ebf0650494bd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-15 16:21:01 +00:00
Treehugger Robot
3306d84c07 Merge "Support configurable prebuilt apex sources" into main 2024-08-15 15:43:52 +00:00
Cole Faust
642e720b5b Support configurable prebuilt apex sources
Bug: 342006386
Fixes: 359690321
Test: m nothing
Change-Id: I2e503932c7fdb3eea9cd2dfedd86029ff52cfbe1
2024-08-14 17:46:12 -07:00
Spandan Das
bcc2ef06e7 Improve docs for Deapexer modules
The provider does not get bubbled up, so remove this misleading comment.

Test: doc change
Change-Id: Ife110aa75c8910042cf9c6e358a44d1a5cf4f5c3
2024-08-14 18:55:59 +00:00
Kiyoung Kim
faf6af31cd Introduce vintf_fragment module type
Introduce a new vintf_fragment module type which handles vintf_fragment
files within Soong. This will help process to move vintf_fragment
handling logic from KATI to Soong. This change also introduces
vintf_fragment_modules property to mark dependency with vintf_fragment
modules.

Bug: 322089980
Test: m nothing --no-skip-soong-tests passed
Change-Id: I49607f42aeee3ded0ba7b078b903dc35f5d61637
2024-08-14 10:34:41 +09:00
Yu Liu
ac93739762 Merge "Merge SingletonProviderContext with OtherModuleProviderContext" into main am: 246b43049c am: 73282e8129
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3216676

Change-Id: Ic5fa82e4179f922e35479e527a392db141a973c4
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-13 16:38:05 +00:00
Yu Liu
663e4508dc Merge SingletonProviderContext with OtherModuleProviderContext
Bug: 358425833
Test: CI
Change-Id: I8e3f40dc3cfc5337008b419801f8e6bf2d48e8b2
2024-08-12 22:50:19 +00:00
Colin Cross
bb5c9f5d82 Merge changes If313580b,I68d50d68 into main am: 08b6061539 am: 6bdec0cbe6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3214342

Change-Id: Ie9dd3fc7d9d901150257108b92d8ce4079796b44
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-12 18:46:24 +00:00
Colin Cross
a66b4630f6 Add PrepareForTestWithBuildFlag
Add a helper function that creates a test fixture preparer that
sets a build flag, and use it everywhere that was setting build flags
manually.

Test: all soong tests
Flag: EXEMPT refactor
Change-Id: I68d50d68787a30d091f0827e8caa51f5c5a762ef
2024-08-09 16:47:45 -07:00
Jooyung Han
8c38760046 Merge "apex: rm $out before decompressing an apex." into main am: f826c99ec2 am: c8a2120f84
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3213175

Change-Id: I3a715d30b3d332728f08b805c03715df8f0b3687
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-09 02:27:14 +00:00
Jooyung Han
8fa6116aca apex: rm $out before decompressing an apex.
Otherwise, incremental build fails with "already exists".

Bug: 357916000
Test: incremental build with PRODUCT_COMPRESSED_APEX=false and prebuilt
  compressed APEXes
Change-Id: If2a0be735e3710afd1d40b16b43608028eb95c5a
2024-08-08 10:45:48 +09:00
Treehugger Robot
f99ac31e34 Merge "Revert "Revert "Enable from-text stub generation in non-sdk java..."" into main am: 4f18cfdd7d am: 5d2439b3b1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3205865

Change-Id: I163753b63bc5b3b495d70ea46a15ebb5f58d2c68
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 19:25:01 +00:00
Treehugger Robot
4f18cfdd7d Merge "Revert "Revert "Enable from-text stub generation in non-sdk java..."" into main 2024-08-06 18:50:04 +00:00
Treehugger Robot
7bc808665e Merge "Hide unflagged mainline prebuilts with missing source." into main am: 9b10ca4711 am: fc413ce622
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3203370

Change-Id: I580da7d09016c230e9375667dcf3a7faa87dc7f0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 10:36:09 +00:00
Jihoon Kang
377802211b Merge "Revert "Enable from-text stub generation in non-sdk java_sdk_library"" into main am: f6d9965cc5 am: ad5e953a7d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3207397

Change-Id: I411dc190da40073de7d794de9ad7ef8fd5da9ed3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 10:35:42 +00:00
Treehugger Robot
043401d91e Merge "Enable from-text stub generation in non-sdk java_sdk_library" into main am: 99417ba9ea am: 696cea31d3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2983176

Change-Id: I298312e534e440f607bff40cc9ceae788edba9e3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06 10:33:22 +00:00
Jihoon Kang
b0f4c0239d Revert "Revert "Enable from-text stub generation in non-sdk java..."
Revert submission 3207397-revert-2982300-java_api_library_non_sdk-FIKZOSARQI

Reason for revert: Post submit build breakage culprit fixed

Reverted changes: /q/submissionid:3207397-revert-2982300-java_api_library_non_sdk-FIKZOSARQI

Change-Id: Ic79b7fd074f02febba94183cb1479874efe044b5
2024-08-06 00:15:25 +00:00
Treehugger Robot
9b10ca4711 Merge "Hide unflagged mainline prebuilts with missing source." into main 2024-08-05 23:10:53 +00:00
Jihoon Kang
f6d9965cc5 Merge "Revert "Enable from-text stub generation in non-sdk java_sdk_library"" into main 2024-08-05 20:51:31 +00:00
Liana Kazanova
a574cd28a8 Revert "Enable from-text stub generation in non-sdk java_sdk_library"
Revert submission 2982300-java_api_library_non_sdk

Reason for revert: DroidMonitor: Potential culprit for b/357648959 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Reverted changes: /q/submissionid:2982300-java_api_library_non_sdk

Change-Id: I5ef7afd9ec3e10ea99f82d02172843ad9b2cfda9
2024-08-05 19:45:03 +00:00
Spandan Das
85bd4625ed Hide unflagged mainline prebuilts with missing source.
Partner worksapces contain two versions of mainline prebuilts - BigAndroid
and Go. These two prebuilts export dexpreopt'd system server artifacts
to be installed in system image. Since the install paths are same, we
run into duplicate installation rules issue unless one of them is
hidden.

This hiding was previously done by creating a dependendency between
source aosp apex to BA and Go google prebuilts. However, this
implementaion had the unfortunate side effect on the packaging name of
the Google mainline prebuilts - the name becomes the aosp apex name.

Instead of creating the dependency to aosp apex, this CL hides all
mainline apex_set(s) if it has not been flagged using
RELEASE_APEX_CONTRIBUTIONS_*. Since there are some non mainline apex
prebuilts, apex_name will be used to determine whether the prebuilt is a
mainline module.

Test: m nothing --no-skip-soong-tests
Test: In partner workspaces, downloaded the CLs in b/355682304#comment7
Test: m out/target/product/generic/obj/PACKAGING/system_intermediates/file_list.txt
verified that aosp apexes are not installed, but mainline prebuilts are
installed

Test: unset RELEASE_APEX_CONTRIBUTIONS_ADSERVICES to build from source
Test: m out/target/product/generic/obj/PACKAGING/system_intermediates/file_list.txt
verified that aosp adservices is installed, and adservices prebuilt is
**not* installed.

Bug: 355682304
Change-Id: Idacb65313553bdea5c0593976694de478034229e
2024-08-05 18:25:37 +00:00
Treehugger Robot
99417ba9ea Merge "Enable from-text stub generation in non-sdk java_sdk_library" into main 2024-08-05 18:25:36 +00:00
Jooyung Han
77ef965f88 Merge "apex: respect PRODUCT_COMPRESSED_APEX for prebuilt APEXes" into main am: b42b703f53 am: de22d9608a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3201250

Change-Id: I7a27e264cffe85996836e0a3f0ccc5812ab99d53
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-01 01:38:43 +00:00
Jooyung Han
26ec8484e4 apex: respect PRODUCT_COMPRESSED_APEX for prebuilt APEXes
If a prebuilt APEX is compressed, it's installed without decompression
even when PRODUCT_COMPRESSED_APEX is false.

This change decompresses the prebuilt/compressed APEX.

Bug: 356533488
Test: OVERRIDE_PRODUCT_COMPRESSED_APEX=false m
Change-Id: Ifdde074e383837df92d172bc483bfca9a97cb6f8
2024-07-31 15:04:05 +09:00
Jihoon Kang
062eb663c5 Enable from-text stub generation in non-sdk java_sdk_library
This change allows from-text stubs to be generated for all
java_sdk_library modules, unlike how it is currently limited to the
modules that contribute to the api surfaces (i.e. the SDK).

This change accomplish this by modifying the dependency of the
from-text stubs generation, so that the sdk_library generated from-text
stubs generating java_api_library modules no longer depend on the full
api surface stubs, but generate the stubs in the module level, and
combined later to generate the full api surface stubs.

This change also removes the java_api_library modules defined in
core-libraries/Android.bp, which are passed to generate the system
modules. Given that the from-text vs from-source toggle is done within
the java_sdk_library stubs level, these modules no longer need to exist.

Implementation details:
- Allow sdk_version to be specified in java_api_library modules. For
  java_sdk_library-generated java_api_library modules, they inherit that
  of the sdk_library module. Some java_sdk_library modules that do not
  contribute to the api surface are allowed to set sdk_version to
  something other than "none" or "core".
- Implement java_api_library to implement `SdkContext`. This allows
  java_api_library to collect required deps from sdk_version (classpath,
  bootclasspath, system modules), and pass the collected jars when
  generating the stubs srcjar in metalava and compiling the stubs srcjar
  in javac.
- Remove hardcoded list of sdk_library modules that are allowed to
  genereate stubs from the api signature files, and allow from-text
  stubs generation by default. Modules that are not able to generate
  stubs from the api signature files are specified by setting the newly
  introduced `Build_from_text_stubs` property to `false`.

Test: ENABLE_HIDDENAPI_FLAGS=true m
Bug: 327507877
Change-Id: Ia35d2f3cf9fae48fc8c4bd99a84ae18d7c0e7bee
2024-07-30 22:35:06 +00:00
Treehugger Robot
21207540b8 Merge "Cleanup configurable getter usages" into main am: c6f1fe0861 am: d1fb3378ca
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3198402

Change-Id: Ic646cc1686db7b39f74f26badf5dc1a6b6602689
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-29 21:35:41 +00:00
Cole Faust
bf1d92ad20 Cleanup configurable getter usages
You don't have to call module.ConfigurableEvaluator(ctx) if ctx is
already a ModuleContext, you only need to do that for more restricted
contexts like SingletonContext.

Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: I7612290d43dae7decfae283a341882d9016c98a3
2024-07-29 12:24:25 -07:00
Treehugger Robot
45be135b5c Merge "Do not rename prebuilt apexes for product packaging" into main am: 9aa84c6110 am: 0b0a99f01f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3197217

Change-Id: I67dcce15611742c000fa9a1b1d205862a28e39af
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-26 21:54:17 +00:00
Treehugger Robot
9aa84c6110 Merge "Do not rename prebuilt apexes for product packaging" into main 2024-07-26 21:08:31 +00:00
Spandan Das
a8e2d6173d Do not rename prebuilt apexes for product packaging
https://r.android.com/2901309 added support for handling installation
rules for multiple prebuilts. One of the implementation details there
was to change LOCAL_MODULE name to the source apex name in the generated
.mk files.

This causes issues in partner builds where the google singed apex
com.google.android.foo gets renamed to com.android.foo in
out/soong/Android-$PRODUCT.mk. If the partner builds does not include
the aosp apex in its PRODUCT_PACAKGES, then the google signed apex gets
elided from packaging.

This CL undoes that change. After this CL, the name of the module as it
appears in Android.bp will match the LOCAL_MODULE name emitted for
product packaging.

Test: in build/soong, go test ./apex
Bug: 355682304
Change-Id: Icadbb75609174cff5326f52baf7d53e901f9f1c0
2024-07-26 19:24:27 +00:00
Treehugger Robot
a982857a81 Merge changes from topic "avf_apex_android_bp_select" into main am: 6899b7ed22 am: ccae8282a5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3189226

Change-Id: I29bb1619b0cee82af9bdfadcc7b4ecd338cebd1f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-25 02:43:13 +00:00
Inseob Kim
40b64b4096 Make some apex properties configurable am: b114234f6b am: 5402171253
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3189224

Change-Id: I6087622d56958fe1b61f5492f03b6b5eeb6c65b1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-25 02:43:08 +00:00
Inseob Kim
5402171253 Make some apex properties configurable am: b114234f6b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3189224

Change-Id: Ic6414ae157486b4d5b9a5bc31687b2f8524122b6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-25 02:07:43 +00:00
Treehugger Robot
6899b7ed22 Merge changes from topic "avf_apex_android_bp_select" into main
* changes:
  Make more apex properties configurable
  Make genrule's srcs property configurable
  Make some apex properties configurable
  Make the vintf_fragments property configurable
  Make the defaults property configurable
2024-07-25 01:52:54 +00:00
Inseob Kim
d23e0d3244 Make more apex properties configurable
This allows using select statements with these.

* apps
* binaries
* prebuilts

Bug: 354824866
Test: m --no-skip-soong-tests
Change-Id: I8e28937d2fa6514b41bd189f56f9f584a60d2c80
2024-07-25 00:55:38 +00:00
Inseob Kim
b114234f6b Make some apex properties configurable
This allows using select statements with these.

* androidManifest
* canned_fs_config
* systemserverclasspath_fragments

Bug: 354824866
Test: m
Change-Id: I4c2182944ec14d99332f437c39a19ba0dc6b7731
2024-07-25 00:55:05 +00:00
Treehugger Robot
70944ae559 Merge "Drop module sdk MakeUninstallable special case" into main am: 9a2f01b762 am: e58421b340
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3188499

Change-Id: If776629cec033090af07a732209eb5dd3464042e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-07-23 17:24:30 +00:00