| # 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("gn/build_rules.gni") | 
 |  | 
 | # Ensure that host tests are always rebuilt with device ones on Linux hosts. | 
 | _build_host_tests = | 
 |     is_fuchsia && target_cpu == "x64" && host_os == "linux"  # b/48603 | 
 |  | 
 | group("compute") { | 
 |   deps = [ | 
 |     "common", | 
 |     "common/vk", | 
 |     "hotsort", | 
 |     "mold", | 
 |     "rive-rs", | 
 |     "spinel", | 
 |     "spinel-rs", | 
 |     "spinel-rs-sys", | 
 |     "spinel/platforms/vk", | 
 |     "surpass", | 
 |     "svg", | 
 |   ] | 
 | } | 
 |  | 
 | # IMPORTANT: Most graphics compute tests cannot run on the CQ for now due to | 
 | # a missing appropriate bot configuration (see fxbug.dev/25516 for details). Thus tests | 
 | # are spread over two targets. | 
 | # | 
 | #   tests: A group that lists all the tests to build by default, and which | 
 | #          will be run during continuous integration, since this is reachable | 
 | #          from //bundles/tests. | 
 | # | 
 | #   all_tests: A group that depends on 'tests', but adds other programs | 
 | #              and test packages that should not or cannot run during | 
 | #              continuous integration. | 
 | # | 
 | # 'fx test <name>' or 'fx run-host-tests <name>' can be used to manually | 
 | # launch a test that was defined with graphics_compute_test_package() or | 
 | # graphics_compute_unittests_package(). | 
 | # | 
 | # Other programs (e.g. graphics_compute_executable() targets) can be run with | 
 | # "fx shell run <name>" or "out/default/host_x64/<name>" instead. | 
 | # | 
 |  | 
 | group("tests") { | 
 |   testonly = true | 
 |   public_deps = [ | 
 |     ":graphics-compute-unittests", | 
 |     "mold:mold-tests", | 
 |     "rive-rs:rive-rs-tests", | 
 |     "spinel-rs:spinel-rs-tests", | 
 |     "spinel-rs-sys:tests", | 
 |     "surpass:surpass-tests", | 
 |   ] | 
 |  | 
 |   # NOTE: All dependencies here are run in continuous integration, but our | 
 |   # host bots currently lack a proper Vulkan loader + ICD. Thus only add | 
 |   # the device-specific Vulkan-based unit-tests for now. | 
 |   if (is_fuchsia) { | 
 |     public_deps += [ | 
 |       ":graphics-compute-vk-unittests", | 
 |       "tools:tests", | 
 |     ] | 
 |   } | 
 |  | 
 |   if (_build_host_tests) { | 
 |     data_deps = [ | 
 |       ":tests($host_toolchain)", | 
 |       "tests/common/svg:spn_svg_dump($host_toolchain)", | 
 |     ] | 
 |   } | 
 | } | 
 |  | 
 | group("all_tests") { | 
 |   testonly = true | 
 |   public_deps = [ | 
 |     ":graphics-compute-vk-unittests", | 
 |     ":tests", | 
 |     "examples", | 
 |     "hotsort:tests", | 
 |     "tests:tests", | 
 |   ] | 
 |   if (_build_host_tests) { | 
 |     data_deps = [ ":all_tests($host_toolchain)" ] | 
 |   } | 
 | } | 
 |  | 
 | # A target used to group all simple graphics compute unit-tests | 
 | # (i.e. those that do not depend on Vulkan for now). Unlike Vulkan-based | 
 | # tests, these can run anywhere on the CQ. | 
 | graphics_compute_unittests_package("graphics-compute-unittests") { | 
 |   deps = [ | 
 |     "common:common_unittests", | 
 |     "spinel:spinel_ext_unittests", | 
 |     "svg:svg_unittests", | 
 |     "tests:common_unittests", | 
 |     "tests/common/spinel:unittests", | 
 |     "tests/common/svg:unittests", | 
 |     "tests/mock_spinel:mock_spinel_unittests", | 
 |   ] | 
 | } | 
 |  | 
 | # A target used to group all graphics compute unit-tests that depend | 
 | # on a working Vulkan environment and that link against the Spinel library. | 
 | graphics_compute_unittests_package("graphics-compute-vk-unittests") { | 
 |   deps = [ | 
 |     "spinel:vk_unittests", | 
 |     "tests:common_vk_unittests", | 
 |     "tests/common/spinel_vk:unittests", | 
 |   ] | 
 |   needs_vulkan = true | 
 | } |