| # Copyright 2019 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import("//build/config/fuchsia/target_api_level.gni") |
| import("//build/host.gni") |
| import("//build/python/python_binary.gni") |
| import("//build/python/python_host_test.gni") |
| |
| group("tests") { |
| testonly = true |
| |
| deps = [ |
| "generate_idk:tests", |
| "generate_version_history:tests", |
| "meta:tests($host_toolchain)", |
| "sdk_common:tests", |
| "tests", |
| ] |
| } |
| |
| # The lists below ensure that targets defined with C++ sdk_*() rules are |
| # intended to be included in the specified IDK. Unlike |
| # //sdk/fidl:sdk_fidl_targets, this does not guarantee that they are actually |
| # included in an IDK. Note that these targets may be included in the IDK and its |
| # manifest even if the corresponding `_sdk` target may not appear in |
| # //sdk/BUILD.gn. This can happen if one of the targets included in that file |
| # has one of the following types of dependencies on the target: |
| # * `public_deps` |
| # * `deps` in an `sdk_source_set()` |
| # * `runtime_deps`in an `sdk_*_library()` |
| |
| # Contains all stable source sets distributed with the partner IDK. None are |
| # testonly. |
| _partner_idk_source_sets_list = [ |
| # Stable `sdk_source_set()` targets: |
| # keep-sorted: begin |
| "//sdk/lib/async:async-cpp", |
| "//sdk/lib/async", |
| "//sdk/lib/async-loop:async-loop-cpp", |
| "//sdk/lib/async-loop", |
| "//sdk/lib/async-loop-testing/cpp", |
| "//sdk/lib/async-testing:async-testing", |
| "//sdk/lib/async_patterns/cpp", |
| "//sdk/lib/async_patterns/testing/cpp", |
| "//sdk/lib/component/incoming/cpp", |
| "//sdk/lib/component/outgoing/cpp", |
| "//sdk/lib/driver/component/cpp", |
| "//sdk/lib/driver/node/cpp", |
| "//sdk/lib/driver/devfs/cpp", |
| "//sdk/lib/driver/fake-object/cpp", |
| "//sdk/lib/driver/fake-mmio-reg/cpp:cpp", |
| "//sdk/lib/driver/incoming/cpp", |
| "//sdk/lib/driver/logging/cpp", |
| "//sdk/lib/driver/outgoing/cpp", |
| "//sdk/lib/driver/runtime:driver_runtime_cpp", |
| "//sdk/lib/driver/runtime:driver_runtime_env_cpp", |
| "//sdk/lib/driver/runtime:driver_runtime_env", |
| "//sdk/lib/driver/runtime:driver_runtime_testing", |
| "//sdk/lib/driver/runtime:driver_runtime", |
| "//sdk/lib/driver/runtime/testing/cpp", |
| "//sdk/lib/driver/symbols", |
| "//sdk/lib/driver/testing/cpp", |
| "//sdk/lib/driver/fake-bti/cpp", |
| "//sdk/lib/driver/fake-object/cpp", |
| "//sdk/lib/driver/testing/cpp:scoped_global_logger", |
| "//sdk/lib/fidl_base", |
| "//sdk/lib/fidl_driver:fidl_driver_natural", |
| "//sdk/lib/fidl_driver:fidl_driver_transport", |
| "//sdk/lib/fidl_driver", |
| "//sdk/lib/fidl", |
| "//sdk/lib/fidl/hlcpp:hlcpp_base", |
| "//sdk/lib/fidl/hlcpp:hlcpp_sync", |
| "//sdk/lib/fidl/hlcpp", |
| "//sdk/lib/fidl/cpp/wire", |
| "//sdk/lib/fit-promise", |
| "//sdk/lib/fit", |
| "//sdk/lib/images/cpp", |
| "//sdk/lib/input_report_reader", |
| "//sdk/lib/inspect/component/cpp", |
| "//sdk/lib/magma_common", |
| "//sdk/lib/media/cpp:no_converters", |
| "//sdk/lib/media/cpp", |
| "//sdk/lib/stdcompat", |
| "//sdk/lib/sys/component/cpp/testing:cpp_library", |
| "//sdk/lib/sys/cpp", |
| "//sdk/lib/sys/cpp/testing:cpp", |
| "//sdk/lib/sys/service/cpp", |
| "//sdk/lib/syslog/structured_backend", |
| "//sdk/lib/ui/scenic/cpp", |
| "//sdk/lib/ui/scenic/cpp/testing:testing", |
| "//sdk/lib/utf-utils", |
| "//sdk/lib/vfs/cpp", |
| "//sdk/lib/virtgralloc:virtgralloc_headers", |
| "//sdk/lib/zbi-format", |
| "//src/devices/lib/mmio", |
| "//sdk/lib/fidl/cpp:cpp_base", |
| "//sdk/lib/fidl/cpp:hlcpp_conversion", |
| "//sdk/lib/fidl/cpp:natural_ostream", |
| "//sdk/lib/fidl/cpp", |
| "//sdk/lib/syslog/cpp", |
| "//zircon/system/ulib/hwreg:hwreg_public", |
| "//zircon/system/ulib/inspect", |
| "//zircon/system/ulib/mmio-ptr", |
| "//zircon/system/ulib/sync:sync-cpp", |
| "//zircon/system/ulib/trace", |
| "//zircon/system/ulib/trace-engine:trace-engine-headersonly", |
| "//zircon/system/ulib/trace:trace-headersonly", |
| "//zircon/system/ulib/trace-vthread", |
| "//zircon/system/ulib/trace-vthread:trace-vthread-headersonly", |
| "//zircon/system/ulib/zx", |
| |
| # keep-sorted: end |
| |
| # dart_library() targets: |
| "//sdk/testing/sl4f/client", |
| ] |
| |
| # Contains all non-test unstable source sets distributed with the partner IDK. |
| _partner_idk_unstable_source_sets_list = [ |
| # keep-sorted: begin |
| "//src/lib/memory_barriers:memory_barriers", |
| "//sdk/lib/driver/fake-platform-device/cpp", |
| "//sdk/lib/driver/fake-resource/cpp", |
| "//sdk/lib/driver/metadata/cpp", |
| "//sdk/lib/driver/power/cpp", |
| "//sdk/lib/driver/platform-device/cpp", |
| |
| # keep-sorted: end |
| ] |
| |
| # Contains all testonly unstable source sets distributed with the partner IDK. |
| _partner_idk_unstable_source_sets_list_testonly = [ |
| # keep-sorted: begin |
| # keep-sorted: end |
| ] |
| |
| # Contains all source sets using `sdk_source_set()` with the "internal" SDK |
| # category. These are not distributed in the IDK. |
| # All targets must be in the dependency tree of `//sdk/bazel_internal_only_libs` |
| # or `//sdk/firmware`. |
| # TODO(https://fxbug.dev/372986936): Eliminate all such uses and remove. |
| _internal_source_sets_list = [ |
| # DO NOT ADD TO THIS LIST. |
| |
| # TODO(https://fxbug.dev/343059325): Promote devicetree to "partner". |
| "//sdk/lib/device-watcher/cpp:cpp", |
| "//sdk/lib/driver/devicetree/manager:headers", |
| "//sdk/lib/driver/mock-mmio/cpp", |
| "//sdk/lib/driver/devicetree/manager:manager", |
| "//sdk/lib/driver/devicetree/manager:manager-test-helper", |
| "//sdk/lib/driver/devicetree/testing:board-test-helper", |
| "//sdk/lib/driver/devicetree/testing:visitor-test-helper", |
| "//sdk/lib/driver/devicetree/visitors:common-types", |
| "//sdk/lib/driver/devicetree/visitors/default/bind-property:bind-property", |
| "//sdk/lib/driver/devicetree/visitors/default/boot-metadata:boot-metadata", |
| "//sdk/lib/driver/devicetree/visitors/default/bti:bti", |
| "//sdk/lib/driver/devicetree/visitors/default:default", |
| "//sdk/lib/driver/devicetree/visitors/default/mmio:mmio", |
| "//sdk/lib/driver/devicetree/visitors/default/smc:smc", |
| "//sdk/lib/driver/devicetree/visitors:driver-visitor", |
| "//sdk/lib/driver/devicetree/visitors:load-visitors", |
| "//sdk/lib/driver/devicetree/visitors:multivisitor", |
| "//sdk/lib/driver/devicetree/visitors:property-parser", |
| "//sdk/lib/driver/devicetree/visitors:registration", |
| "//sdk/lib/driver/devicetree/visitors:registry", |
| "//sdk/lib/driver_test_realm/realm_builder/cpp:cpp", |
| |
| # TODO(https://fxbug.dev/373899421): Promote mock-mmio-range to "partner". |
| "//sdk/lib/driver/mock-mmio-range/cpp:cpp", |
| |
| # TODO(https://fxbug.dev/333907192): Promote mock-registers to "partner". |
| "//src/devices/registers/testing/mock-registers:mock-registers", |
| |
| # TODO(https://fxbug.dev/333907192): Promote mmio source sets to "partner". |
| "//src/devices/lib/mmio:test_helper", |
| "//src/devices/testing/fake-mmio-reg:fake-mmio-reg", |
| "//src/devices/testing/mock-mmio-reg:mock-mmio-reg", |
| "//zircon/system/ulib/mmio-ptr:mmio-ptr-fake", |
| |
| # TODO(https://fxbug.dev/331991540): Remove once the Firmware SDK no longer |
| # uses `sdk_source_set()`. |
| "//src/firmware/lib/abr:abr", |
| "//src/firmware/lib/storage:storage", |
| "//src/firmware/lib/zbi:zbi", |
| "//src/firmware/lib/zircon_boot:zircon_boot", |
| "//src/storage/lib/sparse/c:sparse", |
| "//third_party/android/platform/external/avb:avb", |
| "//third_party/android/platform/system:sparse_format", |
| "//third_party/vboot_reference/firmware/2lib:headers", |
| "//third_party/vboot_reference/firmware:headers", |
| "//third_party/vboot_reference/firmware/lib:gpt_misc", |
| "//third_party/vboot_reference/firmware/lib:headers", |
| |
| # TODO(https://fxbug.dev/333907192): Eliminate vendor dependencies on fzl |
| # or promote it to "partner". |
| "//zircon/system/ulib/fbl:fbl", |
| "//zircon/system/ulib/fzl:fzl", |
| ] |
| |
| # Ensure the lists are mutually exclusive. |
| _unstable_partner_idk_source_sets = |
| _partner_idk_unstable_source_sets_list + |
| _partner_idk_unstable_source_sets_list_testonly |
| _all_partner_idk_source_sets = |
| _unstable_partner_idk_source_sets + _partner_idk_source_sets_list |
| assert( |
| _partner_idk_source_sets_list + _unstable_partner_idk_source_sets - |
| _unstable_partner_idk_source_sets == _partner_idk_source_sets_list, |
| "A source set appears in both stable and unstable lists. If adding a stable source set to a list, remove it from the unstable list.") |
| assert( |
| _partner_idk_unstable_source_sets_list + |
| _partner_idk_unstable_source_sets_list_testonly - |
| _partner_idk_unstable_source_sets_list_testonly == |
| _partner_idk_unstable_source_sets_list, |
| "An unstable source set appears in both normal and testonly lists. Remove it from one of the lists.") |
| assert( |
| _all_partner_idk_source_sets + _internal_source_sets_list - |
| _internal_source_sets_list == _all_partner_idk_source_sets, |
| "A source set appears in both partner and internal lists. If promoting an internal source set, remove it from the internal list.") |
| |
| # Ensure no testonly atoms are in the non-test lists. |
| group("partner_idk_source_sets") { |
| visibility = [ ":*" ] |
| testonly = false |
| deps = _partner_idk_source_sets_list |
| } |
| group("partner_idk_unstable_source_sets") { |
| visibility = [ ":*" ] |
| testonly = false |
| deps = _partner_idk_unstable_source_sets_list |
| } |
| |
| group("all_partner_idk_source_sets") { |
| visibility = [ ":*" ] |
| deps = [ ":partner_idk_source_sets" ] |
| |
| # Unstable atoms may only be used at "HEAD". |
| if (current_build_target_api_level == "HEAD" || |
| current_build_target_api_level == "PLATFORM") { |
| deps += [ ":partner_idk_unstable_source_sets" ] + |
| _partner_idk_unstable_source_sets_list_testonly |
| |
| # Some of the allowed libraries are marked testonly. |
| testonly = true |
| } |
| } |
| |
| # All `sdk_source_set()` targets depend on one of these targets to ensure that |
| # they are in the appropriate allowlist. |
| group("partner_idk_source_sets_allowlist") { |
| visibility = _partner_idk_source_sets_list |
| } |
| group("partner_idk_unstable_source_sets_allowlist") { |
| visibility = _partner_idk_unstable_source_sets_list + |
| _partner_idk_unstable_source_sets_list_testonly |
| } |
| group("internal_source_sets_allowlist") { |
| visibility = _internal_source_sets_list |
| } |
| |
| # Contains all shared libraries distributed with the partner IDK. None are |
| # testonly. |
| _partner_idk_versioned_shared_libraries_list = [ |
| # sdk_shared_library() targets: |
| # keep-sorted: begin |
| "//sdk/lib/async-default:async-default", |
| "//sdk/lib/fdio:fdio", |
| "//sdk/lib/syslog/cpp:backend_fuchsia_globals", |
| "//sdk/lib/svc:svc", |
| "//sdk/lib/vfs/internal:vfs_internal", |
| "//src/devices/bin/driver_runtime:driver_runtime", |
| "//src/performance/memory/heapdump/instrumentation:instrumentation", |
| "//third_party/Vulkan-Loader/src:libvulkan", |
| "//zircon/system/ulib/syslog:syslog", |
| "//zircon/system/ulib/trace-engine:trace-engine", |
| "//zircon/system/ulib/trace-provider:trace-provider-so", |
| |
| # keep-sorted: end |
| ] |
| |
| # Ensure no testonly atoms are in this non-test list. |
| group("partner_idk_versioned_shared_libraries") { |
| visibility = [ ":*" ] |
| testonly = false |
| deps = _partner_idk_versioned_shared_libraries_list |
| } |
| |
| # All `sdk_shared_library()` targets in the partner category depend on this |
| # targets to ensure that they are in the appropriate allowlist. |
| group("partner_idk_shared_libraries_allowlist") { |
| visibility = _partner_idk_versioned_shared_libraries_list |
| } |
| |
| # Contains all static libraries distributed with the partner IDK. None are |
| # testonly. |
| _partner_idk_versioned_static_libraries_list = [ |
| # sdk_static_library() targets: |
| # keep-sorted: begin |
| "//sdk/lib/async-loop:async-loop-default", |
| "//sdk/lib/magma_client:magma_client", |
| "//zircon/system/ulib/sync:sync", |
| "//zircon/system/ulib/trace-vthread:trace-vthread", |
| |
| # keep-sorted: end |
| ] |
| |
| # Ensure no testonly atoms are in this non-test list. |
| group("partner_idk_versioned_static_libraries") { |
| visibility = [ ":*" ] |
| testonly = false |
| deps = _partner_idk_versioned_static_libraries_list |
| } |
| |
| # All `sdk_static_library()` targets in the partner category depend on this |
| # targets to ensure that they are in the appropriate allowlist. |
| group("partner_idk_static_libraries_allowlist") { |
| visibility = _partner_idk_versioned_static_libraries_list |
| } |
| |
| # TODO(https://fxbug.dev/330709069): Remove these once the bots no longer use them. |
| group("sdk_versioned_source_sets") { |
| visibility = [ "//:root_targets" ] |
| deps = [ ":all_partner_idk_source_sets" ] |
| |
| # Some of the allowed libraries are marked testonly. |
| testonly = true |
| } |
| group("sdk_versioned_shared_libraries") { |
| visibility = [ "//:root_targets" ] |
| deps = [ |
| ":partner_idk_versioned_shared_libraries", |
| |
| # Include static libraries here too rather than updating the bots. |
| ":partner_idk_versioned_static_libraries", |
| ] |
| } |
| |
| python_binary("create_atom_manifest") { |
| visibility = [ "*" ] |
| main_source = "create_atom_manifest.py" |
| deps = [ "//build/sdk/sdk_common" ] |
| } |
| |
| python_binary("create_molecule_manifest") { |
| visibility = [ "*" ] |
| main_source = "create_molecule_manifest.py" |
| deps = [ "//build/sdk/sdk_common" ] |
| } |
| |
| python_binary("generate_archive_manifest_from_sdk_manifest") { |
| visibility = [ "*" ] |
| main_source = "generate_archive_manifest_from_sdk_manifest.py" |
| deps = [ "//build/sdk/sdk_common" ] |
| } |
| |
| python_binary("generate_archive_manifest_from_idk_directory") { |
| visibility = [ "*" ] |
| main_source = "generate_archive_manifest_from_idk_directory.py" |
| } |
| |
| python_binary("generate_idk_meta_manifest_json") { |
| visibility = [ "*" ] |
| main_source = "generate_idk_meta_manifest_json.py" |
| deps = [ "//build/sdk/sdk_common" ] |
| } |