Commit Graph

3189 Commits

Author SHA1 Message Date
Ulyana Trafimovich
624c465e6b Merge "Propagate transitive SDK Java library dependencies to dexpreopt." am: b8822a0616 am: eb285d43fe am: 2ff8b5df62 am: f8c069ca19 am: c7d89b38e2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1408708

Change-Id: I30014080ce51b95821156d4b20302ca7131f40ef
2020-08-28 12:07:35 +00:00
Ulyana Trafimovich
2ff8b5df62 Merge "Propagate transitive SDK Java library dependencies to dexpreopt." am: b8822a0616 am: eb285d43fe
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1408708

Change-Id: Iecbedae2d07363f625a0fecba1f4a7adedcdd860
2020-08-28 10:35:50 +00:00
Ulyana Trafimovich
b8822a0616 Merge "Propagate transitive SDK Java library dependencies to dexpreopt." 2020-08-28 09:36:13 +00:00
Treehugger Robot
a9fac3ef44 Merge "Introduce BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES" am: 10a3873a80 am: 21f698a5c6 am: 8edb789774 am: 91fb8f782e am: 5067b5d87e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1393237

Change-Id: I6910b1fe2122209623459687dfdb62e5dcef419a
2020-08-28 06:13:20 +00:00
Treehugger Robot
8edb789774 Merge "Introduce BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES" am: 10a3873a80 am: 21f698a5c6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1393237

Change-Id: I54c57cad9d581fea5fba5ce30f1465f54b9e276c
2020-08-28 04:59:26 +00:00
Jeongik Cha
219141c6bb Introduce BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES
If BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES has a numeric value,
it replaces "current" or "system_current" with the version which
the flag indicates.

Bug: 163009188
Test: BOARD_CURRENT_API_LEVEL_FOR_VENDOR_MODULES=29 m, and then check if every vendor
java module's sdk_version is 29 if its sdk_version was current.

Change-Id: I17b49b8e02caf2d1bc57b91648d4420f3ad9fcb9
2020-08-27 23:09:54 +09:00
Ulya Trafimovich
fc24ad3d4e Propagate transitive SDK Java library dependencies to dexpreopt.
For some dependencies, like stubs, the SDK library may not be found at
build time (either because the implementation library is not among the
dependencies of the dexpreopted module, or because it's part of a
prebuilt, or because it's missing from the build altogether). In such
cases dexpreopt is useless, because dex2oat does not have access to the
full classpath (unless the &-classpath is used). Therefore do not
dexpreopt in such cases.

Test: lunch aosp_cf_x86_phone-userdebug && m
Bug: 132357300
Change-Id: If289088cfd103011ccb16165e95a97b30fd31b81
2020-08-27 11:47:15 +01:00
Treehugger Robot
49f641e5e9 Merge "Support ninja rsp files in soong_zip" am: 4c2e4f381a am: 1e4fbc23bf am: 15bbb3b646 am: 905f3fe3f8 am: eecb1b577d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405368

Change-Id: I3281a64f94f9310be02c02ad2f8981b9fa3cdf42
2020-08-24 23:12:16 +00:00
Liz Kammer
56fda241cf Merge "Add imports_sdk_version to prebuilt_apis" am: 9c07d24477 am: 380c67920e am: 299ac6f313 am: bb6e43e084 am: 528bdb3a72
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1397557

Change-Id: I4d9644f390a92a104c0770b6d6ca420cf9dac4c9
2020-08-24 21:15:11 +00:00
Treehugger Robot
15bbb3b646 Merge "Support ninja rsp files in soong_zip" am: 4c2e4f381a am: 1e4fbc23bf
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405368

Change-Id: Iaea9c5749421e82a8a9f2c713c2d53c8abf44663
2020-08-24 20:03:37 +00:00
Treehugger Robot
4c2e4f381a Merge "Support ninja rsp files in soong_zip" 2020-08-24 18:40:56 +00:00
Liz Kammer
299ac6f313 Merge "Add imports_sdk_version to prebuilt_apis" am: 9c07d24477 am: 380c67920e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1397557

Change-Id: I437525704afad81236bca0a87187a3491e34235d
2020-08-24 18:27:44 +00:00
Liz Kammer
9c07d24477 Merge "Add imports_sdk_version to prebuilt_apis" 2020-08-24 16:50:51 +00:00
Treehugger Robot
1baa7b7421 Merge "Add extra_test_configs option" am: ec7a91f9fa am: 82448f2d2d am: 180a485b50 am: 437bb3b11d am: 57fa8ee91c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1402168

Change-Id: Ib63b87c02158c5454806a3f14c1aaf9ae890e387
2020-08-21 18:43:33 +00:00
Treehugger Robot
180a485b50 Merge "Add extra_test_configs option" am: ec7a91f9fa am: 82448f2d2d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1402168

Change-Id: If619742e8271e804231d029a87f5fa1297959488
2020-08-21 17:26:05 +00:00
Treehugger Robot
ec7a91f9fa Merge "Add extra_test_configs option" 2020-08-21 16:22:43 +00:00
Treehugger Robot
aac4ca8e57 Merge "Remove duplicated use of UsesLibraryDependency" am: f5a2b8a641 am: bc9a8dfc01 am: dae8b9a6dd am: 3a7aeecb5b am: c52d6cc3fe
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405677

Change-Id: Id0a5bc06e01abf2031c9c112a4daa9020c9df782
2020-08-21 11:27:00 +00:00
Ulyana Trafimovich
03c201fe18 Merge "Use common helper functions for getting sorted map keys." am: 49b1e9b6ce am: d972866eb5 am: 9f3062747a am: 4334875793 am: 6f53dedf85
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1404519

Change-Id: I6dcb6c6e271802ce91ded52c3b2e689dcb3d671d
2020-08-21 11:26:47 +00:00
Ulyana Trafimovich
d1fa0cf81f Merge "Propagate transitive <uses-library> dependencies through static libraries." am: bde92fc6be am: df14a1b9c2 am: c3036fea58 am: 63c7276405 am: 61e808e1c9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1404787

Change-Id: Ic1bb9fe886b1c29099613b235561d339e5d2e989
2020-08-21 11:26:23 +00:00
Treehugger Robot
dae8b9a6dd Merge "Remove duplicated use of UsesLibraryDependency" am: f5a2b8a641 am: bc9a8dfc01
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405677

Change-Id: Iad7b631ad3d82d91bf83e0b997e04087ea59a7c3
2020-08-21 10:20:12 +00:00
Ulyana Trafimovich
9f3062747a Merge "Use common helper functions for getting sorted map keys." am: 49b1e9b6ce am: d972866eb5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1404519

Change-Id: I0f54749723d7883712243d813f41321d3400a899
2020-08-21 10:19:59 +00:00
Ulyana Trafimovich
c3036fea58 Merge "Propagate transitive <uses-library> dependencies through static libraries." am: bde92fc6be am: df14a1b9c2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1404787

Change-Id: If5cdcd9ac021315fd44aca73fdc14ec63cce4b7c
2020-08-21 10:19:46 +00:00
Treehugger Robot
f5a2b8a641 Merge "Remove duplicated use of UsesLibraryDependency" 2020-08-21 10:01:58 +00:00
Ulyana Trafimovich
49b1e9b6ce Merge "Use common helper functions for getting sorted map keys." 2020-08-21 09:36:30 +00:00
Ulyana Trafimovich
bde92fc6be Merge "Propagate transitive <uses-library> dependencies through static libraries." 2020-08-21 09:36:10 +00:00
Treehugger Robot
952140ab59 Merge "Reland: Deduplicate APEX variants that would build identically" am: 68bfe074c6 am: a3d1c127a2 am: 4d9984eeb1 am: 76309aab5d am: a106e405e9
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405087

Change-Id: I5ba652222b6c9ed40fd8c643f92485b26842bd9b
2020-08-21 08:43:24 +00:00
Treehugger Robot
4d9984eeb1 Merge "Reland: Deduplicate APEX variants that would build identically" am: 68bfe074c6 am: a3d1c127a2
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1405087

Change-Id: I7cf0c8d2c27757395e54fb4cc8592f438aa6ccaa
2020-08-21 07:38:47 +00:00
Treehugger Robot
68bfe074c6 Merge "Reland: Deduplicate APEX variants that would build identically" 2020-08-21 06:46:51 +00:00
Treehugger Robot
5f7fa4ce75 Merge "Capture list of unused methods when shrinking in R8" am: c23d6031b0 am: 305935590d am: c4882aad53 am: 9a1eb54d81 am: 1f67506d6c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1401848

Change-Id: I706f472e6d5771d2ba533c9d1f1ed28fe7d40fba
2020-08-21 02:03:15 +00:00
Treehugger Robot
c4882aad53 Merge "Capture list of unused methods when shrinking in R8" am: c23d6031b0 am: 305935590d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1401848

Change-Id: Ib4b985bd627d57a210c0d49c1e2e933ba958dba0
2020-08-21 00:49:14 +00:00
Treehugger Robot
c23d6031b0 Merge "Capture list of unused methods when shrinking in R8" 2020-08-21 00:28:24 +00:00
Liz Kammer
9b7ecd76f5 Remove duplicated use of UsesLibraryDependency
This was resulting in a soong java test failure:
./java.go:994:80: ambiguous selector dep.DexJarBuildPath
./java.go:994:103: ambiguous selector dep.DexJarInstallPath
./java.go:2595:58: ambiguous selector dep.DexJarBuildPath
./java.go:2595:81: ambiguous selector dep.DexJarInstallPath
./sdk_library.go:879:2: duplicate method DexJarBuildPath
./sdk_library.go:879:2: duplicate method DexJarInstallPath

Test: go test java tests
Test: m
Change-Id: I34465907f917d94be643be7322215fc35fc5fbe6
2020-08-20 13:50:42 -07:00
Liz Kammer
2d2fd859bb Add imports_sdk_version to prebuilt_apis
This allows setting the prebuilt sdk's generated java_imports
sdk_version to "none".

Test: go tests
Test: m
Bug: 160455085
Change-Id: Id24aca811f0f09692971e63418da6685d8351737
2020-08-20 09:48:50 -07:00
Ulyana Trafimovich
e2b33e00a1 Merge "Collect paths to transitive SDK Java library dependencies." am: 9ce2221791 am: 9b67bbd11c am: b8595bcb8c am: 74919bc5da am: 554e7bbd27
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1402668

Change-Id: Ic74754154669f4767837bfa1937b3ee18cf71d10
2020-08-20 11:48:55 +00:00
Ulya Trafimovich
b8063c6a86 Use common helper functions for getting sorted map keys.
Add a new helper SortedIntKeys similar to SortedStringKeys.

Test: lunch aosp_cf_x86_phone-userdebug && m
Change-Id: I08a43ec2cae7d1a82531295aca1a0658e3a0dd6f
2020-08-20 12:37:03 +01:00
Ulya Trafimovich
4b6d4c12cc Propagate transitive <uses-library> dependencies through static libraries.
Bug: 163037089
Test: lunch aosp_cf_x86-userdebug && m nothing
Test: added testcase in Soong
Change-Id: I943d497d779ca218a16e7208029189a1a69086c1
2020-08-20 12:34:42 +01:00
Ulyana Trafimovich
b8595bcb8c Merge "Collect paths to transitive SDK Java library dependencies." am: 9ce2221791 am: 9b67bbd11c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1402668

Change-Id: Ib15bc0cb3fd0d53506eb36f895f04dfc8665df24
2020-08-20 11:11:01 +00:00
Ulyana Trafimovich
9ce2221791 Merge "Collect paths to transitive SDK Java library dependencies." 2020-08-20 10:37:58 +00:00
Dan Shi
95d19422a6 Add extra_test_configs option
Bug: 163344047
Test: m -j HelloWorldHostTest hello_world_test HelloWorldTests
Change-Id: I237e3aa3f40df1f6387ba8ff6a16e56535cdeae9
2020-08-19 15:27:03 -07:00
Colin Cross
053fca10c9 Support ninja rsp files in soong_zip
Add a -r argument to soong_zip that reads a list of files from a file
like the -l argument but treats it as a Ninja rsp file with escaping.
Replace the -l arguments in Soong that are using rsp files with -r.

Fixes: 162435077
Test: TestReadRespFile, TestZip
Change-Id: I4605312e99406ab1bd0c37af9c5ad212393f0403
2020-08-19 21:18:56 +00:00
Colin Cross
cb6143a142 Capture list of unused methods when shrinking in R8
Use the -printusage flag in R8 to output a list of the unused
methods.  Some of the files can be large (2MB for DocumentsUI,
87MB for all of AOSP), so immediately zip them and remove the
originals.  The zipped files will be merged and disted.

Bug: 151857441
Test: m TARGET_BUILD_APPS=DocumentsUI dist
Change-Id: I780e84e80eba7fe4d4fa15fec0f461890afd900b
2020-08-19 11:19:14 -07:00
Colin Cross
aede88c1c7 Reland: Deduplicate APEX variants that would build identically
APEX variants that share the same SDK version and updatability
almost always use identical command line arguments to build but
with different intermediates directories.  This causes unnecessary
build time and disk space for duplicated work.

Deduplicate APEX variants that would build identically.  Create
aliases from the per-APEX variations to the new shared variations
so that the APEX modules can continue to depend on them via the
APEX name as the variation.

This has one significant change in behavior.  Before this change,
if an APEX had two libraries in its direct dependencies and one
of those libraries depended on the other, and the second library
had stubs, then the first library would depend on the implementation
of the second library and not the stubs.  After this change, if
the first library is also present in a second APEX but the second
library is not, then the common variant shared between the two
APEXes would use the stubs, not the implementation.

In a correctly configured set of build rules this change will
be irrelevant, because if the compilation worked for the second
APEX using stubs then it will work for the common variant using
stubs.  However, if an incorrect change to the build rules is
made this could lead to confusing errors, as a previously-working
common variant could suddenly stop building when a module is added
to a new APEX without its dependencies that require implementation
APIs to compile.

This change reduces the number of modules in an AOSP arm64-userdebug
build by 3% (52242 to 50586), reduces the number of variants of the
libcutils module from 74 to 53, and reduces the number of variants
of the massive libart[d] modules from 44 to 32.

This relands I0529837476a253c32b3dfb98dcccf107427c742c with a fix
to always mark permissions XML files of java_sdk_library modules as
unique per apex since they contain the APEX filename, and a fix
to UpdateUniqueApexVariationsForDeps to check ApexInfo.InApexes
instead of DepIsInSameApex to check if two modules are in the same
apex to account for a module that depends on another in a way that
doesn't normally include the dependency in the APEX (e.g. a libs
property), but the dependency is directly included in the APEX.

Bug: 164216768
Test: go test ./build/soong/apex/...
Change-Id: I2ae170601f764e5b88d0be2e0e6adc84e3a4d9cc
2020-08-19 10:21:17 -07:00
Ulya Trafimovich
31e444e101 Collect paths to transitive SDK Java library dependencies.
Previously only the names were collected, and later used in the
manifest_fixer to add missing <uses-library> entries to the manifest.
Now we also need to collect build-time and on-device paths, to be used
in class loader context for dexpreopt. This commit only collects paths,
but does not pass them to dexpreopt yet.

Test: lunch aosp_cf_x86_phone-userdebug && m
Bug: 132357300
Change-Id: I34b229ee68f16ba215ba03770feadb4d890ec2bf
2020-08-19 13:51:21 +01:00
Treehugger Robot
2172bcbfd6 Merge "Revert "Deduplicate APEX variants that would build identically"" am: fc4d79598c am: b1d3c4c4d7 am: 671aed59c9 am: d65caf6abb am: a9862dd9d3
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1403647

Change-Id: I4a6c1fd673b35a260e865b183e0cfd6b3d67bd4e
2020-08-18 18:13:38 +00:00
Treehugger Robot
671aed59c9 Merge "Revert "Deduplicate APEX variants that would build identically"" am: fc4d79598c am: b1d3c4c4d7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1403647

Change-Id: Ia2db2038480c3e09e7c82c1766f9b922e5cc6a11
2020-08-18 17:42:08 +00:00
Treehugger Robot
fc4d79598c Merge "Revert "Deduplicate APEX variants that would build identically"" 2020-08-18 17:19:40 +00:00
Pete Bentley
0c7b26e0e2 Revert "Deduplicate APEX variants that would build identically"
This reverts commit d6b2525b00.

Reason for revert: <Breaks tests - confirmed by Forrest: b/165188843>

Change-Id: I7cb68cb87522415004390c0672dc774e0067b122
2020-08-18 13:44:59 +00:00
Anton Hansson
90dbcdb542 Merge "Remove special-cased stub deps on framework-res" am: 85f59b7b54 am: ac3addb71b am: f05025fc83 am: 85ccb136d1 am: 40982d03de
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1398475

Change-Id: Ica2afd5a43ac8add7f86c6408f44245f178c2995
2020-08-18 13:00:40 +00:00
Anton Hansson
6198e11032 Merge "Add a tagged output for app's exportPackage" am: 72ce814def am: 8dffd9e1aa am: 6d1e6d0d84 am: 610adb9309 am: ce0f15cf84
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1398474

Change-Id: I1606f9ccf0f77491bbc85441b0665391ed39bead
2020-08-18 12:24:55 +00:00
Anton Hansson
f05025fc83 Merge "Remove special-cased stub deps on framework-res" am: 85f59b7b54 am: ac3addb71b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1398475

Change-Id: I8583cf3e9050ac60a3e1147c030090668e8ddbaf
2020-08-18 12:21:53 +00:00