blob: 5b74cfd3d330951dc85750727acc7960515749e3 [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:maven.bzl", "maven_java_library", "maven_pom")
load("//tools/base/bazel:utils.bzl", "fileset", "merged_properties")
load("//tools/base/bazel:gradle.bzl", "gradle_build")
load("//tools/base/bazel:maven.bzl", "maven_repo")
load("//tools/base/bazel:merge_archives.bzl", "merge_archives")
exports_files(["databinding.properties"])
# TODO: move these to baseLibrary/, once we can use build.bazel
# 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/tools/common/m2/repository/junit/junit/4.12:jar[test]",
"//prebuilts/tools/common/m2/repository/org/hamcrest/hamcrest-core/1.3:jar[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/tools/common/m2/repository/junit/junit/4.12:jar[test]",
"//prebuilts/tools/common/m2/repository/org/hamcrest/hamcrest-core/1.3:jar[test]",
],
)
maven_java_library(
name = "tools.baseLibrary",
srcs = glob(["baseLibrary/src/main/java/**"]),
javacopts = [
"-source 6",
"-target 6",
],
pom = ":databinding-common.pom",
resource_strip_prefix = "tools/data-binding/baseLibrary",
resources = ["baseLibrary/NOTICE"],
visibility = ["//visibility:public"],
)
maven_java_library(
name = "tools.baseLibrarySupport",
srcs = glob(["baseLibrarySupport/src/main/java/**"]),
javacopts = [
"-source 6",
"-target 6",
],
pom = ":baseLibrarySupport.pom",
resource_strip_prefix = "tools/data-binding/baseLibrary",
resources = ["baseLibrary/NOTICE"],
visibility = ["//visibility:public"],
)
maven_pom(
name = "databinding-common.pom",
artifact = "databinding-common",
group = "androidx.databinding",
source = "//tools/buildSrc/base:build_version",
)
maven_pom(
name = "baseLibrarySupport.pom",
artifact = "baseLibrary",
group = "com.android.databinding",
source = "//tools/buildSrc/base:build_version",
)
# 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_coverage = True,
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:studio.baseLibrary[module]",
"//tools/data-binding:studio.baseLibrarySupport[module]",
"//tools/base/annotations:studio.android.sdktools.android-annotations[module]",
"//prebuilts/tools/common/m2/repository/com/googlecode/juniversalchardet/juniversalchardet/1.0.3:jar",
"//tools/idea/.idea/libraries:JUnit4[test]",
"//prebuilts/tools/common/m2/repository/org/antlr/antlr4-runtime/4.5.3:jar",
"//tools/idea/.idea/libraries:commons-io",
"//tools/idea/.idea/libraries:Guava",
"//tools/idea/.idea/libraries:kotlin-stdlib-jdk8",
"//prebuilts/tools/common/m2/repository/com/squareup/javapoet/1.10.0:jar",
"//prebuilts/tools/common/m2/repository/com/android/tools/build/jetifier/jetifier-core/1.0.0-beta06:jar",
"//tools/idea/.idea/libraries:gson",
"//tools/idea/.idea/libraries:compile-testing[test]",
"//tools/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 = [
"compilerCommon/NOTICE",
":data_binding_version_info",
],
mappings = {
"compilerCommon/": "",
},
)
kotlin_library(
name = "tools.compilerCommon",
srcs = [
"compilerCommon/src/main/grammar-gen",
"compilerCommon/src/main/java",
"compilerCommon/src/main/kotlin",
"compilerCommon/src/main/xml-gen",
],
pom = ":databinding-compiler-common.pom",
resource_strip_prefix = "tools/data-binding",
resources = [":tools.compilerCommon.resources"],
visibility = ["//visibility:public"],
deps = [
":tools.baseLibrary",
":tools.baseLibrarySupport",
"//tools/base/annotations",
"//tools/base/third_party:com.android.tools.build.jetifier_jetifier-core",
"//tools/base/third_party:com.google.code.gson_gson",
"//tools/base/third_party:com.google.guava_guava",
"//tools/base/third_party:com.googlecode.juniversalchardet_juniversalchardet",
"//tools/base/third_party:com.squareup_javapoet",
"//tools/base/third_party:commons-io_commons-io",
"//tools/base/third_party:org.antlr_antlr4",
"//tools/base/third_party:org.jetbrains.kotlin_kotlin-stdlib",
],
)
maven_pom(
name = "databinding-compiler-common.pom",
artifact = "databinding-compiler-common",
group = "androidx.databinding",
source = "//tools/buildSrc/base:build_version",
)
kotlin_test(
name = "tools.compilerCommon_tests",
srcs = [
"compilerCommon/src/test/java",
"compilerCommon/src/test/kotlin",
],
coverage = True,
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",
"//tools/base/third_party:com.google.testing.compile_compile-testing",
"//tools/base/third_party:com.google.truth_truth",
"//tools/base/third_party: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_coverage = True,
test_data = [
"//prebuilts/studio/sdk:platforms/android-24",
"//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: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/repository/org/antlr/antlr4-runtime/4.5.3:jar",
"//tools/idea/.idea/libraries:commons-io",
"//prebuilts/tools/common/m2/repository/com/googlecode/juniversalchardet/juniversalchardet/1.0.3:jar",
"//prebuilts/tools/common/m2/repository/commons-lang/commons-lang/2.6:jar",
"//tools/idea/.idea/libraries:Guava",
"//tools/idea/.idea/libraries:gson",
"//tools/idea/.idea/libraries:JUnit4[test]",
"//tools/idea/.idea/libraries:mockito[test]",
"//tools/idea/.idea/libraries:Objenesis[test]",
"//prebuilts/tools/common/m2/repository/com/squareup/javapoet/1.10.0:jar",
"//tools/idea/.idea/libraries:kotlin-stdlib-jdk8",
"//tools/idea/.idea/libraries:jetbrains-annotations-java5",
"//prebuilts/tools/common/m2/repository/com/google/auto/auto-common/0.10:jar",
"//tools/idea/.idea/libraries:compile-testing[test]",
"//tools/idea/.idea/libraries:truth[test]",
],
)
# TODO: Use the right version of kotlin-compiler.
kotlin_library(
name = "tools.compiler",
srcs = [
"compiler/src/main/java",
"compiler/src/main/kotlin",
],
pom = ":databinding-compiler.pom",
resources = glob(["compiler/src/main/resources/**"]),
visibility = ["//visibility:public"],
deps = [
":tools.baseLibrary",
":tools.baseLibrarySupport",
":tools.compilerCommon",
"//prebuilts/tools/common/m2/repository/com/google/auto/auto-common/0.10:jar",
"//tools/base/annotations",
"//tools/base/third_party:com.google.guava_guava",
"//tools/base/third_party:com.squareup_javapoet",
"//tools/base/third_party:commons-io_commons-io",
"//tools/base/third_party:org.antlr_antlr4",
"//tools/base/third_party:org.jetbrains.kotlin_kotlin-stdlib",
],
)
maven_pom(
name = "databinding-compiler.pom",
artifact = "databinding-compiler",
group = "androidx.databinding",
source = "//tools/buildSrc/base:build_version",
)
maven_repo(
name = "external_deps",
# keep sorted
artifacts = [
"//prebuilts/tools/common/m2/repository/android/arch/core/common/1.0.0:jar",
"//prebuilts/tools/common/m2/repository/android/arch/core/runtime/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/android/arch/lifecycle/common/1.0.3:jar",
"//prebuilts/tools/common/m2/repository/android/arch/lifecycle/compiler/1.0.0:jar",
"//prebuilts/tools/common/m2/repository/android/arch/lifecycle/extensions/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/android/arch/lifecycle/runtime/1.0.3:aar",
"//prebuilts/tools/common/m2/repository/androidx/annotation/annotation/1.0.0:jar",
"//prebuilts/tools/common/m2/repository/androidx/appcompat/appcompat/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/appcompat/appcompat/1.0.2:aar",
"//prebuilts/tools/common/m2/repository/androidx/arch/core/core-common/2.0.0:jar",
"//prebuilts/tools/common/m2/repository/androidx/arch/core/core-runtime/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/asynclayoutinflater/asynclayoutinflater/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/cardview/cardview/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/collection/collection/1.0.0:jar",
"//prebuilts/tools/common/m2/repository/androidx/coordinatorlayout/coordinatorlayout/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/core/core/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/core/core/1.0.1:aar",
"//prebuilts/tools/common/m2/repository/androidx/cursoradapter/cursoradapter/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/customview/customview/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/documentfile/documentfile/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/drawerlayout/drawerlayout/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/fragment/fragment/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/interpolator/interpolator/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/legacy/legacy-support-core-ui/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/legacy/legacy-support-core-utils/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-common/2.0.0:jar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-extensions/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-livedata-core/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-livedata/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-process/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-runtime/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-service/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/lifecycle/lifecycle-viewmodel/2.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/loader/loader/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/localbroadcastmanager/localbroadcastmanager/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/print/print/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/slidingpanelayout/slidingpanelayout/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/swiperefreshlayout/swiperefreshlayout/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/transition/transition/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/vectordrawable/vectordrawable-animated/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/vectordrawable/vectordrawable/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/versionedparcelable/versionedparcelable/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/androidx/viewpager/viewpager/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/animated-vector-drawable/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/appcompat-v7/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/cardview-v7/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-annotations/26.1.0:jar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-compat/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-core-ui/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-core-utils/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-fragment/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-media-compat/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-v4/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/android/support/support-vector-drawable/26.1.0:aar",
"//prebuilts/tools/common/m2/repository/com/google/android/material/material/1.0.0:aar",
"//prebuilts/tools/common/m2/repository/com/google/code/findbugs/jsr305/1.3.9:jar",
"//prebuilts/tools/common/m2/repository/com/google/errorprone/error_prone_annotations/2.1.3:jar",
],
)
gradle_build(
name = "runtimeLibrariesAndroidX",
build_file = "extensions/build.gradle",
data = [
"//tools/base/build-system:gradle-distrib",
"//prebuilts/studio/sdk:platforms/android-28_build_only",
"//prebuilts/studio/sdk:platform-tools",
"//prebuilts/studio/sdk:build-tools/latest",
"//tools/buildSrc/base:version.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",
],
),
output_file = "data_binding_runtime_androidx.zip",
output_file_source = "local_repo_zip/dataBindingRuntimeRepo.zip",
repos = [
"//tools/base/build-system:gradle_plugin_repo.zip",
":external_deps.zip",
],
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/android-28_build_only",
"//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",
],
),
output_file = "data_binding_runtime_support.zip",
output_file_source = "local_repo_zip/dataBindingRuntimeRepo.zip",
repos = [
"//tools/base/build-system:gradle_plugin_repo.zip",
":external_deps.zip",
],
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"],
)
merge_archives(
name = "runtimeLibraries",
output_file = "data_binding_runtime.zip",
visibility = ["//visibility:public"],
zips = [
"//tools/data-binding:data_binding_runtime_support.zip",
"//tools/data-binding:data_binding_runtime_androidx.zip",
],
)