aboutsummaryrefslogtreecommitdiff
path: root/apex/apex.go
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-14.0.0_r50' of ↵George Zacharia2024-06-301-113/+113
|\ | | | | | | | | | | https://android.googlesource.com/platform/build/soong into u14.0 Android 14.0.0 Release 50 (AP2A.240605.024)
| * Merge "Some tweaks to the aconfig flag collection logic" into main am: ↵Yu Liu2024-02-291-0/+10
| |\ | | | | | | | | | | | | | | | | | | | | | | | | 6c2cd90232 am: 4782aa50bf Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2983533 Change-Id: I91948e96a5df217441135f631040e80a060197d7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * Some tweaks to the aconfig flag collection logicYu Liu2024-02-281-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Output the aconfig flags pb and storage files to /etc 2. Fix a bug where aconfig flags were not collected for java_sdk_library Bug: None Test: manual and unit tests. Change-Id: I0896e91918c1b53c98ac9dc0f4a636f158200891
| * | Merge "Add sh_binary dependencies to primary abi of the target" into main ↵Riya Thakur2024-02-281-4/+6
| |\| | | | | | | | | | | | | | | | | | | | | | | | | am: 88c21f567f am: 54905d0584 Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2977494 Change-Id: Id1e9d3f6173cc58909fa210138c01483e19ef83a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| | * Add sh_binary dependencies to primary abi of the targetRiya Thakur2024-02-271-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If compile_multilib is set to 'both' for an apex having a sh_binary dependency for which compile_multilib is not set, then the sh_binary dependency should be added for the primary ABI of the target Bug: 325628733,326985291 Test: m Change-Id: Ie9cd12d49f6854c33af3724cb8e2fc3d8b7627a0
| * | Do not allow to link libbinder from Vendor APEXKiyoung Kim2024-02-201-8/+1
| |/ | | | | | | | | | | | | | | | | | | | | Libbinder was temporarily allowed to be linked from Vendor APEXes before all other modules are ready to use libbinder_ndk instead. This should be removed before VNDK deprecation. Bug: 301378087 Test: Husky build and boot succeeded Ignore-AOSP-First: Build fix required from plus aosp branch Change-Id: Id32868489a1a5dd0337aa6bdb773d93bc4e5a921
| * Add profiling to skip strict updatability allowlistYisroel Forta2024-02-131-0/+1
| | | | | | | | | | | | Test: presubmit Bug: b/293957254 Change-Id: I9d53f3237ff5f076b8299138e02d991f8881e06f
| * Merge "Move ApexBundleInfoProvider from apex/ to android/" into mainSpandan Das2024-01-251-10/+4
| |\
| | * Move ApexBundleInfoProvider from apex/ to android/Spandan Das2024-01-251-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This provider contains information about the contents of an apex and is set during the post deps phase of top-level source and prebuilt apexes. java.dexpreoptDisabled needs to distinguish between platform and apex variants of a library to prevent creating duplicate ninja rules. It does so by looking at ApexInfoProvider. This provider gets set on the ctx of the java_library being dexpreopted. In case of prebuilts, these rules are being moved to the top-level prebuilt apexes. Move ApexInfoBundleProvider from apex to android so that java.dexpreoptDisabled can consume this provider without running into a golang circular dependency. (java.dexpreoptDisabled will use this provider in the next CL of this stack). Test: go build ./android ./apex Change-Id: I665abd9d0591eeb17b273cc822beb20690e6af09
| * | Convert coverageMutator to a TransitionMutatorColin Cross2024-01-241-1/+1
| |/ | | | | | | | | | | | | | | | | | | Convert coverageMutator to a TransitionMutator as a step towards variants-on-demand. Bug: 319288033 Test: coverage_test.go Test: treehugger coverage builds Change-Id: Ic50c0040dea8b42c36b5d784221daa00b7b0d379
| * Skip strict updatability linting on more apexesCole Faust2024-01-181-1/+28
| | | | | | | | | | | | | | | | | | | | strict updatability linting has been disabled for a while now. In the process of re-enabling it, we need to allowlist all the apexes that have violations. Bug: 320698986 Test: Presubmits Change-Id: I96501bc120d8127cb3675ecbee088ea887fabbc1
| * Drop runtime apex deps from implicit baselineApexAvailable mapSpandan Das2024-01-161-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | The availability of these soong modules to com.android.runtime has been made explicit in Android.bp files One exception is libz. Making apex_available explicit has some subtle implications on stub/impl selection which breaks coverage builds. Bug: 281077552 Test: m nothing Change-Id: I6db7db6dfcb5c468ca68c3e166fe79b9356c4fa8
| * Merge "[apex] Add support for prebuilt_etc types in ApexNativeDependencies" ↵Seungjae Yoo2024-01-111-0/+10
| |\ | | | | | | | | | into main
| | * [apex] Add support for prebuilt_etc types in ApexNativeDependenciesAlice Wang2024-01-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cl adds support for prebuilt_etc types in ApexNativeDependencies, this enables us to include rialto only in the arm64 environment. Test: atest sign_virt_apex_test Bug: 279886264 Change-Id: If25e726721ed6867858880bc6907a0a3c0cb252d
| * | Merge "Drop wifi apex deps from implicit baselineApexAvailable map" into mainTreehugger Robot2024-01-101-26/+0
| |\ \
| | * | Drop wifi apex deps from implicit baselineApexAvailable mapSpandan Das2024-01-101-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The availability of these soong modules to com.android.wifi has been made explicit in Android.bp files Bug: 281077552 Test: m nothing Change-Id: I6ac447ffe4b477a49064ed0ec4081e087f0edf9d
| * | | Propagate aconfig providers for more modules.LaMont Jones2024-01-101-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 308625757 Test: manual Change-Id: Iaf6d45a4259f1c6c34476c34c431344283ae2830
| * | | Merge "Split usage of UseVndk" into mainKiyoung Kim2024-01-101-1/+1
| |\ \ \ | | |/ / | |/| |
| | * | Split usage of UseVndkKiyoung Kim2024-01-091-1/+1
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UseVndk is a function to check if the module can use VNDK libraries, but this function was also used to check if the module is installed in the treblelized partition (vendor or product). As of VNDK deprecation, UseVndk funtion will return false even when the module is installed in vendor / product partition, so we need a separated function to check this. This change introduces a new function 'InVendorOrProduct' which replaces UseVndk based on its usage. Bug: 316829758 Test: m nothing --no-skip-soong-tests passed Change-Id: Ic61fcd16c4554c355f6005894a4519b044b27fe5
| * / Replace panic with ModuleErrorfSpandan Das2024-01-091-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a followup cleanup for aosp/2876754 and replaces panic with ctx.ModuleErrorf. The latter creates a more expressive build error. Implementation details - export moduleErrorf interface from build/soong/android. This minimal interface will be used as a parameter for `DexJarBuildPath` - Add ModuleErrorf to the function signature of DexJarBuildPath. This parameter only gets used for Import and SdkLibraryImport structs. These two can have duplicate deapexer definitions, and ModuleErrorf will be used to report that error - Create a minimal implementation of `ModuleErrorf` in tests of java and apex Test: m nothing --no-skip-soong-tests Change-Id: I0febec651f40c3f04deb957e64133c94b80fbd78
| * Merge "Generate image variation without version" into mainKiyoung Kim2024-01-051-7/+10
| |\
| | * Generate image variation without versionKiyoung Kim2024-01-051-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current CC/Rust Image variations are generated with target VNDK version. However, this is no longer valid if VNDK is deprecated. This change generates image variation without version ("vendor", "product") if VNDK is deprecated. Bug: 316829758 Test: m nothing --no-skip-soong-tests passed Test: aosp_cf_x86_64_phone build succeeded Change-Id: I2387ed8a2632bfd9462621f882a947695ae1653d
| * | Drop mediaprovider deps from implicit baselineApexAvailable mapSpandan Das2024-01-021-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The availability of these soong modules to com.android.mediaprovider has been made explicit in Android.bp files Bug: 281077552 Test: m nothing Change-Id: I4c1e751a2a912271049bd241a01168685716bf9c
| * | Drop tethering deps from implicit baselineApexAvailable mapSpandan Das2024-01-021-8/+0
| |/ | | | | | | | | | | | | | | | | The availability of these soong modules to com.android.tethering has been made explicit in Android.bp files Bug: 281077552 Test: m nothing Change-Id: Ib96d5ecb8518628fda8c474b10e443abacc9bc21
| * Merge changes I152f8e5e,I3259a9b8 into mainColin Cross2023-12-221-1/+1
| |\ | | | | | | | | | | | | | | | * changes: Reland "Remove non-generic provider APIs" Update usage of SetProvider
| | * Update usage of SetProviderSpandan Das2023-12-221-1/+1
| | | | | | | | | | | | | | | Test: go build ./apex (top of stack) Change-Id: I3259a9b88c6a22f94e41ef43e2c42d9ea56c2afb
| * | Drop libprofile modules from baselinseApexAvailable mapSpandan Das2023-12-211-9/+0
| |/ | | | | | | | | | | | | | | | | The implicit //apex_available:anyapex seems to be unused, so we can drop it Bug: 281077552 Test: m nothing Change-Id: I66fef50901bfd19237a9ef96b169ecefa01d76b9
| * Use the correct bootjars when multiple prebuilt apexes existSpandan Das2023-12-201-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hiddenapi and dexpreopt require boot and system server jars from apexes. When building with prebuilts, this comes via java_import/java_sdk_library_import, which acts as a hook for prebuilt_apex/apex_set. If we have multiple apexes in the tree, this hook becomes 1:many. This CL prepares dex_bootjars to select the right deapexerd .jar files when mutliple prebuilts exist. Implementation details - Update prebuilt module types (prebuilt_apex/apex_set) and source apexes to set a map of library name to dex jar path on host. - dex_bootjars will access the path of the .dex jar on host via the provider. These then copied/installed to the right locations. This CL does not drop the old mechanism to get the dex file (i.e. by creating a dep on java_library). Once all mainline modules have been flagged using apex_contributions, the old mechanism will be dropped Bug: 308790457 Test: git_master-art-host:art-gtest https://android-build.corp.google.com/builds/abtd/run/L21500030000926533 Test: git_main:art_standalone_dexpreopt_tests https://android-build.corp.google.com/builds/abtd/run/L99000030000891212 Test: Added a unit test that checks that the right .jar is selected when multiple prebuilts exists Change-Id: I6ef94135b9303a35135810930af4b641df13a583
| * Merge "Use the correct prof file when multiple prebuilt apexes exist" into mainSpandan Das2023-12-201-0/+18
| |\
| | * Use the correct prof file when multiple prebuilt apexes existSpandan Das2023-12-191-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Generating boot image requires a .prof file provided by the ART apex. When building with prebuilts, this comes via the prebuilt_bootclasspath_fragment module, which acts as a shim for prebuilt_apex/apex_set. If we have multiple prebuilt apexes in the tree, this shim becomes 1:many. This CL prepares dex_bootjars to select the right .prof file when multiple prebuilts exist. Implementation details - Update deps mutator of dex_bootjars to create a dep on all_apex_contributions. The latter contains information about which apex is selected in a specific release configuration. dex_bootjars will create a dependency on the selected apex in a postdeps phase mutator. - All apex module types (apex, prebuilt_apex and apex_set) will set a provider that contains info about the location of the .prof file on host - dex_bootjars will access the provider of the selected apex to get the location of the .prof file This CL does not drop the old mechanism to get the .prof file (i.e. by creating a dep on {prebuilt_}bootclasspath_fragment). Once all mainline modules have been flagged using apex_contributions, the old mechanism will be dropped Bug: 308790457 Test: Added a unit test that checks that the right .prof is selected when multiple prebuilts exists Change-Id: I40fdb21416c46bed32f6ff187ce5153711ec2c69
| * | move CollectDependencyAconfigFiles to androidLaMont Jones2023-12-191-2/+1
| |/ | | | | | | | | | | | | | | This needs to be called by some modules in android. Bug: 308625757 Test: manual Change-Id: I389fcfd88a3f4bd85a9218fdd4dd66d8a239bb67
| * Convert OtherModuleProvider to generic providers APIColin Cross2023-12-141-8/+8
| | | | | | | | | | | | | | | | | | Convert all of the callers of OtherModuleProvider/OtherModuleHasProvider to use the type-safe android.OtherModuleProvider API. Bug: 316410648 Test: builds Change-Id: Id77f514d68761a262d9ea830a601dbed804bbbe5
| * Convert Provider to generic providers APIColin Cross2023-12-141-2/+2
| | | | | | | | | | | | | | | | | | | | Convert all of the callers of Provider/HasProvider to use the type-safe android.ModuleProvider API. Bug: 316410648 Test: builds Change-Id: I73479de1625fa2865b6c73444cd477e50d56dc5a
| * Convert SetProvider to generic providers APIColin Cross2023-12-141-3/+3
| | | | | | | | | | | | | | | | | | Convert all of the callers of SetProvider to use the type-safe android.SetProvider API. Bug: 316410648 Test: builds Change-Id: If58f4b5355264ddab2045bc3591a4eac19cd58fc
| * Convert NewProvider/NewMutatorProvider to generic providers APIColin Cross2023-12-141-2/+2
| | | | | | | | | | | | | | | | | | Convert all of the callers to NewProvider and NewMutatorProvider to use a generic type parameter instead of an example object. Bug: 316410648 Test: builds Change-Id: Ic9cdafc87336e26730d3fd596df05de0e7267542
* | Support multiple sources for prebuilt_etcThiébaud Weksteen2024-04-281-5/+10
|/ | | | | | | | | | | | | | Keep the Src attribute for compatibility. The new attribute (Srcs) is mutually exclusive with Src. Keep SourceFilePath and OutputFile for compatibility with other modules. These can be removed in a follow up change. Bug: 328313691 Test: presubmit Test: m blueprint_tests Test: prebuilts/build-tools/build-prebuilts.sh (on build-tools branch) Change-Id: I5d5b2657715a7180a829c7ed0f501872d561b662
* Support rust modules when packaging aconfig files in apex.Yu Liu2023-12-111-1/+2
| | | | | | | | | | Also remove the code to package aconfig files for transitive dependencies since those files should have already been included in the direct dependencies. Bug: 311173471 Test: Unit tests Change-Id: I25637af9381f71a78b70a8de9894618188c9735d
* Remove ConvertWithBp2build implementationsColin Cross2023-12-081-518/+0
| | | | | | | | | Remove the ConvertWithBp2build implementations from all the module types, along with the related code. Bug: 315353489 Test: m blueprint_tests Change-Id: I212672286686a318893bc7348ddd5a5ec51e77a7
* Merge aconfig files per-moduleColin Cross2023-12-071-1/+1
| | | | | | | | | | | Passing the list of all transitive aconfig files to Make causes extra Kati analysis runs when dependencies are changed in Android.bp files. Since Make is going to merge them anyways, merge them per-module and pass a single aconfig file to Make for each module. Fixes: 313698230 Test: m out/target/product/vsoc_x86_64/system/etc/aconfig_flags.pb Change-Id: Ifde4826bc93bc06e40338f72b4cb39eed26ca08d
* Error if vendor apex adds an LLNDK libraryJooyung Han2023-12-051-4/+7
| | | | | | | | | | | | This is a common mistake when creating a vendor apex. They often try to list all dependencies. Adding an LLNDK results in putting a stub library in APEX, which simply doesn't work. This change prevents stubs from being added to APEX. Bug: 314033460 Test: go test ./apex Change-Id: Ic3365047028d9ab6f06992d52aece5a3890177bb
* Add container property to aconfig_declarations.Yu Liu2023-11-281-0/+18
| | | | | | Bug: 311155208 Test: Unit test Change-Id: I7b187138856d0144203961e82b6dad5e2f8eed9d
* Change deps of ctx.Install* from Paths to InstallPathsColin Cross2023-11-171-1/+1
| | | | | | | | | | | Installed files should only depend on other installed files, change the deps arguments of the ctx.Install* methods from Paths to InstallPaths. Bug: 311428265 Test: builds Change-Id: I1ebef60a943bdbe907744cc43aa985371ac56d32 Merged-In: I1ebef60a943bdbe907744cc43aa985371ac56d32
* Merge "Stop collecting path entry for module_bp_java_deps.json from each ↵Colin Cross2023-11-151-6/+0
|\ | | | | | | module type" into main
| * Stop collecting path entry for module_bp_java_deps.json from each module typeColin Cross2023-11-151-6/+0
| | | | | | | | | | | | | | | | | | | | | | The jdepsGeneratorSingleton can get the module path directly, it doesn't need to be collected by each module type that implements IDEInfo. Fixes module types (like android_library) that didn't reach the code that collected the path. Bug: 309835196 Test: out/soong/module_bp_java_deps.json contains path for ExtServices.core Change-Id: If8cb81b4f708e0367f156ade164bee253bf53492
* | Remove redundant baseline apex_available entriesSpandan Das2023-11-131-25/+0
| | | | | | | | | | | | | | | | | | These soong modules list the relevant apex_available values explicitly in Android.bp files Test: m nothing Bug: 281077552 Change-Id: I7ec8e0f9d7ab7cbfb881d59d3e5d2bb8a2975ff8
* | Remove empty baseline apex_available mapsSpandan Das2023-11-131-28/+0
|/ | | | | | | | | And com.android.appsearch since the lone entry in the map specifies com.android.appsearch in its Android.bp file explicitly Bug: 281077552 Test: m nothing Change-Id: I0b7e37f0b6ace21d37c8b0077bacf83b49318744
* Enable dup check for test apexesJooyung Han2023-11-021-4/+0
| | | | | | Bug: 263308515 Test: m test_broken_com.android.art Change-Id: I54aaba9424973f4d54c5a17f640cd79ac5dd28ec
* Add apex.unwanted_transitive_deps propertyJooyung Han2023-11-021-2/+18
| | | | | | | | | | It can be used as a workaround when the current build system adds more than necessary to APEX. Bug: 263308515 Bug: 295593640 Test: m blueprint_tests Change-Id: Ib59c4ac59e6128b3d112b97876e9e2d1e6ec4211
* Rewrite how to generate apexkeys.txtJooyung Han2023-10-301-0/+4
| | | | | | | | | | | | | Instead of listing all apexes in the source tree, now each apex emits its own fragment for apexkeys.txt, which is pointed by LOCAL_APEX_KEYS_FILE. Makefile collects apexkeys.txt from installed apex files. This is to avoid listing unrelated apexes (not installed, testdata, unexported namespaces, etc.) Bug: 304914238 Test: m apexkeys.txt Test: m blueprint-tests Change-Id: Iefbe6e486cb418955584ad1a282455307e90be95
* Generate product variants by defaultJustin Yun2023-09-271-1/+1
| | | | | | | | | | | | PRODUCT_PRODUCT_VNDK_VERSION is set to 'current' by default. Now, we can generate product variants without checking the PRODUCT_PRODUCT_VNDK_VERSION build variable. Remove reading the PRODUCT_PRODUCT_VNDK_VERSION variable from soong and generate product variants by default. Bug: 302255959 Test: m Change-Id: I9a9b2076f4367c5ce9a393bbb206f8dee3884bd8