summaryrefslogtreecommitdiff
path: root/BUILD.bazel
blob: deeef24b80b4220fb8982fb64f7e84ba8f32d844 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
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_jars")

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_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-beta09:jar",
        "//tools/idea/.idea/libraries:gson",
        "//tools/idea/.idea/libraries:compile-testing[test]",
        "//tools/idea/.idea/libraries:truth[test]",
        "//tools/idea/.idea/libraries:jaxb-api",
        "//tools/idea/.idea/libraries:jaxb-runtime",
    ],
)

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 = glob([
        "compilerCommon/src/main/**/*.kt",
        "compilerCommon/src/main/**/*.java",
    ]),
    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 = 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",
        "//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_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 = glob([
        "compiler/src/main/**/*.java",
        "compiler/src/main/**/*.kt",
    ]),
    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/latest",
        "//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/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",
        ],
    ),
    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_jars(
    name = "runtimeLibraries",
    out = "data_binding_runtime.zip",
    jars = [
        "//tools/data-binding:data_binding_runtime_support.zip",
        "//tools/data-binding:data_binding_runtime_androidx.zip",
    ],
    visibility = ["//visibility:public"],
)