load("@rules_java//java:defs.bzl", "java_library")

package(default_visibility = ["//src:__subpackages__"])

filegroup(
    name = "srcs",
    srcs = glob(["**"]),
    visibility = ["//src:__subpackages__"],
)

java_library(
    name = "sandbox",
    srcs = [
        "AbstractContainerizingSandboxedSpawn.java",
        "AbstractSandboxSpawnRunner.java",
        "AsynchronousTreeDeleter.java",
        "CopyingSandboxedSpawn.java",
        "DarwinSandboxedSpawnRunner.java",
        "DarwinSandboxedStrategy.java",
        "DockerCommandLineBuilder.java",
        "DockerSandboxedSpawnRunner.java",
        "DockerSandboxedStrategy.java",
        "HardlinkedSandboxedSpawn.java",
        "LinuxSandboxUtil.java",
        "LinuxSandboxedSpawnRunner.java",
        "LinuxSandboxedStrategy.java",
        "ProcessWrapperSandboxedSpawnRunner.java",
        "ProcessWrapperSandboxedStrategy.java",
        "RealSandboxfs01Process.java",
        "RealSandboxfs02Process.java",
        "RealSandboxfsProcess.java",
        "SandboxModule.java",
        "SandboxOptions.java",
        "SandboxedSpawn.java",
        "SandboxfsProcess.java",
        "SandboxfsSandboxedSpawn.java",
        "SymlinkedSandboxedSpawn.java",
        "SynchronousTreeDeleter.java",
        "WindowsSandboxUtil.java",
        "WindowsSandboxedSpawn.java",
        "WindowsSandboxedSpawnRunner.java",
        "WindowsSandboxedStrategy.java",
    ],
    data = [
        "//src/main/tools:linux-sandbox",
    ],
    deps = [
        ":linux_sandbox_command_line_builder",
        ":sandbox_helpers",
        "//src/main/java/com/google/devtools/build/lib:runtime",
        "//src/main/java/com/google/devtools/build/lib/actions",
        "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
        "//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
        "//src/main/java/com/google/devtools/build/lib/actions:file_metadata",
        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
        "//src/main/java/com/google/devtools/build/lib/actions:resource_manager",
        "//src/main/java/com/google/devtools/build/lib/analysis:blaze_directories",
        "//src/main/java/com/google/devtools/build/lib/analysis/platform:platform_utils",
        "//src/main/java/com/google/devtools/build/lib/events",
        "//src/main/java/com/google/devtools/build/lib/exec:abstract_spawn_strategy",
        "//src/main/java/com/google/devtools/build/lib/exec:bin_tools",
        "//src/main/java/com/google/devtools/build/lib/exec:execution_options",
        "//src/main/java/com/google/devtools/build/lib/exec:runfiles_tree_updater",
        "//src/main/java/com/google/devtools/build/lib/exec:spawn_runner",
        "//src/main/java/com/google/devtools/build/lib/exec:spawn_strategy_registry",
        "//src/main/java/com/google/devtools/build/lib/exec:tree_deleter",
        "//src/main/java/com/google/devtools/build/lib/exec/local",
        "//src/main/java/com/google/devtools/build/lib/exec/local:options",
        "//src/main/java/com/google/devtools/build/lib/profiler",
        "//src/main/java/com/google/devtools/build/lib/remote/options",
        "//src/main/java/com/google/devtools/build/lib/shell",
        "//src/main/java/com/google/devtools/build/lib/util",
        "//src/main/java/com/google/devtools/build/lib/util:abrupt_exit_exception",
        "//src/main/java/com/google/devtools/build/lib/util:command",
        "//src/main/java/com/google/devtools/build/lib/util:describable_execution_unit",
        "//src/main/java/com/google/devtools/build/lib/util:detailed_exit_code",
        "//src/main/java/com/google/devtools/build/lib/util:os",
        "//src/main/java/com/google/devtools/build/lib/util:process",
        "//src/main/java/com/google/devtools/build/lib/util:resource_converter",
        "//src/main/java/com/google/devtools/build/lib/util/io",
        "//src/main/java/com/google/devtools/build/lib/versioning",
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//src/main/java/com/google/devtools/common/options",
        "//src/main/protobuf:failure_details_java_proto",
        "//third_party:flogger",
        "//third_party:gson",
        "//third_party:guava",
        "//third_party:jsr305",
        "@remoteapis//:build_bazel_remote_execution_v2_remote_execution_java_proto",
    ],
)

java_library(
    name = "sandbox_helpers",
    srcs = ["SandboxHelpers.java"],
    deps = [
        "//src/main/java/com/google/devtools/build/lib/actions",
        "//src/main/java/com/google/devtools/build/lib/actions:artifacts",
        "//src/main/java/com/google/devtools/build/lib/analysis:test/test_configuration",
        "//src/main/java/com/google/devtools/build/lib/cmdline",
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//src/main/java/com/google/devtools/common/options",
        "//third_party:auto_value",
        "//third_party:flogger",
        "//third_party:guava",
    ],
)

java_library(
    name = "linux_sandbox_command_line_builder",
    srcs = ["LinuxSandboxCommandLineBuilder.java"],
    data = ["//src/main/tools:linux-sandbox"],
    deps = [
        "//src/main/java/com/google/devtools/build/lib/actions:execution_requirements",
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//third_party:flogger",
        "//third_party:guava",
    ],
)
