Commit Graph

3571 Commits

Author SHA1 Message Date
Anton Hansson
ea74599a08 Merge "Stop allowing missing last-api files by default" am: 591920fcfa am: 55677bc46b am: f6e4184684
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1534347

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2c763c877ad92b57fd2a6408f9d64f4aa5b9f1ef
2020-12-31 09:58:02 +00:00
Anton Hansson
9790c37691 Merge "Set previous_api correctly for java_sdk_library" am: 6b8c40036c am: a3804d57a2 am: 003604862b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1534348

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I0237942bb160abd3a2711fc661be9a951b6593fc
2020-12-31 09:57:52 +00:00
Anton Hansson
591920fcfa Merge "Stop allowing missing last-api files by default" 2020-12-31 08:53:45 +00:00
Anton Hansson
e87b03d1bb Set previous_api correctly for java_sdk_library
Metalava used this attribute to potentially re-write some nullness
annotations from @Nullable to @RecentlyNonNull, and not doing so can
cause problems when compiling kotlin.

Bug: 176092452
Test: m art.module.public.api.stubs && \
      rm -rf /tmp/lib && \
      unzip -qd /tmp/lib art.module.public.api.stubs.jar && \
      javap -v /tmp/lib/java/util/concurrent/ConcurrentHashMap.class | \
      grep Recently
Change-Id: I9012798f27e39d9a53dbcf0976548f6cec2d3150
2020-12-29 13:24:02 +00:00
Anton Hansson
0615864046 Stop allowing missing last-api files by default
Bug: 176092454
Test: m nothing
Change-Id: I9eadcb774e9898bb4f43054661826326b2c527c2
2020-12-29 13:20:42 +00:00
Jaewoong Jung
a375fe863a Merge "Break up app.go." am: 8bfb63c5a9 am: 1863d9abf8 am: 9aded01f3a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1533144

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I3fee391a2dcb19cffea855b44de33a9ecb329a26
2020-12-28 19:11:58 +00:00
Bill Peckham
64c2f473d9 Merge "Automatically set uncompress_dex for java_import." am: 3d419e3b3d am: 3f63ee855d am: f97a71309e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1536102

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I469451e1d992b1a2eab86a55dc65638fc9c3485f
2020-12-28 18:19:17 +00:00
Jaewoong Jung
8bfb63c5a9 Merge "Break up app.go." 2020-12-28 17:50:44 +00:00
Bill Peckham
3d419e3b3d Merge "Automatically set uncompress_dex for java_import." 2020-12-28 17:20:14 +00:00
Treehugger Robot
770149b347 Merge "Use soong_zip -srcjar for proto and aidl srcjars" am: b2d77d4a52 am: edeeabc7e0 am: 1df71d3d13
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1535580

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I139f9a33e0cf7a54448fb9c59183df37e3901ee8
2020-12-24 03:58:21 +00:00
Treehugger Robot
b2d77d4a52 Merge "Use soong_zip -srcjar for proto and aidl srcjars" 2020-12-24 03:04:37 +00:00
Colin Cross
cf02ec8747 Use soong_zip -srcjar for proto and aidl srcjars
IntelliJ's indexer is unhappy with the full paths in the proto
and aidl srcjars.  Use the -srcjar argument to soong_zip, which
causes it to extract the correct filename for .java files based on
the package statement in the file.

Bug: 176209347
Test: manual
Change-Id: I63d9d4f6ba670e3b851835d719519d675ae54c7f
2020-12-23 17:13:16 -08:00
Bill Peckham
ff89ffae0b Automatically set uncompress_dex for java_import.
Setting uncompress_dex for java_import in the same way
as java_library enables using a java_import as an art
jar or a boot jar.

Bug: 175619567
Test: m nothing
Test: TestHiddenAPISingletonWithPrebuilt
Change-Id: I0b552a11d1630a014cf978520ccc5977fdf74066
2020-12-23 16:13:04 -08:00
Treehugger Robot
fc84e8b4d7 Merge "Fix library order in class loader context to agree with PackageManager." am: 7dbc5786e3 am: 13b56f815f am: 49977f12c3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1535013

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I38389beaad89ec6177e4f9eedba3585ad9e8ae59
2020-12-23 21:17:19 +00:00
Treehugger Robot
7dbc5786e3 Merge "Fix library order in class loader context to agree with PackageManager." 2020-12-23 19:58:25 +00:00
Ulya Trafimovich
c9f2b9494d Fix library order in class loader context to agree with PackageManager.
PackageManager adds compatibility libraries for different SDK versions
in descending order, and Soong should do the same.

Bug: 132357300

Test: lunch aosp_cf_x86_phone-userdebug && m \
  && launch_cvd \
  && adb wait-for-device \
  && adb logcat | grep -E 'ClassLoaderContext [a-z ]+ mismatch'

  [no messages "ClassLoaderContext classpath element mismatch"]

Change-Id: Ib1d981808ae4022b2c6e73f407a003e8b8e9c7d6
2020-12-23 18:22:26 +00:00
Anton Hansson
496ea93244 Merge "Add attribute to disable last-api compat tracking" am: 74c8436ce0 am: 325936250d am: de5d8fb877
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1534344

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I77051ff3d3608e69284d707cb8353ba530dbc957
2020-12-23 10:19:04 +00:00
Anton Hansson
74c8436ce0 Merge "Add attribute to disable last-api compat tracking" 2020-12-23 09:05:46 +00:00
Jaewoong Jung
de6671062a Merge "Remove unnecessary snake case variables." am: e794b1e302 am: ce131b6fcf am: e3ec6f723e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1533880

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I2e481c45e9fcc2e0023c03aed89320c49678dc86
2020-12-23 02:15:09 +00:00
Jaewoong Jung
18aefc1977 Remove unnecessary snake case variables.
Test: m nothing + TreeHugger
Change-Id: I99f7162944daa6c57c6ae4763261e108bb5cb6b1
2020-12-22 12:38:35 -08:00
Colin Cross
08e19794be Merge "Add car packages to the legacy allowlist" 2020-12-22 19:09:18 +00:00
Colin Cross
0d39bf14ec Add car packages to the legacy allowlist
Car packages that were defined in Android.mk files need to be
added to the allowlist so they can be converted to Android.bp

Bug: 122333160
Test: m CarServiceTest DiagnosticTools
Change-Id: Ia7613f35c4392eac51c94b0d1da29ecac82eb103
2020-12-22 19:08:54 +00:00
Ulyana Trafimovich
7abbd99ddf Merge changes I6a512209,I56437f26 am: b630c37d61 am: 99d0a65605 am: 04072a75d2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1533342

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I032bbacddd19131010944a1340205e3244c6957d
2020-12-22 11:51:06 +00:00
Ulyana Trafimovich
b630c37d61 Merge changes I6a512209,I56437f26
* changes:
  Unify addition of class loader subcontext from dependencies.
  Move ClassLoaderContexts() method to UsesLibraryDependency interface.
2020-12-22 10:14:41 +00:00
Ulya Trafimovich
88bb6f6342 Unify addition of class loader subcontext from dependencies.
Previously CLC construction was scattered across different module types
and dependency tags. This CL moves all logic to one function, which
handles all special cases. This will allow to simplify CLC API and
reduce the number of different ways in which CLC is constructed.

Previously some of the cases failed early (at the time when a library is
added to CLC) if the build/install paths were unknown. Other cases did
not fail early, but were validated later before CLC was used. Late
failures are necessary because some of the libraries with unknown paths
still have to be processed by manifest_fixer (which doesn't need library
paths), but they do not use dexpreopt (which needs library paths). This
CL removes the early failures (all paths are still validated later).

The CLC tests do not fail because they use a private method that toggles
the "strict" flag (that enforces early/late failure mode) manually in
the method call.

The CL also makes a functional change in the way CLC is constructed for
component libraries that have an OptionalImplicitSdkLibrary(), or
libraries that are disguised as SDK libraries via `provides_uses_lib`.
Previously such a component/disguised library X was added to its own CLC
as a sibling element of X's own <uses-library> dependencies, which
created incorrect CLC structure. Now this is handled by addCLCFromDep,
when X is processed as dependency and added as a top-level CLC element
with its sub-CLC properly nested under it.

Bug: 132357300
Test: lunch aosp_cf_x86_phone-userdebug && m
Change-Id: I6a512209b87b81d785875f10f76b21c81b2ed579
2020-12-21 22:16:21 +00:00
Jaewoong Jung
f9b44657c8 Break up app.go.
Test: m nothing + TreeHugger
Change-Id: I64c6d7f10530c424bc282d8111dfaf9159426f00
2020-12-21 12:31:51 -08:00
Anton Hansson
dff2c78a20 Add attribute to disable last-api compat tracking
Setting this to true by default is dangerous as it can mask bugs. Create
a dedicated attribute for java_sdk_library to enable this behavior
instead. The default will be flipped in a future CL when all the current
offenders have been fixed.

Fix all the tests to have the right API files.

Bug: 176092454
Test: m nothing
Change-Id: Ieab94bcb74abf8d018365a56fb447fe3dbd46957
2020-12-21 17:25:30 +00:00
Jaewoong Jung
1e3bf98992 Merge "Remove the return value from dexpreopt" am: 4eb5048585 am: c08ca970c9 am: 3ab305b8f0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1532723

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic131cf490323f25a2a7cd5b81e574d72903c7492
2020-12-21 17:19:05 +00:00
Jaewoong Jung
4b97a56615 Remove the return value from dexpreopt
dexpreopt doesn't strip dex files from the input jar anymore, so there's
no point returning the input jar path untouched.

Test: m nothing + TreeHugger
Change-Id: I8fde6cdc19e85a2fbc946513696417b945c5de0f
2020-12-17 09:43:28 -08:00
Ulya Trafimovich
dbf31665ab Move ClassLoaderContexts() method to UsesLibraryDependency interface.
This method logically belongs with other UsesLibraryDependency methods,
as it is used in the same context when computing class loader context.
Previously it was part of Dependency interface, which doesn't cover SDK
libraries. We do not currently have the necessary information for
SdkLibraryImport (so ClassLoaderContexts() returns nil for it), but we
do have it for SdkLibrary (via Library).

Bug: 132357300
Test: m nothing
Change-Id: I56437f260efc6a9af3f45b334e84e915244ccce1
2020-12-17 15:05:26 +00:00
Treehugger Robot
5818f23004 Merge "Assert android.ApexModule interface for types having ApexModuleBase" am: 1a74be780b am: 7d3e31bd70 am: bb56da8ed0
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1530138

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Idc0a30d1747606337cfdfd4ce76495dcf4cadc05
2020-12-17 05:25:14 +00:00
Jiyong Park
45bf82e953 Assert android.ApexModule interface for types having ApexModuleBase
Bug: 173472337
Test: m nothing
Change-Id: Idf1c6cb9fff6c18e34c4636e38a662ba4ff7d538
2020-12-15 14:31:27 +00:00
Treehugger Robot
09d7f251ad Merge "Add dependency to list of asset files" am: 9ae3c52b20 am: d8e90b35dd am: 7d9f8d6137
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1494657

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I83cfab64bcd19accd4266bab030ff016cd63a1f6
2020-12-12 03:34:30 +00:00
Colin Cross
c20dc8533e Add dependency to list of asset files
We had a dependency on each file in the asset directories, but that
wouldn't cause aapt2 to run if a file was removed.  Add a dependency
on a file that contains the list of files in the asset directories.

Fixes: 172867096
Test: m CarrierConfig && rm packages/apps/CarrierConfig/assets/carrier_config_no_sim.xml && m CarrierConfig
Change-Id: I35f3b85355fa890a3e95eaa6458a21466b6930e4
2020-12-11 19:54:16 +00:00
Treehugger Robot
333f9b4c39 Merge "Remove AndroidMkExtraFootersFunc entries param." am: cac133df14 am: 528d2fdc51 am: e1ba585449
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1519314

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I855cb1808bfdf783ae4f16ece7c23bc6bda3f34c
2020-12-10 07:57:46 +00:00
Treehugger Robot
cac133df14 Merge "Remove AndroidMkExtraFootersFunc entries param." 2020-12-10 07:04:02 +00:00
Treehugger Robot
c1616617d7 Merge "Soong: remove output file before running signapk" am: 413c3bea63 am: 69ac81038a am: b6e8f09d2a
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1511908

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Id146521c3c0b5143d60d669ef22ddae491e73809
2020-12-09 18:02:21 +00:00
Treehugger Robot
413c3bea63 Merge "Soong: remove output file before running signapk" 2020-12-09 16:58:02 +00:00
Treehugger Robot
f4c3f8eab5 Merge "Soong: remove output file before running SoongZip" am: 5b0b94ecea am: a646d475a1 am: d1fb4184ad
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1511278

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I81b321db1bd3bc0f0000d0ba087cfe336e14c5ab
2020-12-09 09:18:08 +00:00
Treehugger Robot
5e0e7fefc0 Merge "Prebuilt is enabled even if the source one is not." am: 6bba8382af am: 0a30c0b67b am: e8f8ce9de4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1521068

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I9e1826d8026b8a978c0e750f4f36ad7f4186efb2
2020-12-09 08:37:12 +00:00
Treehugger Robot
5b0b94ecea Merge "Soong: remove output file before running SoongZip" 2020-12-09 08:05:06 +00:00
Jaewoong Jung
729c0bdb54 Prebuilt is enabled even if the source one is not.
This fix a bug in a recent android_app_import-related change
(I8215aa1a6dad74b503eaa1169a64f8c30dda287c) where it uses an incorrect
module reference, and so disables a prebuilt module if its source-based
counterpart is disabled.

Test: app_test.go
Bug: 152343232
Change-Id: Ic7f5ca40be58f06e44b5ec4945caf209ef2dae96
2020-12-08 19:11:54 -08:00
Paul Duffin
dd45854679 Merge changes Ie51f097e,Ibf26da14 am: c27dd1a9bb am: 1e030c5937 am: 50302f75e4
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1516939

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I47db682b373374210510684d38f8a75cd6c85524
2020-12-08 15:35:52 +00:00
Jaewoong Jung
02b11a6035 Remove AndroidMkExtraFootersFunc entries param.
I added in case anyone needs to access AndroidMkEntries to generate
footer lines, but nobody uses it, and it only confuses people.

Test: m nothing, TreeHugger
Change-Id: Ic8a450e3c306d9228c1fdec212c7441bd6aaee03
2020-12-07 10:23:54 -08:00
Paul Duffin
fc02166dab Use apex and jar to select boot image dex jar
Previously, only the <jar> part of the boot image configuration pair of
<apex>:<jar> was used to select the module that provides the boot image
dex. The name was sufficient to select the module but not the module
variant and it relied on the platform variant not being installed to
select a unique variant. Unfortunately, when modules are provided as
prebuilts they are not installed and so they get ignored.

This change removes the install check and instead checks the <apex> as
well to select a unique variant.

It also moves the DexJarBuildPath() and ApexModule checks to after
checking the name and treats them as errors. It is safe to do so
because every module that has the same name has to have the same module
type and in order for the module to be valid in the boot image
configuration it must pass those two checks. Treating these as errors
rather than silently ignoring them makes it easier to diagnose problems
with the configuration and/or the boot image modules.

Test: m droid
Bug: 171061220
Change-Id: Ie51f097e081907ea5b75d75840736b10d8d883e8
2020-12-07 17:36:53 +00:00
Paul Duffin
db77e14d84 Ensure that only one dex jar is chosen for each boot image library
This change does not break modules like "core-oj" that are in multiple
apexes, i.e. com.android.art, com.android.art.debug and
com.android.art.testing because they all shared the same variant. So,
the getBootImageJar() is only called once for that variant.

Test: m droid
Bug: 171061220
Change-Id: Ibf26da147af2b49ab9e4588030e8cd4002d04a7a
2020-12-07 17:30:48 +00:00
Jaewoong Jung
d40206c203 Merge "No matching variant android_app_import fix" am: 71debbfcc5 am: 3ebd82baca am: 6db9994f5f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1518388

Change-Id: I816b370228753e991643907d8a3443036aa001f9
2020-12-07 15:27:20 +00:00
Jaewoong Jung
71debbfcc5 Merge "No matching variant android_app_import fix" 2020-12-07 14:33:17 +00:00
Paul Duffin
407fd92ef7 Merge "Improve error messages for missing dependencies" am: 5e2697117f am: be6f1e64af am: 7d7a672aa2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1516937

Change-Id: If0b5d33c8799d4ce110d33993116e022b854c79a
2020-12-07 11:48:31 +00:00
Ulyana Trafimovich
1fe69eff47 Merge changes I697a65e4,Iaac6aaf6 am: 678ddb9d24 am: b75a82f874 am: 2061dacccc
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1515502

Change-Id: I5739e75889fea4a0af49751366da2d313fee8086
2020-12-07 11:46:32 +00:00