-
-
Notifications
You must be signed in to change notification settings - Fork 427
/
build.gradle.kts
114 lines (90 loc) · 2.96 KB
/
build.gradle.kts
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
import org.jetbrains.kotlin.config.KotlinCompilerVersion
plugins {
id("com.android.library")
kotlin("android")
jacoco
id(Config.NativePlugins.nativeBundleExport)
id(Config.QualityPlugins.gradleVersions)
}
var sentryNativeSrc: String = "sentry-native"
val sentryAndroidSdkName: String by project
android {
compileSdk = Config.Android.compileSdkVersion
sentryNativeSrc = if (File("${project.projectDir}/sentry-native-local").exists()) {
"sentry-native-local"
} else {
"sentry-native"
}
println("sentry-android-ndk: $sentryNativeSrc")
defaultConfig {
targetSdk = Config.Android.targetSdkVersion
minSdk = Config.Android.minSdkVersionNdk // NDK requires a higher API level than core.
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
arguments.add(0, "-DANDROID_STL=c++_static")
arguments.add(0, "-DSENTRY_NATIVE_SRC=$sentryNativeSrc")
arguments.add(0, "-DSENTRY_SDK_NAME=$sentryAndroidSdkName")
}
}
ndk {
abiFilters.addAll(Config.Android.abiFilters)
}
// for AGP 4.1
buildConfigField("String", "VERSION_NAME", "\"${project.version}\"")
}
// we use the default NDK and CMake versions based on the AGP's version
// https://developer.android.com/studio/projects/install-ndk#apply-specific-version
externalNativeBuild {
cmake {
path("CMakeLists.txt")
}
}
buildTypes {
getByName("debug")
getByName("release") {
consumerProguardFiles("proguard-rules.pro")
}
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
testOptions {
animationsDisabled = true
unitTests.apply {
isReturnDefaultValues = true
isIncludeAndroidResources = true
}
}
lint {
warningsAsErrors = true
checkDependencies = true
// We run a full lint analysis as build part in CI, so skip vital checks for assemble tasks.
checkReleaseBuilds = false
}
nativeBundleExport {
headerDir = "${project.projectDir}/$sentryNativeSrc/include"
}
// needed because of Kotlin 1.4.x
configurations.all {
resolutionStrategy.force(Config.CompileOnly.jetbrainsAnnotations)
}
variantFilter {
if (Config.Android.shouldSkipDebugVariant(buildType.name)) {
ignore = true
}
}
}
tasks.withType<Test> {
configure<JacocoTaskExtension> {
isIncludeNoLocationClasses = false
}
}
dependencies {
api(projects.sentry)
api(projects.sentryAndroidCore)
compileOnly(Config.CompileOnly.jetbrainsAnnotations)
testImplementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION))
testImplementation(Config.TestLibs.kotlinTestJunit)
testImplementation(Config.TestLibs.mockitoKotlin)
}