Commit Graph

1419 Commits

Author SHA1 Message Date
Colin Cross
127bb8b9f6 Don't rewrite LLNDK dependencies with .llndk suffix
Rewriting LLNDK dependencies with .llndk suffix requries referencing
a global data structure to determine if a given library is an LLNDK
library and therefore needs the .llndk suffix.  References to
global data structures from mutators must be removed to support
incremental Soong analysis.  Instead, move the LLNDK stubs rules
into the vendor variant of the implementing cc_library so that
the original name can be used.

As an incremental step, the llndk_library modules are left in
place, and the properties are copied into the cc_library via
the dependency specified by the llndk_stub property.  A followup
will move the LLNDK properties directly into the cc_library and
delete the llndk_library modules.

The global list of LLNDK libraries is kept for now as it is used
to generate the vndk.libraries.txt file.

Bug: 170784825
Test: m checkbuild
Test: compare Soong outputs
Test: all Soong tests
Change-Id: I2a942b21c162541a49e27b2e5833c9aebccff1d0
2020-12-21 17:53:30 -08: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
Colin Cross
cba3514b6e Merge "Fix NDK build in downstream branches" am: bad07a2fb9 am: 1f31a3e61b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1532267

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie8358d59d1807c56930d4938ab26067afd0a5172
2020-12-20 06:20:51 +00:00
Colin Cross
e6a83e65d1 Fix NDK build in downstream branches
The NDK build in downstream branches with prebuilt apexes break
with multiple rules to copy the apex after
I8038ed5c6f05c989ac21ec06c4552fb3136b9a7a renamed SkipInstall to
HideFromMake, which is shadowed by an existing HideFromMake method.
Call through from the existing HideFromMake as a quick-fix for the
build.

Fixes: 175911330
Test: NDK build
Change-Id: Id475671d5dad888913bfb1af2e4be1f2454c3211
2020-12-17 18:22:34 -08:00
Colin Cross
cc288ca3f4 Merge changes from topic "sbox_tools" am: 97a1be6e7b am: 62bc8d2316
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1531944

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I1788ff6407a03242902d572eb747abfa538d9578
2020-12-17 23:16:31 +00:00
Colin Cross
a9c8c9f145 Call ctx.InstallFile for uninstallable cc modules
SkipInstall is actually primarily used to prevent making a module
visible to Make, rename it and add new SkipInstall that actually
skips installation without affecting Make.

Call c.SkipInstall() for uninstallable cc modules to allow calling
c.installer.install, which will collect PackagingSpecs for
uninstallable cc modules, allowing them to be used by genrules.

Bug: 124313442
Test: m checkbuild
Change-Id: I8038ed5c6f05c989ac21ec06c4552fb3136b9a7a
2020-12-17 10:02:18 -08:00
Treehugger Robot
0596c78a7e Merge "arch specific dependencies are supported for apex" am: f1c48afc31 am: 502066e794
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1527546

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iac527a34246fd30461f70e82202b22d78a079252
2020-12-17 01:24:14 +00:00
Treehugger Robot
f1c48afc31 Merge "arch specific dependencies are supported for apex" 2020-12-17 00:15:26 +00:00
Treehugger Robot
431e41e3b8 Merge "Always track transitive dependencies for host." am: abada78f05 am: dc6328e6f1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1531398

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I83c971512e228e8b2742fbad566cb946774f1565
2020-12-16 13:53:29 +00:00
Treehugger Robot
abada78f05 Merge "Always track transitive dependencies for host." 2020-12-16 13:14:28 +00:00
Treehugger Robot
7a162fecb3 Merge "versioning macro is exported from prebuilt stubs as well" am: 6a8c18a89b am: a781b0a384
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1527540

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iaa46646bb30f94b53281d29849e12d2c1ccba038
2020-12-16 02:33:34 +00:00
Martin Stjernholm
f2635ec434 Always track transitive dependencies for host.
This fixes a regression in https://r.android.com/1515154 when building
the host ART APEX (com.android.art.host).

Test: art/build/apex/runtests.sh
Bug: 166468760
Change-Id: I39a00019b7bfa77a865e7287c66add3566b34d87
2020-12-16 01:34:43 +00:00
Treehugger Robot
6a8c18a89b Merge "versioning macro is exported from prebuilt stubs as well" 2020-12-16 01:31:10 +00:00
Colin Cross
74b6e49c91 Merge changes from topic "header_libs_requirement" am: 01a44004fd am: ea1903d539
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1525004

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib3e1e2a338d36de3e451488b0bce6121a43989e6
2020-12-15 19:03:12 +00:00
Jiyong Park
892a98f0a3 versioning macro is exported from prebuilt stubs as well
This change fixes a bug that the versioning macro (__LIBNAME_API__) is
omitted for prebuilts providing a stub.

Bug: 175166063
Test: m nothing

Change-Id: I1cce5ab58ef245622861200ec0d8b0f84e3178ed
2020-12-16 03:54:44 +09:00
Colin Cross
01a44004fd Merge changes from topic "header_libs_requirement"
* changes:
  Add libstagefright_mp3dec_headers to allowed apex deps
  Require libraries in header_libs to be cc_library_header
2020-12-15 18:40:55 +00:00
Treehugger Robot
e55788a64f Merge "Add quiche and its deps to apex/allowed_deps.txt" am: 16976bf676 am: 48f743c74c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1521397

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iafafd46ca4dd219dfb937859031833f267d74d35
2020-12-15 16:17:38 +00:00
Bernie Innocenti
22d64d9d45 Add quiche and its deps to apex/allowed_deps.txt
Test: m
Bug: 155855709
Change-Id: I1eda029d912d53b0f888c4162422b4bbab948fe1
Merged-In: I0f4b1d011d058a1d3a43687a5ea0b7b5335aebbc
2020-12-15 09:34:08 +00:00
Treehugger Robot
82424f5085 Merge "Prebuilt stub not available to platform is handled correctly" am: e223512bb4 am: 1dc12fc99b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1521398

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ida66490b3a0c8286ef050334efca3bbf47bff2b5
2020-12-15 07:24:58 +00:00
Orion Hodson
f48c1ae6eb Merge "apex/allowed_deps: add libnetjniutils" am: c7dff7f142 am: 4bc549e36b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1519660

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I74f35ce8e8448f26ddd4d0b3b2202570026edd06
2020-12-15 07:24:45 +00:00
Treehugger Robot
e223512bb4 Merge "Prebuilt stub not available to platform is handled correctly" 2020-12-15 06:26:33 +00:00
Orion Hodson
c7dff7f142 Merge "apex/allowed_deps: add libnetjniutils" 2020-12-15 06:25:38 +00:00
Jiyong Park
f7c3bbe433 Prebuilt stub not available to platform is handled correctly
When a shared library providing stubs is included in an APEX, only the
stub variant (i.e. version:"1", etc.) gets emitted to Android.mk. This
enforces that everything in the Make world to link to the stub providing
only the public APIs of the library. The non-stub variant (i.e.
version:"") isn't exposed, otherwise, others will be able to access
private part of the lib which isn't guaranteed to be stable.

This has been done by unhiding the stub variant when it is known that
the library is actually included in an APEX. Note that stub variants are
by default hidden.

The above mechanism however doesn't work when the shared library is
replaced by a prebuilt and when the APEX is also replaced by a prebuilt.
Then, the fact that the prebuilt library is actually in the APEX gets
lost.  In that case, AnyVariantDirectlyInAnyApex() returns false for the
prebuilt library. As a result, the stub variant remains hidden and not
emitted to Android.mk.

This change fixes the problem by checking if the lib isn't available for
the platform at all. If not available for the platform (e.g.
apex_available doesn't have "//apex_available:platform"), the lib is
assumed to be included in an APEX even when it actually didn't go
through the apex mutator (... because it's a prebuilt).

Bug: 175166063
Test: m nothing

Change-Id: I41fabd5b368baecf4dc3c5a080b466f8bcd79d77
2020-12-15 09:17:36 +09:00
Yan Yan
76f91ea300 Merge "Allow IPsec module to depend on modules-utils-build" am: 1df80f2951 am: 22d8148922
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1521880

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I7c17de731d4e855bf9fcf46c55f76490895a5f73
2020-12-14 19:52:21 +00:00
Colin Cross
3f2fa9b846 Add libstagefright_mp3dec_headers to allowed apex deps
libstagefright_mp3dec_headers is being split out of
libstagefright_mp3dec.

Bug: 173252016
Test: m checkbuild
Change-Id: I7ab485832628203a907ebe8c3f79325d8b5788f4
2020-12-14 19:28:47 +00:00
Yan Yan
1df80f2951 Merge "Allow IPsec module to depend on modules-utils-build" 2020-12-14 18:33:50 +00:00
Paul Duffin
777bf29f3b Merge changes Iaca95efc,I7ccd5581 am: 57fab96e01 am: 3645404e1c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1526698

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic6dfde31f226d1ef726d155a40b255b4ac626272
2020-12-14 11:36:31 +00:00
Paul Duffin
57fab96e01 Merge changes Iaca95efc,I7ccd5581
* changes:
  Add RemoveOptionalPrebuiltPrefix() helper function
  Delegate work of apexInfoMutator to ApexInfoMutator interface
2020-12-14 10:54:21 +00:00
Jiyong Park
59140307ec arch specific dependencies are supported for apex
The apex module type now supports arch specific native dependencies.

apex {
    name: "myapex",
    arch: {
        arm64: {
	    native_shared_libraries: ["arm64_only_lib"],
	},
    },
}

Bug: 174639241
Test: m nothing
Change-Id: I3f00aa87c480d4127b27d33e9620c4336824e937
2020-12-14 18:44:04 +09:00
Sophie Zheng
2246c7bbc0 Merge "Automate NDK API coverage used by Mainline modules build integration" am: e3a2bdf2c8 am: f0fa9dfdd7
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1516605

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ic15891d61ac95747f2f2aca0f97cbe302f6e6b70
2020-12-11 22:53:15 +00:00
Sophie Zheng
e3a2bdf2c8 Merge "Automate NDK API coverage used by Mainline modules build integration" 2020-12-11 22:19:00 +00:00
Paul Duffin
d23c726b36 Add RemoveOptionalPrebuiltPrefix() helper function
Test: m nothing
Bug: 171061220
Change-Id: Iaca95efcaf3f02e066751c6e988d609ac40e048a
2020-12-11 18:13:08 +00:00
Paul Duffin
a7d6a89774 Delegate work of apexInfoMutator to ApexInfoMutator interface
Refactor the apexInfoMutator to delegate the work to an implementation
of ApexInfoMutator and then move the existing functionality into the
apexBundle.ApexInfoMutator(). This will allow a follow up change to
customize the behavior of this mutator for prebuilt_apex modules.

Test: m nothing
Bug: 171061220
Change-Id: I7ccd55818e02a606c5494e215f4370b635ddd0a5
2020-12-11 16:07:17 +00:00
Paul Duffin
b6f7bd5d24 Merge "Rename apexDepsMutator to apexInfoMutator" am: 08703826bd am: 452cdd33da
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1523982

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I388a2927d49048b5de97fb82cdc494308cef4c0a
2020-12-11 11:15:36 +00:00
Paul Duffin
92f5559fb5 Merge "Extract testDexpreoptWithApexes() for reuse" am: 4d934af2ee am: 30642ff255
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1523981

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib745536acb0a80bfd4f5ba9492eeae942908132c
2020-12-11 11:15:25 +00:00
Paul Duffin
08703826bd Merge "Rename apexDepsMutator to apexInfoMutator" 2020-12-11 10:06:19 +00:00
Paul Duffin
4d934af2ee Merge "Extract testDexpreoptWithApexes() for reuse" 2020-12-11 10:06:07 +00:00
Jiyong Park
4d4fce3df8 Merge "stub variants also re-exports headers" am: 6f05a73e3e am: 0c6aecfa06
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1518569

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib42ca356ba35563e8de8ae93d2a3db6b2305ec60
2020-12-11 09:55:21 +00:00
Jiyong Park
6f05a73e3e Merge "stub variants also re-exports headers" 2020-12-11 08:50:12 +00:00
Jiyong Park
1ad8e16fbe stub variants also re-exports headers
This change fixes a bug that headers are not re-exported from stub
variants of a library, if the headers are not from header libs, but from
shared or static libs. This is because only header lib dependencies
are respected for stubs variants.

The fix is as follows. 1) dependencies to the shared/static libs are
added even for stubs variants. 2) instead, in depsToPaths, they are
treated like header libs (i.e. don't contribute to linkFile) for the
stubs variants.

Bug: 174558745
Test: m

Change-Id: Iab6c77e7817055d0f2d09cb114186b30164fc231
2020-12-11 13:48:28 +09:00
sophiez
55e8815fb8 Automate NDK API coverage used by Mainline modules build integration
Dist txt files containing NDK APIs used by Mainline modules

Test: TARGET_BUILD_APPS=com.google.android.adbd m dist apps_only

Change-Id: I035f1e0cc7eb43fc09e796dbc6ce77e65b8aa3b4
2020-12-11 00:45:20 +00:00
Jiyong Park
1d58cd8e63 Merge "rust ffi libraries can be included in APEX" am: b555609098 am: 83732bad33
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1519482

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I52f08cde8ddfedbbb9ed55544ba70d4cbd971833
2020-12-11 00:43:40 +00:00
Jiyong Park
a3df735a37 Merge "Add min_sdk_version to Rust modules." am: 0d399b5915 am: 6b31120281
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1518205

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I4b7735516482cfb8ea743c087d147ef3cb85663e
2020-12-11 00:43:37 +00:00
Jiyong Park
b555609098 Merge "rust ffi libraries can be included in APEX" 2020-12-10 23:54:34 +00:00
Jiyong Park
0d399b5915 Merge "Add min_sdk_version to Rust modules." 2020-12-10 23:54:34 +00:00
Paul Duffin
949abc03eb Rename apexDepsMutator to apexInfoMutator
Generally ...DepsMutator methods add dependencies between modules but
the apexDepsMutator does not which can be confusing. This renames
apexDepsMutator to apexInfoMutator and adds some extra documentation to
clarify its function. It also renames the registered name for the
mutator and its associated providers from apex_deps to apex_info.

Test: m nothing
Bug: 171061220
Change-Id: Ic074a281215b23e982448ccff7ac075236123bee
2020-12-10 20:16:57 +00:00
Paul Duffin
c3bbb96667 Extract testDexpreoptWithApexes() for reuse
Extracts testDexpreoptWithApexes() from testDexpreoptWithApexes() to
reuse in other tests.

Test: m nothing
Bug: 171061220
Change-Id: Iee62b68d72133b4cc066e2875bd27d7051206cbc
2020-12-10 20:16:57 +00:00
Steven Moreland
3d8f7f7419 Merge "target.apex.exclude_[shared|static]_libs to cc_* modules" am: 35989ae98b am: 2abc02e623
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1515154

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I274f31fecb5730708b23c4f6aefea6495d46a57e
2020-12-10 19:48:41 +00:00
Steven Moreland
35989ae98b Merge "target.apex.exclude_[shared|static]_libs to cc_* modules" 2020-12-10 19:02:02 +00:00