Commit Graph

7964 Commits

Author SHA1 Message Date
Jihoon Kang
244d42a91b Utilize module lib and test api superset module in hiddenapi
Hiddenapi takes a single widest api scope stub dex jar as an input, as
the tool does not support handling duplicate classes passed as inputs.
A problem regarding this is that the test and module lib api surfaces do
not strictly have a subset/superset relationship, unlike other api
surfaces.

This has not become a problem for stubs generated from source
files as the stubs contain all methods in the source files, but became a
problem for stubs genereated from text files as the stubs only contain
the methods that are essential for compilation of the stubs and its
reverse dependencies, and there were cases where the hiddenapi flags are
not properly propagated to the subclasses.

To resolve this problem, a java_api_library module that provides the
union of the test and the module lib api surfaces was introcudes. Since
hiddenapi_modular currently defines the module lib api surface to be a
wider api scope over the test api scope, the new module can be passed as
input to hiddenapi over the module lib non updatable stub module to
resolve the problem.

Test: enable hiddenapi for from-text stub build && ENABLE_HIDDENAPI_FLAGS=true m --build-from-text-stub
Bug: 191644675
Bug: 275570206
Change-Id: I9a230ec5082c52ed866f29b0748814f2cf10279b
2023-10-11 17:06:23 +00:00
Jihoon Kang
f00200b6fb Add module dependency checking testing method
Currently in Soong testing suite, the only method for testing module
dependency is CheckModuleDependencies(...), which comapares for the
exact module dependencies. This change adds the method
CheckModuleDependency(...) which enables checking the dependency between
two modules, instead of comparing for all dependencies of an interested
module.

Test: m nothing
Bug: 288624417
Change-Id: I804d35979ddc24b0134671e326c1d37615ec4190
2023-10-11 16:18:45 +00:00
Jihoon Kang
8f83dcd18c Add droidstub modules for Soong java testing
Previously, only the essential java_api_library and
java_api_contribution modules were being added to the template bp file
for testing purpose. However, since the child change aosp/2640275
adds droidstubs that generates the java_api_contribution as the
dependency of the java_api_library modules, not adding the droidstubs
modules to the template bp file will lead to missing dependency errors
in Soong test cases that tests the from-text generation &
java_api_library functionality.

To prevent this, this change adds the droidstubs modules instead of the
auto generated java_api_contribution modules to the template bp file to
more closely align with the real life behavior.

Test: m nothing
Bug: 288624417
Change-Id: I6a25e2f6c5f1281e96eca15aa5eec7417635df3f
2023-10-11 16:17:55 +00:00
Yu Liu
0bf0865f83 Merge "Change java_test_host to support cov variant." into main 2023-10-11 16:15:40 +00:00
Jihoon Kang
752d87dfad Merge "Introduce system_modules property to java_api_library" into main am: 90c3f5fac4 am: 6df74f24b6 am: c1f2ef053a am: f058493441 am: 54e7b19224
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2774869

Change-Id: I6ec126bdb7556344fe1241c14664ca62c75065f8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-11 01:35:59 +00:00
Zhi Dou
20078e9795 Add UnsupportedAppUsage to java_aconfig_library dependency am: 1b052b0078 am: 06f6aa131a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2776648

Change-Id: I9daf3f5063d1742f524e32234c8a00c332ff969e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-11 00:37:16 +00:00
Yu Liu
d8aa20062a Change java_test_host to support cov variant.
Bug: 279960392
Test: CI and m --skip-soong-tests TARGET_PRODUCT=aosp_x86_64 EMMA_INSTRUMENT=true CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS="external/cronet" mts
Change-Id: I4489ed725aee6097e6e340f5f6d06ecaf1c64222
2023-10-10 16:00:32 -07:00
Jihoon Kang
c1f2ef053a Merge "Introduce system_modules property to java_api_library" into main am: 90c3f5fac4 am: 6df74f24b6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2774869

Change-Id: I9306c7be5a60431b2ae326c638729feedd7bbf97
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-10 20:09:58 +00:00
Zhi Dou
1b052b0078 Add UnsupportedAppUsage to java_aconfig_library dependency
Generated flag requires UnsupportedAppUsage annotation to expose the
flag to CTS tests.

Bug: 301272559
Test: presubit
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:5e2c96a93b4c16b224c090570a10697400a42c0a)
Merged-In: I90c87596ca80766ece429ddee1b45723b01d2760
Change-Id: I90c87596ca80766ece429ddee1b45723b01d2760
2023-10-10 19:36:00 +00:00
Jihoon Kang
90c3f5fac4 Merge "Introduce system_modules property to java_api_library" into main 2023-10-10 18:33:18 +00:00
Paul Duffin
629b9d287d Retain concrete overrides of abstract methods by default
Bug: 299366704
Test: m checkapi
Change-Id: I3d9fafefe90a98568c16d80c30e4d1d88a22c350
2023-10-10 17:50:25 +01:00
Alix
f7a1027c6b Use an option struct in aapt.buildActions & manifestMerger
Change-Id: Ia056ab321e1fd146ed0cdb98fc2d4455601f648c
Test: Treehugger
2023-10-10 14:31:03 +00:00
Ian Zerny
db2d35b8ac Ignore dex files in input archives
Bug: 303264288
Test: m checkbuild
Change-Id: Idce6a8226ca94b257b0ba7b3416b5b1bbffc3140
2023-10-10 14:35:14 +02:00
Jihoon Kang
4ec24870e0 Introduce system_modules property to java_api_library
System_modules property provides the jars passed as bootclasspath when
compiling the stubs in the java_api_library where its creating
java_sdk_library's sdk_version is none, as the jars will not be provided
from the full_surface_stub_libs but compiled by itself in the child
change.

The jar provided by the system_modules will also be passed to metalava
to resolve hierarchy coming from outer dependencies.

Test: m --build-from-text-stub
Bug: 288624417
Change-Id: I8f3b89efa24bceb070d7a37fae3c7334dd7f0868
2023-10-09 17:44:54 +00:00
Krzysztof Kosiński
2ba34e8f72 Clean up obsolete aliases for Truth. am: 5a55439d12 am: fd3d016a70 am: f0b5c69f64 am: 0ed7550fbe am: 04dc3cc6d8
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2778191

Change-Id: I5d1c5e072d2a4050012916299961c07dd5e78242
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-08 06:03:51 +00:00
Krzysztof Kosiński
f0b5c69f64 Clean up obsolete aliases for Truth. am: 5a55439d12 am: fd3d016a70
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2778191

Change-Id: I2100953abf25bf9fb1cbc52530002d94612c5685
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-08 04:12:44 +00:00
Krzysztof Kosiński
5a55439d12 Clean up obsolete aliases for Truth.
Bug: 255714762
Test: presubmit
Change-Id: I2d7ef129bc8cad247d805ad392f05cd9d517b67e
2023-10-07 19:59:58 +00:00
Treehugger Robot
24239c2a5b Merge "Update Headers_only to a bool pointer" into main am: 9ea1d061b7 am: 077566faf4 am: 459c689b9d am: 4de5c1d0be am: dbc400743b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2775982

Change-Id: Ieb73e1ef86921ced0aab63fc8644ea17f9a00ea2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-07 00:55:44 +00:00
Treehugger Robot
4dc69a3429 Merge "Remove unnecessary arch variant for patch module" into main am: aa46295842 am: 633fde4719 am: 21698a7c14 am: 14b6e7a77f am: 63e916ede3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2775981

Change-Id: I03280b487c0e05241b7a74a7cc1d4d5a94328a77
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-07 00:53:28 +00:00
Treehugger Robot
459c689b9d Merge "Update Headers_only to a bool pointer" into main am: 9ea1d061b7 am: 077566faf4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2775982

Change-Id: If3d23d2c67d81becc00332cac5cf022e451a158d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-06 20:37:07 +00:00
Treehugger Robot
9ea1d061b7 Merge "Update Headers_only to a bool pointer" into main 2023-10-06 19:59:17 +00:00
Treehugger Robot
21698a7c14 Merge "Remove unnecessary arch variant for patch module" into main am: aa46295842 am: 633fde4719
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2775981

Change-Id: Ie82f053a6e2d5e576ad1f5df2157c78c51117769
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-06 16:46:13 +00:00
Zhi Dou
ea769bc5ec Add UnsupportedAppUsage to java_aconfig_library dependency
Generated flag requires UnsupportedAppUsage annotation to expose the
flag to CTS tests.

Bug: 301272559
Test: presubit
Ignore-AOSP-First: Need to commit with changes in internal main. This
change will be cherry picked to AOSP once merged in main
Change-Id: I90c87596ca80766ece429ddee1b45723b01d2760
2023-10-06 16:18:35 +00:00
Treehugger Robot
aa46295842 Merge "Remove unnecessary arch variant for patch module" into main 2023-10-06 15:20:20 +00:00
Zi Wang
ac553c0e55 Merge "Add support for java_library proto plugin in bp2build" into main am: b0f3ff43e5 am: 674022ced0 am: b55cc83aa5 am: 840334b327 am: 69dedc4ceb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2768495

Change-Id: Ie25ba2406d474c7678f08e9020aa1408254b9d37
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-06 01:18:34 +00:00
Zi Wang
b55cc83aa5 Merge "Add support for java_library proto plugin in bp2build" into main am: b0f3ff43e5 am: 674022ced0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2768495

Change-Id: I383f1241634231f84aac1dd17a4743b28a16c473
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-05 23:42:54 +00:00
Liz Kammer
6077263084 Update Headers_only to a bool pointer
This makes it easier to identify intentionally setting the property

Test: m nothing
Change-Id: Id89d1e64da3809025f63cafe7557e57a80e0ffee
2023-10-05 17:18:44 -04:00
Liz Kammer
0a470a3c14 Remove unnecessary arch variant for patch module
Test: CI
Change-Id: Ibc058407ffb09afa38d9248f4391019e8786602b
2023-10-05 17:02:00 -04:00
Zi Wang
dbaf6a9dd0 Add support for java_library proto plugin in bp2build
Test: Added unit test and CI

Bug: 303064670
Change-Id: Idb96ac322aafcb6789ea2002b84a6905d5ec488f
2023-10-05 12:53:23 -07:00
Treehugger Robot
1d330219d8 Merge "Don't create withres-withoutdex files for R8" into main am: 31a5b2c1ef am: c2c6d39f72 am: 0453c9526c am: c4fa542b36 am: ec9f51069c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2768496

Change-Id: I4b62c01a6dfd7981857aa96b86653eb5e425a96a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 19:27:19 +00:00
Treehugger Robot
56e1fe9573 Merge "Remove unnecessary flag for Kotlin compiles" into main am: c68afc4e9f am: 1f02fc33a2 am: 742a8bbddd am: e37873e835 am: 5349cc910e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769266

Change-Id: Ic5300b27c8f6f3f53713f2670ca8e600f0942c5b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 19:22:26 +00:00
Anton Hansson
c109c64c0a Merge "Support passing lint baseline to doclava" into main am: ddbfdb7f7e am: dc99bafb1d am: 88cf24b098 am: 1932d3a09e am: 554b515eea
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769206

Change-Id: I5036c4fd9497e670baf82fd62f60cbfe074cd71e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 18:33:51 +00:00
Treehugger Robot
0453c9526c Merge "Don't create withres-withoutdex files for R8" into main am: 31a5b2c1ef am: c2c6d39f72
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2768496

Change-Id: I5d0fda68c6ad33e70e6b26c8fa0b36e6607c08c8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 17:48:14 +00:00
Treehugger Robot
742a8bbddd Merge "Remove unnecessary flag for Kotlin compiles" into main am: c68afc4e9f am: 1f02fc33a2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769266

Change-Id: Ic71072da968635e554f6c3713fe3f9316aa44285
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 17:48:06 +00:00
Treehugger Robot
31a5b2c1ef Merge "Don't create withres-withoutdex files for R8" into main 2023-10-04 17:32:52 +00:00
Treehugger Robot
c68afc4e9f Merge "Remove unnecessary flag for Kotlin compiles" into main 2023-10-04 17:07:22 +00:00
Anton Hansson
88cf24b098 Merge "Support passing lint baseline to doclava" into main am: ddbfdb7f7e am: dc99bafb1d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769206

Change-Id: Icaa3a09d152ae1e840df31401107b24a3686b0a1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-04 16:43:54 +00:00
Anton Hansson
ddbfdb7f7e Merge "Support passing lint baseline to doclava" into main 2023-10-04 15:53:49 +00:00
Liz Kammer
e10fef75f1 Remove unnecessary flag for Kotlin compiles
This has been fixed in upstream Kotlin

Test: add /tmp/build.txt file and m metalava
Change-Id: I6d088548ee5a31452ad637bbdd75e26c8863926d
2023-10-04 10:37:05 -04:00
Treehugger Robot
c20b50564b Merge "Don't delete withres-withoutdex jar from R8 rules" into main am: 72928074f5 am: 4003606c5f am: e77d2e4197 am: 5836515d26 am: 3941e8bc58
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769925

Change-Id: I00ef01bde3f03a9e82cdbce3c8e5496f89f98e9f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 21:56:51 +00:00
Treehugger Robot
e77d2e4197 Merge "Don't delete withres-withoutdex jar from R8 rules" into main am: 72928074f5 am: 4003606c5f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769925

Change-Id: I592565fda708934caf3089671311abd209fe951e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 20:24:23 +00:00
Jihoon Kang
7ac61080b7 Merge changes from topic "expose_flagged_api_revert" into main am: a7e5e29ec1 am: 3d1cecda28 am: 40386ed37e am: f9503e962b am: 2e660fdb2c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769001

Change-Id: I13de5bcfee96d188c68442bda12a7fee6f737aa6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 20:07:40 +00:00
Yu Liu
b26082bdb6 Merge "Convert java_aconfig_library to bazel." into main am: 7a90fcfa45 am: 2d7db62bcc am: 60ee7d23cd am: f1212c4b0c am: 646a062b48
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2755429

Change-Id: I923fdd52cd31620bce01564bcf45f6d03710450e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 20:07:01 +00:00
Treehugger Robot
72928074f5 Merge "Don't delete withres-withoutdex jar from R8 rules" into main 2023-10-03 19:17:56 +00:00
Jihoon Kang
40386ed37e Merge changes from topic "expose_flagged_api_revert" into main am: a7e5e29ec1 am: 3d1cecda28
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2769001

Change-Id: I330c0434af550bc6355342c7c27c20de47080a03
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 18:32:50 +00:00
Yu Liu
60ee7d23cd Merge "Convert java_aconfig_library to bazel." into main am: 7a90fcfa45 am: 2d7db62bcc
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2755429

Change-Id: I8b7b53149dc04abde9dcdaf468c0227a0384bc26
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-10-03 18:32:28 +00:00
Colin Cross
8484082fad Don't create withres-withoutdex files for R8
The withres-withoutdex files were added in b/195558228 because D8
produced errors when given an input jar that contained both class
and dex files:
Error: com.android.tools.r8.internal.Cc: Cannot create android app from an archive 'out/soong/.intermediates/libcore/libcore-crypto-tests/android_common/withres/libcore-crypto-tests.jar' containing both DEX and Java-bytecode content

It turns out R8 doesn't have this problem, it defaults to ignoring *.dex
files unless the com.android.tools.r8.allowDexInputToR8 system property
is set.  Remove the withres-withoutdex files when using R8, but keep
it in place for D8 for now.

Bug: 302573555
Bug: 303264288
Bug: 303064127
Test: m checkbuild
Test: m Calendar && m Calendar
Test: m framework-minus-apex && m framework-minus-apex
Change-Id: Ib6410f7fef6faf5913476c6423cdd27215c68c45
2023-10-03 18:27:28 +00:00
Jihoon Kang
a7e5e29ec1 Merge changes from topic "expose_flagged_api_revert" into main
* changes:
  Revert^2 "Add flagged api hide conditional to droidstubs"
  Revert^2 "Add soong config variable Release_expose_flagged_api"
2023-10-03 17:55:16 +00:00
Yu Liu
7a90fcfa45 Merge "Convert java_aconfig_library to bazel." into main 2023-10-03 17:29:26 +00:00
Colin Cross
b716ceb832 Don't delete withres-withoutdex jar from R8 rules
R8 rules produce a depfile generated by R8.  R8 sees the withres-withoutdex
jar as an input, and so adds it to the depfile.  If the jar is deleted
after running R8 then ninja will always consider the rule dirty, as the
input file listed in the depfile is missing.

Fixes: 303064127
Test: m Calendar && m Calendar
Test: m framework-minus-apex &&  m framework-minus-apex
Change-Id: I5cbd780b56fc131b58598d6e569a8a78b7fe9395
2023-10-03 16:42:48 +00:00