Commit Graph

82118 Commits

Author SHA1 Message Date
Inseob Kim
58c802f8e3 Add product_config module
product_config module will export productVariables struct (defined in
android/variable.go). Other modules can depend on product_Config module
to read product variables, without needing to update Soong.

Bug: 346214955
Test: build and see output of product_config module
Change-Id: I06e1d2716dc2a8b90984bb46c5fc901cd1ca5020
2024-06-18 09:56:45 +09:00
Aditya Kumar
ca5e3eb407 Enable -Wfortify-source
This reverts commit 885f2eec3c.

Reason for revert: Fixed the error reported in post-submit

Change-Id: I152494403e6d6937413d0e5d2637d426c2f54009
2024-06-15 12:07:06 +00:00
Cole Faust
ba80e4c16b Merge "Remove saveToBazelConfigFile" into main 2024-06-14 23:23:58 +00:00
Zi Wang
f222db3d01 Merge "Add another way for TestingModule to get its output files" into main 2024-06-14 22:14:59 +00:00
Pirama Arumuga Nainar
52436e1574 Merge "Revert^4 "Enable full LTO optimization by default"" into main 2024-06-14 21:54:50 +00:00
Cole Faust
7dc42aa7af Merge "Remove debug/release cflags" into main 2024-06-14 21:15:15 +00:00
Cole Faust
ad18649d29 Remove saveToBazelConfigFile
Bug: 315353489
Test: Presubmits
Change-Id: I781f0fd9d0241b9742b0b84f5df4088e7bba16c7
2024-06-14 14:13:54 -07:00
Cole Faust
791733fad4 Merge "Simplify aconfig_declarations_group" into main 2024-06-14 20:25:40 +00:00
Treehugger Robot
dcde7e260c Merge "Add test for AppendSimpleValue" into main 2024-06-14 18:28:03 +00:00
Cole Faust
779d41cf7c Simplify aconfig_declarations_group
Some of the getters were unused, which means that all the fields
could be made into local variables.

Test: m nothing --no-skip-soong-tests
Change-Id: Iea38ed7f9da952803f54194c0c5a8fda9b6007f5
2024-06-14 11:17:48 -07:00
mrziwang
e81e77a2b1 Add another way for TestingModule to get its output files
In OutputFiles method, TestingModule is able to get its own output
files by reading its module base property. If the TestingModule
never updates its outputFiles property, it will fall back to use the OutputFileProducer interface.

Only empty string tag case is added in this CL since all the testing modules are getting the output files using empty string tag.

Test: CI
Bug: 339477385
Change-Id: I3009ae45d8d909653e3b6b222bced9ccabbaede7
2024-06-14 11:09:54 -07:00
Treehugger Robot
7467410787 Merge "Only write release config files if they've changed" into main 2024-06-14 17:49:23 +00:00
Aleks Todorov
274b3c9521 Merge "cc: Make generated_headers configurable" into main 2024-06-14 17:25:07 +00:00
Aleks Todorov
36187c371e Merge "cc: Make cc_genrule defaultable" into main 2024-06-14 17:17:17 +00:00
Aleks Todorov
93b6dd0036 cc: Make generated_headers configurable
Bug: 325444956
Test: m
Test: m [custom target with select() in generated_headers]
Change-Id: I95c9aa52be39e0f5afb503f0b71bce222961ec92
2024-06-14 16:56:38 +01:00
PODISHETTY KUMAR
fc7677874a Merge "Revert "Pass --non-updatable-system flag to aapt2 when versionCode is unspecified"" into main 2024-06-14 13:30:06 +00:00
Treehugger Robot
31934a55a8 Merge "Add support for recent Mac SDK (13, 14)" into main 2024-06-14 09:57:23 +00:00
PODISHETTY KUMAR
0b6d6fe9b2 Revert "Pass --non-updatable-system flag to aapt2 when versionCode is unspecified"
This reverts commit ce320f86a0.

Reason for revert: <Dorid monitor: Likely culprit for b/347143262  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.>

Change-Id: I70eabe014acc6feb123f28ac487f7d7d39e9fb6b
2024-06-14 07:32:43 +00:00
Treehugger Robot
77858402e4 Merge "Cleanup ImageInterface.SetImageVariation" into main 2024-06-14 04:26:52 +00:00
Treehugger Robot
0ef709565e Merge "Pass --non-updatable-system flag to aapt2 when versionCode is unspecified" into main 2024-06-14 03:36:09 +00:00
Cole Faust
1b0d92919d Merge "Make the cflags property configurable" into main 2024-06-14 02:59:29 +00:00
Treehugger Robot
000fe5ac5d Merge "release_config: various cleanup" into main 2024-06-14 01:46:45 +00:00
Zi Wang
8f3fd0a049 Merge "Use OutputFilesProvider on aconfig_declarations_group" into main 2024-06-14 00:17:05 +00:00
Zi Wang
d156fee224 Merge "Use OutputFilesProvider on syspropJavaGenRule" into main 2024-06-14 00:16:50 +00:00
Treehugger Robot
5078551e97 Merge "Properly track where a build flag is declared" into main 2024-06-14 00:02:05 +00:00
Cole Faust
2530b44656 Only write release config files if they've changed
Currently, when you do `m` repeatedly, it does a little bit of
rebuilding to copy release config files around. If we change
release-config to only rewrite the files if they've changed, we
get a proper "ninja: no work to do." message.

Bug: 346757289
Test: m repeatedly
Change-Id: I9c1f6d34ec20d14b684a0183c5ec457ea92440f9
2024-06-13 16:56:24 -07:00
Treehugger Robot
1571ad9605 Merge "Add following directories to Android.mk denylist to block new Android.mk files." into main 2024-06-13 23:43:25 +00:00
Treehugger Robot
6c76ad374e Merge "Modify the installation rules of sh binary based on the image variants" into main 2024-06-13 22:52:03 +00:00
LaMont Jones
97e29a9cb4 Properly track where a build flag is declared
This allows us to generate an error when it is then set in an earlier
location in the list.

Bug: 346883187
Test: manual
Change-Id: I1c8389ff0d5a16c080008967ab5e0b9b93101301
2024-06-13 15:49:29 -07:00
Cole Faust
fee6fdea22 Add test for AppendSimpleValue
Bug: 346922064
Test: m nothing --no-skip-soong-tests
Change-Id: I18d82cf5ca20b1c9fea9751fee742577b5173374
2024-06-13 15:35:17 -07:00
mrziwang
937f35f464 Use OutputFilesProvider on aconfig_declarations_group
In the context of incremental soong, the output files
inter-module-communication will be through OutputFilesProvider.
The OutputFileProducer interface will be deprecated.

This CL also removes the unused field "intermediatePath" from
build_flag_declarations and aconfig_declarations

Test: CI
Bug: 339477385
Change-Id: I8417db7ca6ece50b3ecd807fc3b6356aa52b18e0
2024-06-13 15:03:16 -07:00
Jihoon Kang
7583e835f7 Cleanup ImageInterface.SetImageVariation
This change modifies the interface method of
ImageInterface.SetImageVariation so that the image variation is set
directly at the caller image variation module, instead of passing the
pointer to set the image variation.

Test: m nothing
Change-Id: I8eadb5149365530243e19a8cd37eb49d335fbeef
2024-06-13 21:56:23 +00:00
Cole Faust
e96c16a806 Make the cflags property configurable
So that you can use select statements on it. The current modivation
is to convert a module from make to bp with minimal soong config
variable boilerplate.

Bug: 342006386
Bug: 346922064
Test: m nothing --no-skip-soong-tests
Change-Id: I48d5a11ad3aa65c24cc199458634a5fdbeab2f64
2024-06-13 14:51:14 -07:00
Jihoon Kang
71825167e0 Modify the installation rules of sh binary based on the image variants
This change modifes the build rules of sh binary module type so that:
- The installation paths respects the image variations and the
  *_available properties.
- The androidmk entries have subnames so that the names of the different
  variants do not collide.

Test: Patch ag/27004177 and run m nothing
Bug: 336582138
Change-Id: Id85c428980ab459bff8d84098bd6c501a12231ed
2024-06-13 21:49:47 +00:00
Treehugger Robot
9034af498e Merge "Call PackageFile for dexpreopt files of APEX bundles." into main 2024-06-13 21:46:03 +00:00
mrziwang
ba2a460008 Use OutputFilesProvider on syspropJavaGenRule
In the context of incremental soong, the output files
inter-module-communication will be through OutputFilesProvider.
The OutputFileProducer interface will be deprecated.

Test: CI
Bug: 339477385
Change-Id: I3b1cb3a4cfafa1385ef27a427009abb13accf834
2024-06-13 14:16:52 -07:00
Zi Wang
afc28427cf Merge "Use OutputFilesProvider on prebuilt_etc" into main 2024-06-13 20:56:57 +00:00
Treehugger Robot
68f5fbf99b Merge "Remove timestamp from local build number" into main 2024-06-13 18:45:09 +00:00
Cole Faust
5591460e81 Remove debug/release cflags
These were never fully implemented, release cflags are the same as
regular cflags, and debug cflags are not used at all.

Bug: 346922064
Test: Presubmits
Change-Id: I0e8914e03f3a092bbc816cabf75255c55c3531e4
2024-06-13 10:49:13 -07:00
Cole Faust
1ae7b774eb Remove timestamp from local build number
The build_info.prop file was converted to soong, which then caused it to
have a stale build number due to not adding the build number file as a
dependency to avoid rebuilds. I added it as a dependency to fix the
staleness, but it always rebuilds locally now.

I think the way it worked before, it would get stale build numbers,
except that it was cleared with installclean which was always run on CI.
Now that it's a soong module and generated in out/soong/.intermediates
it's not cleared by installclean. I could make a system to register
files that should be installclean'd from a soong module, but I'd
eventually like to eliminate the need to run installclean entirely.

So as an alternative, just make the build number not change every build
when doing local builds, by removing the timestamp from it.

Bug: 346757289
Test: m repeatedly and observe no rebuilds the second time (of the system image, the build flags infrastructure seems to do some small rebuilding)
Change-Id: I0207feb739523dde3e89d1e5c4822865f641c313
2024-06-13 10:27:20 -07:00
Aleks Todorov
ec2cf1e580 cc: Make cc_genrule defaultable
Allows genrule_defaults to be used with cc_genrule.

This change does not create a cc_genrule_defaults, that can be done in a
follow-up change.

Bug: 325444956
Test: m [custom cc_genrule with defaults]
Change-Id: I9e2d26b31e04eb972801421d25b1ff6c8ef75369
2024-06-13 17:34:45 +01:00
LaMont Jones
09721868db release_config: various cleanup
- move WriteMakefile to release_config.go
- use slices.Sort instead of slices.SortFunc where applicable.
- improve error message when inheriting an invalid release config

Bug: None
Test: manual
Change-Id: Id959ddccc75fad912518d5cce8d14da506e0bbea
2024-06-13 09:18:03 -07:00
Justin Yun
613bdc5b64 Call PackageFile for dexpreopt files of APEX bundles.
Soong generates AndroidMk modules and Make installs the required
dexpreopt files for APEX bundles. This dependency is not tracked by
the soong and missing from the soong filesystem.
Call PackageFile for the dexpreopt files of APEX bundles to install
the files in the soong-built system image.

Bug: 346439786
Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug \
      && m aosp_cf_system_x86_64
Change-Id: I6af4afe5b3183c89bf687ac779007b87e1d7e948
2024-06-13 12:37:04 +09:00
Justin Yun
22c8aca893 Call PackageFile for dexpreopt files
Dexpreopt files use RuleBuilder.Install() that installs the file from
Make. By calling PackageFile, this information is also shared to
soong PackagingSpec.

Bug: 339314890
Test: See if .prof, .bprof, and vdex files are installed with
      "m aosp_cf_system_x86_64"

Change-Id: I42167603ecfd4334e4f35602bdf03a21846fc798
2024-06-13 09:04:42 +09:00
Treehugger Robot
6918e6084c Merge "Add unit test to verify contents of bootclasspath.pb.textproto" into main 2024-06-12 22:51:23 +00:00
Spandan Das
8a296baab8 Remove unused dexpreopt install path function
`odexOnSystemOther` (presumably) returns a boolean indicating whether
.odex/.vdex files should be installed in system_other.img. The
installation location logic is now colocated in build/soong/dexpreopt
package, so we can delete this unused function.

Test: go build ./java
Change-Id: Ibd1a3a0b945f8d7953baad05cbaf65cb58b5a05a
2024-06-12 21:17:29 +00:00
Wei Li
8778d26c9d Add following directories to Android.mk denylist to block new Android.mk files.
bionic/
development/
device/sample/
prebuilts/
sdk/
test/
trusty/

Bug: 318428689
Change-Id: I327bf354df064a5249edc3e9c846199cde0ce00b
Test: CIs
2024-06-12 21:13:24 +00:00
Jihoon Kang
ce320f86a0 Pass --non-updatable-system flag to aapt2 when versionCode is unspecified
This change modifies the flags passed to aapt2 when generating the APKs.
Currently, the version code of the platform sdk version is passed to
aapt2 when the bp module definition does not explicitly specify the
`--version-code` flag in "aaptflags" parameter. This change modifies
such behavior so that the newly introduced `--non-updatable-system` flag
is passed instead of implicitly passing the `--version-code`.

If "versionCode" is explicitly specified in the app manifest, the
`--non-updatable-system` flag is overriden and is a no-op. This way, the
build continues to stay agnostic to the content of the manifest files.

This flag is not passed for build actions of android_test modules, as
test targets do not set `versionCode`.

Test: m nothing --no-skip-soong-tests &&  manually inspect aapt2 build rules
Bug: 311724570
Change-Id: Ie3e50506d90da1d28b8039e29d76859b1927b5e2
2024-06-12 21:06:36 +00:00
Spandan Das
fcea0a8cc4 Add unit test to verify contents of bootclasspath.pb.textproto
The unit test is useful for verifying that
min_sdk_version/max_sdk_version information is populated correctly.
Followup to https://r.android.com/3128893

Bug: 345621958
Test: go test ./apex
Change-Id: Id7696a8cefaab6d0b7f38b65a33e326152ac12d3
2024-06-12 18:22:46 +00:00
Spandan Das
a551b011d0 Merge "Fix missing missing (min|max)_sdk_version in bootclasspath.pb" into main 2024-06-12 18:21:33 +00:00