summaryrefslogtreecommitdiff
path: root/android/api_domain.go
AgeCommit message (Collapse)Author
2023-10-05Delete some api_bp2build dead code. Jingwen Chen
Follow up of https://android-review.googlesource.com/2630914 Bug: 284029211 Test: presubmits Change-Id: Idc0ff2f20e54b81cfdf61472a72e9cb027f60554
2023-10-03create, but dont register, bp2build_deps mutator Chris Parsons
This is the bulk of the "allowlist v2" feature. It will disable bp2build generation for modules which have transitive dependencies without a bazel build definition. This CL includes this mutator, but doesn't register it as a bp2build mutator (outside of a few unit tests). This allows us to easily iterate on completion of this feature and ensure there are no launch blockers before we finalize the change in AOSP. Bug: 285631638 Test: Unit tests Change-Id: Ifb0a079c409ca19b02cafa3fab2efa0d3deebc50
2023-09-22Switch bp2build mutator to bottom up Chris Parsons
This should be no-op, as the underlying mutator has not changed yet. Some other refactoring is required and done in this CL: - Delete some old, dead ApiBp2build code - Fix casting to TopDownMutator when it's not necessary This change is required to prepare for allowlist v2 work, as only BottomUp mutators can AddDependency. Bug: 285631638 Test: m nothing Test: presubmits Change-Id: I5212a5f5634cc13056195783e6df37ff8eb000da
2023-01-26Rename API surface provided to mainline modules Spandan Das
This API surface is provided by platform and mainline modules to other mainline modules. Rename it to module-lib API surface to align it with the terminology in go/android-api-types Test: go test ./bp2build Test: go test ./cc Change-Id: Ieb9f3214e66366fc2ceb6f47e2d6623acb537827
2022-12-28Create (API) bp2build converters for droidstubs Spandan Das
- The converter runs for api_bp2build, not bp2build workspace - Since droidstubs is an internal module created by java_sdk_library, the conversion encompasses the latter as well - Since droidstubs do not have an api_surface attribute, this conversion uses naming convention to infer the api_surface represented by the api file e.g. *stubs.source -> publicapi, *stubs.source.system -> systemapi) - Also adds an SdkIntraCore enum to represent the API surface provided by one core module to another There is also ongoing work to check in java_api_contribution modules in Soong. Once we have that, we can update this converter to operate on that module type instead Test: go test ./bp2build Change-Id: Ia85828e04c738d9ffcc524856d7c3034ee29bbf9
2022-10-25Skip the noop Soong dep edge for api_domain and contributions Spandan Das
This allows us to skip the current visibility checks of certain systemapi libraries like libsigchain. Instead of adding `//build/orchestrator/apis` to the visibility of these libraries and removing it later when the api_domains are collocated with their contributions, drop the dependency edge creation for now The dep edge will continue to exist in the generated Bazel workspace Test: m nothing Change-Id: If0d24d0cba85dc96dea3276a1ec0f8fa51adb379
2022-10-07Converters for contributions to systemapi and vendorapi Spandan Das
The module types in scope of this conversion are 1. cc_library and cc_library_shared (non-null llndk or stubs prop) 2. cc_library_headers (all) For (2), we need some postprocessing on the results of the parser bp2BuildParseBaseProps. This is necessary because arch and os specific API exports need to be flattened and added to the generateed API headers target along NoConfigAxis e.g. ``` The api equivalent of cc_library_headers ( name = "lifoo", deps = select({ "//build/bazel/platforms/arch:arm": ["arm_deps"], "//build/bazel/platforms/arch:arm64": ["arm64_deps"], }), ) should be cc_api_library_headers ( name = "lifoo", deps = ["arm_deps", "arm64_deps"], ) ``` For (1), we also need to generate 1:many header api targets so that arch-specific deps can propagate arch metadata to the top-level api_domain rule Test: go test ./bp2build Test: go test ./cc Change-Id: Ie40cba1ac8e89f290b3d926c190d5e93abd52859
2022-10-04Move API providing modules from bp2build to api_bp2build workspace Spandan Das
The module types in scope are 1. ndk_library 2. ndk_headers, versioned_ndk_headers 3. api_domain These modules will no longer generate Bazel targets in bp2build workspace. A new soong mode `api_bp2build` will be used to generate API specific targets in a separate Bazel workspace at out/soong/api_bp2build Test: go test ./bp2build Change-Id: I01d06b6d8b8364c0d56d6d3f07f8f8bf21db31d7
2022-09-21Multi-tree API bp2build converter for ndk_library Spandan Das
This is a partial bp2build conversion that only emits the cc_api_contribution target of ndk_library. We also need to convert this to cc_stub_suite eventually to enable building vendor/product API domains with Bazel Also create an enum for the three known Multi-tree API surfaces (will likely be expanded in the future) Test: go test ./bp2build Test: b cquery //bionic/libc:libc.ndk.contribution --output=starlark --starlark:expr="providers(target)" Change-Id: Idb24871ba20aae132b61eb31ef35c917cacae9e1
2022-09-21Create api_domain module type and its bp2build converter Spandan Das
This module does not have any build actions in Soong yet. It will be converted to a Bazel target using bp2build, and API export will be run on the generated Bazel target Test: go test ./bp2build Test: TH Change-Id: I76df32bd9f23b60e746b2700af07668a2ed74844