Commit graph

6913 commits

Author SHA1 Message Date
Jiakai Zhang
a449678996 Move CLC construction to Ninja phase.
Before this change, dexpreopt was often broken with optional libraries.
This was because the CLC construction was done in Soong at an early
stage, where we don't have sufficient information to determine whether
an optional library is installed or not.

For example, the "Settings" package uses an optional library called
"androidx.window.extensions". On some devices, the library is installed,
but on some other devices, it's not. Soong always adds the library to
the CLC, meaning the CLC is wrong for devices which don't have the
library. This change fixes the problem. See the tests below.

After this change, the CLC construction is done by a Python script
invoked at a very late stage. It uses product_packages.txt, which is
generated by Make, to determine whether an optional library is
installed or not, and filter out libraries that are not installed.

Note that optional libraries are still added as dependencies by Soong.
This is because dependencies have to be added at an early stage. This
means what dex2oat eventually uses will be a subset of the dependencies,
which is fine.

Bug: 282877248
Test: m
Test: atest construct_context_test
Test: -
  1. lunch aosp_cf_x86_64_phone-userdebug && m
  2. Check the .invocation file of the "Settings" package (defined in
     .bp file)
  3. See androidx.window.extensions
Test: -
  1. lunch aosp_redfin-userdebug && m
  2. Check the .invocation file of the "Settings" package (defined in
     .bp file)
  3. Don't see androidx.window.extensions
Test: Check the .invocation file of the "Dialer" package (defined in
  .mk file)
Test: -
  1. Build a Pixel 5 system image and flash it to a Pixel 5 device.
  2. adb shell pm art dump
  3. See "reason=prebuilt" instead of "reason=vdex".
     (https://diff.googleplex.com/#key=fB6Ls9q2QGSN, before: left,
     after: right)

Change-Id: Ia112bd7c2328373e68db6bffb74bf34030f683d8
2023-05-30 15:46:38 +01:00
Dan Shi
ec7314336a Support test runnner option in auto generated test configs
Bug: 284179405
Bug: 236980335
Test: unittest
Change-Id: Ifae3d556ff79153ca6c3067347fc259b665fb2e1
2023-05-26 21:34:22 +00:00
Alix Espino
e5641c51b9 Merge "bp2build java_resources that only contain a filegroup" 2023-05-26 13:59:42 +00:00
Anton Hansson
0c6ae56eea Merge "ensure that privapp_allowlist is installed before android_app" 2023-05-26 07:17:37 +00:00
Cory Barker
70b2292646 Merge "Add both classes jar and dexed jar to java_fuzz module packaged output for dist as we move towards instrumentation at runtime" 2023-05-25 23:26:28 +00:00
Jihoon Kang
de68c07ce5 Merge "Modify error emit condition for checking api files in java_api_library" 2023-05-25 21:09:40 +00:00
Sam Delmerico
b1daccdc97 ensure that privapp_allowlist is installed before android_app
AndroidMk assumes that the app is the last file installed, and it uses
this assumption to populate the LOCAL_SOONG_INSTALLED_MODULE entry. This
CL moves the privapp_allowlist installation to before the app
installation to respect this assumption.

Bug: 242509786
Test: go test
Test: OUT_DIR=out.ref m nothing &&
  cp aosp/2562351 && OUT_DIR=out.change m nothing &&
  GOWORK=$PWD/build/bazel/mkcompare/go.work \
  go run android/bazel/mkcompare/cmd -json \
  <(sed -e "s/out\.ref/out/g" out.ref/soong/Android-aosp_cheetah.mk) \
  <(sed -e "s/out\.change/out/g" out.change/soong/Android-aosp_cheetah.mk)
  && verify manually that the only diffs are related to the removal of
  the prebuilt_etc module.
Change-Id: I95ec27070f575e79fb976de68493a219717ed89a
2023-05-25 18:54:06 +00:00
Jihoon Kang
160634ca3d Modify error emit condition for checking api files in java_api_library
java_api_library currently emits error based when the
java_api_contribution module has an empty api file or when the module
does not have any api files. This may be problematic in partial
manifests where allow missing dependency is set, thus add this condition
for error emission.

Test: go test ./java
Bug: 284212875
Change-Id: I10b4baa5723e7a53d931823b3029ea20ac731911
2023-05-25 05:28:29 +00:00
Cory Barker
c29c37a2c0 Add both classes jar and dexed jar to java_fuzz module packaged output for dist as we move towards instrumentation at runtime
Test: Built locally and tested pipeline
Bug: 283993246
Change-Id: I69eb98d2b7966d77ac8819348f7b99a7b18f40b6
2023-05-24 22:53:41 +00:00
Treehugger Robot
1a608b0b0a Merge "don't require package_name for non-override android_apps" 2023-05-24 18:47:33 +00:00
Alix
b29a3cd2aa bp2build java_resources that only contain a filegroup
supports filegroup that specifies path property

Bug: 280860624
Test: built libauto_value_plugin
Change-Id: I9ed0b13e055beb92ba8090f6b5e88b9873c9ce61
2023-05-24 18:21:15 +00:00
Sam Delmerico
15809f8101 don't require package_name for non-override android_apps
For a non-override android_app, we can assume that the privapp_allowlist
already contains the correct package_name, and so we don't need to
overwrite it in this case.

Bug: 242509786
Test: go test
Merged-In: I0f137e34cae3478dc8b9178d138121ff1d936f07
Change-Id: I0f137e34cae3478dc8b9178d138121ff1d936f07
2023-05-24 11:09:31 -04:00
Kun Niu
50533df497 Merge "data_native_bins is only available in java_test_host, add java_test_host properties to java_defaults to make it's available in java_defaults as well." 2023-05-23 22:35:40 +00:00
Treehugger Robot
8d3df9beeb Merge "Increase R8 max heap size to 4GB" 2023-05-23 21:21:53 +00:00
Kun Niu
bd0fd20bdc data_native_bins is only available in java_test_host, add java_test_host properties to java_defaults to make it's available in java_defaults as well.
Test: local build
Bug: 279622634
Change-Id: Iceaf960d587544ae934424a773a6ae3b17fb443e
2023-05-23 17:54:16 +00:00
Jared Duke
3e65f2a53c Increase R8 max heap size to 4GB
The size was increased for D8 in an earlier change, but is more
critical for R8. Match the D8 configuration.

Bug: 241220562,283888124
Test: m
Change-Id: I3b98bf6098f2196c87a97f6c8f7308d9299170d8
2023-05-23 17:32:30 +00:00
Jihoon Kang
4aed3703dd Merge changes Idc77d018,I7dff0094
* changes:
  Enable java_api_library modules in TxtStubLibraries.bp
  Add missing dependency in create_mock_soong
2023-05-23 11:26:53 +00:00
Jihoon Kang
b34bb06780 Enable java_api_library modules in TxtStubLibraries.bp
Since the stubs generation from text file feature has been merged,
enable the java_api_library modules in TxtStubLibraries.bp file.

Test: m --build-from-text-stub
Change-Id: Idc77d01882f136c4e255fb4284f9dc058fafe44d
2023-05-23 07:32:04 +00:00
Treehugger Robot
47514686b9 Merge changes from topic "parallel-singletons"
* changes:
  Parallelize singleton execution
  android: Allow running some singletons in parallel.
2023-05-22 16:40:16 +00:00
Jihoon Kang
7e9e20e389 Fix bootclasspath_fragment build failure during from-text stub build
This change enables bootclasspath_fragment module to be correctly built
during from-text stub build by android-non-updatable module to be
interpreted as its java_api_library equivalent.

Test: go test ./java
Bug: 279460171
Change-Id: Ia6b60edcb60782977cc59855f1cf5d3a46e9f682
2023-05-22 07:13:25 +00:00
Jihoon Kang
d0f9520414 Add additional java_api_library testing modules
This change adds android-non-updatable.stub.* java_api_library
modules to java testing.

Test: none
Change-Id: I10110a21cc61905995803dfc1d27484358019807
2023-05-22 07:13:07 +00:00
Jihoon Kang
d056a91b82 Merge "Generate java_api_library from java_sdk_library" 2023-05-20 05:10:11 +00:00
Treehugger Robot
7fecde9041 Merge "Enable referencing of aapt-generated proguard flags" 2023-05-20 04:13:57 +00:00
Treehugger Robot
36f3ed1191 Merge "Support missing instrumented_for dependency when ALLOW_MISSING_DEPENDENCIES=true" 2023-05-19 21:12:27 +00:00
LaMont Jones
0c10e4dcc0 Parallelize singleton execution
Bug: 281536768
Test: manual, presubmits
Change-Id: I57fdc76ba6b277e88e196b506af87127a530fd37
2023-05-19 20:31:32 +00:00
Jared Duke
34b080ddcf Enable referencing of aapt-generated proguard flags
Some targets may implement classes declared elsewhere, e.g., system
server implements services defined in framework-res.apk's manifest.
Allow depending on the aapt-generated proguard flags for a given
target to support this.

Bug: 272495195
Test: m + reference ":framework-res{.aapt.proguardOptionsFile}"
Change-Id: I2a16632ed6e5a9bddbe326bdb7ab0dd79b45e587
2023-05-19 20:30:05 +00:00
Colin Cross
b3f28b2e04 Merge changes from topic "musl_arm64"
* changes:
  Disable sanitizers that use runtimes for linux_musl arm64
  Separate host and host cross fuzz packaging
2023-05-19 18:03:22 +00:00
Colin Cross
f521efae48 Support missing instrumented_for dependency when ALLOW_MISSING_DEPENDENCIES=true
Don't panic when the instrumented_for dependency is missing or when
instrumentedApp or files generated from instrumentedApp are nil.  Fixes
unbundled tradefed build.

Fixes: 283451533
Test: tapas google-tradefed-all && BUILD_BROKEN_DISABLE_BAZEL=true nothing on tradefed branch
Change-Id: Ibcd0da75fc55c7c0a697e98ae6bdd9fd3662259c
2023-05-19 09:47:09 -07:00
Jihoon Kang
1c92c3e092 Generate java_api_library from java_sdk_library
This change enables java_sdk_library to generate java_api_library
modules per api surface, so that from-text stubs can be generated per
api domain scope. This module is only created when
`--build-from-text-stub` flag is passed during build.

Test: enable disabled modules in java/core-libraries/TxtStubLibraries.bp then m art.module.public.api.stubs.from-text --build-from-text-stub
Bug: 276957733
Change-Id: Ic1ead15b3d0bcb921ca8d31bcaeeb4cd9ee8715c
Merged-In: Ic1ead15b3d0bcb921ca8d31bcaeeb4cd9ee8715c
2023-05-19 06:07:37 +00:00
Jihoon Kang
0393174fe7 Merge "Disallow missing api source files for java_api_library module" 2023-05-19 00:12:22 +00:00
Zyan Wu
b7550aa09a Don't panic if no certificates found
Getting the first certificate will panic if there are no certificates,
which can happen when AllowMissingDependencies is set and the
certificate property is a module reference to a missing module.
Only get the first certificate if the list is not nil.

Use mainCertificate since it handles the logic already.

Test: TestAppMissingCertificateAllowMissingDependencies
Bug: 283102635
Change-Id: I8b27f65aa7d071041171ad45ac52bf47fa31bf2b
2023-05-18 15:46:31 +08:00
Colin Cross
64a4a5f5cd Separate host and host cross fuzz packaging
Prevent collisions between host and host cross fuzz packaging when
both are supported as fuzz targets by using a different value for
hostOrTargetString.

Test: builds with HOST_CROSS_OS := linux_musl
Change-Id: I0e82bab2987899cece94c89eb8398d1733ebbd15
2023-05-17 21:59:27 +00:00
Cory Barker
eaf7f5ecb9 Fix Soong code, remove dead code, and clean up code for Java fuzz
(cherry picked from commit fdf043a7b1)

Test: built fuzz targets locally and tested them with Jazzer
Change-Id: I3ff487ba4e34289e0f53f2077463f524f4bf4f11
2023-05-17 19:07:16 +00:00
Jihoon Kang
795319fadb Disallow missing api source files for java_api_library module
The purpose of this change is to enable filegroups to be taken as inputs
for `java_api_library` module `api_files` property. However, since
android.MaybeExistentPathForSource() does not support this, it needs to
be replaced with android.PathForModuleSrc(), which checks for the files'
existence.

Bug: 283006953
Test: go test ./java
Change-Id: I8a7d7f200f900219cc17243194a4c26071329ee6
2023-05-17 01:02:19 +00:00
Colin Cross
9801f9d7f7 Merge "Fix addrsig warnings" 2023-05-15 19:07:58 +00:00
Rico Wind
1f65e0d0a2 Merge "Ensure outputs correctly declared for proguard config in R8" 2023-05-15 03:41:30 +00:00
Jiakai Zhang
4abf2f4540 Merge changes from topic "boot-image-b280776428"
* changes:
  Dexpreopt ART jars and framework jars together.
  Unify installDirOnHost and installDirOnDevice.
  Remove the ability to install boot images by bootclasspath_fragments.
  Prepare tests for dexpreopt changes.
2023-05-12 10:48:44 +00:00
Rico Wind
b565f2f0df Ensure outputs correctly declared for proguard config in R8
Bug: 281081834
Test: manually inspect the file
Change-Id: Iaa8a99f1f1ae62b853e2a8dad613c2c6c886ff48
2023-05-12 12:30:07 +02:00
Jiakai Zhang
c08c162b5a Dexpreopt ART jars and framework jars together.
Bug: 280776428
Test: atest art_standalone_dexpreopt_tests
Test: -
  1. m
  2. Check .invocation file (http://gpaste/6498044089466880)
  3. Check files in $ANDROID_PRODUCT_OUT/system/framework/x86_64
Test: -
  1. m dist
  2. Check files in out/dist/boot.zip
Test: -
  1. art/tools/buildbot-build.sh --host
  2. m test-art-host-gtest
  3. art/test/testrunner/testrunner.py --host
Test: m build-art-target-golem
Change-Id: I89490252e56a05edab03fdddc6539fa4d7f79756
2023-05-11 19:04:17 +01:00
Jiakai Zhang
09d88df040 Unify installDirOnHost and installDirOnDevice.
These two fields never do what they are described to do. This CL unifies
them to avoid the confusion.

Bug: 280440941
Test: m
Change-Id: I3652d73a50832a2e494d9f5cae750f5fc38293b4
2023-05-11 18:25:18 +01:00
Jiakai Zhang
b47caccbc0 Remove the ability to install boot images by bootclasspath_fragments.
We don't need this anymore because we are going to compile ART jars and
framework jars together.

Bug: 280776428
Test: m
Change-Id: I070157530449a1bb5779e25984c367df3dde7b36
2023-05-11 18:25:18 +01:00
Jiakai Zhang
b95998be73 Prepare tests for dexpreopt changes.
After this change, there is a clear separation between tests that are
related to dexpreopt and tests that are not. The former uses
PrepareForTestWithDexpreopt, while the latter uses
PrepareForTestWithJavaDefaultModules. The benefit is that the latter
will no longer affected by any dexpreopt changes.

Bug: 280776428
Test: m nothing
Change-Id: Ib957765b9287d51c082e0a33cee17a6bb56daeef
2023-05-11 18:24:44 +01:00
Alix Espino
98b86f76b1 Merge "Delete android/rules.bzl file" 2023-05-11 15:19:35 +00:00
Alix Espino
ea4b67d72c Merge "Delete kotlin/rules.bzl file" 2023-05-11 13:34:26 +00:00
Treehugger Robot
a321926546 Merge changes from topic "remove_suffixes"
* changes:
  Propagate shared library destination path through FilesToZip
  Add -e argument to soong_zip to allow setting an explicit filename
  Support removing suffix for device specific prebuilt during build
2023-05-10 20:30:11 +00:00
Romain Jobredeaux
ea48fdc6f8 Merge "Map prebuilt_apis labels to Bazel's manually generated ones." 2023-05-10 18:23:51 +00:00
Treehugger Robot
26446238d6 Merge "Don't translate "required" to unsupported "data" in android_app." 2023-05-10 18:14:52 +00:00
Alix
a381cd1973 Delete android/rules.bzl file
Bug: 277800767
Test: treehugger
Change-Id: I578bf63e33d15219812c2c17117186c74323d8d3
2023-05-10 15:33:10 +00:00
Colin Cross
80462dc040 Propagate shared library destination path through FilesToZip
Shared libraries in fuzz zip files may have a different filename than
their source file, for example when the source file is a prebuilt in
the source tree.  Propagate the computed library name through
FilesToZip to soong_zip to use the correct name in the zip file.

Bug: 254867347
Test: builds
Change-Id: Ib0def8decdbec7842b8e1a9056fac373d743bac0
2023-05-09 23:19:31 +00:00
Romain Jobredeaux
56d41d0725 Don't translate "required" to unsupported "data" in android_app.
Bug: 228514588
Test: Presubmits
Change-Id: Ib964073d24f03cc3cdd389ba28b44ed96b61d841
2023-05-09 16:37:23 -04:00
Alix Espino
9241da9662 Merge "Delete java/rules.bzl file" 2023-05-09 20:18:36 +00:00
Jiakai Zhang
90c69f71c4 Merge changes from topic "revert-2580631-revert-2574032-XXTWCJDTDQ-YJWXHQZNPJ"
* changes:
  Revert^2 "Generate app profiles even if dexpreopt is disabled."
  Revert^2 "Generate boot image profiles even if dexpreopt is disabled."
2023-05-09 13:50:55 +00:00
Jared Duke
fda5890f24 Merge "Fix Proguard configuration output from R8 invocation" 2023-05-08 22:20:11 +00:00
Jiakai Zhang
cf61e3c591 Revert^2 "Generate app profiles even if dexpreopt is disabled."
Revert submission 2580631-revert-2574032-XXTWCJDTDQ

Reason for revert: Fixed build breakages

Reverted changes: /q/submissionid:2580631-revert-2574032-XXTWCJDTDQ

Bug: 280440941
Test: lunch aosp_cf_riscv64_minidroid-userdebug && m UNSAFE_DISABLE_HIDDENAPI_FLAGS=true dist
Test: Disable dex2oat on host (to simulate macOS) and build
Change-Id: I6090b4b74cedb6d129fcbeef58d075c8ccdcc4e2
2023-05-08 21:29:23 +01:00
Jiakai Zhang
bc698cd28a Revert^2 "Generate boot image profiles even if dexpreopt is disabled."
Revert submission 2580631-revert-2574032-XXTWCJDTDQ

Reason for revert: Fixed build breakages

Reverted changes: /q/submissionid:2580631-revert-2574032-XXTWCJDTDQ

Bug: 280440941
Test: lunch aosp_cf_riscv64_minidroid-userdebug && m UNSAFE_DISABLE_HIDDENAPI_FLAGS=true dist
Test: Disable dex2oat on host (to simulate macOS) and build
Change-Id: I5f7f746ca1d4da660fe0c40115e6c71750dfdccc
2023-05-08 21:28:13 +01:00
Romain Jobredeaux
8242b43df8 Map prebuilt_apis labels to Bazel's manually generated ones.
Change-Id: I5bec807da9b39e2b166af1bd83da43df91f997ef
Bug: 237810289
Test: check that android-non-updatable.stubs.module_lib uses manual
bazel target for its sdk_system_current_android dependency

Change-Id: I6f5fb348e1dcaad10eb756382359f34de792b6e0
2023-05-08 15:26:43 -04:00
Alix
a28acb5a16 Delete kotlin/rules.bzl file
Bug: 277800767
Test: treehugger
Change-Id: I5cff1e4bbb18b9145335169bc4edb0d569525b35
2023-05-08 18:02:01 +00:00
Jared Duke
34c6d7d56f Fix Proguard configuration output from R8 invocation
The output when using `--pg-conf-output` seems to be flaky. In the
meantime, use `-printconfiguration` to generate full config summaries
for each R8 invocation.

Bug: 281081834
Test: m && \
      find $ANDROID_BUILD_TOP/out -name proguard_configuration -empty
Change-Id: I0c8c36212e338b50505184076f4c470a5d3d9b94
2023-05-05 21:05:33 +00:00
Qiao Yang
7081aaf874 Merge changes from topic "revert-2574032-XXTWCJDTDQ"
* changes:
  Revert "Generate boot image profiles even if dexpreopt is disabled."
  Revert "Generate app profiles even if dexpreopt is disabled."
2023-05-05 16:43:45 +00:00
Qiao Yang
8d8c660710 Revert "Generate boot image profiles even if dexpreopt is disabled."
Revert submission 2574032

Reason for revert: DroidMonitor-triggered revert due to breakage <https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=aosp_cf_riscv64_minidroid-userdebug&lkgb=10069333&lkbb=10075041&fkbb=10071083>, bug <b/280902279>

Reverted changes: /q/submissionid:2574032

Change-Id: I8e99f8231639198b149ea8d822ee7f9a5b391a89
BUG: <280902279>
2023-05-05 15:03:24 +00:00
Qiao Yang
3d08c388b9 Revert "Generate app profiles even if dexpreopt is disabled."
Revert submission 2574032

Reason for revert: DroidMonitor-triggered revert due to breakage <https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=aosp_cf_riscv64_minidroid-userdebug&lkgb=10069333&lkbb=10075041&fkbb=10071083>, bug <b/280902279>

Reverted changes: /q/submissionid:2574032

Change-Id: Ia9d05f3b7439604eb4a4b4100f46879fe11f5820
BUG: <280902279>
2023-05-05 15:03:24 +00:00
Treehugger Robot
c144c08d2a Merge "Provide a resource_prefix_strip for java_resources in bp2build." 2023-05-05 01:44:03 +00:00
Treehugger Robot
ee6bd5a7b2 Merge "Enable prebuilt apk checks" 2023-05-05 01:30:35 +00:00
Treehugger Robot
da8ebf235c Merge "Add genrule to build *.latest.version build target." 2023-05-05 01:00:32 +00:00
Jiakai Zhang
dbfcf85c53 Merge changes I4e721b47,I1bf05ade
* changes:
  Generate app profiles even if dexpreopt is disabled.
  Generate boot image profiles even if dexpreopt is disabled.
2023-05-04 22:13:08 +00:00
Gurpreet Singh
daa314ac97 Add genrule to build *.latest.version build target.
Build a new target *.latest.version which will contain a text file
containing the last finalized version.

Bug: 242316893
Test: atest prebuilt_apis_test
Change-Id: I41fa91c9ec273f342b7807c66c4d65ba13260124
2023-05-04 21:02:47 +00:00
Cole Faust
ccb20f47d5 Enable prebuilt apk checks
Now that existing violations set the skip flag.

Bug: 185811447
Test: Presubmits
Change-Id: Ia513b71be1cd878f36fdb28c94ef3cdc3f2a6bc6
2023-05-04 12:38:24 -07:00
Romain Jobredeaux
d5fe133077 Provide a resource_prefix_strip for java_resources in bp2build.
Although paths to resource files in a Bazel java_library should be
relative to the package, the directory structure in the resulting jar
will have resources under the full path from the top-level of the
workspace, e.g. if a library in "a/BUILD" has java_resouces as
"res/res.txt" then by default the res.txt file would appear under
"a/res/res.txt".
Fix this by adding a resource_strip_prefix in that case.

Test: Unit tests
Change-Id: If4325126f5c19a2a8fb83ee09bc3a95a18673fe3
2023-05-04 14:54:45 -04:00
Alix
83a8bc47d2 Delete java/rules.bzl file
Bug: 277800767
Test: treehugger
Change-Id: Idc80cd51317d167fca8d5543bb53c585adeaddad
2023-05-04 18:03:23 +00:00
Sam Delmerico
717840fdfc Merge changes from topic "privapp_allowlist_prop"
* changes:
  add privapp_allowlist property to android_app
  Add script for modifying privapp permission allowlists
2023-05-04 13:57:17 +00:00
Jiakai Zhang
7b845e808f Generate app profiles even if dexpreopt is disabled.
Bug: 280440941
Test: -
  1. Patch ag/22302622 to disable dexpreopt.
  2. lunch aosp_cf_x86_64_phone-userdebug && m
  3. See app profiles still generated.
Test: -
  1. Patch ag/20592051 to enable profile for service-art.
  2. banchan com.android.art x86_64 && m
  3. See the profile for service-art generated.
Change-Id: I4e721b475b84a2f667bbccc030a8947078f26bb0
2023-05-04 13:53:22 +01:00
Andrei Onea
580636bdd2 add privapp_allowlist property to android_app
This change allows override_android_app to use the same
privapp_allowlist as the non-override module so that they will always
remain in sync.

Test: go test ./java -v -run TestPrivappAllowlist
Test: go test ./apex -v -run TestApexWithApps
Test: m com.android.permission com.google.android.permission and verify
  manually that apex_payload.img contains correct privapp_allowlist
Test: m com.android.permission before and after change &&
  `diffoscope apex_payload_reference.img apex_payload_with_change.img`
  && verify that there are no semantic changes
Bug: 242509786
Change-Id: Ifdcb28af40763aed7a4aac9a7f681153554bc256
2023-05-03 15:03:34 +00:00
Jiakai Zhang
b95f8345c8 Generate boot image profiles even if dexpreopt is disabled.
Bug: 280440941
Test: -
  1. Patch ag/22302622 to disable dexpreopt.
  2. See boot image profiles still generated.
Change-Id: I1bf05ade53fa83f3dba46f28a8f9246ba1fdf664
2023-05-03 15:25:18 +01:00
Cole Faust
9e4c6c9cc7 Merge "Use api_levels_released_versions from starlark" 2023-05-02 21:55:15 +00:00
Jeongik Cha
30208863b4 Merge "Get rid of DeviceName() from path related to dexpreopt" 2023-05-02 05:07:03 +00:00
Cole Faust
3486740cc5 Use api_levels_released_versions from starlark
Instead of exporting it to soong_injection.

Bug: 279095899
Test: m nothing
Change-Id: I7b93af233b7450848a475512b5f5682ece773c09
Merged-In: I7b93af233b7450848a475512b5f5682ece773c09
2023-05-02 01:05:07 +00:00
Spandan Das
934d5047ef Merge changes from topic "bp2build-ignore-test-apex-tags"
* changes:
  Ignore test apexes from bp2build generated tags
  Ignore test apexes from bp2build generated tags
2023-05-01 16:05:38 +00:00
Treehugger Robot
e605b39e61 Merge "target_sdk_version replacement should respect REL branches" 2023-04-28 23:18:16 +00:00
Spandan Das
fb6a1ee68b target_sdk_version replacement should respect REL branches
Currently, target_sdk_version of MTS tests were being set to 10000 even
in release branches. This should only happen in active branches.

Test: Unit test
Test: aapt2 on CtsContentTestCases in udc-dev and verified
targetSdkVersion is 34
Bug: 279507428

Change-Id: Ib79318febc0f6e771b3679c0281a97357930ec56
2023-04-28 16:23:53 +00:00
Jeongik Cha
4753b39cca Get rid of DeviceName() from path related to dexpreopt
As-is, dexpreopt config and bootjar is in the dir including
DeviceName(). It causes unnecessary dexpreopt invocation when target is
changed repeatly. To avoid it, rename dir to common name.

Bug: 278833696
Test: m
Change-Id: I2818d9ae09e6c22ca6989cc8efdb70b470ec502c
2023-04-28 11:50:18 +09:00
Spandan Das
39b6cc5336 Ignore test apexes from bp2build generated tags
Soong does not enforce apex_available on the contents of test apex. To
prevent special-casing test apexes in the apex validation aspect in
Bazel, drop the test apexes from the tags altogether.

( The core problem I am trying to solve is making sure that stub
libraries in Bazel have a single apex available. apex validation happens
to be a nice side benefit)

Bug: 277651159
Test: go test ./bp2build
Change-Id: Ibb3cfedb5c0f2cda0464bf3758c70b67cb5885d1
2023-04-27 23:24:49 +00:00
Cole Faust
03cf3181d3 Merge "Expand preprocessed flag to work on android_app_imports" 2023-04-27 17:18:59 +00:00
Cole Faust
2f1da168ab Expand preprocessed flag to work on android_app_imports
Setting the preprocessed flag will now also verify that the apk is
zip-aligned and does not have compressed JNI libs or dex files.

Bug: 185811447
Test: m nothing
Change-Id: I01b7c25f390345b14385f6f9e1640f48a5d9dc93
2023-04-25 15:04:58 -07:00
Jihoon Kang
b420705230 Merge "Utilize from text core platform api surface jar in build" 2023-04-25 17:48:25 +00:00
Jihoon Kang
fb502593cd Add additional java_api_library module to java testing
Module lib surface is comprised of contributions from art, conscrypt,
and i18n api domains. On top of this, the module lib api surface generates an additional stub library containing the contributions of the non-updatable api domains. Adding this additional module to the testing module enables more thorough testing of module lib api scope java_api_library modules.

Test: m
Change-Id: Ia648651fb9e6cba2642de7e8d39047d888bf49ce
2023-04-17 21:28:47 +00:00
Colin Cross
dea1d03975 Fix addrsig warnings
ld -r reorders symbols and invalidates the .llvm_addrsig section, which
then causes warnings if the resulting object is used with ld --icf=safe.
The warning is especially common when building with musl, as the
clang_rt.crt* objects have .llvm_addrsig sections, are linked into
libc_musl_crt* using ld -r, and are then linked into every other binary
and shared library with --icf=safe.

Strip the .llvm_addrsig section after ld -r to prevent the warnings.

Test: m USE_HOST_MUSL=true host-native -k
Change-Id: Ia52a4756b9ebbb62115898d0de9f8641e6fea705
2023-04-14 14:31:14 -07:00
Cole Faust
d580613a0e Remove special handling of prebuilt_framework-res
prebuilt_framework-res doesn't appear to exist anymore.

Bug: 185811447
Test: m nothing
Change-Id: Ib1aa929fbe007f87d03bdc85e4d54c6fae4e510b
2023-04-13 15:48:30 -07:00
Romain Jobredeaux
a3c029e7d5 Merge "Bp2build support for sdk_version and java_version." 2023-04-13 20:53:07 +00:00
Romain Jobredeaux
2eef2e13e9 Bp2build support for sdk_version and java_version.
This CL adds java_version and sdk_version support to bp2build
converters for
   - java library
   - java binary
   - android library
   - android binary
   - android library import

Although java import doesn't support java_version and sdk_version, the
neverlink java_library wrapper around a java_import must specify a
sdk_version when targetting a device. "none" is used by convention.

Change-Id: I22a69dea2e351858368df69ed6a703b568d613ea
Bug: 215230098
Test: Presubmits
2023-04-11 21:05:48 -04:00
Jihoon Kang
b507831b71 Utilize from text core platform api surface jar in build
Use JavaApiLibraryName function to redirect the usage
of core platform api stubs from .txt files based on config.

Test: m --build-from-text-stub
Change-Id: I926a0a455fed301ba4ff9dfa509d4dbbbd076029
2023-04-06 18:34:32 +00:00
Jihoon Kang
3bfba4c723 Merge "Update java_api_library in testing modules" 2023-04-05 23:27:50 +00:00
Romain Jobredeaux
15807fa7ed Merge "Bp2build converter for java_host_for_device." 2023-04-05 13:32:29 +00:00
Romain Jobredeaux
b2539d08ed Merge "Support arch variants in java's StaticLibs in bp2build" 2023-04-05 13:32:29 +00:00
Romain Jobredeaux
eb711b9f7c Support arch variants in java's StaticLibs in bp2build
Test: Presubmits
Bug: 276901800
Change-Id: I6058a726833ef10a5f470946e2d265b20fa547ce
2023-04-04 19:50:13 -04:00
Romain Jobredeaux
e7370eabe4 Bp2build converter for java_host_for_device.
Change-Id: I70a345c641bbed3223dc6222062fb6948f7dc6cb
Bug: 276710283
Test: Presubmit
2023-04-04 19:49:17 -04:00
Jihoon Kang
c0a24205a7 Update java_api_library in testing modules
The full api surface java_api_library modules are currently defined as
java_library modules instead of java_api_library modules. This change
corrects this and modifies the DepsInfo of java_api_library so that it
can be compatible in tests.

Test: go ./java
Change-Id: I540b5a930f506ce5f7663ab6e07c6df49af15cf9
2023-04-04 22:52:37 +00:00
Treehugger Robot
28ba80665d Merge changes I0ab8459b,I2ef90f4d
* changes:
  Create core-lambda-stubs from .txt files
  Fix the suffix used in names of java_system_modules
2023-04-04 17:54:56 +00:00
Victor Chang
32952b975d Merge "Add com.android.tools.r8.emitRecordAnnotationsExInDex flag" 2023-04-04 11:12:05 +00:00
Spandan Das
760f880495 Create core-lambda-stubs from .txt files
APIs to compile lambda are part of art's toolchain api surface.
Generating stubs from .txt files allows us to prune the remaining sdk
dependencies on libcore/ that are not api files

Test: m core-lambda-stubs.from-text
(On top of change containing core.current.stubs.from-text
and turning enabled: true)

Change-Id: I0ab8459b9317cb055a434eb635ba06d38da5b92e
2023-04-03 23:42:08 +00:00
Spandan Das
0cb803a5d6 Fix the suffix used in names of java_system_modules
Test: N/A (enabled flag is still off)
Change-Id: I2ef90f4d9099bf183d65dcf8ebdf532d5fa445b6
2023-04-03 23:29:57 +00:00
Jihoon Kang
01e522cac5 Add dep_api_srcs property to java_api_library module
Users can pass the jar-file creating module via dep_api_srcs property in
java_api_library to create the jar file not by compiling the stubs
generated from metalava but by extracting and zipping the class files
from the jar file of the input module.

Test: m android-non-updatable.stubs.from-text
Bug: 273381329
Change-Id: Id1b75179111cc7ff45faaff58388db1347bb18e5
2023-04-03 17:53:40 +00:00
Treehugger Robot
71585a0187 Merge changes Ib9ff4eb5,If27a050c
* changes:
  add *.from-text modules to the java test fixture
  Create a SetBuildFromTextStub method
2023-04-03 16:44:08 +00:00
Spandan Das
77e3278c50 Merge "Rename core stubs to .txt stubs if applicable" 2023-04-03 16:37:53 +00:00
Treehugger Robot
1c102d34b7 Merge "Remove stub-annotations from art stubs system modules" 2023-04-03 10:49:15 +00:00
Treehugger Robot
cdbb1a999f Merge changes Ie9d465f5,Idd89d656,I0a13a0e7
* changes:
  Create core_platform system modules from .txt files
  Create system modules using .txt stubs
  Create a defaults module for stripping out annotations
2023-03-31 19:37:01 +00:00
Spandan Das
a335e1de36 Remove stub-annotations from art stubs system modules
This system module is used to compile conscrypt and icu stubs. These
have migrated to java_sdk_library that set `annotations_enabled: true`
explicitly.

Test: m
Test: TH
Change-Id: I65ceb1fbf0dcdbb3504b69ebce6ca8f0b67e964d
2023-03-31 19:28:55 +00:00
Treehugger Robot
840d49a564 Merge "rename aidl/library.bzl to aidl/aidl_library.bzl" 2023-03-31 18:26:33 +00:00
Sam Delmerico
e55bf08de2 rename aidl/library.bzl to aidl/aidl_library.bzl
Test: b test --config=android //build/bazel/...
Change-Id: I7e22ee5ffa391ddaf43a3eec17812be78f2d86ab
2023-03-31 09:48:27 -04:00
Victor Chang
397e7e2e89 Add com.android.tools.r8.emitRecordAnnotationsExInDex flag
It enables annotations for record components.

Bug: 272698028
Test: m droid
Change-Id: I9b45526c2dcdb2de458d874a0c222108a69eee71
2023-03-31 11:01:41 +01:00
Spandan Das
6bd19dd4c5 add *.from-text modules to the java test fixture
Test: go build ./java

Change-Id: Ib9ff4eb59ff63dc208b7a28626d42b53153c86d6
2023-03-30 21:37:54 +00:00
Spandan Das
e339a2d9a3 Rename core stubs to .txt stubs if applicable
In scope:
- core.current.stubs
- system modules generated for core's public stubs
- system modules generated for core's module_lib stubs

The system modules generated for core_platform api surface will be
handled in aosp/2514755

Test: go build ./java
Change-Id: I34134f79c8ae6e5b218d0b85553de5a748a8cc3f
2023-03-30 02:59:22 +00:00
Spandan Das
a032c35320 Create core_platform system modules from .txt files
Create a parallel set of java_system_modules that build using stubs from
.txt files. decodeSdkDep will be updated to use these system modules
behind a flag.

Since stub generation from .txt is not available at ToT yet, these
modules have been marked "enabled: false"

Test: None (will test when the enabled flag is turned on)
Change-Id: Ie9d465f5542a5430f03ba2e0861325011ac8e8c5
2023-03-30 00:34:36 +00:00
Spandan Das
877f39d535 Use stubs from .txt files for hiddenapi
Hiddenapi processing uses the stub libraries to determine the api
surface boundaries. Use JavaLibraryName function to redirect the usage
of stubs from .txt files based on config.

This should be a no-op for now.

Bug: 271443071
Test: go test ./java
Change-Id: I1ed3ab2485c903bc57f627dc1acf1a3fbc0a3c4d
2023-03-30 00:34:36 +00:00
Spandan Das
4f771f144c Create system modules using .txt stubs
Create a parallel set of java_system_modules provided by the SDK. This
parallel set will build using stubs of core libraries generated from
.txt files. Since stub generation from .txt is not available at ToT yet,
these modules have been marked "enabled: false". decodeSdkDep will be
updated to use these systemModules behind a flag.

(Will create java_system_modules for core_platform in a future CL)

Test: None (will test when the enabled flag is turned on)
Change-Id: Idd89d656fcbc87e8698fe05d65a685ade4488546
2023-03-30 00:34:36 +00:00
Spandan Das
b0f3d42df2 Create a defaults module for stripping out annotations
This reduces code duplication in preparation for checking in a
java_system_modules created using stubs from .txt files

Test: No diff in the 4 java_system_modules
Change-Id: I0a13a0e7bf402cbe8f0dd3942b1f737cc6ac0de7
2023-03-30 00:34:36 +00:00
Treehugger Robot
bc2906efef Merge "Modify Soong to utilize from-text android.jar in build" 2023-03-29 20:31:20 +00:00
Spandan Das
709dbd08a0 Merge "Compile stubs to .dex" 2023-03-28 22:56:41 +00:00
Jihoon Kang
1bff0349d4 Modify Soong to utilize from-text android.jar in build
Context
- from-text android.jar files are built using Metalava, and these can be
  utilized in `decodeSdkDep` so that any modules that depends on APIs
  can be compiled using from-text android.jars
- This change removes dependency on source java files when compiling
  stub android.jar files

Implementation
- Modify java_api_library module to create system modules using the
  generated android.jar
- Replace modules in decodeSdkDep to link against java_api_library
  modules
- Add --build-from-text-stub flag to hide the feature behind a flag

Test: m --build-from-text-stub
Bug: 271154441
Change-Id: I104df595edc65c0006820d5ae5b15f1fb167e190
2023-03-28 21:53:45 +00:00
Spandan Das
5aade5f52d Merge "Update max_sdk_version from SdkSpec to ApiLevel" 2023-03-28 19:17:48 +00:00
Liz Kammer
2b3f56ed22 Add apex_available aidl + aidl&lang libraries
Test: b build com.android.neuralnetworks com.android.media.swcodec
Change-Id: I008b915b22e4c8c2cf1f0aee6cfdaf17374cb3a9
2023-03-24 15:14:53 -04:00
Spandan Das
cb368ea88a Compile stubs to .dex
Although stubs are not installable on device, we need to compile .dex to
support hiddenapi metadata generation.

Bug: 271443071
Test: Built out/soong/hiddenapi/hiddenapi-stub-flags.txt with
aosp/2487266
(There is still some delta due to missing signatures in child classes)
(Will address them in a followup CL)
Change-Id: Iac1330c449934085a479c487a1489aa1695a75ee

Change-Id: I1baa9c0f45eb8fc93f5c3177389ea5a2b7ca0a0b
2023-03-23 20:41:22 +00:00
Spandan Das
a26eda7f2c Update max_sdk_version from SdkSpec to ApiLevel
max_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 max_sdk_version in bp
files

Bug: 208456999
Test: no change in ninja file (this should be a no-op)
Test: TH
Change-Id: I304b5ad802bde200137d8e225182828dfd6f7227
2023-03-23 19:38:56 +00:00
Spandan Das
ca70fc40bd Update target_sdk_version from SdkSpec to ApiLevel
target_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 target_sdk_version in bp
files

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

Change-Id: I3c19245e29184bd9e5660ad8981966f64dfa9424
2023-03-23 19:31:17 +00:00
Spandan Das
ddfab60014 Merge "Update min_sdk_version from SdkSpec to ApiLevel" 2023-03-23 16:33:36 +00:00
Treehugger Robot
5c309aa37a Merge "Android Lint: allow local override of --exitcode flag" 2023-03-23 03:19:30 +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
mattgilbride
b597abdeb1 Android Lint: allow local override of --exitcode flag
The --exitcode flag tells lint to exit with an error code if any
incidents at ERROR level or above are found.  Unfortunately, that means
an invocation of lint against the entire tree will fail with whichever
module fails first. This covers up any other failures and makes updating
lint in AOSP more cumbersome.

This change allows one to set `ANDROID_LINT_SUPPRESS_EXIT_CODE=true` to
modify this behavior and collect full lint results even if there are
errors in some modules.

Bug: 274780888
Test: Tested manually by changing code to trigger lint errors, and
settig/unsetting this flag.

Change-Id: I71ab89c9bffafe6eb83171102c2c253171450266
2023-03-22 17:52:56 +00:00
Pranav Gupta
957cd6bcbc Merge "Add skip-sdk-check to extract_apks" 2023-03-21 19:16:39 +00:00
Spandan Das
ef5b7e4e36 Merge "Cleanup hardcoded references to android_*stubs_current" 2023-03-21 17:22:42 +00:00
Pranav Gupta
51645ff23e Add skip-sdk-check to extract_apks
Add skip-sdk-check to skip checking the SDK version when extracting an
APK/APEX from an App Set Bundle. This can be used when the platform SDK
version is not defined and the APEXs/APKs use SHA based SDK versions.
This check should not be set to true for non Beta dessert releases

Bug: 274518686
Test: # Add SHA targeting modules to platform
m SOONG_SKIP_APPSET_SDK_CHECK=true  #Build Passes
m SOONG_SKIP_APPSET_SDK_CHECK=false #Build Fails
m #No config supplied, build fails

Change-Id: I1919437d3410f09c991e1de39031bd88e1f8246a
2023-03-21 08:13:25 -07:00
Spandan Das
cd05792d06 Merge changes from topic "revert-2457063-EKFSKANQWZ"
* changes:
  Revert "Create two sentinel api levels"
  Revert "Create EffectiveVersion* functions for ApiLevel"
  Revert "Prework for migrating min_sdk_version from (kind+level) ..."
  Revert "Always include host variants in the sdk snapshot"
  Revert "Update min_sdk_version from SdkSpec to ApiLevel"
2023-03-21 01:56:16 +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
Alix Espino
a2be13e680 Merge "Add TODO comment for min_sdk_verison in android_app Bp2Build" 2023-03-20 23:36:55 +00:00
Spandan Das
ea93f64f03 Merge changes Ie6ae7e26,I2fd822a2,Iddd497df,Iee5a936e,I628b443c
* changes:
  Update min_sdk_version from SdkSpec to ApiLevel
  Always include host variants in the sdk snapshot
  Prework for migrating min_sdk_version from (kind+level) to (level)
  Create EffectiveVersion* functions for ApiLevel
  Create two sentinel api levels
2023-03-20 23:33:48 +00:00
Spandan Das
626a8ad934 Cleanup hardcoded references to android_*stubs_current
These hardcoded refs will need to be updated when we start using .txt
stub equivalent (single-tree/multi-tree). Instead of strewing this logic
all over the codebase, create a helper function that contains the
replacement logic. All other places should call this helper function
instead of calculating the name of .txt equivalent soong module by
itself.

(Will do a similar cleanup in build/make)

Test: no change in ninja file

Change-Id: I6bf999eb4aeaba6ac2a44b9016bae4ec8c79ce19
2023-03-20 20:50:03 +00:00
Alix
ffdeacb309 Add TODO comment for min_sdk_verison in android_app Bp2Build
Test: NA added a comment
Bug: 274474008
Change-Id: I1c02c2877e638589730a7b2b565382c010dfe084
2023-03-20 18:22:45 +00:00
Treehugger Robot
759524afc9 Merge "Enable annotations for sealed classes" 2023-03-20 17:52:31 +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
Alix Espino
895bc9463b Merge "Bp2build for android_app minsdkversion property" 2023-03-20 15:38:53 +00:00
Ioana Alexandru
54fb18d43b Merge "Revert "Export non-apex variants of modules to make"" 2023-03-20 11:08:55 +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
Alix
e5085ebbc1 Bp2build for android_app minsdkversion property
Bug: 249265719
Test: go test ./bp2build
Test: insepcted generated build files
Change-Id: I02ed54a9fdcc88d98439e0a61626a0afc1fce639
2023-03-17 20:47:52 +00:00
Alix Espino
2eb2ecfec0 Merge "Create helper function for BazelTargetModuleProperties in java/android" 2023-03-17 17:43:39 +00:00
Cole Faust
bebe607db4 Merge "Export non-apex variants of modules to make" 2023-03-17 17:20:19 +00:00
Alix
3254002a7c Create helper function for BazelTargetModuleProperties in java/android
Prevents inconsistent load locations from being added for java_library,
android_library, kt_jvm_library targets that are generated in multiple
places.

Change-Id: I66ae5af137d7dff3f6fa6660dee539cf9ab22b9e
Test: go test ./bp2build
2023-03-16 21:29:01 +00:00
Romain Jobredeaux
f5f6073ff5 Create an intermediate java library for every java_binary target
We're already doing this for kotlin libraries as java_binary does not
support kotlin sources.

Change-Id: I4967b3aca21dac8e0eaf54d48cc35d57a4c4923e
2023-03-16 21:11:30 +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
Jiakai Zhang
b879620ca8 Revert^2 "Generate a boot image extension for mainline BCP...
Revert submission 2465993-boot-image-mainline-revert

Reason for revert: Relanding the changes

Reverted changes: /q/submissionid:2465993-boot-image-mainline-revert

Change-Id: Ie611cf3a1ff4be7a7beab164f69b4186c474be5c
2023-03-16 08:46:29 +00:00
Alix
f848bf8225 bp2build kotlinCFlags
for java_library, java_binary, android_app & android_library

Change-Id: Ia8dec7e7d497eb41b2d8dcd8c44c3090d1d3b4bd
Bug: 271265771
Test: go test ./bp2build
2023-03-14 13:57:22 +00:00
Matt Gilbride
34127be4e9 Merge "Disable new lint checks from Android Studio" 2023-03-13 18:03:46 +00:00
Alix Espino
686df31852 Merge "Update load statements in java.go bp2build" 2023-03-13 15:27:15 +00:00
Alix
82acaf545f Update load statements in java.go bp2build
load statements will all now point to rules.bzl files and won't have to
be constantly updated.

Bug: 271612705
Test: CI
Change-Id: I663b9730f1b5b333682ea301ce4d9a505626faaa
2023-03-13 15:27:01 +00:00
Sorin Basca
de8d7a2f39 Enable annotations for sealed classes
Bug: 233029164
Test: m
Test: atest ClassTest
Change-Id: I688d86404adf5bcce9df8324d4775f73056d44d4
2023-03-11 09:15:08 +00:00
Iván Budnik
ff8c95b610 Merge "Revert "Export non-apex variants of modules to make"" 2023-03-10 16:30:32 +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
f42c21d5f8 Merge "Export non-apex variants of modules to make" 2023-03-10 06:36:03 +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
Romain Jobredeaux
8062140a16 Merge "Call ResolveExcludes after arch-based sources computation in java.go" 2023-03-09 14:40:58 +00:00
mattgilbride
9d6cf7e598 Disable new lint checks from Android Studio
PermissionImpliesUnsupportedChromeOsHardware
is ChromeOS specific and does not apply to the
Android tree, thus disabled.

UnsafeImplicitIntentLaunch surfaces false
positives and crashes in a specific corner case.
Disable until the related detector can surface
errors only when it is certain the intent will
get launched.

InvalidId gives false positives due to the package
name that is used in several places in platform.

Bug: 264608708
Test: TH
Change-Id: I441ba27a6fa97ed674145a051944dce4280692cd
2023-03-09 14:11:47 +00:00
Romain Jobredeaux
3eaf747ae5 Call ResolveExcludes after arch-based sources computation in java.go
TEST: go test
Change-Id: I93a8ae5e0842dab03f73b0edb32841755d2ea435
2023-03-08 16:34:17 -05:00
Alix
75db7840ab Created kotlinAttributes struct
makes it clearer which attributes are kotlin specific
embedded within javaCommonAttributes since both
java_* and android_* use kotlin.

Change-Id: Ib7c9b912a9901cd1c3d150ab1e0a79011d8e07de
Test: go test ./bp2build
2023-03-08 17:15:10 +00:00
Sorin Basca
71eca49214 Merge "Correct SDK version for Java 17" 2023-03-08 07:56:45 +00:00
Zi Wang
b31a833c8e Incorporate Bazel-built fingerprint file into mixed builds
Test: m and TH

Bug: 268337233
Merged-In: Ib2f7fa35b2d94972869e8e85be47b288ff875408
Change-Id: Ia2670ebc0b1b4b720e79281fe81235555d498789
2023-03-07 15:33:05 -08:00
Wei Li
598f92d704 Export Soong module type to LOCAL_SOONG_MODULE_TYPE to Make for SBOM generation.
Bug: 266726655
Test: CI

Change-Id: If5b1a77930a591b6061ca2749c9c5ad29b4491fb
2023-03-06 22:51:03 +00:00
Alix Espino
09907dab55 Merge changes from topic "ktResourceStrip"
* changes:
  code cleanup for bp2build java_binary with kt srcs
  resource_strip_prefix support for kotlin srcs
2023-03-06 20:32:16 +00:00
Jiakai Zhang
fe7755802e Merge "Revert "Generate a boot image extension for mainline BCP jars."" 2023-03-06 09:53:03 +00:00
Alix
5afd9fad98 code cleanup for bp2build java_binary with kt srcs
there is now support for resoure_strip_prefix in kt_jvm_library targets.

Test: built AnalyzerKt and updated go ./bp2build tests
Change-Id: I4a6fe45276d45519186b6f40a02db990511d6def
2023-03-03 23:07:51 +00:00
Alix
4d56abf937 resource_strip_prefix support for kotlin srcs
change load locations for kt_jvm_library to be the macro

Change-Id: Id50fcb1f880013fe57647a065cd6b7149d7c5d91
Test: built kotlinx_coroutines locally and compared jar file to soong
Bug: 268519061
2023-03-03 19:38:28 +00:00
Sorin Basca
93bca1585e Merge changes from topic "java17-record-support"
* changes:
  Allow java.lang.runtime in boot image
  Emit record annotation
2023-03-03 15:12:28 +00:00
Sorin Basca
34e1f8c00a Correct SDK version for Java 17
Bug: 233029164
Test: TH
Change-Id: Ie93ab4dc7517c0fb4e24c12177b079ef41c1fce7
2023-03-03 10:18:26 +00:00
Cole Faust
df38f7ac45 Zip lint reference baselines
To make them easier to work with.

Bug: 268261262
Test: m lint-check
Change-Id: I42c69d5dd1dc74e1f1963cf72b00b8ee4d608e2a
2023-03-02 17:23:27 -08:00
Jiakai Zhang
db160c078e Revert "Generate a boot image extension for mainline BCP jars."
This reverts commit 3830308fb8.

Reason for revert: Caused various SH regressions.

Bug: 271036161
Change-Id: Ia785324f83006a095e262c251b24d49fd778427e
2023-03-02 13:01:59 +00:00
Spandan Das
364c90773e Merge "Support two active sdks in EffectiveVersionString" 2023-03-02 00:52:12 +00:00
Spandan Das
ffb31afdac Support two active sdks in EffectiveVersionString
Currently it would return the default one even if the requested one is
an active sdk.

Bug: 270609292
Test: go test ./java
Test: built `rkpdapp` locally in internal and verified that its
targetSdkVersion is U and V
Test: TH

Change-Id: Idb03ff4786ff87fb7911bf31205941618a662404
2023-03-01 20:11:21 +00:00
Treehugger Robot
8c41eca698 Merge "Remove OWNERS access for non-build team people to core build system" 2023-03-01 19:45:38 +00:00
Cole Faust
917eb06be3 Merge "Give lint the correct api levels database for the current module" 2023-03-01 18:59:05 +00:00
Jihoon Kang
ece6a80b08 Merge "Rename output stubs jar file in java_api_library" 2023-03-01 17:18:53 +00:00
Sorin Basca
a05f0437fe Merge "Revert "Revert "Switch to use new Doclava""" 2023-03-01 17:15:25 +00:00
Sorin Basca
ae995aeef4 Revert "Revert "Switch to use new Doclava""
This reverts commit 32db73188d.

Reason for revert: Failing branches now have the updated Doclava (automerger encountered a conflict which led to build failure). Relanding.

Change-Id: Ib327e54898e97a93dd6140a65f2d7231ffd4cef3
2023-03-01 08:47:42 +00:00
Sorin Basca
b0dc477ef7 Merge "Reland^2 "Target Java 17"" 2023-03-01 06:20:20 +00:00
Cole Faust
69861aa57f Give lint the correct api levels database for the current module
Before this change, lint was always working off of the public
api database. Now, it will have the system, module-lib, or
system-server databases if the current module is compiling
against those SDKs.

This means that a lot more methods are going to start being
checked for NewApi issues.

Bug: 193460475
Test: Errorprone presubmit
Change-Id: I3eb2c617cd61554cd2a3f9d15fd40b3ec91f961d
2023-02-28 21:18:17 -08:00
Joe Onorato
442b6fc701 Remove OWNERS access for non-build team people to core build system
Test: treehugger
Change-Id: I0c318ddd7d78110327bbd849ed9aa3973c86de5d
2023-02-28 19:29:47 -08:00
Jihoon Kang
25857f5f42 Rename output stubs jar file in java_api_library
When generating framework.aidl, `android_*_stubs_current` are converted
to .aidl files (and created as targets) by replacing the extension from
`.jar` to `.aidl`.
Thus, when replacing `android_*_stubs_current` to java_api_library
modules, generating `android.jar` files leads to ninja error(multiple
rules for generating */android.aidl error).
Prevent this error by renaming the name of the artifact jar file as the
module name so that distinct-named ninja targets can be created.

Test: m
Change-Id: Iaa7248996d7bf5e7f98e1d1e2919870c3cccf5a6
2023-03-01 01:11:18 +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
Cole Faust
20eed826fd Merge "Disable strict_updatability_linting" 2023-02-28 23:53:51 +00:00
Cole Faust
1021ccda6b Disable strict_updatability_linting
strict_updatability_linting currently only makes it so
that NewApi can't be added to the lint baseline.
However, since we're updating NewApi to work on a lot
more apis than before, we need to baseline many issues
across the android tree. Temporarily disable
strict_updatability_linting so that we can add these
baselines.

Bug: 193460475
Test: Presubmits
Change-Id: I8d92df95a46e9b903f0cc0e3be56f17722c50430
2023-02-28 11:31:15 -08:00
Treehugger Robot
15e6b1240e Merge "Omit "--compiler-filter" if the profile is disabled." 2023-02-28 18:53:44 +00:00
Spandan Das
c8054ec6ac Merge "Update usages of min_sdk_version that relies on (kind+level)" 2023-02-28 16:44:53 +00:00
Jiakai Zhang
63086d7af0 Omit "--compiler-filter" if the profile is disabled.
This fixes the Golem regression caused by aosp/2453067. On Golem, the
profile disabled and dex2oat uses the default "speed" compiler filter.

Bug: 269230245
Test: art/tools/golem/build-target.sh --machine-type=android-armv8 --golem=art-interpreter
Change-Id: I4fc0dbf9eac8839f7bacd264ddab177956ddd58e
2023-02-28 15:37:31 +00:00
Sorin Basca
29b20ea4a8 Merge "Revert "Switch to use new Doclava"" 2023-02-27 20:41:03 +00:00
Sorin Basca
32db73188d Revert "Switch to use new Doclava"
This reverts commit 702fb3bdc9.

Reason for revert: Build breaks in some branches

Change-Id: I3502b86d1a2e1afd6bc32e02287cd903bad7b9b2
2023-02-27 20:34:18 +00:00
Spandan Das
7fa982c0ec Update usages of min_sdk_version that relies on (kind+level)
The type of min_sdk_version is being migrated from
android.SdkSpec(kind+level) to android.ApiLevel(level). This affects
`ShouldSupportSdkVersion` for java modules. This function skips the
check for modules compiling against `core`, and that requires access to
SdkVersion and not MinSdkVersion after the migration.

Skip the check explicitly using SdkVersion.

Test: go test ./java
Test: No change in ninja file
Bug: 208456999
Change-Id: I14eca4f8e8c5d7477ded00c4fe54097323fab4a2
2023-02-27 20:03:25 +00:00
Spandan Das
0cd201c6b5 Merge "Update usages of min_sdk_version that relies on (kind+level)" 2023-02-27 18:39:11 +00:00
Spandan Das
26cfa5c70d Merge "Add documentation for target-sdk-version flag" 2023-02-27 17:49:33 +00:00
Sorin Basca
6cf6f8032e Merge "Switch to use new Doclava" 2023-02-27 16:53:45 +00:00
Spandan Das
50885c0524 Update usages of min_sdk_version that relies on (kind+level)
The type of min_sdk_version is being migrated from
android.SdkSpec(kind+level) to android.ApiLevel(level). This affects the
{min|target}-sdk-version aapt2 flag for vendor modules. For these
modules, if min_sdk_version is not set in Android.bp files,
MinSdkVersion would default to SdkVersion, and therefore would get
access to the sdkKind it was compiling against.

To accomodate the upcoming change of min_sdk_version to ApiLevel,
explicitly use SdkVersion to determine the `min-sdk-version` flags for
modules targeting `current`.

Bug: 208456999
Test: no change in ninja files (this should be a noop)
Change-Id: Ie2924698687597cdd572d4bb4c687d0b1569c4b8
2023-02-25 00:24:02 +00:00
Spandan Das
6450b555b5 Add documentation for target-sdk-version flag
This is using min_sdk_version and not target_sdk_version value from
Android.bp. Add documentation on why it has been implemented as such.

Test: N/A
Change-Id: I7da38ed351562dc530cde4c0d6bf7bd6b691f01d
2023-02-25 00:04:45 +00:00
Jiakai Zhang
3830308fb8 Generate a boot image extension for mainline BCP jars.
Bug: 269230245
Test: m
Test: atest art_standalone_dexpreopt_tests
Change-Id: I253c30d938eee2cf2549ec2338425d53956e7cbb
2023-02-24 17:14:08 +00:00
Jiakai Zhang
d49324dadb Refactor platform_bootclasspath to support multiple boot images.
Bug: 269230245
Test: m
Change-Id: I223756d5481607a82732f70c51057609ec4ee43f
2023-02-24 17:14:08 +00:00
Jiakai Zhang
8fe3a415b5 Refactor dexpreopt for boot jars to allow more complex dependencies.
After this change, the dependency hierachy can be arbitrarily deep. For
example, you can have one boot image that extends another boot image
that extends yet another boot image.

Bug: 269230245
Test: m
Change-Id: I096d0b57bda36b982ecc97378647f9c59071a3bf
2023-02-24 17:13:54 +00:00