blob: c3f8d72d842f0a3c4bc0bbbb4c81d1d2e7b92286 [file] [log] [blame] [edit]
load("@crates//:defs.bzl", "all_crate_deps")
load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test", "rustfmt_config")
rustfmt_config(
name = "enable-rustfmt",
)
# We want the release versions of Selenium to include the prebuilt
# binaries, but if we're doing day-to-day dev work, then we should
# use a local build, unless on we're on Windows, where for some
# reason we're not able to build locally.
#
# We tag the compiled versions as `manual` so that when we do a
# `bazel build //...` we don't do any additional work
# Start with the variants for each platform
alias(
name = "selenium-manager-windows",
actual = select({
"//common:windows": ":selenium-manager",
"//conditions:default": "@download_sm_windows//file",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)
alias(
name = "selenium-manager-macos",
actual = select({
"//common:macos": ":selenium-manager",
"//conditions:default": "@download_sm_macos//file",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)
alias(
name = "selenium-manager-linux",
actual = select({
"//common:linux": ":selenium-manager",
"//conditions:default": "@download_sm_linux//file",
}),
tags = [
"manual",
],
visibility = [
"//common/manager:__pkg__",
],
)
filegroup(
name = "selenium-manager-dev",
srcs = [
":selenium-manager-linux",
":selenium-manager-macos",
":selenium-manager-windows",
],
tags = [
"manual",
],
visibility = [
"//common/manager:__subpackages__",
],
)
rust_binary(
# Yes, this name is very similar to the library. Note the dash
# instead of an underscore
name = "selenium-manager",
srcs = ["src/main.rs"],
edition = "2021",
version = "0.4.35-nightly",
visibility = ["//visibility:public"],
deps = [
":selenium_manager",
] + all_crate_deps(normal = True),
)
rust_library(
# The name here is used as the crate name
name = "selenium_manager",
srcs = glob(
["src/**/*.rs"],
exclude = ["main.rs"],
),
edition = "2021",
visibility = ["//rust:__subpackages__"],
deps = all_crate_deps(normal = True),
)
filegroup(
name = "selenium_manager_srcs",
srcs = [
"Cargo.lock",
"Cargo.toml",
":selenium_manager_rs_srcs",
],
visibility = ["//visibility:public"],
)
filegroup(
name = "selenium_manager_rs_srcs",
srcs = glob(["src/**/*.rs"]),
)
rust_test(
name = "unit",
size = "small",
crate = ":selenium_manager",
edition = "2021",
tags = ["no-sandbox"],
)