summaryrefslogtreecommitdiff
path: root/android/BUILD
blob: e09c807f1fdd38057fe52ecbee774e1f469bd176 (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
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
load("//tools/base/bazel:bazel.bzl", "iml_module")
load("//tools/base/bazel:kotlin.bzl", "kotlin_library")
load("//tools/base/bazel:maven.bzl", "maven_repository")
load("@exec_properties//:constants.bzl", "LARGE_MACHINE")
load("//tools/adt/idea/android-test-framework:check_tests.bzl", "check_tests")
load("//tools/adt/idea/studio:studio.bzl", "studio_data")
load("//tools/base/bazel:proto.bzl", "android_java_proto_library", "java_proto_library")

java_proto_library(
    name = "android-core-proto",
    srcs = glob(["src/com/android/tools/idea/proto/*.proto"]),
    visibility = ["//visibility:public"],
)

java_proto_library(
    name = "android-core-proto-test",
    srcs = glob(["testSrc/com/android/tools/idea/proto/*.proto"]),
    visibility = ["//visibility:public"],
)

# managed by go/iml_to_build
iml_module(
    name = "intellij.android.core",
    srcs = ["src"],
    iml_files = ["intellij.android.core.iml"],
    lint_baseline = "lint_baseline.xml",
    lint_timeout = "long",
    resources = ["resources"],
    visibility = ["//visibility:public"],
    exports = ["//tools/adt/idea/build-common:intellij.android.buildCommon"],
    # do not sort: must match IML order
    runtime_deps = [
        "//tools/adt/idea/gradle-dsl-kotlin:intellij.android.gradle.dsl.kotlin",
        "//tools/adt/idea/gradle-dsl-toml:intellij.android.gradle.dsl.toml",
    ],
    # do not sort: must match IML order
    deps = [
        "//prebuilts/studio/intellij-sdk:studio-sdk",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle",
        "//tools/adt/idea/analytics[module]",
        "//tools/analytics-library/publisher:analytics-publisher[module]",
        "//tools/adt/idea/build-common:intellij.android.buildCommon[module]",
        "//tools/adt/idea/android-common:intellij.android.common[module]",
        "//tools/adt/idea/rt:intellij.android.rt[module]",
        "//tools/base/draw9patch:studio.android.sdktools.draw9patch[module]",
        "//tools/base/build-system:studio.android.sdktools.manifest-merger[module]",
        "//tools/base/perflib:studio.android.sdktools.perflib[module]",
        "//tools/adt/idea/adt-ui:intellij.android.adt.ui[module]",
        "//tools/adt/idea/adt-ui-model:intellij.android.adt.ui.model[module]",
        "//tools/adt/idea/android/lib:spantable",
        "//prebuilts/tools/common/m2:okio",
        "//prebuilts/tools/common/m2:moshi",
        "//tools/base/repository:studio.android.sdktools.repository[module]",
        "//tools/data-binding:studio.baseLibrary[module]",
        "//tools/data-binding:studio.baseLibrarySupport[module]",
        "//tools/data-binding:studio.compilerCommon[module]",
        "//tools/data-binding:studio.compiler[module]",
        "//tools/adt/idea/layoutlib-loader:intellij.android.layoutlib-loader[module]",
        "//tools/adt/idea/.idea/libraries:baksmali",
        "//tools/adt/idea/.idea/libraries:dexlib2",
        "//tools/base/apkparser:studio.android.sdktools.binary-resources[module]",
        "//tools/base/apkparser/analyzer:studio.android.sdktools.analyzer[module]",
        "//tools/base/pixelprobe:studio.android.sdktools.pixelprobe[module]",
        "//tools/analytics-library/tracker:analytics-tracker[module]",
        "//tools/analytics-library/shared:analytics-shared[module]",
        "//tools/base/common:studio.android.sdktools.common[module]",
        "//tools/adt/idea/observable:intellij.android.observable[module]",
        "//tools/adt/idea/wizard:intellij.android.wizard[module]",
        "//tools/adt/idea/wizard-model:intellij.android.wizard.model[module]",
        "//tools/adt/idea/smali:intellij.android.smali[module]",
        "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-api:intellij.android.gradle-tooling.api[module]",
        "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-impl:intellij.android.gradle-tooling.impl[module]",
        "//tools/base/sdk-common:studio.android.sdktools.sdk-common[module]",
        "//tools/base/layoutlib-api:studio.android.sdktools.layoutlib-api[module]",
        "//tools/base/flags:studio.android.sdktools.flags[module]",
        "//tools/adt/idea/observable-ui:intellij.android.observable.ui[module]",
        "//tools/adt/idea/artwork:intellij.android.artwork[module]",
        "//tools/adt/idea/project-system:intellij.android.projectSystem[module]",
        "//tools/adt/idea/apkanalyzer:intellij.android.apkanalyzer[module]",
        "//tools/adt/idea/android-lang:intellij.android.lang[module]",
        "//tools/adt/idea/android-adb:intellij.android.adb[module]",
        "//tools/adt/idea/android/lib:instantapps-api",
        "//tools/analytics-library/crash:analytics-crash[module]",
        "//tools/adt/idea/.idea/libraries:aapt-proto",
        "//tools/adt/idea/.idea/libraries:emulator-proto",
        "//tools/adt/idea/.idea/libraries:studio-analytics-proto",
        "//tools/adt/idea/deploy:intellij.android.deploy[module]",
        "//tools/base/deploy/deployer:studio.android.sdktools.deployer[module]",
        "//tools/base/resource-repository:studio.android.sdktools.resource-repository[module]",
        "//tools/base/tracer:studio.android.sdktools.tracer[module]",
        "//tools/adt/idea/.idea/libraries:studio-proto",
        "//tools/adt/idea/.idea/libraries:perfetto-proto",
        "//tools/base/wizard/template-plugin:studio.intellij.android.wizardTemplate.plugin[module]",
        "//tools/adt/idea/lint:intellij.lint[module]",
        "//tools/adt/idea/gradle-dsl:intellij.android.gradle.dsl[module]",
        "//tools/adt/idea/dagger:intellij.android.dagger[module]",
        "//prebuilts/tools/common/m2:utp-core-proto",
        "//tools/adt/idea/.idea/libraries:android-test-plugin-host-device-info-proto",
        "//tools/adt/idea/android:libandroid-core-proto",
        "//tools/base/zipflinger:studio.android.sdktools.zipflinger[module]",
        "//tools/adt/idea/project-system-gradle-models:intellij.android.projectSystem.gradle.models[module]",
        "//tools/adt/idea/project-system-gradle-sync:intellij.android.projectSystem.gradle.sync[module]",
        "//tools/adt/idea/intellij.android.compose-common[module]",
        "//tools/adt/idea/server-flags:intellij.android.server-flags[module]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle-java",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Groovy",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-properties",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-junit",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-platform-images",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-webp",
        "//tools/adt/idea/.idea/libraries:kotlinx-coroutines-guava",
        "//tools/adt/idea/android:libstudio.android-test-plugin-host-retention-proto",
        "//tools/adt/idea/utp[module]",
        "//tools/base/sdklib:studio.android.sdktools.sdklib[module]",
        "//tools/base/lint:studio.android.sdktools.lint-checks[module]",
        "//tools/base/manifest-parser:studio.android.sdktools.manifest-parser[module]",
    ],
)

# managed by go/iml_to_build
iml_module(
    name = "intellij.android.core.tests",
    exec_properties = LARGE_MACHINE,
    iml_files = ["intellij.android.core.tests.iml"],
    split_test_targets = {
        "modularize": {
            "test_filter": "com.android.tools.idea.refactoring.modularize",
        },
        "gradle": {
            "shard_count": 6,
            "data": ["//prebuilts/studio/sdk:ndk"],
            "test_filter": "com.android.tools.idea.gradle",
        },
        "gradle.structure": {
            "shard_count": 6,
            "test_filter": "com.android.tools.idea.gradle.structure",
        },
        "gradle.structure.configurables.variables.VariablesTableTest": {
            # Takes too long (b/152650494)
            "tags": ["no_windows"],
            "test_filter": "com.android.tools.idea.gradle.structure.configurables.variables.VariablesTableTest",
        },
        "gradle.structure.model.DependencyManagementTest": {
            # Path separators in map keys (b/151462469)
            "tags": ["no_windows"],
            "test_filter": "com.android.tools.idea.gradle.structure.model.DependencyManagementTest",
        },
        "gradle.structure.configurables.dependencies.treeview": {
            # Path separators e.g. (..\lib) (b/152560457)
            "tags": ["no_windows"],
            "test_filter": "com.android.tools.idea.gradle.structure.configurables.dependencies.treeview",
        },
        "gradle.structure.model.android": {
            "shard_count": 4,
            # Timeout waiting to lock Artifact transforms cache (b/152652501)
            "tags": ["no_windows"],
            "test_filter": "com.android.tools.idea.gradle.structure.model.android",
        },
        "gradle.project.sync": {
            "shard_count": 2,
            "data": [
                "//prebuilts/studio/sdk:ndk",
                "//tools/data-binding:data_binding_runtime.zip",
            ],
            # Mismatches from ProjectDumper (b/150709248), and sync errors/timeout (b/152778663)
            "tags": ["no_windows"],
            "test_filter": "com.android.tools.idea.gradle.project.sync",
        },
        "navigator": {
            "shard_count": 2,
            "data": ["//prebuilts/studio/sdk:ndk"],
            "test_filter": "com.android.tools.idea.navigator",
        },
        "imports": {
            "shard_count": 2,
            "test_filter": "com.android.tools.idea.imports",
        },
        "run": {
            "shard_count": 5,
            "test_filter": "com.android.tools.idea.run",
        },
        "testartifacts": {
            "shard_count": 3,
            "test_filter": "com.android.tools.idea.testartifacts",
        },
        "AndroidKotlinCompletionContributorTest": {
            "test_filter": "com.android.tools.idea.completion.AndroidKotlinCompletionContributorTest",
        },
        "editors.manifest": {
            "test_filter": "com.android.tools.idea.editors.manifest",
        },
        "instantapp": {
            "test_filter": "com.android.tools.idea.instantapp",
        },
        "rendering": {
            "test_filter": "com.android.tools.idea.rendering",
            "shard_count": 2,
        },
        "other": {
            "shard_count": 7,
        },
    },
    test_class = "com.android.tools.idea.IdeaTestSuite",
    # keep sorted
    test_data = [
        ":test_deps",
        "//prebuilts/studio/jdk",
        "//prebuilts/studio/layoutlib:build.prop",
        "//prebuilts/studio/layoutlib/data:framework_res.jar",
        "//prebuilts/studio/layoutlib/data:layoutlib_extensions",
        "//prebuilts/studio/layoutlib/data:native_libs",
        "//prebuilts/studio/layoutlib/data/fonts",
        "//prebuilts/studio/layoutlib/data/icu",
        "//prebuilts/studio/sdk:build-tools/latest",
        "//prebuilts/studio/sdk:cmake",
        "//prebuilts/studio/sdk:docs",
        "//prebuilts/studio/sdk:licenses",
        "//prebuilts/studio/sdk:platform-tools",
        "//prebuilts/studio/sdk:platforms/latest",
        "//prebuilts/studio/sdk:platforms/latest-preview",
        "//prebuilts/studio/sdk:sources",
        "//tools/adt/idea/android/annotations",
        "//tools/adt/idea/android/lib:apks",
        "//tools/adt/idea/android/lib:sampleData",
        "//tools/adt/idea/android/testData",
        "//tools/adt/idea/artwork:device-art-resources",
        "//tools/base/build-system:android_gradle_plugin.zip",  # Please do not add old versions of AGP here. Use the old-agp-tests module instead.
        "//tools/base/build-system:android_gradle_plugin_runtime_dependencies",
        "//tools/base/build-system:gradle-distrib",
        "//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
        "//tools/base/resource-repository/test/resources",
        "//tools/base/third_party/kotlin:kotlin-m2repository",
    ],
    test_friends = ["//tools/adt/idea/android:intellij.android.core"],
    test_resources = ["testResources"],
    test_srcs = ["testSrc"],
    test_tags = [
        "cpu:3",
        "block-network",
        "no_test_mac",
    ],
    test_timeout = "long",
    visibility = ["//visibility:public"],
    # do not sort: must match IML order
    runtime_deps = [
        "//tools/adt/idea/databinding:intellij.android.databinding",
        "//tools/adt/idea/gradle-dsl-kotlin:intellij.android.gradle.dsl.kotlin",
    ],
    # do not sort: must match IML order
    deps = [
        "//prebuilts/studio/intellij-sdk:studio-sdk",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle",
        "//tools/adt/idea/android:intellij.android.core[module, test]",
        "//tools/adt/idea/adt-ui:intellij.android.adt.ui[module, test]",
        "//tools/adt/idea/adt-ui-model:intellij.android.adt.ui.model[module, test]",
        "//tools/adt/idea/.idea/libraries:easymock[test]",
        "//tools/adt/idea/.idea/libraries:mockito[test]",
        "//tools/adt/idea/.idea/libraries:truth[test]",
        "//tools/base/testutils:studio.android.sdktools.testutils[module, test]",
        "//tools/adt/idea/observable:intellij.android.observable[module, test]",
        "//tools/base/common:studio.android.sdktools.common[module, test]",
        "//tools/base/build-system:studio.android.sdktools.manifest-merger[module, test]",
        "//tools/base/resource-repository:studio.android.sdktools.resource-repository[module, test]",
        "//tools/adt/idea/layoutlib-loader:intellij.android.layoutlib-loader[module, test]",
        "//tools/adt/idea/.idea/libraries:dexlib2[test]",
        "//tools/adt/idea/android-test-framework:intellij.android.testFramework[module, test]",
        "//tools/analytics-library/shared:analytics-shared[module, test]",
        "//tools/analytics-library/testing:android.sdktools.analytics-testing[module, test]",
        "//tools/analytics-library/tracker:analytics-tracker[module, test]",
        "//tools/adt/idea/wizard:intellij.android.wizard[module, test]",
        "//tools/adt/idea/wizard-model:intellij.android.wizard.model[module, test]",
        "//tools/adt/idea/.idea/libraries:guava-testlib[test]",
        "//tools/base/fakeadbserver:studio.android.sdktools.fakeadbserver[module, test]",
        "//tools/adt/idea/sdk-updates:intellij.android.sdkUpdates[module, test]",
        "//tools/adt/idea/gradle-tooling/studio-gradle-tooling-api:intellij.android.gradle-tooling.api[module, test]",
        "//tools/adt/idea/.idea/libraries:equalsverifier[test]",
        "//tools/base/apkparser/analyzer:studio.android.sdktools.analyzer[module, test]",
        "//tools/base/sdk-common:studio.android.sdktools.sdk-common[module, test]",
        "//tools/base/flags:studio.android.sdktools.flags[module, test]",
        "//tools/adt/idea/artwork:intellij.android.artwork[module, test]",
        "//tools/adt/idea/android-common:intellij.android.common[module, test]",
        "//tools/adt/idea/apkanalyzer:intellij.android.apkanalyzer[module, test]",
        "//tools/adt/idea/.idea/libraries:sqlite[test]",
        "//tools/adt/idea/project-system:intellij.android.projectSystem[module, test]",
        "//tools/adt/idea/android-adb:intellij.android.adb[module, test]",
        "//tools/adt/idea/project-system-gradle:intellij.android.projectSystem.gradle[module, test]",
        "//tools/adt/idea/adt-testutils:intellij.android.adt.testutils[module, test]",
        "//tools/adt/idea/android-lang:intellij.android.lang[module, test]",
        "//tools/adt/idea/android/lib:instantapps-api",
        "//tools/analytics-library/crash:analytics-crash[module, test]",
        "//tools/adt/idea/.idea/libraries:aapt-proto",
        "//tools/adt/idea/.idea/libraries:emulator-proto",
        "//tools/adt/idea/.idea/libraries:studio-analytics-proto",
        "//tools/adt/idea/.idea/libraries:jimfs[test]",
        "//tools/adt/idea/android-kotlin:intellij.android.kotlin.extensions[module, test]",
        "//tools/adt/idea/android-kotlin:intellij.android.kotlin.idea[module, test]",
        "//tools/adt/idea/android-kotlin:intellij.android.kotlin.output.parser[module, test]",
        "//tools/adt/idea/deploy:intellij.android.deploy[module, test]",
        "//tools/base/perf-logger:studio.perf-logger[module, test]",
        "//tools/adt/idea/.idea/libraries:studio-proto",
        "//tools/adt/idea/app-inspection/inspectors/database:app-inspection.inspectors.database[module]",
        "//tools/base/wizard/template-plugin:studio.intellij.android.wizardTemplate.plugin[module, test]",
        "//tools/base/wizard/template-impl:studio.intellij.android.wizardTemplate.impl[module, test]",
        "//tools/adt/idea/lint:intellij.lint[module, test]",
        "//tools/adt/idea/gradle-dsl:intellij.android.gradle.dsl.testutils[module]",
        "//tools/adt/idea/gradle-dsl:intellij.android.gradle.dsl[module]",
        "//tools/adt/idea/project-system-gradle-psd:intellij.android.projectSystem.gradle.psd[module]",
        "//tools/base/build-system/builder-model:studio.android.sdktools.builder-model[module]",
        "//prebuilts/tools/common/m2:utp-core-proto",
        "//tools/adt/idea/.idea/libraries:android-test-plugin-host-device-info-proto",
        "//tools/adt/idea/android:libandroid-core-proto",
        "//tools/adt/idea/android:libandroid-core-proto-test[test]",
        "//tools/adt/idea/server-flags:intellij.android.server-flags[module]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-java-ide-customization[test]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-java-i18n[test]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Groovy",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-junit",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-properties",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-platform-images",
        "//tools/adt/idea/android:libstudio.android-test-plugin-host-retention-proto",
        "//tools/adt/idea/project-system-gradle-models:intellij.android.projectSystem.gradle.models[module, test]",
        "//tools/adt/idea/project-system-gradle-repository-search:intellij.android.projectSystem.gradle.repositorySearch[module, test]",
        "//tools/adt/idea/project-system-gradle-sync:intellij.android.projectSystem.gradle.sync[module, test]",
        "//tools/adt/idea/utp[module, test]",
        "//tools/adt/idea/layoutlib:intellij.android.layoutlib[module, test]",
        "//tools/adt/idea/.idea/libraries:layoutlib[test]",
        "//tools/base/lint:studio.android.sdktools.lint-checks[module, test]",
        "//tools/adt/idea/intellij.android.compose-common[module, test]",
        "//tools/base/manifest-parser:studio.android.sdktools.manifest-parser[module]",
        "//tools/base/common:studio.android.sdktools.common.testfixtures[module, test]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle-java[test]",
        "//tools/base/deploy/deployer:studio.android.sdktools.deployer[module, test]",
        "//tools/adt/idea/android-lint:intellij.android.lint[module, test]",
        "//tools/adt/idea/android-navigator:intellij.android.navigator[module, test]",
        "//tools/adt/idea/android-navigator:intellij.android.navigator.testutils[module, test]",
    ],
)

filegroup(
    name = "profiler-artifacts",
    srcs = [
        "//tools/base/profiler:perfetto-protos",
        "//tools/base/profiler/app:perfa.jar",
        "//tools/base/profiler/app:perfa_okhttp.dex",
        "//tools/base/profiler/native/trace_processor_daemon:traceprocessor_protos",
        "//tools/base/profiler/transform:profilers-transform.jar",
    ],
    visibility = ["//visibility:public"],
)

filegroup(
    name = "deploy-artifacts",
    srcs = select({
        "//tools/base/bazel:windows": [
            "//tools/base/deploy/installer:android-installer",
            "//tools/base/deploy/installer/tests:fake_device_proto",
            "//tools/base/deploy/proto:deploy_java_proto",
        ],
        "//conditions:default": [
            "//tools/base/deploy/installer:test-installer",
            "//tools/base/deploy/installer:android-installer",
            "//tools/base/deploy/installer/tests:artifacts",
            "//tools/base/deploy/proto:deploy_java_proto",
        ],
    }) + [
        "//tools/base/deploy/deployer:java_version",
        "//tools/base/deploy/sites:java_sites",
    ],
    visibility = ["//visibility:public"],
)

filegroup(
    name = "transport-artifacts",
    srcs = [
        "//tools/base/transport:android",
        "//tools/base/transport/native/agent:android",
        "//tools/base/transport/proto:transport_java_proto",
    ],
    visibility = ["//visibility:public"],
)

filegroup(
    name = "layout-inspector-artifacts",
    srcs = [
        "//prebuilts/tools/common/app-inspection/androidx/compose/ui:layout_inspector_compose_java_proto",
        "//tools/adt/idea/layout-inspector/src/proto:layout_inspector_snapshot_java_proto",
        "//tools/base/dynamic-layout-inspector/agent/appinspection:agent",
        "//tools/base/dynamic-layout-inspector/agent/appinspection/proto:layout_inspector_view_java_proto",
        "//tools/base/dynamic-layout-inspector/skia/proto:layout_inspector_skia_java_proto",
    ],
    visibility = ["//visibility:public"],
)

# Various artifacts that the ANT and within-idea studio build depend on.
filegroup(
    name = "artifacts",
    srcs = [
        ":android-core-proto",
        ":android-core-proto-test",
        ":deploy-artifacts",
        ":layout-inspector-artifacts",
        ":profiler-artifacts",
        ":transport-artifacts",
        "//prebuilts/tools/common/app-inspection/androidx/sqlite:sqlite_inspector_proto",
        "//prebuilts/tools/common/app-inspection/androidx/work:workmanager_inspector_proto",
        "//tools/adt/idea/server-flags:server-flag-test-proto",
        "//tools/adt/idea/swingp:swing-instrumenter_deploy.jarjar.jar",
        "//tools/analytics-library/protos/src/main/proto:studio.proto",
        "//tools/base/app-inspection/inspectors/network:network_inspector_java_proto",
        "//tools/base/app-inspection/inspectors/backgroundtask:backgroundtask_inspector_java_proto",
        "//tools/base/bazel:studio-grpc",
        "//tools/base/bazel:studio-proto",
        "//tools/base/build-system:gradle-api_neverlink",  # Provided when run in Gradle.
        "//tools/base/ddmlib:am-instrumentation-data-proto",
        "//tools/base/ddmlib:app-processes-proto",
        "//tools/base/emulator/proto:emulator_java_proto",
        "//tools/base/game-tools/protos:game-tools-protos",
        "//tools/base/sdk-common/aia-manifest-jar-generator:proto",
        "//tools/base/third_party/kotlin:kotlin-m2repository",
        "//tools/base/tracer:trace_agent",
        "//tools/base/utp/android-test-plugin-host-device-info-proto:studio.android-test-plugin-host-device-info-proto",
        "//tools/base/utp/android-test-plugin-host-retention-proto:studio.android-test-plugin-host-retention-proto",
        "//tools/base/utp/android-test-plugin-result-listener-gradle-proto:studio.android-test-plugin-result-listener-gradle-proto",
        "//tools/data-binding:compilerCommon.antlr_runtime.shaded",
        "//tools/data-binding:compilerCommon.antlr.shaded",
    ] + select({
        "//tools/base/bazel:windows": [],
        "//conditions:default": [
            "//tools/adt/idea/bleak/src/com/android/tools/idea/bleak/agents:jnibleakhelper",
        ],
    }),
    visibility = ["//tools/base/bazel:__pkg__"],
)

maven_repository(
    name = "test_deps",
    # keep sorted: for buildifier
    artifacts = [
        "//tools/adt/idea/kotlin-integration:kotlin-android-extensions-runtime-for-ide-plugin",
        "//tools/adt/idea/kotlin-integration:kotlin-gradle-plugin-for-ide-plugin",
        "//tools/adt/idea/kotlin-integration:kotlin-reflect-for-ide-plugin",
        "//tools/adt/idea/kotlin-integration:kotlin-stdlib-jdk8-for-ide-plugin",
        "@maven//:android.arch.navigation.navigation-fragment_1.0.0",
        "@maven//:android.arch.persistence.room.runtime_1.0.0",
        "@maven//:androidx.annotation.annotation_1.2.0-beta01",
        "@maven//:androidx.appcompat.appcompat_1.0.2",
        "@maven//:androidx.appcompat.appcompat_1.3.0",
        "@maven//:androidx.benchmark.benchmark-gradle-plugin_1.1.0-beta04",
        "@maven//:androidx.compose.ui.ui-tooling_1.1.1",
        "@maven//:androidx.constraintlayout.constraintlayout_1.1.3",
        "@maven//:androidx.constraintlayout.constraintlayout_2.0.4",
        "@maven//:androidx.core.core-ktx_1.0.1",
        "@maven//:androidx.core.core-ktx_1.2.0",
        "@maven//:androidx.core.core-ktx_1.6.0",
        "@maven//:androidx.core.core_1.5.0-beta01",
        "@maven//:androidx.core.core_1.5.0-rc02",
        "@maven//:androidx.legacy.legacy-support-v4_1.0.0",
        "@maven//:androidx.lifecycle.lifecycle-livedata-ktx_2.3.1",
        "@maven//:androidx.lifecycle.lifecycle-livedata-ktx_2.4.0",
        "@maven//:androidx.lifecycle.lifecycle-runtime_2.4.0",
        "@maven//:androidx.navigation.navigation-fragment-ktx_2.3.5",
        "@maven//:androidx.navigation.navigation-ui-ktx_2.3.5",
        "@maven//:androidx.palette.palette-ktx_1.0.0",
        "@maven//:androidx.recyclerview.recyclerview_1.2.1",
        "@maven//:androidx.savedstate.savedstate_1.1.0-rc01",
        "@maven//:androidx.test.espresso.espresso-core_3.1.0",
        "@maven//:androidx.test.espresso.espresso-core_3.2.0",
        "@maven//:androidx.test.ext.junit_1.1.1",
        "@maven//:androidx.test.ext.junit_1.1.3-alpha02",
        "@maven//:com.android.support.appcompat-v7_25.4.0",
        "@maven//:com.android.support.constraint.constraint-layout_1.0.2",
        "@maven//:com.android.support.constraint.constraint-layout_1.1.0",
        "@maven//:com.android.support.constraint.constraint-layout_1.1.3",
        "@maven//:com.android.support.constraint.constraint-layout_2.0.4",
        "@maven//:com.android.support.design_28.0.0",
        "@maven//:com.android.support.multidex-instrumentation_1.0.2",
        "@maven//:com.android.support.support-v13_28.0.0",
        "@maven//:com.android.support.test.espresso.espresso-core_3.0.2",
        "@maven//:com.android.tools.desugar_jdk_libs_1.1.5",
        "@maven//:com.google.android.gms.play-services-maps_17.0.1",
        "@maven//:com.google.android.material.material_1.4.0",
        "@maven//:com.google.auto.value.auto-value_1.6.2",
        "@maven//:com.google.code.gson.gson_2.2.4",
        "@maven//:com.google.dagger.dagger-compiler_2.6",
        "@maven//:com.google.errorprone.error_prone_annotations_2.3.2",
        "@maven//:com.google.firebase.firebase-common_12.0.1",
        "@maven//:com.google.guava.guava_28.2-jre",
        "@maven//:com.google.truth.truth_0.44",
        "@maven//:com.linkedin.testbutler.test-butler-app_1.3.1",
        "@maven//:commons-lang.commons-lang_2.4",
        "@maven//:commons-logging.commons-logging_1.1.1",
        "@maven//:junit.junit_4.13.2",
        "@maven//:org.jacoco.org.jacoco.ant_0.8.7",
        "@maven//:org.jdeferred.jdeferred-android-aar_1.2.3",
        "@maven//:org.jetbrains.kotlin.kotlin-android-extensions-runtime_1.5.21",
        "@maven//:org.jetbrains.kotlin.kotlin-gradle-plugin_1.5.21",
        "@maven//:org.jetbrains.kotlin.kotlin-reflect_1.4.31",
        "@maven//:org.jetbrains.kotlin.kotlin-reflect_1.4.32",
        "@maven//:org.jetbrains.kotlin.kotlin-reflect_1.5.21",
        "@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk7_1.4.32",
        "@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk8_1.4.31",
        "@maven//:org.jetbrains.kotlin.kotlin-stdlib-jdk8_1.5.21",
        "@maven//:org.mockito.mockito-core_3.0.0",
        "@maven//:xmlpull.xmlpull_1.1.3.1",
    ],
    # Do not change: this target is explicitly marked private to avoid bloat.
    visibility = ["//visibility:private"],
)

# Validates no new gradle project tests are added to intellij.android.core.tests
check_tests(
    agp_test_module = ":intellij.android.core.agp-integration-tests",
    disallow_gradle_project_tests = True,
    gradle_project_tests_allowlist = ":intellij.android.core.tests.gradle-tests-allowlist.txt",
    iml_module = ":intellij.android.core.tests",
)

studio_data(
    name = "asset-studio-bundle",
    files = glob(["resources/images/asset_studio/**"]),
    mappings = {
        "tools/adt/idea/android/resources/": "",
    },
    visibility = ["//visibility:public"],
)

# built for updating "resources/gmavenIndex/classes-offline.json".
kotlin_library(
    name = "update_offline_gmaven_index",
    srcs = [
        "src/com/android/tools/idea/imports/GMavenIndexConstants.kt",
        "src/com/android/tools/idea/imports/GzipUtils.kt",
        "src/com/android/tools/idea/imports/UpdateOfflineGMavenIndex.kt",
    ],
    deps = [
        "@maven//:com.google.guava.guava",
        "@maven//:org.apache.commons.commons-compress",
    ],
)

java_binary(
    name = "update_offline_gmaven_index_main",
    main_class = "com.android.tools.idea.imports.UpdateOfflineGMavenIndex",
    runtime_deps = [
        ":update_offline_gmaven_index",
    ],
)

load("//tools/base/bazel:jvm_import.bzl", "jvm_import")

# managed by go/iml_to_build
jvm_import(
    name = "libandroid-core-proto",
    jars = ["//tools/adt/idea/android:libandroid-core-proto.jar"],
    visibility = ["//visibility:public"],
)

# managed by go/iml_to_build
jvm_import(
    name = "libandroid-core-proto-test",
    jars = ["//tools/adt/idea/android:libandroid-core-proto-test.jar"],
    visibility = ["//visibility:public"],
)

# managed by go/iml_to_build
jvm_import(
    name = "libstudio.android-test-plugin-host-retention-proto",
    jars = ["//tools/base/utp/android-test-plugin-host-retention-proto:libstudio.android-test-plugin-host-retention-proto.jar"],
    visibility = ["//visibility:public"],
)

# managed by go/iml_to_build
iml_module(
    name = "intellij.android.core.agp-integration-tests",
    iml_files = ["intellij.android.core.agp-integration-tests.iml"],
    split_test_targets = {
        "modularize": {
            "test_filter": "com.android.tools.idea.refactoring.modularize",
        },
        "UnusedResourcesGradleTest": {
            # The testKotlin test case takes 3 minutes (linux) or 5 minutes (windows).
            # TODO(b/191881927) Test cases with a gradle KTS sync do not shard well
            "test_filter": "org.jetbrains.android.refactoring.UnusedResourcesGradleTest",
        },
        "MigrateToAndroidxGradleKtsTest": {
            # TODO(b/191881927) Test cases with a gradle KTS sync do not shard well
            "test_filter": "org.jetbrains.android.refactoring.MigrateToAndroidxGradleKtsTest",
        },
        "IllegalIdentifierInspectionTest": {
            # TODO(b/191881927) Test cases with a gradle KTS sync do not shard well
            "test_filter": "com.android.tools.idea.inspections.IllegalIdentifierInspectionTest",
        },
        "other": {
            "shard_count": 3,
        },
    },
    test_class = "com.android.tools.idea.IdeaTestSuite",
    # keep sorted
    test_data = [
        ":test_deps",
        "//prebuilts/studio/layoutlib:build.prop",
        "//prebuilts/studio/layoutlib/data:framework_res.jar",
        "//prebuilts/studio/layoutlib/data:native_libs",
        "//prebuilts/studio/layoutlib/data/fonts",
        "//prebuilts/studio/layoutlib/data/icu",
        "//prebuilts/studio/sdk:build-tools/latest",
        "//prebuilts/studio/sdk:platform-tools",
        "//prebuilts/studio/sdk:platforms/latest",
        "//tools/adt/idea/android/testData:javadoc",
        "//tools/adt/idea/android/testData:projects",
        "//tools/base/build-system:gradle-distrib",  # Please do not add old versions of AGP here. Use the old-agp-tests module instead.
        "//tools/base/build-system:studio_repo",
        "//tools/base/build-system/integration-test:kotlin_gradle_plugin_prebuilts",
        "//tools/base/third_party/kotlin:kotlin-m2repository",
    ],
    test_srcs = ["agpIntegrationTestSrc"],
    test_tags = [],
    test_timeout = "long",
    visibility = ["//visibility:public"],
    # do not sort: must match IML order
    deps = [
        "//prebuilts/studio/intellij-sdk:studio-sdk",
        "//tools/adt/idea/android:intellij.android.core[module, test]",
        "//tools/base/testutils:studio.android.sdktools.testutils[module, test]",
        "//tools/adt/idea/android-test-framework:intellij.android.testFramework[module, test]",
        "//tools/adt/idea/project-system:intellij.android.projectSystem[module, test]",
        "//tools/adt/idea/adt-testutils:intellij.android.adt.testutils[module, test]",
        "//tools/adt/idea/project-system-gradle:intellij.android.projectSystem.gradle[module, test]",
        "//tools/adt/idea/project-system-gradle-psd:intellij.android.projectSystem.gradle.psd[module, test]",
        "//tools/adt/idea/project-system-gradle-models:intellij.android.projectSystem.gradle.models[module, test]",
        "//tools/adt/idea/.idea/libraries:truth",
        "//tools/adt/idea/android-common:intellij.android.common[module, test]",
        "//tools/adt/idea/gradle-dsl:intellij.android.gradle.dsl[module, test]",
        "//tools/analytics-library/shared:analytics-shared[module, test]",
        "//tools/adt/idea/lint:intellij.lint[module, test]",
        "//tools/adt/idea/.idea/libraries:mockito[test]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-gradle[test]",
        "//tools/adt/idea/wizard-model:intellij.android.wizard.model[module, test]",
        "//tools/adt/idea/observable:intellij.android.observable[module, test]",
        "//tools/base/wizard/template-plugin:studio.intellij.android.wizardTemplate.plugin[module, test]",
        "//tools/adt/idea/adt-ui:intellij.android.adt.ui[module, test]",
        "//tools/adt/idea/android-kotlin:intellij.android.kotlin.idea[module, test]",
        "//prebuilts/studio/intellij-sdk:studio-sdk-plugin-Kotlin[test]",
        "//tools/adt/idea/android-lint:intellij.android.lint[module, test]",
    ],
)