blob: 7a7b6ef6de8c5b07b48ec03373b5497f1a2c1f74 [file] [log] [blame]
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_rust//rust:defs.bzl", "rust_library")
load("defs.bzl", "with_exec_cfg", "with_extra_exec_rustc_flags_cfg")
package(default_visibility = ["//test:__subpackages__"])
# Checks that extra_exec_rustc_flags are passed in exec configuration.
# lib.rs is a sample source file that requires a `--cfg=bazel_exec` flag to build.
# These targets set up transitions so that building :lib triggers building
# lib.rs in exec configuration with //:extra_exec_rustc_flags=[--cfg=bazel_exec].
# The intermediate targets are tagged "manual" as they are not meant to be built
# on their own.
rust_library(
name = "lib_do_not_build_directly",
srcs = ["lib.rs"],
edition = "2018",
tags = ["manual"],
)
with_extra_exec_rustc_flags_cfg(
name = "lib_with_exec_flags_do_not_build_directly",
srcs = ["lib_do_not_build_directly"],
extra_exec_rustc_flag = [],
extra_exec_rustc_flags = ["--cfg=bazel_exec"],
tags = ["manual"],
)
with_extra_exec_rustc_flags_cfg(
name = "lib_with_singular_exec_flags_do_not_build_directly",
srcs = ["lib_do_not_build_directly"],
extra_exec_rustc_flag = ["--cfg=bazel_exec"],
extra_exec_rustc_flags = [],
tags = ["manual"],
)
with_exec_cfg(
name = "lib",
srcs = ["lib_with_exec_flags_do_not_build_directly"],
)
with_exec_cfg(
name = "lib_singular",
srcs = ["lib_with_singular_exec_flags_do_not_build_directly"],
)
# Checks that extra_exec_rustc_flags are not passed in non-exec configurations.
# lib_no_exec.rs is a sample source file that fails to build if
# `--cfg=bazel_exec` is present. The targets below are built in non-exec configurations,
# so they should build just fine with //:extra_exec_rustc_flags=[--cfg=bazel_exec].
rust_library(
name = "lib_no_exec",
srcs = ["lib_no_exec.rs"],
edition = "2018",
)
with_extra_exec_rustc_flags_cfg(
name = "lib_no_exec_with_extra_build_flags",
srcs = ["lib_no_exec"],
extra_exec_rustc_flag = [],
extra_exec_rustc_flags = ["--cfg=bazel_exec"],
)
with_extra_exec_rustc_flags_cfg(
name = "lib_no_exec_with_singular_extra_build_flags",
srcs = ["lib_no_exec"],
extra_exec_rustc_flag = ["--cfg=bazel_exec"],
extra_exec_rustc_flags = [],
)
build_test(
name = "lib_build",
targets = [
":lib",
":lib_singular",
":lib_no_exec",
":lib_no_exec_with_extra_build_flags",
":lib_no_exec_with_singular_extra_build_flags",
],
)