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

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

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

java_library(
    name = "java-rules",
    srcs = [
        "GenericBuildInfoPropertiesTranslator.java",
        "JavaBinary.java",
        "JavaCcLinkParamsProvider.java",
        "JavaConfigurationLoader.java",
        "JavaImport.java",
        "JavaImportBaseRule.java",
        "JavaInfo.java",
        "JavaLibrary.java",
        "JavaPackageConfiguration.java",
        "JavaPackageConfigurationRule.java",
        "JavaPlugin.java",
        "JavaPrimaryClassProvider.java",
        "JavaRuntime.java",
        "JavaRuntimeAliasRule.java",
        "JavaRuntimeClasspathProvider.java",
        "JavaRuntimeRule.java",
        "JavaSkylarkCommon.java",
        "JavaSourceInfoProvider.java",
        "JavaToolchain.java",
        "JavaToolchainAliasRule.java",
        "JavaToolchainRule.java",
        "ProguardLibrary.java",
        "ProguardLibraryRule.java",
        "ProguardSpecProvider.java",
        "proto/JavaLiteProtoAspect.java",
        "proto/JavaLiteProtoLibrary.java",
        "proto/JavaProtoAspect.java",
        "proto/JavaProtoAspectCommon.java",
        "proto/JavaProtoLibrary.java",
        "proto/JavaProtoLibraryAspectProvider.java",
        "proto/JavaProtoSkylarkCommon.java",
        "proto/JplCcLinkParams.java",
        "proto/ProtoJavacOpts.java",
        "proto/StrictDepsUtils.java",
    ],
    deps = [
        ":RpcSupport",
        ":java-compilation",
        ":java-implicit-attributes",
        "//src/main/java/com/google/devtools/build/lib:build-base",
        "//src/main/java/com/google/devtools/build/lib:events",
        "//src/main/java/com/google/devtools/build/lib:filetype",
        "//src/main/java/com/google/devtools/build/lib:os_util",
        "//src/main/java/com/google/devtools/build/lib:proto-rules",
        "//src/main/java/com/google/devtools/build/lib:provider-collection",
        "//src/main/java/com/google/devtools/build/lib:syntax",
        "//src/main/java/com/google/devtools/build/lib:util",
        "//src/main/java/com/google/devtools/build/lib/actions",
        "//src/main/java/com/google/devtools/build/lib/analysis/platform",
        "//src/main/java/com/google/devtools/build/lib/cmdline",
        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
        "//src/main/java/com/google/devtools/build/lib/concurrent",
        "//src/main/java/com/google/devtools/build/lib/packages",
        "//src/main/java/com/google/devtools/build/lib/rules/cpp",
        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java",
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//third_party:guava",
        "//third_party:jsr305",
    ],
)

java_library(
    name = "RpcSupport",
    srcs = ["proto/RpcSupport.java"],
    deps = [
        "//src/main/java/com/google/devtools/build/lib:build-base",
        "//src/main/java/com/google/devtools/build/lib:proto-rules",
        "//src/main/java/com/google/devtools/build/lib/actions",
        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
        "//src/main/java/com/google/devtools/build/lib/packages",
        "//third_party:guava",
    ],
)

java_library(
    name = "java-compilation",
    srcs = [
        "BootClassPathInfo.java",
        "BuildInfoPropertiesTranslator.java",
        "ClasspathConfiguredFragment.java",
        "DeployArchiveBuilder.java",
        "ImportDepsCheckActionBuilder.java",
        "JavaBuildInfoFactory.java",
        "JavaCommon.java",
        "JavaCompilationArgsProvider.java",
        "JavaCompilationArtifacts.java",
        "JavaCompilationHelper.java",
        "JavaCompilationInfoProvider.java",
        "JavaCompileAction.java",
        "JavaCompileActionBuilder.java",
        "JavaCompileActionContext.java",
        "JavaCompileOutputs.java",
        "JavaConfiguration.java",
        "JavaExportsProvider.java",
        "JavaGenJarsProvider.java",
        "JavaHeaderCompileActionBuilder.java",
        "JavaHelper.java",
        "JavaInfo.java",
        "JavaInfoBuildHelper.java",
        "JavaLibraryHelper.java",
        "JavaNativeLibraryProvider.java",
        "JavaOptions.java",
        "JavaPackageConfigurationProvider.java",
        "JavaPluginInfoProvider.java",
        "JavaRuleClasses.java",
        "JavaRuleOutputJarsProvider.java",
        "JavaRunfilesProvider.java",
        "JavaRuntimeInfo.java",
        "JavaSemantics.java",
        "JavaSkylarkApiProvider.java",
        "JavaSkylarkCommon.java",
        "JavaSourceInfoProvider.java",
        "JavaSourceJarsProvider.java",
        "JavaStrictCompilationArgsProvider.java",
        "JavaTargetAttributes.java",
        "JavaToolchainProvider.java",
        "JavaUtil.java",
        "MessageBundleInfo.java",
        "NativeLibraryNestedSetBuilder.java",
        "OneVersionCheckActionBuilder.java",
        "ResourceJarActionBuilder.java",
        "SingleJarActionBuilder.java",
        "WriteBuildInfoPropertiesAction.java",
        "proto/GeneratedExtensionRegistryProvider.java",
    ],
    deps = [
        "//src/main/java/com/google/devtools/build/lib:build-base",
        "//src/main/java/com/google/devtools/build/lib:build-info",
        "//src/main/java/com/google/devtools/build/lib:events",
        "//src/main/java/com/google/devtools/build/lib:filetype",
        "//src/main/java/com/google/devtools/build/lib:provider-collection",
        "//src/main/java/com/google/devtools/build/lib:string_util",
        "//src/main/java/com/google/devtools/build/lib:syntax",
        "//src/main/java/com/google/devtools/build/lib:util",
        "//src/main/java/com/google/devtools/build/lib/actions",
        "//src/main/java/com/google/devtools/build/lib/actions:commandline_item",
        "//src/main/java/com/google/devtools/build/lib/actions:localhost_capacity",
        "//src/main/java/com/google/devtools/build/lib/analysis/platform",
        "//src/main/java/com/google/devtools/build/lib/analysis/skylark/annotations",
        "//src/main/java/com/google/devtools/build/lib/cmdline",
        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
        "//src/main/java/com/google/devtools/build/lib/concurrent",
        "//src/main/java/com/google/devtools/build/lib/packages",
        "//src/main/java/com/google/devtools/build/lib/rules/cpp",
        "//src/main/java/com/google/devtools/build/lib/shell",
        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/core",
        "//src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java",
        "//src/main/java/com/google/devtools/build/lib/skylarkinterface",
        "//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:deps_java_proto",
        "//src/main/protobuf:extra_actions_base_java_proto",
        "//third_party:auto_value",
        "//third_party:guava",
        "//third_party:jsr305",
    ],
)

java_library(
    name = "java-implicit-attributes",
    srcs = ["JavaImplicitAttributes.java"],
)

# A library with the utilities required for determining java roots.

java_library(
    name = "java-root-utils",
    srcs = ["JavaUtil.java"],
    deps = [
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//third_party:guava",
    ],
)
