blob: 4ab3bbd584ba3b558fe5dd7acb16a9716513b59d [file] [log] [blame]
load("//tools/base/bazel:bazel.bzl", "iml_module")
load("//tools/base/bazel:kotlin.bzl", "kotlin_library", "kotlin_test")
load("//tools/base/bazel:utils.bzl", "fileset", "merged_properties")
load("//tools/base/bazel:gradle.bzl", "gradle_build")
load("//tools/base/bazel:maven.bzl", "maven_repository", "maven_library")
load("//tools/base/bazel:utils.bzl", "java_jarjar", "merged_zip")
load("//tools/base/common:version.bzl", "BUILD_VERSION")
exports_files(["databinding.properties"])
# managed by go/iml_to_build
iml_module(
name = "studio.baseLibrary",
srcs = ["baseLibrary/src/main/java"],
iml_files = ["baseLibrary/db-baseLibrary.iml"],
jvm_target = "8",
visibility = ["//visibility:public"],
# do not sort: must match IML order
deps = [
"//prebuilts/studio/intellij-sdk:studio-sdk",
"//prebuilts/tools/common/m2:junit-4.12[test]",
"//prebuilts/tools/common/m2:hamcrest-core-1.3[test]",
],
)
# managed by go/iml_to_build
iml_module(
name = "studio.baseLibrarySupport",
srcs = ["baseLibrarySupport/src/main/java"],
iml_files = ["baseLibrarySupport/db-baseLibrarySupport.iml"],
jvm_target = "8",
visibility = ["//visibility:public"],
# do not sort: must match IML order
deps = [
"//prebuilts/studio/intellij-sdk:studio-sdk",
"//prebuilts/tools/common/m2:junit-4.12[test]",
"//prebuilts/tools/common/m2:hamcrest-core-1.3[test]",
],
)
maven_library(
name = "tools.baseLibrary",
srcs = glob(["baseLibrary/src/main/java/**"]),
coordinates = "androidx.databinding:databinding-common:" + BUILD_VERSION,
description = "Shared library between Data Binding runtime lib and compiler",
javacopts = ["--release 8"],
notice = "baseLibrary/NOTICE",
resource_strip_prefix = "tools/data-binding/baseLibrary",
visibility = ["//visibility:public"],
)
maven_library(
name = "tools.baseLibrarySupport",
srcs = glob(["baseLibrarySupport/src/main/java/**"]),
coordinates = "com.android.databinding:baseLibrary:" + BUILD_VERSION,
description = "Shared library between Data Binding runtime lib and compiler",
javacopts = ["--release 8"],
notice = "baseLibrary/NOTICE",
resource_strip_prefix = "tools/data-binding/baseLibrary",
visibility = ["//visibility:public"],
)
java_jarjar(
name = "compilerCommon.antlr_runtime.shaded_jar",
srcs = [
"//prebuilts/tools/common/m2:antlr4-runtime",
],
rules = "jarjar_rules.txt",
)
load("//tools/base/bazel:jvm_import.bzl", "jvm_import")
# managed by go/iml_to_build
jvm_import(
name = "compilerCommon.antlr_runtime.shaded",
jars = ["//tools/data-binding:compilerCommon.antlr_runtime.shaded_jar.jar"],
visibility = ["//visibility:public"],
)
java_library(
name = "compilerCommon.antlr",
srcs = glob([
"compilerCommon/src/main/xml-gen/**/*.java",
"compilerCommon/src/main/grammar-gen/**/*.java",
]),
deps = [
"//prebuilts/tools/common/m2:antlr4-runtime",
],
)
java_jarjar(
name = "compilerCommon.antlr.shaded_jar",
srcs = [
":compilerCommon.antlr",
],
rules = "jarjar_rules.txt",
)
# managed by go/iml_to_build
jvm_import(
name = "compilerCommon.antlr.shaded",
jars = ["//tools/data-binding:compilerCommon.antlr.shaded_jar.jar"],
visibility = ["//visibility:public"],
)
# managed by go/iml_to_build
iml_module(
name = "studio.compilerCommon",
# do not sort: must match IML order
srcs = [
"compilerCommon/src/main/java",
"compilerCommon/src/main/kotlin",
],
iml_files = ["compilerCommon/db-compilerCommon.iml"],
jvm_target = "8",
test_srcs = [
"compilerCommon/src/test/java",
"compilerCommon/src/test/kotlin",
],
visibility = ["//visibility:public"],
# do not sort: must match IML order
exports = [
"//tools/data-binding:studio.baseLibrary",
"//tools/data-binding:studio.baseLibrarySupport",
],
# do not sort: must match IML order
deps = [
"//tools/data-binding:compilerCommon.antlr_runtime.shaded",
"//tools/data-binding:compilerCommon.antlr.shaded",
"//prebuilts/studio/intellij-sdk:studio-sdk",
"//tools/data-binding:studio.baseLibrary[module]",
"//tools/data-binding:studio.baseLibrarySupport[module]",
"//tools/base/annotations:studio.android.sdktools.android-annotations[module]",
"//prebuilts/tools/common/m2:juniversalchardet",
"//prebuilts/tools/common/m2:javapoet",
"//prebuilts/tools/common/m2:jetifier-core",
"//tools/adt/idea/.idea/libraries:compile-testing[test]",
"//tools/adt/idea/.idea/libraries:truth[test]",
],
)
merged_properties(
name = "data_binding_version_info",
srcs = [
"//tools/buildSrc/base:version.properties",
"//tools/data-binding:databinding.properties",
],
mappings = [
"buildVersion:extensions",
"buildVersion:compiler",
"buildVersion:compilerCommon",
"buildVersion:baseLibrary",
],
)
fileset(
name = "tools.compilerCommon.resources",
srcs = [
":data_binding_version_info",
],
mappings = {
"compilerCommon/": "",
},
)
maven_library(
name = "tools.compilerCommon",
srcs = glob([
"compilerCommon/src/main/java/**/*.java",
"compilerCommon/src/main/java/**/*.kt",
"compilerCommon/src/main/kotlin/**/*.java",
"compilerCommon/src/main/kotlin/**/*.kt",
]),
bundled_deps = [
":compilerCommon.antlr_runtime.shaded",
":compilerCommon.antlr.shaded",
],
coordinates = "androidx.databinding:databinding-compiler-common:" + BUILD_VERSION,
description = "Common library that can be shared between different build tools",
module_name = "databinding-compiler-common",
notice = "compilerCommon/NOTICE",
resource_strip_prefix = "tools/data-binding",
resources = [":tools.compilerCommon.resources"],
visibility = ["//visibility:public"],
deps = [
":tools.baseLibrary",
":tools.baseLibrarySupport",
"//tools/base/annotations",
"@maven//:com.android.tools.build.jetifier.jetifier-core",
"@maven//:com.google.code.gson.gson",
"@maven//:com.google.guava.guava",
"@maven//:com.googlecode.juniversalchardet.juniversalchardet",
"@maven//:com.squareup.javapoet",
"@maven//:commons-io.commons-io",
"@maven//:org.glassfish.jaxb.jaxb-runtime",
"@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk8",
],
)
kotlin_test(
name = "tools.compilerCommon_tests",
srcs = glob([
"compilerCommon/src/test/**/*.kt",
"compilerCommon/src/test/**/*.java",
]),
jvm_flags = ["-Dtest.suite.jar=tests.jar"],
test_class = "com.android.testutils.JarTestSuite",
runtime_deps = ["//tools/base/testutils:tools.testutils"],
deps = [
":tools.compilerCommon",
"//tools/base/bazel:langtools",
"@maven//:com.google.testing.compile.compile-testing",
"@maven//:com.google.truth.truth",
"@maven//:junit.junit",
],
)
# managed by go/iml_to_build
iml_module(
name = "studio.compiler",
# do not sort: must match IML order
srcs = [
"compiler/src/main/java",
"compiler/src/main/kotlin",
],
iml_files = ["compiler/db-compiler.iml"],
jvm_target = "8",
resources = ["compiler/src/main/resources"],
test_data = [
"//prebuilts/studio/sdk:platforms/latest",
"//prebuilts/studio/sdk:platform-tools",
],
test_srcs = ["compiler/src/test/java"],
visibility = ["//visibility:public"],
# do not sort: must match IML order
exports = [
"//tools/data-binding:studio.baseLibrary",
"//tools/data-binding:studio.baseLibrarySupport",
],
# do not sort: must match IML order
deps = [
"//tools/data-binding:compilerCommon.antlr_runtime.shaded",
"//tools/data-binding:compilerCommon.antlr.shaded",
"//prebuilts/studio/intellij-sdk:studio-sdk",
"//tools/adt/idea/.idea/libraries:kotlin-test[test]",
"//tools/data-binding:studio.baseLibrary[module]",
"//tools/data-binding:studio.baseLibrarySupport[module]",
"//tools/base/annotations:studio.android.sdktools.android-annotations[module]",
"//tools/data-binding:studio.compilerCommon[module]",
"//prebuilts/tools/common/m2:juniversalchardet",
"//prebuilts/tools/common/m2:commons-lang",
"//tools/adt/idea/.idea/libraries:mockito[test]",
"//prebuilts/tools/common/m2:javapoet",
"//prebuilts/tools/common/m2:auto-common",
"//tools/adt/idea/.idea/libraries:compile-testing[test]",
"//tools/adt/idea/.idea/libraries:truth[test]",
],
)
# TODO: Use the right version of kotlin-compiler.
maven_library(
name = "tools.compiler",
srcs = glob([
"compiler/src/main/java/**/*.java",
"compiler/src/main/java/**/*.kt",
"compiler/src/main/kotlin/**/*.kt",
]),
coordinates = "androidx.databinding:databinding-compiler:" + BUILD_VERSION,
description = "The annotation processor for Data Binding. Generates binding classes for runtime.",
module_name = "databinding-compiler",
notice = "compiler/src/main/resources/NOTICE.txt",
resource_strip_prefix = "tools/data-binding/compiler/src/main/resources",
resources = glob(
include = ["compiler/src/main/resources/**"],
exclude = ["compiler/src/main/resources/NOTICE.txt"],
),
visibility = ["//visibility:public"],
deps = [
":tools.baseLibrary",
":tools.compilerCommon",
"//tools/base/annotations",
"@maven//:com.google.auto.auto-common",
"@maven//:com.google.code.gson.gson",
"@maven//:com.google.guava.guava",
"@maven//:com.googlecode.juniversalchardet.juniversalchardet",
"@maven//:com.squareup.javapoet",
"@maven//:commons-codec.commons-codec",
"@maven//:commons-io.commons-io",
"@maven//:org.glassfish.jaxb.jaxb-runtime",
"@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk8",
],
)
kotlin_test(
name = "tools.compiler_tests",
srcs = glob([
"compiler/src/test/**/*.kt",
"compiler/src/test/**/*.java",
]),
data = [
"//prebuilts/studio/sdk:platform-tools",
"//prebuilts/studio/sdk:platforms/latest",
],
jvm_flags = ["-Dtest.suite.jar=tests.jar"],
test_class = "com.android.testutils.JarTestSuite",
runtime_deps = ["//tools/base/testutils:tools.testutils"],
deps = [
":tools.baseLibrary",
":tools.compiler",
":tools.compilerCommon",
"//tools/base/bazel:langtools",
"@maven//:com.google.testing.compile.compile-testing",
"@maven//:com.google.truth.truth",
"@maven//:commons-io.commons-io",
"@maven//:junit.junit",
"@maven//:org.jetbrains.kotlin.kotlin-test",
"@maven//:org.mockito.mockito-core",
],
)
maven_repository(
name = "external_deps",
# keep sorted
artifacts = [
"@maven//:android.arch.lifecycle.compiler_1.0.0",
"@maven//:android.arch.lifecycle.extensions_1.0.0",
"@maven//:androidx.appcompat.appcompat_1.0.2",
"@maven//:androidx.lifecycle.lifecycle-extensions_2.2.0",
"@maven//:androidx.lifecycle.lifecycle-livedata-ktx_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-process_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-runtime-ktx_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-runtime_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-service_2.4.0",
"@maven//:androidx.lifecycle.lifecycle-viewmodel-ktx_2.4.0",
"@maven//:com.android.support.appcompat-v7_26.1.0",
"@maven//:com.android.support.cardview-v7_26.1.0",
"@maven//:com.github.gundy.semver4j_0.16.4",
"@maven//:com.google.android.material.material_1.0.0",
"@maven//:com.google.code.findbugs.jsr305_1.3.9",
"@maven//:com.google.errorprone.error_prone_annotations_2.1.3",
"@maven//:de.undercouch.gradle-download-task_4.0.2",
"@maven//:org.jetbrains.intellij.deps.trove4j_1.0.20181211",
"@maven//:org.jetbrains.kotlinx.kotlinx-coroutines-android_1.4.1",
],
)
gradle_build(
name = "runtimeLibrariesAndroidX",
build_file = "extensions/build.gradle",
data = [
"//tools/base/build-system:gradle-distrib",
"//prebuilts/studio/sdk:platforms/latest",
"//prebuilts/studio/sdk:platform-tools",
"//prebuilts/studio/sdk:build-tools/latest",
"//tools/buildSrc/base:version.properties",
"//tools/buildSrc/base:dependencies.properties",
"//tools/data-binding:databinding.properties",
] + glob(
["extensions/**"],
exclude = [
"extensions/.gradle/**",
"extensions/build/**",
"extensions/local.properties",
"extensions/**/build",
"extensions/gradle/**",
"extensions/gradlew",
"extensions/gradlew.bat",
],
),
max_workers = 1, # b/155772061
output_file = "data_binding_runtime_androidx.zip",
output_file_source = "local_repo_zip/dataBindingRuntimeRepo.zip",
repo_zips = [
"//tools/base/build-system:android_gradle_plugin.zip",
],
repos = [
":external_deps",
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/third_party/kotlin:kotlin-m2repository",
],
tasks = ["createArchive"],
)
gradle_build(
name = "runtimeLibrariesSupport",
build_file = "extensions-support/build.gradle", #TODO rename to extensionSupport
data = [
"//tools/base/build-system:gradle-distrib",
"//prebuilts/studio/sdk:platforms/latest",
"//prebuilts/studio/sdk:platform-tools",
"//prebuilts/studio/sdk:build-tools/latest",
"//tools/buildSrc/base:version.properties",
"//tools/data-binding:databinding.properties",
] + glob(
["extensions-support/**"],
exclude = [
"extensions-support/.gradle/**",
"extensions-support/build/**",
"extensions-support/local.properties",
"extensions-support/**/build",
"extensions-support/gradle/**",
"extensions-support/gradlew",
"extensions-support/gradlew.bat",
],
),
max_workers = 1, # b/155772061
output_file = "data_binding_runtime_support.zip",
output_file_source = "local_repo_zip/dataBindingRuntimeRepo.zip",
repo_zips = [
"//tools/base/build-system:android_gradle_plugin.zip",
],
repos = [
":external_deps",
"//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
"//tools/base/third_party/kotlin:kotlin-m2repository",
],
tasks = ["createArchive"],
)
filegroup(
name = "integration-test-projects",
srcs = glob(
["integration-tests/**"],
exclude = [
"**/build/**",
"**/.gradle/**",
],
),
visibility = ["//visibility:public"],
)
filegroup(
name = "integration-test-projects-support",
srcs = glob(
["integration-tests-support/**"],
exclude = [
"**/build/**",
"**/.gradle/**",
],
),
visibility = ["//visibility:public"],
)
merged_zip(
name = "data_binding_runtime",
srcs = [
"//tools/data-binding:data_binding_runtime_androidx.zip",
"//tools/data-binding:data_binding_runtime_support.zip",
],
visibility = ["//visibility:public"],
)
alias(
name = "runtimeLibraries",
actual = ":data_binding_runtime",
visibility = ["//visibility:public"],
)