Commit Graph

5699 Commits

Author SHA1 Message Date
Colin Cross
d1ea62d5c9 Merge changes from topic "soong-license-metadata" am: b435744fdc am: 9a6e17e5c1 am: 1aa0005a1f am: 7d162acb13
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1899703

Change-Id: Ie97f43055aa820cb5b1bd4faffe67f2c292a2ecb
2021-12-10 23:02:01 +00:00
Colin Cross
d9b928c776 Build license metadata files in Soong am: 3dd2ff28ed am: 05ff6289c2 am: a25d6989dc am: 2904cf5cfc
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1899702

Change-Id: I35fabcb7e7210fc0e0f55c2db4f73a716561db66
2021-12-10 23:02:00 +00:00
Colin Cross
05ff6289c2 Build license metadata files in Soong am: 3dd2ff28ed
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1899702

Change-Id: I96620d254f43dd9e8cfe02d1ed1dbc201c9cd381
2021-12-10 22:04:43 +00:00
Colin Cross
b435744fdc Merge changes from topic "soong-license-metadata"
* changes:
  Add dependency license annotations
  Build license metadata files in Soong
  Escape Host*Variable contents
2021-12-10 21:43:49 +00:00
Sorin Basca
c93cead197 Merge "Adding experimental option to target Java 11" am: eb59a6d3ea am: 2aabb8de52 am: c6a840e45d am: 73b1de9cd2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1904231

Change-Id: I0f2cea8fc9ba09dd747b29e9ebd8da6578657415
2021-12-10 15:13:30 +00:00
Sorin Basca
eb59a6d3ea Merge "Adding experimental option to target Java 11" 2021-12-10 13:57:51 +00:00
Spandan Das
6affb8f1ea Merge "Set targetSdkVersion to 10000 iff a module is targeting an unreleased sdk" am: 2ee7ac02e7 am: a9938be03e am: c21325dd15 am: b04b40c2e0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1914977

Change-Id: I44fde0c605bb23da64128b89eccd34f5eda42243
2021-12-10 01:32:01 +00:00
Spandan Das
c8cb0c3eb5 Set targetSdkVersion to 10000 iff a module is targeting an unreleased
sdk

Previously in aosp/1907152, targetSdkVersion for all modules would be
10000 in release builds. This would cause sdk compatibility errors like
b/209301265#3 for modules that were targeting a released SDK

This CL adds an additional check to set targetSdkVersion to 10000 only
if a module's apilevel is in preview (i.e. unreleased SDK)

Bug: 209301265

Test: Built various apk combinations locally, and used aapt2 to check
targetSdkVersion
Test: TARGET_BUILD_APPS=xyz m CaptivePortalLoginTests #
targetSdkVersion: 30
Test: m CaptivePortalLoginTests #targetSdkVersion: 30
Test: (internal) TARGET_BUILD_APPS=xyz m MediaProviderGoogle #
targetSdkVersion: 10000
Test: (internal) m MediaProviderGoogle #targetSdkVersion: Tiramisu

Change-Id: Id2901f23d4e1b436f8906940e47edd606a93657d
2021-12-09 18:08:28 +00:00
Treehugger Robot
a548a1c1c5 Merge changes I08ec0b44,I79b5a1fc,I469d6558 am: 6abfb33784 am: 3bcefabfeb am: dc2accaba0 am: a0b46c1d06
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907862

Change-Id: I0ffda740f28a4f1309fae0be43f40904ef4f2168
2021-12-09 00:03:32 +00:00
Allen Hair
5d066968ff Merge "Revert "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty"" am: 9df0fa5e63 am: 952ebe85f0 am: aa5dbef9d6 am: 35a5252566
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1914027

Change-Id: I956a71b2ee7f381ea97b27b3f5d982eee9601ccd
2021-12-09 00:03:18 +00:00
Colin Cross
3dd2ff28ed Build license metadata files in Soong
Soong has enough information to build the license metadata files
without resorting to the fixups required in Make.

Bug: 207445310
Test: m checkbuild
Change-Id: I8e74108376162b8fdb87ba098ebe94350aa1f7c4
2021-12-08 15:08:59 -08:00
Colin Cross
b674b43656 Add dependency license annotations
Add annotations to dependency tags that are dynamic or classpath
linkage.

Bug: 207445310
Test: m checkbuild
Change-Id: Ife89b8f234aa40c380c721eda7dd18cab697fbb3
2021-12-08 15:08:59 -08:00
Treehugger Robot
6abfb33784 Merge changes I08ec0b44,I79b5a1fc,I469d6558
* changes:
  Allow java_sdk_library in an APEX to have higher min_sdk_version.
  Perform CheckMinSdkVersion for java_sdk_library.
  Add MinSdkVersion(ctx) method to ModuleWithMinSdkVersionCheck interface.
2021-12-08 17:58:24 +00:00
Allen Hair
9df0fa5e63 Merge "Revert "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty"" 2021-12-08 17:54:57 +00:00
Vladimir Marko
f297422758 Merge "Stop installing a profile into an APEX if profiles are disabled." am: edd6fde587 am: 7e556310b9 am: 1643216aff am: aa08d0e888
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1913479

Change-Id: I3fbbd5032990f1646d242d8ee364daca65394571
2021-12-08 16:43:07 +00:00
satayev
758968a700 Allow java_sdk_library in an APEX to have higher min_sdk_version.
Inidividual boot or system server jars may have higher min_sdk_version
than the contianing apex, since the runtime respects the values of
min/max_sdk_version; e.g. runtime would not load a boot jar with
higher min_sdk_version. This allows shipping new boot jars via apexes
that target older platforms.

Bug: 190818041
Test: presubmit
Change-Id: I08ec0b4463a17bc8265b948fe09da55eb4e52ac3
2021-12-08 11:36:34 +00:00
satayev
8f088b09d8 Perform CheckMinSdkVersion for java_sdk_library.
In a follow up, apex would expect that any module that implements
ModuleWithMinSdkVersionCheck to have performed appropate checks on
min_sdk_version, to allow relaxing some of the existing conditions.

This change moves the responsibility of checking min_sdk_version
of java_sdk_library to java_sdk_library itself.

Bug: 205923322
Test: presubmit
Change-Id: I79b5a1fc34098fff60221e416db6e6e69e01f531
2021-12-08 11:36:34 +00:00
Jiakai Zhang
29e35e115d Stop installing a profile into an APEX if profiles are disabled.
Bug: 209630530
Test: art/tools/golem/build-target.sh
Change-Id: I0ac4e1860a47da20626b423b9b1f62dd49259deb
2021-12-08 11:05:19 +00:00
Kun Niu
131a5a13fe Revert "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty"
This reverts commit e33e25b4a5.

Reason for revert: may causing b/209301265,
Test: https://android-build.googleplex.com/builds/abtd/run/L66400000952203490
Change-Id: Ifcccdcfbfc014d4172f4d9488ea699380d3f3ebe
2021-12-08 00:44:07 +00:00
Romain Jobredeaux
fa0f10d6d3 Merge "Initial bp2build converter for android_app." am: 4526269c2e am: f7a7a95c07 am: 019d78829d am: 6ba0a6a4a9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907394

Change-Id: Ia3aa0e678b02c8405b391fb2665be0c336798c57
2021-12-07 21:34:00 +00:00
Romain Jobredeaux
4526269c2e Merge "Initial bp2build converter for android_app." 2021-12-07 20:14:29 +00:00
Sorin Basca
8ef3e6fd02 Adding experimental option to target Java 11
Bug: 195387073
Test: m
Test: EXPERIMENTAL_TARGET_JAVA_VERSION_11=true m
Change-Id: Ifd7ce6218a2761a8eaf79af7d91210da2fa581aa
2021-12-07 17:46:34 +00:00
Jiakai Zhang
204d111865 Merge "Add ART boot image profile to the ART APEX." am: e6f63be764 am: 255734a03a am: c0adf3ba1c am: 5195a30de9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1904290

Change-Id: I9ceaeca0de9f290a41ba416eb862b7be147cb874
2021-12-07 16:29:34 +00:00
Jiakai Zhang
e6f63be764 Merge "Add ART boot image profile to the ART APEX." 2021-12-07 15:22:37 +00:00
Romain Jobredeaux
1282c42484 Initial bp2build converter for android_app.
The only supported attributes at this point are:
- srcs
- manifest
- package_name
- resource_dirs
as they most easily map to bazel's android_binary's srcs, manifest, custom_package, and resource_files respectively.
Allow-listing all apps that use these fields, along with sdk_version and dex_preopt. The latter 2 are ignored by the converter,
- sdk_version because we're currently relying on a single pre-built SDK,
- dex_preopt because,
   1. though it is not supported in Bazel builds yet, it doesn't prevent the apps from building, and
   2. the apps being converted only use the dex_preopt attribute to disable dex_preopt, which is what is happening anyway.

Change-Id: I4a4f771eeb8f60a1cd4844b2ac1ce3df7c070e73
Test: ./build/bazel/scripts/run_presubmits.sh
Bug: 198224074
Bug: 203688791
2021-12-07 09:41:49 -05:00
Artur Satayev
6e8071d17a Merge "Add ModuleWithMinSdkVersionCheck type." am: a4fc08d204 am: 25f5783263 am: fe55ffd190 am: 44d0ef55da
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907860

Change-Id: I147da371d445f09ca2f131df1be91545eba37772
2021-12-06 18:09:34 +00:00
satayev
b3fd411465 Add ModuleWithMinSdkVersionCheck type.
This is to help following refactor for individual modules to have their
own version of checking where needed.

For example, apk in apex may want to enforce it's own version of
CheckMinSdkVersion.

Bug: 205923322
Test: presubmit
Change-Id: Ia2fad6c52af39e21f65385bcb283f1e3adab5548
2021-12-06 12:05:48 +00:00
Jiakai Zhang
49b1eb6b04 Add ART boot image profile to the ART APEX.
We will need the profile when we generate the primary boot image on
device.

Bug: 203492478
Test: Run `banchan com.android.art x86_64 && m` and see
  `$ANDROID_PRODUCT_OUT/apex/com.android.art/etc/boot-image.prof`.
Test: Run `lunch aosp_cf_x86_64_phone-userdebug && m` and see both
  `$ANDROID_PRODUCT_OUT/apex/com.android.art/etc/boot-image.prof` and
  `$ANDROID_PRODUCT_OUT/system/etc/boot-image.prof`, in different
  sizes.
Test: Start Cuttlefish with the built image and see both
  `/apex/com.android.art/etc/boot-image.prof` and
  `/system/etc/boot-image.prof` on device.
Change-Id: Id879dc49b234133dfbb9563814328661a1f4a6c0
2021-12-03 20:02:10 +00:00
Spandan Das
04dcce34b8 Merge "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty" am: 16ce4801ef am: 4b669af97c am: 1bf2cb1432 am: d426e053f3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907152

Change-Id: Ic84ab8e25e297cd3846ee2f32d45c5136666dd65
2021-12-03 19:07:27 +00:00
Spandan Das
16ce4801ef Merge "Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty" 2021-12-03 18:08:41 +00:00
Spandan Das
e33e25b4a5 Set targetsdkversion to future level if TARGET_BUILD_APPS is not empty
manifest_fixer transforms an AndroidManifest.xml file for use in aapt2.
For TARGET_BUILD_APPS builds, set targetSdkVersion to a FutureApiLevel

Test: In build/soong, go test ./java
Test: TH

Test: In internal, TARGET_BUILD_APPS=xyz m
out/soong/.intermediates/packages/providers/MediaProvider/MediaProvider/android_common_MediaProviderGoogle_apex30/package-res.apk
&& aapt2 dump badging
out/soong/.intermediates/packages/providers/MediaProvider/MediaProvider/android_common_MediaProviderGoogle_apex30/package-res.apk
| grep targetSdkVersion # targetSdkVersion:'10000'

Test: In internal, m
out/soong/.intermediates/packages/providers/MediaProvider/MediaProvider/android_common_MediaProviderGoogle_apex30/package-res.apk
&& aapt2 dump badging
out/soong/.intermediates/packages/providers/MediaProvider/MediaProvider/android_common_MediaProviderGoogle_apex30/package-res.apk
| grep targetSdkVersion # targetSdkVersion:'Tiramisu'

Bug: 204107787

Change-Id: Ic6f21111d5a8c61ae789a7a3a001f669257a39b2
2021-12-02 19:55:25 +00:00
Artur Satayev
2d47f75955 Merge "Use textproto format for classpaths.proto generation." am: ee594919ea am: 0b97cf8828 am: 52545e6cdf am: c326bbe3f0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1907854

Change-Id: If30435821941c558a924adb13acb7440437c956e
2021-12-02 17:27:52 +00:00
Artur Satayev
3a06f2205c Merge changes Ieb9aef29,I6985ebb6 am: fb0a7234d7 am: 76ab9442a1 am: f258945ced am: 75c5711c9f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1906590

Change-Id: I00144ca1d167db5a55f666ee9815cdfa4c58cca9
2021-12-02 16:43:12 +00:00
Artur Satayev
ee594919ea Merge "Use textproto format for classpaths.proto generation." 2021-12-02 15:43:47 +00:00
Artur Satayev
fb0a7234d7 Merge changes Ieb9aef29,I6985ebb6
* changes:
  Propagate min and max sdk versions to classpaths.proto configs.
  Introduce max_sdk_version device property.
2021-12-02 14:53:48 +00:00
Colin Cross
f69bc6307d Merge "Only get dexpreopt config for device modules" am: c01a5cd705 am: ceb543994b am: c86a100751 am: 7dfbf703ff
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1908170

Change-Id: I5b367850ae9699e5368ba48183d60ed85e2183f0
2021-12-02 06:55:27 +00:00
Colin Cross
c01a5cd705 Merge "Only get dexpreopt config for device modules" 2021-12-02 05:28:36 +00:00
Treehugger Robot
46c2cf3f7f Merge "Adding configuration support for Java 11" am: 5e4637dc1b am: c752b88ca8 am: 5f61c406f6 am: 06cc75d578
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1904230

Change-Id: I1b98110a8843097f4e1dbe894f02feb198a58cd2
2021-12-01 23:31:18 +00:00
Treehugger Robot
5e4637dc1b Merge "Adding configuration support for Java 11" 2021-12-01 22:18:41 +00:00
Colin Cross
38310bb4ac Only get dexpreopt config for device modules
Calling dexpreopt.GetGlobalConfig can return errors, move the checks
that don't depend on dexpreopt.GetGlobalConfig first to avoid
breaking all modules when the global config is invalid, for example
in a partial branch that is missing the BootProfileImages file.

Bug: 207813628
Test: tradefed branch builds
Change-Id: Id1689de3f1ef986a41a60622cb357edb9d323b8a
2021-12-01 12:32:11 -08:00
satayev
48dae67a76 Use textproto format for classpaths.proto generation.
Test: presubmit
Change-Id: I3fea94153939f05329f02091ca4fa838ee9df93f
2021-12-01 18:24:09 +00:00
satayev
cca4ab762e Propagate min and max sdk versions to classpaths.proto configs.
These attributed define a range for dessert releases where the jars
should be active, and included in corresponding CLASSPATH varibles by
derive_classpath.

Bug: 190818041
Test: presubmit
Change-Id: Ieb9aef29657ad0694d48a63019f93faca2678252
2021-12-01 17:58:41 +00:00
satayev
0a420e771a Introduce max_sdk_version device property.
Artifacts that go into apexes should only be active on certain SDK
versions. There is now a need to upper bound the range to support
expressiong statements like "this jar should only run on platforms
30-31".

Bug: 190818041
Test: presubmit
Change-Id: I6985ebb671841cdd9f0f37f916267ac5ed76e4f4
2021-12-01 17:51:22 +00:00
Jiakai Zhang
c9ff3dc68a Merge "Add entries for STANDALONE_SYSTEMSERVER_JARS to systemserverclasspath.pb" am: 2258b889bf am: 1d7dad1f09 am: 0cb50b1036 am: 33ea009498
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1876173

Change-Id: I9c1f63b38f151fface4001dd98800488b91e6926
2021-12-01 13:13:19 +00:00
Jiakai Zhang
cee9e19a51 Add entries for STANDALONE_SYSTEMSERVER_JARS to systemserverclasspath.pb
This CL updates platform_systemserverclasspath,
systemserverclasspath_fragment, and
prebuilt_systemserverclasspath_fragment to write entries for
STANDALONE_SYSTEMSERVER_JARS to systemserverclasspath.pb. A new property
`standalone_contents` is aded to `systemserverclasspath_fragment` and
`prebuilt_systemserverclasspath_fragment` to list the standalone system
server jars in the APEX, and entries will be written to
systemserverclasspath.pb accordingly at build time.

To add more context, these entries will be consumed by derive_classpath
in order to generate an environment variable
PRODUCT_STANDALONE_SYSTEM_SERVER_JARS. The environment variable will
then be comsumed by odrefresh to determine what jars to preopt on early
boot.

Note that the variable should not end with "CLASSPATH" because the list
is not used by runtime as a classpath. It is just a colon-separated list
of jars. System server loads the jars separately with paths hardcoded in
the code.

Bug: 203198541
Test: manual -
  1. Add some jars to PRODUCT_STANDALONE_SYSTEM_SERVER_JARS
  2. Add some other jars to PRODUCT_APEX_STANDALONE_SYSTEM_SERVER_JARS
     and standalone_contents.
  3. Build an image.
  4. Flash the image to a device.
  5. adb shell echo \$STANDALONE_SYSTEMSERVER_JARS
  6. See the correct list of jars.
Change-Id: I09a6fd1d3db85c194330da9b751702a9bf069e26
2021-11-30 10:51:10 +00:00
Sorin Basca
c0244da203 Adding configuration support for Java 11
Bug: 195387073
Test: m
Change-Id: Ibf26f35b83b300acacae800f9962a00916869412
2021-11-26 17:26:33 +00:00
Treehugger Robot
d3469e639e Merge "Do not pass --compiler-filter=speed-profile with --profile-file." am: b0879c843f am: e1ce0800cf am: cf93fbabf0 am: 312313aaba
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1899014

Change-Id: I378c29d19c446a0b5a07228d1b67d0152b5f8202
2021-11-25 21:40:54 +00:00
Treehugger Robot
b0879c843f Merge "Do not pass --compiler-filter=speed-profile with --profile-file." 2021-11-25 20:42:31 +00:00
Pedro Loureiro
ba6682fabf Fix attribute names in generated permissions.xml
Previously it would write min_device_sdk whereas the correct name should
be min-device-sdk. This happened for all shared libs attributes.

Test: m nothing
Test: manually installed an apex with a shared lib and made sure PM used
the attributes as expected

Bug: 191978330

Change-Id: Iecf7edd6bae98c7af908d3f320f10ae4973d0396
Merged-In: Iecf7edd6bae98c7af908d3f320f10ae4973d0396
(cherry picked from commit bde653e5fd)
2021-11-24 17:09:20 +00:00
Pedro Loureiro
c362142438 Perform validation of shared library attributes
Perform consistency checks as per http://go/updatable-shared-libraries

These include:
  * no attribute can specified can be less than T
  * max-device-sdk can't be less than min-device-sdk
  * min and max-device-sdk need to be at least the module's
  min_sdk_version
  * using on-bootclasspath-before implies that the module's
  min_sdk_version is at least T or the library has min-device-sdk of at
  least T

Test: m nothing

Bug: 191978330

Change-Id: Iaca5cf23fb0bc7e65effb3529c8e829560894c2e
Merged-In: Iaca5cf23fb0bc7e65effb3529c8e829560894c2e
(cherry picked from commit f9e584dd20)
2021-11-24 17:09:19 +00:00