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"], )