Commit graph

144 commits

Author SHA1 Message Date
Treehugger Robot
040d3deedb Merge "android_app APEX_GLOBAL_MIN_SDK_VERSION_OVERRIDE" into main am: 8763530dff
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2718294

Change-Id: I4d70528e0eda3cdf229c64ddb8cc99eb119015d8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-07 17:20:02 +00:00
Sam Delmerico
0e0d96efa7 android_app APEX_GLOBAL_MIN_SDK_VERSION_OVERRIDE
Currently the product variable that is controlled by
APEX_GLOBAL_MIN_SDK_VERSION_OVERRIDE only overrides apexes, but it
doesn't apply to android_apps. This commit allows android_apps which set
updatable: true in their Android.bp to have their min_sdk_version be
overriden by this product variable.

Bug: 295311875
Test: go test
Change-Id: If3cb82a17cae4553b577dd1a4637ee13c3c95302
2023-09-05 21:38:16 +00:00
Spandan Das
1594428e50 Ignore test apexes from bp2build generated tags am: f57a966b66 am: b2b9494db1 am: 91d0502607
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2533722

Change-Id: I436039b002eb736e48d472aa0568f3e3bf0c68c9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-01 18:04:32 +00:00
Spandan Das
b2b9494db1 Ignore test apexes from bp2build generated tags am: f57a966b66
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2533722

Change-Id: Ib92fe92f3f088cff422c6dabd606cbedb1d97adc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-01 16:39:23 +00:00
Spandan Das
0bf359688d Merge changes I91063ebb,Id859723b am: 12d170dc2a am: 8932cfa2b5 am: 089404a220
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2565920

Change-Id: I56683115d1cf69ba8e4916b597cb35dfa592dc1c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-28 21:50:50 +00:00
Spandan Das
f57a966b66 Ignore test apexes from bp2build generated tags
The core problem I am trying to solve is making sure that stub
libraries in Bazel have a single apex available. In Soong, this will be
enforced using some graph walk which is not easy to port to Bazel.

However, we might need to revisit this when we build the enforcement
mechanism in Bazel. We likely need a `test_for` on the top level
apex_test Bazel rule so that the test apex is _allowed_ to link against impl
of the library it is trying to test.

(This CL retricts this to cc_library, I can expand this to other modules
if this is the right approach.)

Bug: 277651159
Change-Id: Iaeec22c5626df79a33785c766ed29102b1da403e
2023-04-27 01:43:00 +00:00
Treehugger Robot
0804b656b3 Merge "Use copy of apex_available in AvailableToSameApexes" am: d7b50181d9 am: 7686f94d20 am: 93938123f4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2559590

Change-Id: Ic8b7a8cb4c489991a0975f0ad40a0017eb141b02
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-25 20:43:26 +00:00
Spandan Das
8a8714c781 Do not modify input in-place
SortedUniqueStrings and FirstUniqueStrings dedupes repeating elements
and returns the deduped list. Currently, it also modifies the input list
in-place, which causes non-determinisitc failures like b/275313114

Operate on a copy of the input so that the input remains untouched.

SortedUniqueStrings is O(NlogN) and FirstUniqueStrings is ~O(N), so
creating a copy (O(N)) should not result in major performance regressions.
Numbers for this single unit test:
```
go test . -run TestStubsForLibraryInMultipleApexes -v -count 1000
Before: 174s
After: 172s
```

Test: go test ./android
Test: go test . -run TestStubsForLibraryInMultipleApexes -v -count 1000
Change-Id: Id859723b2c2ebdc0023876c4b6fabe75d870bad7
2023-04-25 18:37:24 +00:00
Treehugger Robot
d7b50181d9 Merge "Use copy of apex_available in AvailableToSameApexes" 2023-04-25 17:27:00 +00:00
Spandan Das
4e1bfa06e9 Use copy of apex_available in AvailableToSameApexes
Modifying the list in-place causes some non-determinism.

Test: go test ./cc -run TestStubsForLibraryInMultipleApexes -count 1000
Bug: 275313114
Change-Id: Ia2519e146d97667ad5900cf68ab9935fcbaf08a4
2023-04-24 22:45:14 +00:00
Treehugger Robot
5d9e1a5ca9 Merge "Add TestApexes to ApexInfo" am: a4c93e3bfc am: 11b5bf51eb am: f04c50722b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2533721

Change-Id: If0f2e68a29b73d95d945348199ee1ad6c8aec162
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-24 09:20:24 +00:00
Spandan Das
e4001552d9 Merge changes I4129c2a9,I9af06f81 am: 0bf4ea53f5 am: 56797fd547 am: 88b15818b5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2535121

Change-Id: I3f43bc39e8cc0ea9d37f6ae64ca7993446b084da
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-04-20 17:23:47 +00:00
Spandan Das
e8173a83cb Add TestApexes to ApexInfo
If any of apexes in apex_available is an apex_test, then that name will
be propagated down from that apex to each apex variant. This metadata
will be used to enforce that stub libraries cannot have more than one
apex_available.

This logic is necessary so that bp2build can select the correct
stub/impl.

(To avoid replicating this complexity in Bazel, we should consider
dropping the test apexes in Bazel BUILD files, next CL)

Bug: 277651159
Test: go build ./apex
Change-Id: I63617c1dc2a2d5c9cd7758c416fec7b4db1f10a7
2023-04-17 19:26:07 +00:00
Spandan Das
8e6386e0aa Make //apex_available:platform the default.
go/Android.bp mentions that ["//apex_available:platform"] is the
default, but currently it was []. This change does not create any
additional module variants.

(Noticed this for libz, I was expecting its apex_available to be
platform and not an empty list)

Test: TH
Change-Id: I9af06f813b1a1d7b716939874f469bd2e1ce4d14
2023-04-17 17:28:06 +00:00
Spandan Das
7ab0894ea4 Merge "Update min_sdk_version from SdkSpec to ApiLevel" am: ddfab60014 am: f1058758db am: a14f1b45cb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2503257

Change-Id: I02d90d724f78eec72e7e7d6f80c2c2d15e25e9f7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-23 18:38:52 +00:00
Spandan Das
8c9ae7ed67 Update min_sdk_version from SdkSpec to ApiLevel
This relands aosp/2457063. The original change broke T and U since those
branches still contain soong modules of type (kind+level). Those soong
modules have been cleaned up now

Test: Used go/abtd to test T and U branches with this change

Bug: 208456999
Change-Id: I0ef7933c055f88cb512a02108f1173e51156ef1c
2023-03-22 20:15:45 +00:00
Spandan Das
f4149e51ce Merge changes from topic "revert-2457063-EKFSKANQWZ" am: cd05792d06 am: d3d9c4ae59 am: 12992d3db9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2499159

Change-Id: I952f4fc41b91be9e3bd8145be9fe1d81abe2642c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-21 03:18:38 +00:00
Spandan Das
b74d1e1d91 Revert "Update min_sdk_version from SdkSpec to ApiLevel"
Revert submission 2457063

Reason for revert: Broken udc-dev

Reverted changes: /q/submissionid:2457063

Change-Id: Id6349fc1318877044af713c914a0afd437d3d2d5
2023-03-21 01:36:47 +00:00
Spandan Das
11524735b0 Merge changes Ie6ae7e26,I2fd822a2,Iddd497df,Iee5a936e,I628b443c am: ea93f64f03 am: 03ea4670b3 am: 235ed9f779
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2457063

Change-Id: I13484740359c98c077d7c11a0ee4043bdae0ef20
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-21 01:18:46 +00:00
Spandan Das
e773739787 Update min_sdk_version from SdkSpec to ApiLevel
min_sdk_version signifies device version and does not need an sdkKind to
describe it fully. Update the type and cleanup existing usages. As a
side benefit, we also get better error handling since users can no
longer enter something like `public_30` as a valid min_sdk_version in bp
files

Will do a similar cleanup for targetSdkVersion and maxSdkVersion in a
followup CL

Test: m nothing
Test: no change in ninja files (this should be a no-op)
Bug: 208456999

Change-Id: Ie6ae7e267d093c5e4787e82685daaca1021d202e
2023-03-20 16:51:32 +00:00
Ioana Alexandru
554eaf913c Merge "Revert "Export non-apex variants of modules to make"" am: 54fb18d43b am: aebbc670a6 am: 18fed433ff
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2497035

Change-Id: I4daebc840cadd17d66a48886b59e3fe3f8fec05c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-20 12:53:50 +00:00
Jingwen Chen
8ac7d7d01d Revert "Export non-apex variants of modules to make"
This reverts commit 502da3987a.

Reason for revert: b/274195633

```
In file included from out/soong/installs-aosp_cf_x86_pasan.mk:134984:
In file included from out/soong/Android-aosp_cf_x86_pasan.mk:981696:
In file included from build/make/core/soong_cc_rust_prebuilt.mk:76:
build/make/core/base_rules.mk:342: error: packages/modules/Uwb/service/uci/jni: MODULE.TARGET.SHARED_LIBRARIES.libuwb_uci_jni_rust already defined by packages/modules/Uwb/service/uci/jni.
```

Change-Id: Ic1ea6969e54c23a7d126eb0fb47ab6f2e44ee965
2023-03-20 11:05:16 +00:00
Cole Faust
b5edb1a0e4 Merge "Export non-apex variants of modules to make" am: bebe607db4 am: 09f4a08f55 am: 59a02182c0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2486355

Change-Id: I2e614d603aea40bd1bacbda919e9ad1daf58f876
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-17 19:04:28 +00:00
Cole Faust
502da3987a Export non-apex variants of modules to make
Currently, non-apex variants of modules that are in apexes are not
exported to make unless they're apex_available to the platform. This
means that you can't `m` those modules directly.

However, there is a workaround in the apex androidmk implementation that
emits make rules for the removed modules, but just redirects them to
build the apex itself. We want to remove that, but one of the problems
with doing so is that you can no longer `m` many modules afterwards.

To fix that, unhide the apex's dependencies from make. To ensure they're
not installed, call SkipInstall() on them, and update SkipInstall() to
be more strict by setting `LOCAL_UNINSTALLABLE_MODULE := true`.

Bug: 254205429
Test: Presubmits
Change-Id: Ib971981559f3b642ce6be8890679e994e1b44be0
2023-03-16 11:13:23 -07:00
Iván Budnik
03613bbe9a Merge "Revert "Export non-apex variants of modules to make"" am: ff8c95b610 am: 85b9f6e7b2 am: e36c6c1c37
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2481059

Change-Id: Ib05486f8c8934cd530a6f08f02c6901f2a0907bb
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-10 18:17:23 +00:00
Iván Budnik
295da16b95 Revert "Export non-apex variants of modules to make"
Revert submission 2462194-androidmk_for_apex_dependencies

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=full-eng&lkgb=9723453&lkbb=9724944&fkbb=9723508, bug b/272663333.

Reverted changes: /q/submissionid:2462194-androidmk_for_apex_dependencies

Bug: 272663333
Change-Id: I847fa910a8d54de19954f56fe92a80a9bcd0ee18
2023-03-10 16:11:26 +00:00
Cole Faust
57129350e0 Merge "Export non-apex variants of modules to make" am: f42c21d5f8 am: f183fc5413 am: 578aa6c684
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2462194

Change-Id: Ic27c6ed62af76d18b3df3f8357c96d9419403f6d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-10 07:48:13 +00:00
Cole Faust
ad222f271a Export non-apex variants of modules to make
Currently, non-apex variants of modules that are in apexes are not
exported to make unless they're apex_available to the platform. This
means that you can't `m` those modules directly.

However, there is a workaround in the apex androidmk implementation that
emits make rules for the removed modules, but just redirects them to
build the apex itself. We want to remove that, but one of the problems
with doing so is that you can no longer `m` many modules afterwards.

To fix that, unhide the apex's dependencies from make. To ensure they're
not installed, call SkipInstall() on them, and update SkipInstall() to
be more strict by setting `LOCAL_UNINSTALLABLE_MODULE := true`.

Bug: 254205429
Test: Presubmits
Change-Id: Ib094feb2c437ad50d8319c58caa997759e7ce32f
2023-03-09 11:20:10 -08:00
Treehugger Robot
d7c3eb61d8 Merge "Replace SortedStringKeys with SortedKeys" am: 0f0d3ce49c am: 631ad00a41 am: 155ae26780
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2462193

Change-Id: I9e1a9be24bee47ba43d3807ac90efa786dc1b4bf
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-01 06:31:57 +00:00
Cole Faust
18994c73f1 Replace SortedStringKeys with SortedKeys
Now that we have generics.

Bug: 193460475
Test: presubmits
Change-Id: I1594fd8feb505175d5c09c03ef397e5ffd5b09cb
2023-02-28 16:51:32 -08:00
Dennis Shen
aa710706d4 [conflict] Make native libs available to DCLA apexes 2p: 2a27c02737
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/20039127

Bug: 239679485
Change-Id: Iba8f25ec2640c896fc0f7a92ec157f52022784d3
2022-09-26 16:53:33 +00:00
Dennis Shen
2a27c02737 Make native libs available to DCLA apexes
For now, bypass apex available check for native shared libs used by DCLA
apexes, for the long term, created b/248601389 to create AOSP version of
DCLA and mark necessary native shared libs available to this AOSP DCLA apex.

BUG: 239679485
TEST: local build of DCLA modules, no apex_available issue found
Change-Id: Ie08d555177bf19ec7c57009b798a41ce454fdeda
2022-09-23 20:47:34 +00:00
William Escande
f03a3b00fe Remove obsolete com.android.bluetooth apex
Also remove the soong hack that allowed us to build during the
transition

Bug: 243054261
Test: build + TH
Merged-In: I60bac1ec687f03a38f38240969a1c38a8e5bf92c
Change-Id: I60bac1ec687f03a38f38240969a1c38a8e5bf92c
2022-09-14 21:09:50 +00:00
William Escande
5c832be715 Remove obsolete com.android.bluetooth apex
Also remove the soong hack that allowed us to build during the
transition

Bug: 243054261
Test: build + TH
Change-Id: I60bac1ec687f03a38f38240969a1c38a8e5bf92c
2022-09-14 21:08:53 +00:00
William Escande
72da93e188 Bluetooth available hack
The first hack has been introduced to facilitate the creation of the
com.android.btservices apex without the need to upload 100+ cl close to
the release date.
We now want to delete com.android.bluetooth apex and replace all the
apex_available rules to target the new apex name
It will be way much easier to do this in separate CL and without forcing
us into a single topic.

Bug: 243054261
Bug: 245214856
Test: Build
Change-Id: Ia03698db839db4684871eb38c088f88d6bdcba4b
(cherry picked from commit 2ad6e84d60)
Merged-In: Ia03698db839db4684871eb38c088f88d6bdcba4b
2022-09-06 18:15:16 +00:00
Treehugger Robot
b605679440 Merge "Bluetooth available hack" 2022-08-19 20:54:17 +00:00
William Escande
2ad6e84d60 Bluetooth available hack
The first hack has been introduced to facilitate the creation of the
com.android.btservices apex without the need to upload 100+ cl close to
the release date.
We now want to delete com.android.bluetooth apex and replace all the
apex_available rules to target the new apex name
It will be way much easier to do this in separate CL and without forcing
us into a single topic.

Bug: 243054261
Test: Build
Change-Id: Ia03698db839db4684871eb38c088f88d6bdcba4b
2022-08-18 13:34:22 -07:00
Colin Cross
d079e0b270 Reformat build/soong for go 1.19
Test: none
Change-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad
2022-08-17 10:43:13 -07:00
Treehugger Robot
b11e63c05b Merge "Remove min_sdk_version allowlist" am: ca51d6e7e6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2138334

Change-Id: Ifa9ab0026e8bf7a73050739f31ebdac35862d836
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-07-04 14:30:01 +00:00
Jooyung Han
2c65d2ca83 Remove min_sdk_version allowlist
This hard-coded list causes inconsistent behavior regarding -target
triple and _ANDROID_APEX_MIN_SDK_VERSION_ macro for native modules.

Bug: 158059172
Test: m
Merged-In: Iae3ecb3bfaefc2ee73ed38a9268c68b6673f30c5
Change-Id: Iae3ecb3bfaefc2ee73ed38a9268c68b6673f30c5
(cherry picked from commit 870ab9c0f78327d92a871ac58c0337db8ae92245)
2022-06-29 06:42:05 +09:00
Oriol Prieto Gascó
7d7bc5bef1 Merge "Hard-code apex_available handling for the btservices apex" into tm-dev am: 3bb9d7a8d9
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/18972588

Change-Id: I5c6cc4bc32174ba0739d7ed6b42ae0b1685c4ef6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-22 17:43:25 +00:00
Oriol Prieto Gasco
8132fbf8c1 Hard-code apex_available handling for the btservices apex
Bug: 236192423
Test: TH
Change-Id: Ie095ae22704a80e0ec171b1bb3fdc995f95a1c64
2022-06-19 23:13:25 +00:00
Liz Kammer
dbd8eb11f4 Remove unused uses_sdks property for apexes
(cherry picked from commit 7eed538208)

Bug: 232546567
Test: m nothing & compare build.ninja before/after
Merged-In: I3f1199af338e1d2e48ec29cf9f59b6b36236c4cc
Change-Id: I3f1199af338e1d2e48ec29cf9f59b6b36236c4cc
2022-05-20 07:45:48 +00:00
Jooyung Han
932d2c1932 Clean up hard-coded min_sdk_version/apex_available
Set min_sdk_version/apex_available for modules used by
com.android.permission APEX.

Bug: 147364041
Bug: 158059172
Test: m
Change-Id: I93ff72ed765354d44a2ccb5105b5f2820f0358f5
2022-05-06 12:21:04 +09:00
Jooyung Han
0ea5277adf Clean up minSdkVersionAllowlist
remove NN modules from the list.

Bug: 158059172
Test: m com.android.neuralnetworks
Change-Id: I40b25a06afd81a8fad44c853cf4ccff41300f87a
2022-05-06 11:06:45 +09:00
Treehugger Robot
a0bab18a47 Merge "Clean up minSdkVersionAllowlist" 2022-05-03 09:00:15 +00:00
Treehugger Robot
a6fcf9fd92 Merge "Remove unused uses_sdks property for apexes" 2022-05-03 03:24:59 +00:00
Jooyung Han
c743039b48 Clean up minSdkVersionAllowlist
These modules have min_sdk_version set. No need to keep them in
allowlist.

Bug: 158059172
Test: m
Change-Id: Id9d3c62f4da941f26212ce69637469d82758c935
2022-05-02 12:38:26 +09:00
Jooyung Han
036ef1f8f6 Clean up min_sdk_version allowlist
Hard-coded min_sdk_version is not necessary for kotlinx-* modules
because they are already marked by updater script.

Bug: 158059172
Test: m nothing
Change-Id: I42cf26c9390244f93059af68027cca4f8518a828
2022-04-26 16:21:28 +09:00
Liz Kammer
7eed538208 Remove unused uses_sdks property for apexes
Test: m nothing & compare build.ninja before/after
Change-Id: I3f1199af338e1d2e48ec29cf9f59b6b36236c4cc
2022-04-21 11:13:45 -04:00