summaryrefslogtreecommitdiff
path: root/android/variable.go
AgeCommit message (Collapse)Author
2023-07-14Add a Make variable that overrides configured jar locations. Jiakai Zhang
We had hardcoded logic to override "framework-minus-apex", but we need to override more jars, so this CL adds a general solution for this. Bug: 290583827 Test: m nothing Change-Id: I211ebda7aa2803886ab6e6d081d26327665e49a6
2023-06-23Merge "Remove "flattened" apexes" Jooyung Han
2023-06-21Rename device_config --> aconfig and definitions --> declarations Joe Onorato
Bug: 285303012 Test: for x in next trunk trunk_food trunk_staging ; do lunch aosp_panther-$x-eng ; m nothing ; done Change-Id: I3375f46b3ecbbc516d1bee6ab3f80725fcccde8f
2023-06-21Remove "flattened" apexes Jooyung Han
Now soong doesn't build "flattened" apexes. Bug: 279835185 Test: m nothing (soong tests) Test: m && launch_cvd (cuttlefish) Change-Id: Id3c540ece1a15cecacc185da9aa17285edd2f493
2023-06-20Remove PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES Jooyung Han
We will deprecate flattened apexes. In this change, GSI-specific make variable (PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES) is removed. The variable was used to install both image/flattened apexes in the GSI, so that it works on ro.apex.updatable devices and not-updatable devices. Now, GSI will have only image APEXes in it. Bug: 278826656 Test: lunch gsi_arm64-userdebug && m # no flattened apexes Change-Id: Ie5fe505b9f2a6a1687252513788fd3e16bc147c5
2023-06-06Merge changes from topic "android_stubs_current_refactor" Jihoon Kang
* changes: Cleanup android.JavaApiLibraryName references Redefine core and core platform API surface java_library Introduce product variable Build_from_text_stub Introduce "Exclude_static_libs" property for Java modules
2023-06-05Merge "Remove SepolicySplit." Steven Moreland
2023-06-05Introduce product variable Build_from_text_stub Jihoon Kang
Build_from_text_stub can be used to specify static lib and exclude static lib based on build configuration. Bug: 285410821 Test: m Change-Id: I083f32325c7b3ab5e88c4f5cb248c00f2094fb1e
2023-06-02Add an allowlist for modules that have broken optional_uses_libs. Jiakai Zhang
Bug: 282877248 Test: m nothing Change-Id: I1afe9d523af0633f0428d4c15e1417db1dae4e93
2023-06-01Drop INTERNAL_PLATFORM_MISSING_USES_LIBRARIES. Jiakai Zhang
Bug: 282877248 Test: Presubmit build tests. Change-Id: Idd69433f308f5f47973ff0d5340a2399a27cb32c
2023-05-31Remove SepolicySplit. Steven Moreland
Obsolete. Bug: 257176017 Test: build&boot Change-Id: Id639ad77f12d38507ad1a2300cb392bbfeadb9e4
2023-05-24build: Fix bp2build panic issue liulvping
panic in top down mutator "bp2build_conversion_bp2build" for module "foo". reflect: call of reflect.Value.NumField on interface Value Test: go test ./bp2build Change-Id: I9ee460ca38a37c6a6c1a0787159fa5f38b852b55
2023-05-23Merge "Support sandboxing genrule" Vinh Tran
2023-05-22Support sandboxing genrule Yu Liu
Bug: 281067655 Test: local build Change-Id: I123b5e51eaf1476d1215e5208331b6540d45fd98
2023-05-18Revert "Revert "Restrict plugins to an existing allowlist"" Liz Kammer
This reverts commit b20a12553ef65a6401dfe0f67ab8b882da0f89db. Reason for revert: Rollforward with fix soong-ca-certificates-apex was missing from allowlist Test: verify fixes CI breakages (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dfe4a9e4dd088f42ba5e0a3c4f7777c253d378d3) Merged-In: I00687bd2962dbdaaf55189ca4aa82183264eb8d7 Change-Id: I00687bd2962dbdaaf55189ca4aa82183264eb8d7
2023-05-13Aconfig rules Joe Onorato
Test: m services_device_config (which runs sooong tests too) Change-Id: I432e914d01d2bff77ba68de65ae5baea527090f5
2023-05-08Bp2build support for soong config variables + os Cole Faust
For converting the art plugins to pure soong, it would be useful to have a property that's qualified on both a soong config variable and the OS. Soong had very little-known support for this by saying your soong config variable changes the "target.android.cflags" property, and we didn't supporting bp2building that. Add the bp2build support. This cl also refactors product variable and soong variable bp2building so that they're separate from each other, which I think makes the code easier to understand. Test: go test Change-Id: Ic74dc75da8103fa2523da95c3560c9ce3c5e5672
2023-05-04Export some make variables to Bazel through product variables. Wei Li
Bug: 275472038 Test: CIs Change-Id: I4fdd0f989d75045644e8f2e32d1eb77543a3b9f3
2023-04-29Merge "Enable HWASan for multiple modules in one place(Soong)" Treehugger Robot
2023-04-2816k: Align shared libraries and executables to 4k by default Juan Yescas
The default ELF segment alignment will be 4096. This alignment can be overriden by setting the desired alignment in PRODUCT_MAX_PAGE_SIZE_SUPPORTED flag. The alignment has to be a multiple of the configured kernel page size. Test: Built changes for Pixel 4a, 6 and checked alignment. Bug: 276963698 Bug: 276801883 Change-Id: Icb380041a5b27da1fa0d86b302e1e7cde9a236d7
2023-04-19Enable HWASan for multiple modules in one place(Soong) Hang Lu
Environment variables HWASAN_INCLUDE_PATHS and PRODUCT_HWASAN_INCLUDE_PATHS can be used to enable HWASan for multiple modules, by just adding the module directory to the env variable. Bug: b/271948407 Test: Set specific module directory to above env variable and check the assembly codes of output elf files after building, finding hwasan related symbols inside. Change-Id: Ic49b515830c4469ca5fa94f547b26c0fb602fc54
2023-03-31Implement fdo_profile module type Vinh Tran
Introducing fdo_profile module type to reimplement the afdo support in cc moduels. This change allows the feature to be compatible with Bazel migration. How it works: PreDepsMutators: * BeginMutator: If non-static cc modules sets afdo prop, search and add corresponding fdo_profile module as a dep with fdoProfileTag * fdoProfileMutator: * If in fdo_profile module, set FdoProfileProvider with full path to profile * If in cc module, read FdoProfileProvider from dep with fdoProfileTag and set FdoProfileInfo.Path to FdoProfilePath field PostDepsMutators: * afdoDepsMutator: If a module has FdoProfilePath set, walk to its static deps and set itself to the deps' AfdoRdeps * afdoMutator: If a static dep has AfdoRDeps set, create afdo variant. Ignore-AOSP-First: Other CLs in the same topic are internal-only Test: go test Bug: b/267229065 Change-Id: I687d798a02d9743c92804fea36fb4ae3a7a0e5e3 Merged-In: I687d798a02d9743c92804fea36fb4ae3a7a0e5e3
2023-03-29Merge "Generate api_levels.json from the preview codenames." Dan Albert
2023-03-27Generate api_levels.json from the preview codenames. Dan Albert
When the branch is configured as something less than the max codename (for example, right now AOSP is U but V is also in development), the active codenames list will not include V. Bug: None Test: None Change-Id: Ia22388a8ba94ff00d053acb33363c3cdce7677d0
2023-03-27support PRODUCT_SOURCE_ROOT_DIRS product variable Sam Delmerico
Soong analyzes the entire source tree even though not every lunch target needs to know about every module. For example, OEM sources can be ignored for cuttlefish products. This functionality allows blueprint to ignore a list of undesired directories. Bug: 269457150 Change-Id: I1eec5d7b6a268cae4c633d8d89ed485598ebca45
2023-03-09Make using python 2 an error Cole Faust
Except if BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES is set, and except for some core py2 modules that can't be removed until python2 is fully gone. Bug: 203436762 Test: m nothing Change-Id: I62ccb6f5687eab1e79c372ffc234a90ca5b566ac
2023-03-08Use product variables from the overridden apex Cole Faust
override_apex's bp2build converter had a bug where it was looking at the product variables for the override_apex module itself instead of for the base module it is overriding. Fixes: 271424349 Test: go test Change-Id: If1e2653d3751fa908faf0ab97dfa2e943ebe98ec
2023-02-09Add `Always_use_prebuilt_sdks` into variableProperties Jeongik Cha
Unbundled build needs switch mechanism between prebuilt and source. So add Always_use_prebuilt_sdks because Unbundled_build doesn't gurantee prebuilts is used. Bug: 264498267 Bug: 246897249 Test: build Change-Id: I069d4d9e804b4cf96ae70855c7eee3a6c940c9dc
2023-01-27Merge "Support trimmed variant build in soong" Dennis Shen
2023-01-26Support trimmed variant build in soong Dennis Shen
variable.go: add a new product variable TrimmedApex which is controlled by environment variable PRODUCT_TRIMMED_APEX config.go: all config to check if trimmed build is turned on or not apex.go: add overridable apex module property: use_DCLA: <DCLA apex module> "use_DCLA" allows user to just use the lib list in DCLA to determine which native shared libraries to trim. This property is no-op if TrimApexEnabled is set to false. builder.go 1, if it is to produce a trimmed variant, fix the default version code by making the last variant digit to 2. this is only useful in local build. in production build, there is apex manifest injection by coastguard that determines the actual version code. 2, create a new apex rule called: "TrimmedApexRule", this rule invokes an apexer wrapper called apexer_with_trim_preprocessing which will properly trim the target libs. BUG: b/259381334 TEST: adbd banchan build for both static and trimmed variant Change-Id: I38a91cdef86a3c9185d00610ab3dd7acd07fd90a
2023-01-11bp2build correctly handle empty soong_config_var Liz Kammer
Previously in cases where a variable value was set but empty in a bp file we ignored the value in bp2build; however, the correct behavior is to take the empty value for each case. The tests for soong config vars with empty_prop_for_string_var and unused_string_var: https://cs.android.com/android/platform/superproject/+/master:build/soong/android/soong_config_modules_test.go;l=243-283;drc=72beb34609217f3c98623fb6795b6417c7f0fc65 highlight the difference in when conditions default should be used or not. Test: go test bp2build tests Change-Id: I9768241f013a1a1bc8fa23657a066b5b3f52f09b
2022-12-05Create a new product variable to gate blueprint files Spandan Das
Users can use this feature by 1. Setting PRODUCT_INCLUDE_TAGS += <val> in their product mk files 2. Set ``` blueprint_packge_includes { match_al: ["<val>"], } other_module_type {name: foo} other_module_type {name: bar} ``` bar and foo will be included if and only if <val> is set Test: Unit tests in blueprint Test: TH Change-Id: I32eed4e3b5ac47fb565c62d13d8881fa984c86f4
2022-11-11Remove AfdoAdditionalProfileDirs product variable Vinh Tran
AfdoAdditionalProfileDirs is unconnected to build/make/core/soong_config.mk and is currently unused. Removing AfdoAdditionalProfileDirs will cut down on complexity when we migrate the support of auto-fdo profiles to Bazel cc rules. b/258684450 proposes an alternative to support the use cases that were meant to be supported by AfdoAdditionalProfileDirs. Test: existing go tests Bug: 253540178 Change-Id: I024e48598a560717a1d6c19b16bde3fe65ff1961
2022-09-21Merge "Revert^2 "deletion of clang_cflags & clang_asflags from Soong"" Alix Espino
2022-09-14Revert^2 "deletion of clang_cflags & clang_asflags from Soong" Alix Espino
e9a6865bc7c51028ed348f6d1c6b975ee8b98837 Change-Id: I20be0561628ee9da5c1431975f364459b6184330
2022-09-12Merge "Revert "deletion of clang_cflags & clang_asflags from Soong"" Treehugger Robot
2022-09-12Revert "deletion of clang_cflags & clang_asflags from Soong" Alix Espino
Revert submission 2154033-delete clang_cflags clang_asflags Reason for revert: Broke build on git_tm-dev-plus-aosp and downstream branches Reverted Changes: I5c499a37e:Default BuildBrokenClangCFlags & BuildBrokenClang... Ic1d90b72d:deletion of clang_cflags & clang_asflags from Soon... Change-Id: Ic55dd85a824cf1a543249e0b00072b8c08a475b8
2022-09-12Merge "deletion of clang_cflags & clang_asflags from Soong" Alix Espino
2022-09-09deletion of clang_cflags & clang_asflags from Soong Alix
Clang_cflags and clang_asflags are depecrated. Set up BUILD_BROKEN flags so partners can bypass errors from using them Bug: 226636335 Test: m nothing & treehugger Change-Id: Ic1d90b72decc4c6c1f7e6dda95a2c56ab2c26d86
2022-09-09product_variables srcs in prebuilt_etc Alix
bp2build conversion handles product_variable srcs bug: 228353067 Test: prebuilt_etc_conversion_test.go Change-Id: I82d3a384ee14d4e981d502dd9eb824c87d5ae2c7
2022-08-26Deprecating clang Property Alix
Clang has defaulted to true since 2018. Clang property is deprecated. Set up a BUILD_BROKEN_CLANG_PROPERTY flag so partners can bypass \ errors from using clang. Bug: 208980553 Test: m nothing & treehugger Change-Id: I8fd7d3e6bdbb963279248d3482e8a590238727e3
2022-08-17Reformat build/soong for go 1.19 Colin Cross
Test: none Change-Id: I132368f0fcbdb5ea088b5b84dbe4ccfdd9e94cad
2022-08-12Add mainline dev certificate dir to config Inseob Kim
Bug: 33691272 Test: build Change-Id: I22aa2f016042eed8555c66a19caeb8967416484d
2022-07-14Add ability to force compile as 64 bit. Christopher Ferris
When trying to build a single 64 bit and 32 bit image, there are a few executables that are prefer32. When set, this will force all of those targets to be compiled as 64 bit. Test: With this option, drmserver/mediaserver are built as 64 bit. Test: Without this option, drmserver/mediaserver are built as 32 bit. Change-Id: I1c3dbe229f9b612ff76b857ca7163b14e7dc92c5
2022-06-27Merge "Deprecate depfile in gensrcs" Vinh Tran
2022-06-27Deprecate depfile in gensrcs Vinh Tran
All existing gensrsc modulePartners who use the property can use BUILD_BROKEN_DEP_FILE to bypass the error Test: CI Bug: 179452413 Fix: 179452413 Change-Id: I7cd39484b43eba693d79188b9a374f192198f90f
2022-06-21buildinfo_prop generates ro.build.version.known_codenames Jiyong Park
The sysprop is now generated as the corresponding Make variable PLATFORM_VERSION_KNOWN_CODENAMES is imported. Bug: 236602028 Test: atest ComposHostTestCases Change-Id: Ife7e87ce5de65b57c51d5565e288807cf8360b28
2022-05-04Add a test for correctness of C++ compilation. Lukacs T. Berki
This required the following: - Adding Platform_base_sdk_extension_version to default soong.variables - Teaching the symlink tree creation code to understand symlinks - Making finder.go follow symlinks when requested Adding yet another knob is unfortunate, but I can't allow that unconditionally because the Android code base contains a number of symlinks giving rise to infinite directory trees because they point back to their parent and this seemed preferable to adding complicated logic like "follow symlink but if only its fully resolved version does not point under the source tree". I could be convinced about the latter, though. Test: Presubmits. Change-Id: I453f6b7e5334771f5832c700db00f9d24ed1d82f
2022-04-28Merge "Prototype changes for multitree" Treehugger Robot
2022-04-28Prototype changes for multitree Inseob Kim
This change contains a prototype implementation for multitree. Several interfaces and modules are added. 1. Imported/Exported Modules implementing Exportable interface can export artifacts to other components. "imported_filegroup" modules can import generated artifacts from other exported modules. 2. Multitree metadata It contains information about imported/exported modules in each component, and can be generated via "m update-meta". 3. cc library stub It's based on prototype stub libraries. It uses imported/exported mechanism to expose a C API, with a map.txt file and header files. Bug: 230448564 Test: m Change-Id: Id7ff7618e2c630c5617a564d8b23b60a1cc9c8e8