blob: 7ce3a09cd76b7914e64c28a5a1d3cb0d80709b3b [file] [log] [blame]
# 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" ]
}