blob: e5145d6714a1e09e64acdc9a632f30371a8322c2 [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_import", "cc_library", "cc_test")
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_static_library")
rust_static_library(
name = "rust_lib",
srcs = ["lib.rs"],
edition = "2021",
)
cc_library(
name = "c_lib",
srcs = ["lib.c"],
hdrs = ["lib.h"],
deps = [":rust_lib"],
)
# Tests that cc_shared_library correctly traverses into
# `rust_static_library` when linking.
cc_shared_library(
name = "shared",
deps = [":c_lib"],
)
cc_test(
name = "test",
srcs = ["main.c"],
dynamic_deps = [":shared"],
linkstatic = True,
deps = [":c_lib"],
)
NOT_WINDOWS = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"//conditions:default": ["@platforms//:incompatible"],
})
cc_import(
name = "shared_import",
shared_library = ":shared",
target_compatible_with = NOT_WINDOWS,
)
rust_binary(
name = "linked_against_shared",
srcs = ["linked_against_shared.rs"],
edition = "2018",
target_compatible_with = NOT_WINDOWS,
deps = [":shared_import"],
)
sh_test(
name = "runfiles_contains_shared",
srcs = ["runfiles_contains_shared.sh"],
data = [":linked_against_shared"],
target_compatible_with = NOT_WINDOWS,
)