blob: 7d4c493ff514f67dab46c657ff9160b35a7ebdea [file] [log] [blame]
# Copyright 2025 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/components.gni")
import("//build/config/fuchsia_cxx_version.gni")
import("//build/test.gni")
# This is an SDK C++ test executable for each supported C++ version.
#
# It will generate multiple targets, each named
# `${target_name}-cxx${cxx_version}`. It does not create a target for
# `${target_name}`.
#
# Parameters
#
# * cxx_versions
# - Optional: Compile the C++ tests against these C++ versions.
# - Type: list(int)
# - Default: fuchsia_sdk_cxx_supported_versions
#
# See test() for other parameters. Note that `output_name` is specifically
# excluded, because this creates a binary with a different suffix for each
# target.
#
template("sdk_cpp_test") {
foreach(cxx_version, invoker.cxx_versions) {
_test_target = "${target_name}-cxx${cxx_version}"
test(_test_target) {
forward_variables_from(
invoker,
"*",
# explicitly leave out `output_name` to avoid collisions.
[ "output_name" ])
configs += [ "//build/config:c++${cxx_version}" ]
}
}
}
set_defaults("sdk_cpp_test") {
cxx_versions = fuchsia_sdk_cxx_supported_versions
configs = default_executable_configs
}