Commit Graph

19238 Commits

Author SHA1 Message Date
Paul Duffin
46dc45aba9 java_sdk_library: Access outputs using tags
Previously, in order to access say the public stubs source jar it was
necessary to directly reference the module by name. This change adds
support for accessing them indirectly via tags.

Test: nothing
Bug: 155164730
Change-Id: Id6d76e56c7b46944b2d2a44a2163fb05a5b03de9
2020-05-20 18:01:54 +01:00
Paul Duffin
0f8faffdc0 java_sdk_library: Improve consistency with ..._import
The scopePaths struct is used by both java_sdk_library and its prebuilt
but was not populated in the same way. This change addresses those
discrepancies in preparation for a follow up change which will allow
access to some of those fields through OutputFileProvider.

Changes:
* Document the scopePaths field and struct.
* Switch those fields that may not be fully populated from Paths to
  OptionalPath to make that 100% clear and protect against unchecked
  use.
* Switch java_sdk_library_import to use the dependency extraction
  mechanism driven by the dependency tag. This should actually have
  been part of the change that added that mechanism.
* Only create prebuilt_stubs_sources if sources have been provided.
* Add dependencies from java_sdk_library_import on its stubs source
  child modules if sources have been provided. That will ensure the
  stubsSrcJar field is updated.
* Updates current/removedApiFilePath if provided for the scope in
  java_sdk_library_import.
* Extracts ApiStubsSrcProvider from ApiStubsProvider to allow it to
  be implemented by PrebuiltStubsSources so that it can provide access
  to the stubs src jar that it creates.

Test: m nothing
Bug: 148080325
Bug: 155164730
Change-Id: Ic5bf884b2b1e79841843e7c3b4642796ecd49f5d
2020-05-20 18:00:45 +01:00
Paul Duffin
803a9565cd java_sdk_library: Add redirection to module-lib stubs
Previously, when using sdk_version: "module_current" any direct
reference to an sdk library would use the public not module-lib stubs.
This change corrects that.

Prior to the addition of the module-lib api scope almost all
java_sdk_library instances supported all the scopes to which a request
for jars could be redirected, i.e. public, system and test. The
exceptions to that are a few special instances that were used with
sdk_version: "none" and so were either caught by the java_sdk_library
special cases or dropped through to public.

The addition of module-lib, plus the flexible control over which scopes
are generated means that is no longer true. It is possible for a
java_sdk_library to be requested for a scope it does not have which
would have resulted in an empty set of paths being returned leading to
confusing compilation errors.

To avoid that this change also adds support for using the inheritance
hierarchy defined by the apiScope.extends field to fall back to the
closest available surface.

Test: m nothing
Bug: 155164730
Change-Id: I6aab75a772433ee0a36b6f1758a4aec4be2f9a49
2020-05-20 18:00:45 +01:00
Paul Duffin
b05d4295de java_sdk_library: Extract common stubs redirect code
The java_sdk_library and java_sdk_library_import redirect a request for
header and implementation jars to broadly the same place although the
java_sdk_library does have some special code that is mixed in with the
common code.

This change separates the java_sdk_library special code from the common
code and moves the common code into its own method for use by both
module types. That makes the special behavior clearer and ensures the
common behavior remains consistent in future.

Test: m nothing
Bug: 155164730
Change-Id: I53e41a18792488aefd6a886c587559e90b3c4fde
2020-05-20 18:00:45 +01:00
Liz Kammer
ff000d65d4 Merge "Add signing linage support for android_app_import" 2020-05-20 15:21:16 +00:00
Ulyana Trafimovich
7bdb5e5aaa Merge "Add a test for boot.zip (zip archive with boot image files)." 2020-05-20 08:29:21 +00:00
Ulyana Trafimovich
7645764e58 Merge "Raise an error instead of panic in SplitApexJarPairs." 2020-05-20 08:28:43 +00:00
Treehugger Robot
4cb7fc05ae Merge "Revert "Use aapt2 flag --rename-resources-package in soong"" 2020-05-19 23:30:08 +00:00
Treehugger Robot
28f34bf920 Merge "Correct apex data in androidmk for flattened apex" 2020-05-19 19:18:53 +00:00
Liz Kammer
1d5983b0f6 Revert "Use aapt2 flag --rename-resources-package in soong"
This reverts commit 1674f9b4e9.

Reason for revert: Breaks build

Change-Id: I465300eba68b62d65a0c0660b6bc283e4c89253b
2020-05-19 19:15:37 +00:00
Liz Kammer
2497899bb6 Add signing linage support for android_app_import
(This is a cherry pick.)

Test: app_test
Bug: 153366049
Merged-In: I260f198637a1a0f8b3373250413356785c56588a
Change-Id: I260f198637a1a0f8b3373250413356785c56588a
2020-05-19 09:00:25 -07:00
Liz Kammer
f32bbf89de Merge "Use aapt2 flag --rename-resources-package in soong" 2020-05-19 14:59:04 +00:00
Liz Kammer
345e25783a Correct apex data in androidmk for flattened apex
Incorrectly used fmt.Println, printing to stdout instead of the desired
file.

Test: m com.android.art.testing
Bug: 155820504
Change-Id: I1aaf15de4f18f71710bc344bc8f71723e9756ad4
2020-05-19 07:38:59 -07:00
Ulyana Trafimovich
56b92cf177 Merge "Refactor test to use Go subtests idiom." 2020-05-19 13:28:59 +00:00
Jiyong Park
550ff8cbfc Merge "Revert "Revert "Allow libz to have stub even though it's not an ..."" 2020-05-19 12:06:00 +00:00
Ulya Trafimovich
7caef20553 Refactor test to use Go subtests idiom.
This way a failure in some subtests doesn't prevent other subtests
from running.

Test: m nothing
Change-Id: I6ec658505e26a00253d2c204f1614fcb15b8c2a2
2020-05-19 12:00:52 +01:00
Ulya Trafimovich
86d9e3a7b7 Add a test for boot.zip (zip archive with boot image files).
Test: m nothing
Bug: 152593075
Change-Id: Ibd07bdbd7d66312d32c9f461a082ffbba7112030
2020-05-19 11:19:20 +01:00
Jiyong Park
2478e4e98f Revert "Revert "Allow libz to have stub even though it's not an ..."
Revert submission 1313718-revert-1312595-zlib_as_stub-BVNRLZPNBJ

Reason for revert: relanding

Reverted Changes:
I0cf486d9b:Revert "libz provides stubs to Mainline modules."
I412132f8a:Revert "libz is a stub"
I617eb90a3:Revert "Allow libz to have stub even though it's n...

Exempt-From-Owner-Approval: this is a clean relanding.

Test: m

Change-Id: Ib09a615bd11cf2647dcad42108adfcfc5040940f
2020-05-19 10:04:55 +00:00
Paul Duffin
6b3ca917b0 Merge "Syntax check generated Android.bp snapshot" 2020-05-19 07:53:27 +00:00
Treehugger Robot
7b7aa8c3ef Merge "Update ninja proto, always enable ninja -d stats" 2020-05-19 03:20:34 +00:00
Jiyong Park
5a33a3cac6 Merge "Reland "Prevent statically linking to a lib providing stable C APIs"" 2020-05-19 02:21:54 +00:00
Dan Willemsen
082182275f Update ninja proto, always enable ninja -d stats
The stats output will now use the new "DEBUG" message type, which we can
always redirect to verbose.log.gz.

Test: m aprotoc  (look in verbose.log.gz)
Change-Id: Ie1b58f12c008ff7d29f11ff7a9807488dba8a504
2020-05-18 17:52:28 -07:00
Liz Kammer
1674f9b4e9 Use aapt2 flag --rename-resources-package in soong
This change uses aapt2 flag to change the package name encoded in the
resources table for override apps.

Test: app_test.go
Bug: 147434671
Change-Id: I70a43c2163709afc90262d74f975ce14a556cf55
2020-05-18 15:10:21 -07:00
Colin Cross
49e94c0a92 Merge "Use system modules for prebuilt SDKs >=30" 2020-05-18 19:02:43 +00:00
Treehugger Robot
5b79950e99 Merge "Append whole_static_libs deps from .a files instead of the list of objects." 2020-05-18 09:41:41 +00:00
Jiyong Park
03c694d070 Merge "Revert "Allow libz to have stub even though it's not an LLNDK li..."" 2020-05-18 09:27:35 +00:00
Jiyong Park
f133c18a00 Revert "Allow libz to have stub even though it's not an LLNDK li..."
Revert submission 1312595-zlib_as_stub

Exempt-From-Owner-Approval: reverting a bad change

Reason for revert: broke rvc-dev-plus-aosp
Reverted Changes:
I7c0a7f954:libz is a stub
If51a7e80f:libz provides stubs to Mainline modules.
I26417bb78:Allow libz to have stub even though it's not an LL...

Change-Id: I617eb90a33eacc7f264551c969ff5a16fa0d4087
2020-05-18 09:26:30 +00:00
Treehugger Robot
b4ce1e972c Merge "Allow libz to have stub even though it's not an LLNDK library" 2020-05-18 08:32:27 +00:00
Treehugger Robot
1d9e2364ed Merge "Add test_mainline_modules to the auto-gen test config(AndroidJUnitTest only)." 2020-05-18 01:50:49 +00:00
Paul Duffin
0d3c2e136b Extract common behavior between Module and Import
Although the duplication being eliminated here is minimal follow up
changes will add more functionality that is common to Module and
Import.

Test: m nothing
Bug: 156723295
Change-Id: I1733405526764272beba63470a9bc8a958d41024
2020-05-17 13:32:13 +01:00
Jiyong Park
7d95a510cc Reland "Prevent statically linking to a lib providing stable C APIs"
This reverts commit 5b75774004.

Exempt-From-Owner-Approval: cherry-pick from internal

Bug: 151051671
Test: m
Merged-In: I05f0465976098941d47ecc06c978cfa116364d78
(cherry picked from commit af7ed39b06)
Change-Id: I05f0465976098941d47ecc06c978cfa116364d78
2020-05-17 20:47:27 +09:00
Paul Duffin
a18abc2a61 java_sdk_library: Remove unnecessary qualification of fields
Fields in embedded structures can be accessed without qualifying them
by the type of the embedded structure.

This reduces the size of follow up changes that switch java_sdk_library
from embedding Library.

Bug: 156618935
Test: m nothing
Change-Id: I84f294c6f02d5089055130c63f5fb0538a1f21b9
2020-05-16 19:29:59 +01:00
Treehugger Robot
781baf01eb Merge "Remove unnecessary copying of common properties" 2020-05-16 14:22:01 +00:00
Paul Duffin
1dbe3ca254 Remove unnecessary copying of common properties
The (Soc/Device/Product/System_ext)_specific are all properties in
ModuleBase.commonProperties. Initially, they were explicitly copied
from the parent to the child. Since then the CreateModule() method
was modified to automatically copy all the commonProperties from the
parent to the child so this code is no longer necessary.

Bug: 156618935
Test: m nothing
      checked that it does not change the generated xml permissions
	  file for a java_sdk_library that sets soc_specific: true and
	  is in the vendor partition.
Change-Id: I8c985b50cb6b6c019b33a4652de482ded689fee4
2020-05-16 13:06:55 +01:00
Colin Cross
17dec171b4 Use system modules for prebuilt SDKs >=30
Prebuilt SDKs >=30 now contain core-for-system-modules.jar,
convert them to system modules and use them when compiling against
the SDK to allow using javac -source 1.9 -target 1.9.

Bug: 117069453
Test: TestClasspath
Change-Id: Iebadad5980b952ed91c3ffd56cff1ce1827d3247
Merged-In: Iebadad5980b952ed91c3ffd56cff1ce1827d3247
2020-05-15 17:21:58 -07:00
Jaewoong Jung
805f2492e8 Merge "Add apex_set module." 2020-05-15 23:13:38 +00:00
Treehugger Robot
e070b8ebb4 Merge "Add lineage file to deps for signapk." 2020-05-15 20:48:09 +00:00
Oliver Nguyen
349b97d88a Merge "Ignore pass-failed warnings on coverage builds." 2020-05-15 19:47:00 +00:00
Jaewoong Jung
fa00c06187 Add apex_set module.
apex_set takes an .apks file that contains a set of prebuilt apexes with
different configurations. It uses extract_apks to select and install the
best matching one for the current target.

Bug: 153456259
Test: apex_test.go
Test: com.android.media.apks
Change-Id: I1da8bbcf1611b7c580a0cb225856cbd7029cc0a7
2020-05-15 11:02:01 -07:00
Treehugger Robot
8cf3e5471d Merge "Remove apex_available whitelist for the extservices APEX" 2020-05-15 14:46:43 +00:00
Treehugger Robot
e3fa145692 Merge "Fix special case when appending a visibility rule to //visibility:private." 2020-05-15 14:08:24 +00:00
Treehugger Robot
198c946c8a Merge "Replace javaLibrary with java.Dependency,android.Module" 2020-05-15 13:17:32 +00:00
Treehugger Robot
715cd52e4d Merge "Include runtime-module-sdk in the SDK build." 2020-05-15 12:29:36 +00:00
Jaewoong Jung
a3e8885658 Merge changes from topic "prebuilt_apk_set"
* changes:
  Implement android_app_set module
  Implement extract_apks
2020-05-15 12:13:43 +00:00
Jiyong Park
844c3a031d Allow libz to have stub even though it's not an LLNDK library
Bug: 155456180
Test: m
Change-Id: I26417bb78a0d585eefc852c2aa118bfd71b5748b
2020-05-15 16:30:41 +09:00
Treehugger Robot
59759dff24 Merge "Restore "Default to zero-initialization instead of pattern."" 2020-05-15 05:20:35 +00:00
easoncylee
5bcff5d1fd Add test_mainline_modules to the auto-gen test config(AndroidJUnitTest only).
To support parameterized mainline modules in Test Mapping, we plan to
add a new parameter called test_mainline_modules in build system to
auto-generate the test config based on the parameter.

For detailed information: go/test-mapping-mainline-gcl
(search for auto-generated pattern)

Bug: 155238134
Test: add "test_mainline_modules: [some.apk]" to TetheringTests,
and build the modules, confirm the parameterized option is added
in the test config.

Change-Id: I41ba8749ce46da62db402a8b8a555d4874e1cfc0
2020-05-15 12:50:48 +08:00
Sasha Smundak
a7856c0077 Implement android_app_set module
Bug: 152319766
Test: manual and builtin
Change-Id: Id0877476f9ae23311d92c0b59a9c568140ab4119
2020-05-14 19:01:11 -07:00
Sasha Smundak
7a894a6643 Implement extract_apks
Bug: 152319766
Test: manual and builtin
Change-Id: Ia15d66e86c7bcfd52f5b776173ca1665b68ff438
2020-05-14 19:00:59 -07:00
Oliver Nguyen
46f6dd78ff Ignore pass-failed warnings on coverage builds.
Clang coverage can disable certain passes, which throws a warning. Some
modules treat all warnings as errors, causing them to fail to build with
Clang coverage. Disable this warning only on coverage builds, as it is
still a useful warning for non-coverage builds.

Bug: 156609447
Test: m CLANG_COVERAGE=true COVERAGE_PATHS='*' libyuv
Change-Id: I1146befc382931f7eb0f1145ec63b90757600b61
2020-05-15 00:10:44 +00:00