Commit Graph

83911 Commits

Author SHA1 Message Date
Cole Faust
5914aae79d Convert $(call soong_config_set_bool) to rbc
Bug: 342006386
Test: go test
Change-Id: I4729f25209d1d548b7b75c4d5bf2744ae4dcc31d
2024-08-19 17:34:46 -07:00
Cole Faust
78f3c3a3ad Add $(build_number_file) support to genrules
Genrules that set uses_order_only_build_number_file: true will now
have the ability to reference a $(build_number_file) label that
will point to the build number file. It will also caused the build
number file to be added as an order-only dependency, which will make
it show up in the genrule sandbox.

This is needed for converting make code that references the build
number to soong, and for sandboxing the remaining unsandboxed genrules
that reference the build number.

Bug: 341873065
Test: m nothing --no-skip-soong-tests
Change-Id: I9092cbb0eb39c5449a79f0ee40a4202262cef206
2024-08-19 16:06:34 -07:00
Cole Faust
5b1a39a92a Merge "Make the WholeStatic/Static/Shared libs properties configurable" into main 2024-08-19 22:48:16 +00:00
Yu Liu
54513622f7 Add phonies as provider instead of updaing a global map.
Bug: 358425833
Test: Manually compare the generated mk and ninja files.
Change-Id: Ie74b620fc680ca2fc0d7836e88361ab3bdb87c49
2024-08-19 21:45:07 +00:00
Cole Faust
f0006e7137 Make the WholeStatic/Static/Shared libs properties configurable
So that you can use selects with them.

Bug: 342006386
Bug: 358377461
Test: m nothing --no-skip-soong-tests
Change-Id: I5a8350f670d51b7da411ad5c3cdbf5f2d6cdd63b
2024-08-19 14:39:19 -07:00
Ronald Braunstein
ea66cdd278 Merge "Search for default_team in Android.bp when other .bp files are included." into main 2024-08-19 19:54:10 +00:00
Colin Cross
67478b347e Merge "Add test for interactions between product variables and arch variant properties" into main 2024-08-19 16:19:34 +00:00
Kiyoung Kim
a0523daaaa Variables uses vintf_fragment_modules
Product variable cannot be resolved when vintf_fragments are translated
into vintf_fragment modules, because product variables are being handled
after the translation phase. This change updates variables to use
vintf_fragment_modules instead of vintf_fragments so it can be handled
without resolving depenency between two mutators.

Bug: 322089980
Test: aosp cf build succeeded
Change-Id: I224ddb05bd86e24ae220af616b5a89accd043dd2
2024-08-19 11:28:14 +09:00
Kiyoung Kim
04b64fc280 Append vintf_fragment_modules as required for AndroidMk
Current vintf_fragment_modules are not exposed to Kati, so modules from
the property is not being installed to the image while Kati collects
files to be installed from their dependencies. This change marks modules
from vintf_fragment_modules as required, so their dependencies can be
exposed to the Kati.

Bug: 322089980
Test: aosp cf build succeeded
Change-Id: I66fc8f9ee8c0b797a0c200b7070b83ec9bb0f616
2024-08-19 11:25:30 +09:00
Treehugger Robot
a5289ac9ef Merge changes Ia0e1b307,I63c7c33e into main
* changes:
  Define unstable container
  Define additional exception functions for container enforcement
2024-08-17 04:07:00 +00:00
Jihoon Kang
0f3b1a7288 Define unstable container
Unstable container marks modules that are static reverse dependencies of
"framework-minus-apex". These modules contain unstable implementation
details of the platform, and should not be accessed by the CTS tests.

Test: m nothing
Bug: 338660802
Change-Id: Ia0e1b3070f0f7b2c1b9c27306323e2428d9722ca
2024-08-16 22:57:57 +00:00
Jihoon Kang
224ea08ee6 Define additional exception functions for container enforcement
These exception functions allow restriction to be loosened for some
inter-container dependencies.

Note that these functions are still no-op. Restriction enforcement will
be done in the child change.

Test: m nothing
Bug: 338660802
Change-Id: I63c7c33e33f271d4c2a84cc6070eb4896e030ab4
2024-08-16 22:57:39 +00:00
Colin Cross
7c2af51a3d Merge "Track resources separately in java_import" into main 2024-08-16 22:30:33 +00:00
Treehugger Robot
75b14ee1a6 Merge "Clean up: remove com.android.gki.*" into main 2024-08-16 22:22:19 +00:00
Colin Cross
6ca3f758d0 Merge "Convert more stored WritablePaths to Paths" into main 2024-08-16 22:16:56 +00:00
Treehugger Robot
08e76d9591 Merge "Run "ravenizer" on ravenwood jars" into main 2024-08-16 22:16:41 +00:00
Yu Liu
fb995a1e3c Merge "Remove more internal fields from ModuleBase." into main 2024-08-16 22:14:01 +00:00
Colin Cross
f0df94a76d Merge "Move kotlin stdlib to normal dependency tag" into main 2024-08-16 21:01:23 +00:00
Colin Cross
f330b3dc77 Merge "Use rsp files to pass turbine inputs to RBE" into main 2024-08-16 20:18:09 +00:00
Makoto Onuki
7ded3827a4 Run "ravenizer" on ravenwood jars
Ravenizer is a new tool to preprocess ravenwood tests.

It can optionally be applied to other java targets (for analyzing them,
etc).

The actual tool is being implemented internally, so in AOSP, we just
use a script that copies the jar file as a replacement.

Test: manual -- run `m RavenwoodBivalentTest` and make sure the ravenizer
    log message shows up.
Flag: EXEMPT host test change only
Bug: 360390999
Change-Id: I6d1f81e7c425397b16c37e7c30267957097387fd
2024-08-16 12:08:35 -07:00
Colin Cross
53529a9061 Track resources separately in java_import
java_import currently collects the "implementation and resource jar"
from each of its dependencies.  This results in different resource
conflict resolution than other java modules, which collect
implementation jars and resource jars separately.  Modify java_import
to match the other module types.

Flag: EXEMPT refactor
Test: all soong tests pass
Change-Id: I06134e2621582799b3a525d2c12b900b8d86d171
2024-08-16 11:56:19 -07:00
Colin Cross
7da471f3ab Add test for interactions between product variables and arch variant properties
Add a test that verifies that arch variant product variable
properties are correctly squashed into the top level properties.

Bug: 322089980
Flag: EXEMPT test only
Test: TestProductVariablesArch
Change-Id: I62e9b4166761ce6ac0269e2fafc26d603e6b169e
2024-08-16 09:21:18 -07:00
Jooyung Han
40b7917fd0 Clean up: remove com.android.gki.*
It's abandoned.

Bug: n/a
Test: m nothing --no-skip-soong-tests
Change-Id: I220bea87329ee532d494cc4eaa4c6a8c1b0bff07
2024-08-16 16:02:42 +09:00
Colin Cross
77965d9bd4 Convert more stored WritablePaths to Paths
Similar to I40f28075ce151e4be80d6cfc7ec173dfa46f9bbf, convert
more long-lived WritablePaths to Paths.

Test: all soong tests pass
Flag: EXEMPT refactor
Change-Id: I9be448f811694fe0524fbbd7c5d4553cf69d533a
2024-08-15 20:43:39 -07:00
Kiyoung Kim
dd00f2de3c Merge "Introduce vintf_fragment module type" into main 2024-08-16 00:26:16 +00:00
Yu Liu
d46e5ae670 Remove more internal fields from ModuleBase.
Bug: 358425833
Test: Manual compare the generated ninja and mk files and CI.
Change-Id: I4edd0dc646ac035594f47cd9044cc4eb5f710e64
2024-08-16 00:20:27 +00:00
Spandan Das
357ffcc146 Add stub generation support to cc_prebuilt_library
The `stubs` property in `cc_prebuilt_library` currently does not support
generating stubs from an API symbol file. Reverse dependencies are
always linked against the .so file listed in `srcs`. This CL adds
support to generate the shared library from the .map.txt symbol file of
the prebuilt library.

Implementation details:
1. Add a compiler. This will convert the .map.txt file to a stub .c file.
  The build rules for this are common to the compiler of the source cc_*
moudule types. This has been refactored into a new function named
`compileModuleLibApiStubs`
2. Update the linker to link the aforementioned stub.c file into a .so
  file. Since this happens only for stub variants, it is conditionally
called only when p.buildStubs is true.
3. Call `addStubDependencyProviders`. This will populate the impl
   variant of the library with Stub information. cc#ChooseStubOrImpl
will use this information to resolve rdeps to the stub .so file if the
dependency crosses an api domain boundary.

(2) requires some special casing for now, since the module sdk at HEAD
does not contain symbol files, so the stub.c files will be empty. Once
the symbol files are added to module sdk, the special casing will be
removed.

Test: m nothing --no-skip-soong-tests
Bug: 275273834
Change-Id: I57f5b0a97fac4dfc8c24e07b06a330015add977d
2024-08-15 22:18:48 +00:00
Treehugger Robot
334efc0fb1 Merge "Improve docs for Deapexer modules" into main 2024-08-15 22:13:04 +00:00
Ronald Braunstein
4a2f368b46 Search for default_team in Android.bp when other .bp files are included.
Test: m all_teams && gqui from  "flatten(out/soong/ownership/all_teams.pb, teams)" proto build/soong/android/team_proto/team.proto:AllTeams 'select teams.path, count(*) where teams.trendy_team_id == "4768044190400512" and teams.path like "%libcore%"  group by teams.path '

  Now we get the libcore entries for JavaLibrary.bp and NativeCode.bp as
  well.  Before we didn't
        ...
	| external/icu/android_icu4j/libcore_bridge/src/native/Android.bp |        1 |
	| libcore/Android.bp                                              |        3 |
	| libcore/Extras.bp                                               |        1 |
	| libcore/JavaLibrary.bp                                          |       82 |
	| libcore/NativeCode.bp                                           |       10 |
	| libcore/benchmarks/Android.bp                                   |        3 |
	...

Note: blueprint does not let include a file from a subdirectory.

Bug: b/355270459
Change-Id: I19b22e341276c724786ea96e237733eac4f19dbf
2024-08-15 15:07:01 -07:00
Spandan Das
24b3e534c3 Prevent duplicate dist rules for source and prebuilt C api cov
Adding stub generation support for C prebuilt libraries creates
duplicate dist rules for api coverage files
```
overriding commands for target `<out_dir>/../cc_apis/libc.xml', previously defined at
```

This CL hides the incorrect api coverage file using `IsModulePreferred`.

Bug: 275273834
Test: EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true NATIVE_COVERAGE_PATHS="*" m droid dist
(no duplicate dist rules)

Change-Id: Id1caade7e80119ed1dfbbef638feb22adf116d63
2024-08-15 21:51:32 +00:00
William McVicker
d0ea3f6a84 Merge "Fix build_prop module to use partition() instead of PartitionTag()" into main 2024-08-15 20:58:46 +00:00
Cole Faust
47a91c9f4f Merge "Check that the DeapexerInfo was actually set" into main 2024-08-15 18:00:22 +00:00
Yu Liu
e89b6dd497 Merge "Remove installFiles from ModuleBase." into main 2024-08-15 17:23:59 +00:00
Treehugger Robot
3306d84c07 Merge "Support configurable prebuilt apex sources" into main 2024-08-15 15:43:52 +00:00
Treehugger Robot
4483c0e7c0 Merge "Support BUILD_FRAMEWORK_COMPATIBILITY_MATRIX for soong" into main 2024-08-15 09:07:38 +00:00
Yi-Yo Chiang
3ffc37ce20 Fix build_prop module to use partition() instead of PartitionTag()
PartitionTag() returns the partition the module is installed in.
We don't want this because a system_ext_specific module could be
installed in the system partition if system_ext partition doesn't
exist.
Instead we want system_ext specific modules to always refer to
SystemExtPropFiles().

Bug: 359624775
Bug: 322090587
Test: build aosp_arm64 and verify system/system_ext/etc/build.prop
Change-Id: Ie67ec9c5e5a07e781515e0aafb42122f72447cf3
2024-08-15 07:52:02 +00:00
Cole Faust
c0ca5056ab Check that the DeapexerInfo was actually set
Otherwise we could return empty DeapexerInfos. We're not running into
any problems due to this at the moment, it's just something I noticed.

Bug: None
Test: m nothing --no-skip-soong-tests
Change-Id: I903d86740a9f22574a5f6bf2effa912bd8237ab6
2024-08-14 17:51:03 -07:00
Cole Faust
642e720b5b Support configurable prebuilt apex sources
Bug: 342006386
Fixes: 359690321
Test: m nothing
Change-Id: I2e503932c7fdb3eea9cd2dfedd86029ff52cfbe1
2024-08-14 17:46:12 -07:00
Yu Liu
ddc2833b7f Remove installFiles from ModuleBase.
This is to limit the direct accesses to the internal fields of a
module in order to better support incremental caching. To access
the install files data from singleton context or other modules'
context use providers thru the provided wrapper; to access it
from the same module inside GenerateBuildActions use ctx which is
short-lived only inside this method.

Bug: 358425833
Test: CI
Change-Id: I337b07a2ef95fb2a898ac2f9277160a3f76a603c
2024-08-14 22:56:30 +00:00
Colin Cross
882d600d79 Move kotlin stdlib to normal dependency tag
The kotlin standard library was added with a custom dependency tag,
which then required special handling later.  We know up front whether
it will be treated the same as a static_libs or libs dependency, so
just reuse staticLibTag or libTag, and remove all the special handling.

Bug: 308016794
Test: TestKotlin
Flag: exempt REFACTOR
Change-Id: I2c5601faec284d88f28e13378d9cbffc24560efa
2024-08-14 15:28:34 -07:00
Dan Albert
61bd3d11e9 Merge "Revert^2 "Verify that ndk_headers headers are valid C."" into main 2024-08-14 22:25:10 +00:00
Treehugger Robot
67e25d144a Merge "Always generate PDB for Windows executable" into main 2024-08-14 21:26:48 +00:00
Fabien Sanglard
aa8020ac13 Always generate PDB for Windows executable
Test: NA
Bug: 350154912
Change-Id: I0a4ebfb62643eb2c8d2b20992e728bcb8b5219a9
2024-08-14 13:31:55 -07:00
Treehugger Robot
97da65f8ad Merge "Pass through RUST_LOG" into main 2024-08-14 19:27:31 +00:00
Spandan Das
bcc2ef06e7 Improve docs for Deapexer modules
The provider does not get bubbled up, so remove this misleading comment.

Test: doc change
Change-Id: Ife110aa75c8910042cf9c6e358a44d1a5cf4f5c3
2024-08-14 18:55:59 +00:00
LaMont Jones
b2ab527798 Pass through RUST_LOG
If the user has RUST_LOG set in the environment, pass that through.

Bug: 352600283
Test: manual
Change-Id: Ia6bfa4be791a8e72591fc729de4e4270df150a1c
2024-08-14 10:08:50 -07:00
Jihoon Kang
6de6d7267f Correct the name of the android.car.builtin module that is instrumented
java_sdk_library is not instrumented as it does not perform any
compilation actions. Instead, its submodule impl lib (with .impl suffix)
is instrumented.

Test: CI
Bug: 355514682
Bug: 339901608
Change-Id: I2f7b4a8cf14a592d268b6f5d44f72e43700b4907
2024-08-14 16:39:57 +00:00
Kiyoung Kim
faf6af31cd Introduce vintf_fragment module type
Introduce a new vintf_fragment module type which handles vintf_fragment
files within Soong. This will help process to move vintf_fragment
handling logic from KATI to Soong. This change also introduces
vintf_fragment_modules property to mark dependency with vintf_fragment
modules.

Bug: 322089980
Test: m nothing --no-skip-soong-tests passed
Change-Id: I49607f42aeee3ded0ba7b078b903dc35f5d61637
2024-08-14 10:34:41 +09:00
Dan Albert
266f991cc5 Revert^2 "Verify that ndk_headers headers are valid C."
181934cc26

Change-Id: I7720331ee8132ead8d0b5624a0b99841884300d3
2024-08-13 22:01:23 +00:00
Colin Cross
2fcc48e4a3 Use rsp files to pass turbine inputs to RBE
Turbine rules that run in RBE fail when they have long lists of
flags.  They work locally because the list of flags is placed in
an RSP file, but the list of inputs still appears on the command
line when RBE is enabled to pass them to rewrapper.

When the list of srcjars or classpath arguments are too long,
move the list of files into an rsp file, and pass the rsp file to
RBE instead of the list of files.

Bug; 308016794
Test: builds
Flag: EXEMPT refactor

Change-Id: I5ee610a91302ce94ec77b6f13b28a29bc63fd962
2024-08-13 14:07:47 -07:00