1package { 2 default_applicable_licenses: ["external_kotlinx.coroutines_license"], 3 default_visibility: ["//visibility:private"], 4} 5 6// Added automatically by a large-scale-change that took the approach of 7// 'apply every license found to every target'. While this makes sure we respect 8// every license restriction, it may not be entirely correct. 9// 10// e.g. GPL in an MIT project might only apply to the contrib/ directory. 11// 12// Please consider splitting the single license below into multiple licenses, 13// taking care not to lose any license_kind information, and overriding the 14// default license using the 'licenses: [...]' property on targets as needed. 15// 16// For unused files, consider creating a 'fileGroup' with "//visibility:private" 17// to attach the license to, and including a comment whether the files may be 18// used in the current project. 19// 20// large-scale-change included anything that looked like it might be a license 21// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. 22// 23// Please consider removing redundant or irrelevant files from 'license_text:'. 24// See: http://go/android-license-faq 25license { 26 name: "external_kotlinx.coroutines_license", 27 visibility: [":__subpackages__"], 28 license_kinds: [ 29 "SPDX-license-identifier-Apache-2.0", 30 "SPDX-license-identifier-MIT", 31 ], 32 license_text: [ 33 "LICENSE", 34 "LICENSE.txt", 35 "license/**/*", 36 ], 37} 38 39// Upstream compiles this lib against the JVM bootclasspath; compiling against the Android 40// bootclasspath will fail. Work around this by defining this as a java_library_host, and use 41// java_host_for_device to expose it to Android targets. 42java_library_host { 43 name: "kotlinx_coroutines-host", 44 srcs: ["kotlinx-coroutines-core/jvm/src/**/*.kt"], 45 common_srcs: [ 46 "kotlinx-coroutines-core/common/src/**/*.kt", 47 "kotlinx-coroutines-core/concurrent/src/**/*.kt", 48 ], 49 exclude_srcs: [ 50 "kotlinx-coroutines-core/jvm/src/test_/TestCoroutineContext.kt", 51 ], 52 java_resource_dirs: ["kotlinx-coroutines-core/jvm/resources"], 53 // See https://github.com/Kotlin/kotlinx.coroutines#avoiding-including-the-debug-infrastructure-in-the-resulting-apk 54 // This file contains `kotlin.coroutines.jvm.internal.DebugProbesKt` class and is only used 55 // by the debugger. 56 // This cause issues when generating coverage as Jacoco will fail with 57 // `Caused by: java.lang.IllegalStateException: Can't add different class with same name: kotlin/coroutines/jvm/internal/DebugProbesKt` 58 // See b/291743544 for more details 59 exclude_java_resources: ["kotlinx-coroutines-core/jvm/resources/DebugProbesKt.bin"], 60 static_libs: [ 61 "kotlinx_atomicfu", 62 ], 63 libs: [ 64 "annotations", // for android.annotation.SuppressLint 65 "kotlinx-coroutines-android-annotation-stubs", 66 ], 67 kotlincflags: [ 68 "-Xmulti-platform", 69 "-opt-in=kotlin.RequiresOptIn", 70 "-opt-in=kotlin.experimental.ExperimentalTypeInference", 71 "-opt-in=kotlin.ExperimentalMultiplatform", 72 "-opt-in=kotlinx.coroutines.DelicateCoroutinesApi", 73 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 74 "-opt-in=kotlinx.coroutines.ObsoleteCoroutinesApi", 75 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 76 "-opt-in=kotlinx.coroutines.FlowPreview", 77 ], 78 apex_available: [ 79 "//apex_available:platform", 80 "//apex_available:anyapex", 81 ], 82} 83 84// Expose the host library to Android targets. This is generally an unsafe operation; in using 85// this, we are asserting that any host-only code will never be evaluated at runtime on Android. 86// If we're wrong, we will see runtime exceptions. 87java_host_for_device { 88 name: "kotlinx_coroutines-device", 89 libs: ["kotlinx_coroutines-host"], 90} 91 92// Combine host and Android libs back into a single target. 93java_library { 94 name: "kotlinx_coroutines", 95 host_supported: true, 96 sdk_version: "core_current", 97 min_sdk_version: "28", 98 target: { 99 host: { 100 static_libs: ["kotlinx_coroutines-host"], 101 }, 102 android: { 103 static_libs: ["kotlinx_coroutines-device"], 104 }, 105 }, 106 apex_available: [ 107 "//apex_available:platform", 108 "//apex_available:anyapex", 109 ], 110 visibility: ["//visibility:public"], 111} 112 113java_library { 114 name: "kotlinx_coroutines_android", 115 sdk_version: "current", 116 min_sdk_version: "28", 117 srcs: ["ui/kotlinx-coroutines-android/src/**/*.kt"], 118 java_resource_dirs: ["ui/kotlinx-coroutines-android/resources"], 119 kotlincflags: [ 120 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 121 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 122 ], 123 static_libs: [ 124 "kotlinx_coroutines", 125 ], 126 libs: [ 127 "androidx.annotation_annotation", 128 ], 129 apex_available: [ 130 "//apex_available:platform", 131 "//apex_available:anyapex", 132 ], 133 visibility: ["//visibility:public"], 134} 135 136java_library { 137 name: "kotlinx_coroutines_test", 138 host_supported: true, 139 sdk_version: "core_current", 140 srcs: ["kotlinx-coroutines-test/jvm/src/**/*.kt"], 141 common_srcs: ["kotlinx-coroutines-test/common/src/**/*.kt"], 142 java_resource_dirs: ["kotlinx-coroutines-test/jvm/resources"], 143 kotlincflags: [ 144 "-Xmulti-platform", 145 "-opt-in=kotlin.ExperimentalMultiplatform", 146 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 147 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 148 ], 149 libs: ["kotlinx_coroutines"], 150 apex_available: [ 151 "//apex_available:platform", 152 "//apex_available:anyapex", 153 ], 154 visibility: ["//visibility:public"], 155} 156 157// Compile stub implementations of annotations used by kotlinx-coroutines but not present in the 158// Android tree. 159java_library { 160 name: "kotlinx-coroutines-android-annotation-stubs", 161 host_supported: true, 162 sdk_version: "core_current", 163 srcs: ["android-annotation-stubs/src/**/*.java"], 164} 165 166// Temporary aliases for kotlinx-coroutines-core, kotlinx-coroutines-core-jvm and 167// kotlinx-coroutines-android 168 169java_library { 170 name: "kotlinx-coroutines-core", 171 host_supported: true, 172 sdk_version: "core_current", 173 min_sdk_version: "28", 174 static_libs: ["kotlinx_coroutines"], 175 apex_available: [ 176 "//apex_available:platform", 177 "//apex_available:anyapex", 178 ], 179 visibility: ["//visibility:public"], 180} 181 182java_library { 183 name: "kotlinx-coroutines-core-jvm", 184 host_supported: true, 185 sdk_version: "core_current", 186 min_sdk_version: "28", 187 static_libs: ["kotlinx_coroutines"], 188 apex_available: [ 189 "//apex_available:platform", 190 "//apex_available:anyapex", 191 ], 192 visibility: ["//visibility:public"], 193} 194 195java_library { 196 name: "kotlinx-coroutines-android", 197 sdk_version: "current", 198 min_sdk_version: "28", 199 static_libs: [ 200 "kotlinx_coroutines_android", 201 "kotlinx_coroutines", 202 ], 203 apex_available: [ 204 "//apex_available:platform", 205 "//apex_available:anyapex", 206 ], 207 visibility: ["//visibility:public"], 208} 209 210filegroup { 211 name: "kotlinx-coroutines-play-services", 212 srcs: ["integration/kotlinx-coroutines-play-services/src/**/*.kt"], 213 visibility: ["//visibility:public"], 214} 215 216// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-guava 217java_library { 218 name: "kotlinx_coroutines_guava", 219 sdk_version: "current", 220 min_sdk_version: "28", 221 host_supported: true, 222 srcs: ["integration/kotlinx-coroutines-guava/src/**/*.kt"], 223 kotlincflags: [ 224 "-opt-in=kotlin.RequiresOptIn", 225 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 226 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 227 ], 228 libs: [ 229 "kotlinx_coroutines", 230 "kotlin-stdlib-jdk8", 231 "guava", 232 ], 233 apex_available: [ 234 "//apex_available:platform", 235 "//apex_available:anyapex", 236 ], 237 visibility: ["//visibility:public"], 238} 239 240// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-reactive 241java_library { 242 name: "kotlinx_coroutines_reactive", 243 host_supported: true, 244 srcs: ["reactive/kotlinx-coroutines-reactive/src/**/*.kt"], 245 kotlincflags: [ 246 "-opt-in=kotlin.RequiresOptIn", 247 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 248 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 249 "-opt-in=kotlin.experimental.ExperimentalTypeInference", 250 ], 251 libs: [ 252 "kotlin-stdlib", 253 "kotlinx_coroutines", 254 "rxjava", 255 ], 256 apex_available: [ 257 "//apex_available:platform", 258 "//apex_available:anyapex", 259 ], 260 visibility: ["//visibility:public"], 261} 262 263// Maven coordinate: org.jetbrains.kotlinx:kotlinx-coroutines-rx2 264java_library { 265 name: "kotlinx_coroutines_rx2", 266 host_supported: true, 267 srcs: ["reactive/kotlinx-coroutines-rx2/src/**/*.kt"], 268 kotlincflags: [ 269 "-opt-in=kotlin.RequiresOptIn", 270 "-opt-in=kotlinx.coroutines.InternalCoroutinesApi", 271 "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", 272 "-opt-in=kotlin.experimental.ExperimentalTypeInference", 273 ], 274 libs: [ 275 "kotlin-stdlib", 276 "kotlinx_coroutines", 277 "kotlinx_coroutines_reactive", 278 "rxjava", 279 ], 280 apex_available: [ 281 "//apex_available:platform", 282 "//apex_available:anyapex", 283 ], 284 visibility: ["//visibility:public"], 285} 286