Age | Commit message (Collapse) | Author |
|
Reduce peak memory usage by adding a CleanupAfterBuildActions method
that is called at the end GenerateBuidlActions, nad use it to clear as
much of cc.Module as possible.
This is a temporary measure, eventually the entire module should be
released by blueprint once all interactions are performed through
providers.
Test: all soong tests pass
Change-Id: Idc3390ae4506ff2eef3231691e1de7446067961a
|
|
Bug: 358427516
Test: Manually verified genereated ninja and mk files, unit tests.
Change-Id: I53a6dd718232735decbeb93febfd269dd9449e86
|
|
Test suites have been historically only defined in the AndroidMk
functions. But in soong-only builds, we don't run AndroidMk. It appears
Colin already started making a TestSuiteInfo provider, but hadn't
set it on all test modules yet. Expand it to all the test modules,
and add export it to make so that make can check that it matches
LOCAL_COMPATIBILITY_SUITES.
Bug: 388850000
Test: m nothing
Change-Id: Iee8959742117604fd560c95be60f3cb7cf3d9ae4
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I1ce8bc782666586633ded9cfaf1b9590e3c0efde
|
|
sizesSingleton, movedToApexLlndkLibraries and
allBuildFlagDeclarationsSingleton to use ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja json and mk files generated.
Change-Id: I90ea5599a55975b27e9ce6e91b20104849f5887f
|
|
* changes:
Convert tidyPhonySingleton, jdepsGeneratorSingleton and genNoticeBuildRules to use ModuleProxy.
Make EqualModules a free function.
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I7e00f09a15f2857f58bea70bcedc4798630a40bc
|
|
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I156341b32a0db554602b6bd1e8f4dbb87dcabd6f
|
|
apexPrebuiltInfo to use ModuleProxy." into main
|
|
|
|
apexPrebuiltInfo to use ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I77b05e8b54843bfa8b91376a6796c2b5c69be3c1
|
|
buildTargetSingleton
exportedJavaDeclarationsLibrarySingleton
javaFuzzPackager
kytheExtractAllSingleton
kytheExtractJavaSingleton
kytheExtractRustSingleton
lintSingleton
logtagsSingleton
makeVarsSingleton
ndkAbiDiffSingleton
ndkAbiDumpSingleton
phonySingleton
platformCompatConfigSingleton
sdkSingleton
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I625ac8a209ca93755b2ba232202cfb44ecefde0a
|
|
The code that collects dists also supports getting them from
OutputFiles. Switch the few remaining usages of AndroidMk-based
disted files over to OutputFiles, and remove DistFiles from the
AndroidMk datastructures.
This should allow us to clean up more AndroidMk code in a followup
cl.
Bug: 398938465
Test: Confirmed that the ninja files for "m nothing dist" don't change after this cl.
Change-Id: I9eaed21018ef73ec36276556e7daa7201b272009
|
|
complianceMetadataSingleton, freezeApiSingleton and testSuiteFiles to use ModuleProxy." into main
|
|
b/146995717 installed apex variants of test modules, claiming that the
tests won't be included in an apex, but the only use of this appears
to be the tests in the com.android.art.testing apex. Those tests are
packaged in an apex, and the special case to also install them results
in duplicate install rules that then require the workaround in
b/395617594 to hide them from the platform. Remove both the special
case and the workaround.
This causes the platform variants of the tests in the
com.android.art.testing apex that are installe to /data/nativetest
to come from the platform variant instead of the apex variant, and
causes libart-broken.so to no longer be installed in /data/nativetest.
Bug: 395617594
Test: compare installs-${TARGET_PRODUCT}.mk
Change-Id: Ie2fc70508ababd0bb6965bdc66450d71f2a342f7
|
|
complianceMetadataSingleton, freezeApiSingleton and testSuiteFiles to
use ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I91789633ff0d4e0ab170717caf0a6b4f63c38593
|
|
interfaces directly, the next step is to change it to use ModuleProxy
once IsDepInSameApex is ready.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I13a4e256a26dbf7f9b3b746d628ac8f68b4e598e
|
|
Next step is to convert it to use ModuleProxy once IsDepInSameApex is
converted to use providers.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I20cb052666fa95eb964e63e3302ac892d3324183
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I8ec5e8a3a06d078602ebaa902cacb70987f1deda
|
|
Use the ApexInfo instead of a string as the TransitionInfo for apex
variations. This removes the need for apexInfoMutator, which is the
last remaining top down mutator.
This has a variety of ramifications. One is that it is no longer
possible to add a dependency onto the apex variation of a module,
as that would require constructing a matching ApexInfo. Instead,
anything that wants to add a dependency on the apex variation has
to depend on the apex instead, and get to the module by walking
its transistive dependencies.
Another ramification is that modules in apexes can no longer
determine which apexes they are in (unless they set
UniqueApexVariations so that each variation is in exactly one
apex). This prevents some of the existing container violation
checks from working after this CL, tracked in b/394955484.
It also requires using unique variation names for the prebuilt
and source dependencies of apexes, so the apex variations
for dependencies of prebuilts now have a prebuilt_ prefix.
Bug: 372543712
Bug: 394955484
Test: go test ./...
Change-Id: I3d08aca1ac956ab0e343ec3f235a736cd93be0e1
|
|
Providers are data exported from one module to another.
Configurable properties are the collection of all possible values of a
property, to be resolved under the module's configuration.
If you export a configurable from one module to another and then resolve
it there, it will be evaluated with the wrong configuration.
Bug: 394967253
Test: m nothing
Change-Id: I934b08538bcc3267b3ec44925591f16a1c59292c
|
|
Instead of testing that explicit implementation libraries are not
incorrectly used in an apex after the fact add the explicitlyImpl
flag to dependency tags and use it in cc.DepIsInSameApex and
rust.DepIsInSameApex to require that explicit implementation
dependencies are in the same apex.
Bug: 372543712
Test: go test ./...
Change-Id: Ia968e06b578d5ab886a965c3981565d4895dddcd
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I2eb0134bb727f5875d579dae1fff5b70658bd2bb
|
|
Bug: 330949782
Test: CIs
Change-Id: I291859a4ddb866fa639eecd73929c2657ab9cff8
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I99ffe88179991da8e5963605bf76666c8945d290
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I36f8b339f70ab47be84c598231cb971145fc4ef7
|
|
This adds stubs support for rust_ffi and rust_ffi_shared modules. Usage
should match current cc usage. The stubs generator leveraged is the cc
stubs generator.
Bug: 203478530
Test: m blueprint_tests
Change-Id: I043b9714a357cd5fe17c183ccdf86900f5172e0e
|
|
This CL largely handles this refactoring in preparation for Rust stubs
support.
Rust modules need to be able to communicate stubs information to cc, and
certain bits of cc needs to be exported so rust can reuse them.
A new VersionedLinkableInterface is added to capture most of the
stubs-related interface definitions.
Bug: 203478530
Test: m blueprint_tests
Change-Id: I380225402fa85a3c39e7b18deb657054b3a52fbe
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Ib8020db0d1cf9e035ace52e2a893bb3df7975127
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I19ec2142415e88d7486ee58613065f8cdb6aca73
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Ie3b6d1f8fa684ab191123bd57645b86f3bfa97b4
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Id465f293c3615fc803b34c990f19b4386ebece1c
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I3a45013471fff1acf44865a549057557318419b4
|
|
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Iff10448dc4dda49e1f02258a4c113db75778a95d
|
|
ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: If06de5f852e6e4574ce0e383ba0bc4fc3508b4b4
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: If1f4a1bf81737c49046cd268a34110a0e38bb2f5
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I2a49e3a2fe3c80a29b06572d0e21da9c98f1b511
|
|
buildComplianceMetadataInfo to use ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I22520e7dd3ae2ddcfa36dd39658f04c69e9e6012
|
|
|
|
With the new transition mutators, the distinctions between rust_ffi_rlib
and rust_library_rlib are not necessary. This CL removes the remaining
distinctions to allow an unusual use case where a rust_library and a
rust_ffi_rlib would otherwise be created from the same source. This
would allow defining a single rust_library_rlib that works for both rust
modules and cc modules.
One key change is that rust_ffi_rlibs only produced an rlib-std variant
previously, and now produce dylib-std variants as well.This surfaced an
issue where a libstd linkage mismatch would cause rustc to throw a
consufing missing crate error. We instead add logic to catch this in
Soong and provide a more useful error message.
Bug: 383552450
Test: m rust
Test: m blueprint_tests
Change-Id: I611ca46934059735d06229952cfd8e0ab7050486
|
|
TestApexes is used to enforce the "Stub libraries should have a single
apex_available" check, but requires propagating information from
multiple apexes in order to filter out the test apexes. Instead,
all test apexes used by stub libraries will set apex_available_name
to masquerade as their non-test counterpart for apex_available
checks.
Bug: 383592644
Test: TestStubLibrariesMultipleApexViolation
Change-Id: I57dcf1e6fabbe70f40d702490b93fc7f28d6eba2
|
|
The libDepTag checks don't need to be in IncomingDepIsInSameApex,
move them back to OutgoingDepIsInSamApex. This also means that
the fromStatic field in libraryDependencyTag is no longer necessary,
as OutgoingDepIsInSameApex can access c.static() directly.
Bug: 372543712
Test: builds
Change-Id: I1d97a02055460445bfa854f3d9b78f185d4a6a15
|
|
Prepare for calling DepIsInSameApex from the apex transition mutator
by splitting all the implementations in two, one that is called on the
outgoing module and only takes the depTag, and one that is called on the
incoming module and only takes the depTag.
apexBundle.depVisitor was passing the child into android.IsDepInSameApex
for both the parent and child paramters. The parent field was only
used to find the type on which to call DepIsInSameApex, so this
effectively used the child's implementation of DepIsInSameApex. That
used to be necessary when the parent and child were of different
module types, as the parent module type may not have been aware
of the rules for the child module type, but is no longer necessary
with split outgoing and incoming DepIsInSameApex.
Bug: 372543712
Test: all soong tests pass
Change-Id: If7c81ec3f7b1ea69d77e9ad7694e238820194e59
|
|
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I7582db8e22e94d0a9db7715a76bb6ed34c166a4e
|
|
In order to prepare for splitting DepIsInSameApex so it can be called
separately on the outgoing and incoming modules during a transtion,
add fromStatic to libraryDependencyTag so that the check doesn't need
to access both the parent and the child module.
This also fixes cases where the static parent was misdetected, which
causes a single test failure that seems correct, TestApexWithTests.
cc.Module.DepIsInSameApex correctly identifies that the "mytest" module
is static and the "mylib" shared library dependency is not used in
the apex. Fix the test to make "mytest" non-static so that "mylib" is
included.
Bug: 372543712
Test: all Soong tests pass
Change-Id: Ibb0cfff77adefb804ff6c66467ac761b723597de
|
|
Add staticLibrary() that returns true for a static variant of a
library, and replace all instances of foo.static() && !foo.staticBinary()
with foo.staticLibrary.
Test: builds
Change-Id: I0bf0c18669c24f23ebc9cc33d525b86d81e22d40
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Id776727a431f2ce8fd4c7b352dc0bd282ac57f90
|