blob: adc368d876a381a95790a6a6168f91614f36ae41 [file] [log] [blame]
load("//tools/base/bazel:bazel.bzl", "iml_module")
load("//tools/base/bazel:kotlin.bzl", "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", "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"],
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"],
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,
javacopts = [
"-source 6",
"-target 6",
],
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,
javacopts = [
"-source 6",
"-target 6",
],
notice = "baseLibrary/NOTICE",
resource_strip_prefix = "tools/data-binding/baseLibrary",
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",
"compilerCommon/src/main/xml-gen",
"compilerCommon/src/main/grammar-gen",
],
iml_files = ["compilerCommon/db-compilerCommon.iml"],
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 = [
"//prebuilts/tools/common/m2:antlr4-runtime",
"//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/**/*.kt",
"compilerCommon/src/main/**/*.java",
]),
coordinates = "androidx.databinding:databinding-compiler-common:" + BUILD_VERSION,
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.antlr.antlr4",
"@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"],
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 = [
"//prebuilts/tools/common/m2:antlr4-runtime",
"//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]",
"//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",
"compiler/src/main/**/*.kt",
]),
coordinates = "androidx.databinding:databinding-compiler:" + BUILD_VERSION,
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.antlr.antlr4",
"@maven//:org.glassfish.jaxb.jaxb-runtime",
"@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk8",
],
)
maven_repository(
name = "external_deps",
# keep sorted
artifacts = [
"@maven_tests//:android.arch.lifecycle.compiler_1.0.0",
"@maven_tests//:android.arch.lifecycle.extensions_1.0.0",
"@maven_tests//:androidx.appcompat.appcompat_1.0.2",
"@maven_tests//:androidx.lifecycle.lifecycle-extensions_2.2.0",
"@maven_tests//:androidx.lifecycle.lifecycle-livedata-ktx_2.2.0",
"@maven_tests//:androidx.lifecycle.lifecycle-runtime-ktx_2.2.0",
"@maven_tests//:androidx.lifecycle.lifecycle-viewmodel-ktx_2.2.0",
"@maven_tests//:com.android.support.appcompat-v7_26.1.0",
"@maven_tests//:com.android.support.cardview-v7_26.1.0",
"@maven_tests//:com.github.gundy.semver4j_0.16.4",
"@maven_tests//:com.google.android.material.material_1.0.0",
"@maven_tests//:com.google.code.findbugs.jsr305_1.3.9",
"@maven_tests//:com.google.errorprone.error_prone_annotations_2.1.3",
"@maven_tests//:de.undercouch.gradle-download-task_4.0.2",
"@maven_tests//:org.jetbrains.intellij.deps.trove4j_1.0.20181211",
"@maven_tests//: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",
repos = [
":external_deps",
"//tools/base/build-system:gradle_plugin_repo",
"//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",
repos = [
":external_deps",
"//tools/base/build-system:gradle_plugin_repo",
"//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"],
)
filegroup(
name = "agp_gradle_build_files",
srcs = glob([
"baseLibrary/src/main/java/**",
"baseLibrarySupport/src/main/java/**",
"compiler/src/main/**/*.java",
"compiler/src/main/**/*.kt",
"compiler/src/main/resources/**",
"compilerCommon/src/main/**/*.java",
"compilerCommon/src/main/**/*.kt",
"compilerCommon/src/main/resources/**",
"integration-tests/*/build.gradle",
]) + [
"propLoader.gradle",
"build.gradle",
"baseLibrary/build.gradle",
"baseLibrary/NOTICE",
"baseLibrarySupport/build.gradle",
"baseLibrarySupport/NOTICE",
"compiler/build.gradle",
"compilerCommon/build.gradle",
"compilerCommon/NOTICE",
"databinding.properties",
],
visibility = ["//tools/base/build-system:__pkg__"],
)