blob: 7abcf103782916d0dc8be03baec1ae913aaa1816 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
apply plugin: ChromiumPlugin
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:6+'
}
}
apply plugin: 'org.owasp.dependencycheck'
repositories {
google()
mavenCentral()
}
dependencyCheck {
// Any known vulnerability of any severity will cause the build to fail.
failBuildOnCVSS = 0
suppressionFile = file('vulnerability_supressions.xml')
// Libraries used in these configurations aren't shipped in Chrome.
// They are only used to aid in compiling or testing.
skipConfigurations = [
'buildCompile',
'buildCompileNoDeps',
'androidTestCompile',
'testCompile'
]
}
dependencies {
// Note about the configuration names: they are defined in buildSrc/ChromiumPlugin
// Replacement for com.android.support:design
compile 'com.google.android.material:material:1.7.0-alpha02'
compile 'com.google.android.play:core:1.10.0'
// Architecture components
String archComponentsVersion = '1.1.1'
compile "android.arch.lifecycle:runtime:${archComponentsVersion}"
compile "android.arch.lifecycle:common:${archComponentsVersion}"
compile "android.arch.lifecycle:common-java8:${archComponentsVersion}"
compile "android.arch.lifecycle:viewmodel:${archComponentsVersion}"
// Play services libraries
// See https://developers.google.com/android/guides/releases for updates
// Starting from 15.0.0 these libraries are allowed to update independently
String baseGmsVersion = '18.0.1'
// GCM is old and deprecated - nothing newer is available.
String gcmGmsVersion = '17.0.0'
// Attemped to roll cast with everything else, but it caused a missing class error, and we had
// no other versions available on CIPD - see crbug.com/1310799.
String castGmsVersion = '17.0.0'
compile "com.google.android.gms:play-services-basement:${baseGmsVersion}"
compile "com.google.android.gms:play-services-tasks:${baseGmsVersion}"
compile "com.google.android.gms:play-services-base:${baseGmsVersion}"
compile 'com.google.android.gms:play-services-auth-base:18.0.2'
compile "com.google.android.gms:play-services-auth-api-phone:${baseGmsVersion}"
compile 'com.google.android.gms:play-services-auth:20.1.0'
compile "com.google.android.gms:play-services-cast:${castGmsVersion}"
compile "com.google.android.gms:play-services-cast-framework:${castGmsVersion}"
compile "com.google.android.gms:play-services-iid:${gcmGmsVersion}"
compile "com.google.android.gms:play-services-instantapps:${baseGmsVersion}"
compile "com.google.android.gms:play-services-gcm:${gcmGmsVersion}"
compile 'com.google.android.gms:play-services-location:19.0.1'
compile 'com.google.android.gms:play-services-vision-common:19.1.3'
compile 'com.google.android.gms:play-services-vision:20.1.3'
compile 'com.google.android.gms:play-services-fido:19.0.0-beta'
// TODO (bjoyce): Remove after androidx migration crbug.com/896775
// Support v4 libraries
String supportLibVersion = '28.0.0'
compile "com.android.support:support-v4:${supportLibVersion}"
compile "com.android.support:support-compat:${supportLibVersion}"
compile "com.android.support:support-core-ui:${supportLibVersion}"
compile "com.android.support:support-core-utils:${supportLibVersion}"
compile "com.android.support:support-fragment:${supportLibVersion}"
compile "com.android.support:support-annotations:${supportLibVersion}"
compile "com.android.support:design:${supportLibVersion}"
compile "com.android.support:asynclayoutinflater:${supportLibVersion}"
compile "com.android.support:collections:${supportLibVersion}"
compile "com.android.support:coordinatorlayout:${supportLibVersion}"
compile "com.android.support:customview:${supportLibVersion}"
compile "com.android.support:drawerlayout:${supportLibVersion}"
compile "com.android.support:interpolator:${supportLibVersion}"
compile 'com.android.support:localbroadcastmanager:1.1.0-SNAPSHOT'
compile "com.android.support:swiperefreshlayout:${supportLibVersion}"
compile "com.android.support:viewpager:${supportLibVersion}"
compile 'com.android.support:multidex:1.0.0'
compile 'com.google.code.findbugs:jsr305:3.0.2'
compile 'com.google.firebase:firebase-iid:21.0.1'
compile 'com.google.firebase:firebase-messaging:21.0.1'
compile 'com.google.guava:failureaccess:1.0.1'
compile 'com.google.j2objc:j2objc-annotations:1.1'
compile 'com.google.protobuf:protobuf-javalite:3.19.3'
compile 'javax.annotation:javax.annotation-api:1.3.2'
compile 'javax.annotation:jsr250-api:1.0'
compile 'javax.inject:javax.inject:1'
compile 'io.grpc:grpc-binder:1.49.0'
compile 'io.grpc:grpc-protobuf-lite:1.49.0'
compile 'io.grpc:grpc-stub:1.49.0'
compile 'io.grpc:grpc-api:1.49.0'
// Needed by androidx and by doubledown targets.
// Note: These have version overrides set in ChromiumDepGraph.groovy.
compile "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1"
compile "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.1"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0"
// Upstream guava introduced versions with -android suffix starting with version
// 22 to remove incompatible code with android. Thus we keep two jars, one for
// the full guava and one that supports android.
String guavaVersion = '31.0'
compile "com.google.guava:guava:${guavaVersion}-android"
// buildCompile targets have supports_android = false.
buildCompile "com.google.guava:guava:${guavaVersion}-jre"
String daggerVersion = '2.30'
compile "com.google.dagger:dagger:${daggerVersion}"
buildCompile "com.google.dagger:dagger-compiler:${daggerVersion}"
// Matches version depended on by Dagger.
buildCompile 'com.squareup:javapoet:1.13.0'
String errorproneVersion = '2.11.0'
// Used by downstream targets.
compile "com.google.errorprone:error_prone_annotations:${errorproneVersion}"
compile 'org.checkerframework:checker-compat-qual:2.5.5'
compile 'org.checkerframework:checker-util:3.25.0'
compile 'org.codehaus.mojo:animal-sniffer-annotations:1.17'
// Dedicated configuration to avoid using higher version number. The 9999 version is empty.
// This has a version override in ChromiumDepGraph.groovy.
compile 'com.google.guava:listenablefuture:1.0'
buildCompile "com.google.errorprone:error_prone_core:${errorproneVersion}"
buildCompile "com.google.errorprone:error_prone_check_api:${errorproneVersion}"
buildCompile "com.google.errorprone:error_prone_annotation:${errorproneVersion}"
buildCompile 'com.google.errorprone:javac:9+181-r4173-1'
buildCompile 'com.google.auto.service:auto-service:1.0-rc6'
buildCompile 'com.google.auto.service:auto-service-annotations:1.0-rc6'
buildCompile 'com.google.code.gson:gson:2.8.0'
buildCompile 'org.ow2.asm:asm:7.0'
buildCompile 'org.ow2.asm:asm-commons:7.0'
buildCompile 'org.ow2.asm:asm-tree:7.0'
buildCompile 'org.ow2.asm:asm-util:7.0'
// Used by resource shrinking.
// buildCompileNoDeps targets do not bring in any of their dependencies,
// this list of targets is carefully curated for the use of the resources
// shrinker. If these are needed for something other than the resources
// shrinker, use buildCompile instead.
String androidToolsVersion = '30.2.0-beta01'
buildCompileNoDeps "com.android.tools:sdk-common:${androidToolsVersion}"
buildCompileNoDeps "com.android.tools:common:${androidToolsVersion}"
buildCompileNoDeps "com.android.tools.layoutlib:layoutlib-api:${androidToolsVersion}"
buildCompile 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'
androidTestCompile 'com.google.android.apps.common.testing.accessibility.framework:accessibility-test-framework:4.0.0'
// accessibility-test-framework:3.1.2 depends on jsoup 1.12, which has a security
// vulnerability, so grab a later version.
androidTestCompile 'org.jsoup:jsoup:1.14.3'
androidTestCompile 'com.googlecode.java-diff-utils:diffutils:1.3.0'
// Version 1.2 is needed by espresso-web, but we'll newer 1.2.1.
androidTestCompile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
androidTestCompile "org.mockito:mockito-core:4.7.0"
// Depended on by downstream guava_java rewrite.
androidTestCompile "org.checkerframework:checker-qual:3.25.0"
String robolectricVersion = '4.8.1'
// Use testCompile to avoid having support_android = true set on
// robolectric dependencies.
testCompile "org.robolectric:robolectric:${robolectricVersion}"
testCompile "org.robolectric:shadows-multidex:${robolectricVersion}"
testCompile "org.robolectric:shadows-playservices:${robolectricVersion}"
testCompile "org.robolectric:utils:${robolectricVersion}"
// TODO(1404995): Remove after robolectric is update to 4.9.2 as nothing
// else depends on this, so we want it removed when robolectric doesn't
//need it anymore.
testCompile "org.conscrypt:conscrypt-openjdk-uber:2.5.2"
}
task setUpRepository(type: BuildConfigGenerator) {
// Paths are relative to the chromium source root.
repositoryPath 'third_party/android_deps'
chromiumSourceRoot '../..'
cipdBucket 'chromium'
internalTargetVisibility = [ ':*', '//third_party/androidx:*' ]
}