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

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

filegroup(
    name = "srcs",
    srcs = glob(["**"]),
    visibility = ["//src/main/java/com/google/devtools/build/lib:__pkg__"],
)

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 = [
        ":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:packages-internal",
        "//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:skylarkinterface",
        "//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/collect/nestedset",
        "//src/main/java/com/google/devtools/build/lib/concurrent",
        "//src/main/java/com/google/devtools/build/lib/rules/cpp",
        "//src/main/java/com/google/devtools/build/lib/rules/java:RpcSupport",
        "//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/java",
        "//src/main/java/com/google/devtools/build/lib/vfs:pathfragment",
        "//src/main/java/com/google/devtools/common/options",
        "//src/main/protobuf:extra_actions_base_java_proto",
        "//third_party:auto_value",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party/protobuf:protobuf_java",
    ],
)

java_library(
    name = "java-compilation",
    srcs = [
        "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:packages-internal",
        "//src/main/java/com/google/devtools/build/lib:provider-collection",
        "//src/main/java/com/google/devtools/build/lib:skylarkinterface",
        "//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",
        "//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/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/java",
        "//src/main/java/com/google/devtools/build/lib/vfs",
        "//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"],
)

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:packages-internal",
        "//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",
        "//third_party:guava",
    ],
)
