-
Notifications
You must be signed in to change notification settings - Fork 139
Expand file tree
/
Copy pathbuild.gradle
More file actions
140 lines (122 loc) · 4.62 KB
/
build.gradle
File metadata and controls
140 lines (122 loc) · 4.62 KB
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
import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
apply from: 'deps.gradle'
repositories {
google()
gradlePluginPortal()
mavenCentral()
}
dependencies {
classpath "com.android.tools.build:gradle:$android_build_tools_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.5'
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.5'
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.23.3"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
plugins {
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
alias(libs.plugins.detekt) apply false
}
subprojects {
// Ignore examples folder, it's not a module itself.
if (project.name == "examples") {
return
}
def isDetektRulesModule = project.name == "livekit-detekt-rules"
apply plugin: "com.diffplug.spotless"
spotless {
// optional: limit format enforcement to just the files changed by this feature branch
ratchetFrom 'origin/main'
format 'misc', {
// define the files to apply `misc` to
target '*.gradle', '*.md', '.gitignore'
// define the steps to apply to those files
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
java {
// apply a specific flavor of google-java-format
googleJavaFormat('1.17.0').aosp().reflowLongStrings()
// fix formatting of type annotations
formatAnnotations()
// make sure every file has the following copyright header.
// optionally, Spotless can set copyright years by digging
// through git history (see "license" section below)
licenseHeaderFile rootProject.file("LicenseHeaderFile.txt")
removeUnusedImports()
toggleOffOn()
}
kotlin {
target("src/*/java/**/*.kt")
targetExclude(
"src/*/java/**/ReentrantMutex.kt", // Different license
"src/*/java/**/TextureViewRenderer.kt", // Different license
"src/*/java/**/FlowDelegate.kt", // Different license
"src/*/java/**/JainSdpUtils.kt", // Different license
)
ktlint("0.50.0")
.setEditorConfigPath("$rootDir/.editorconfig")
licenseHeaderFile(rootProject.file("LicenseHeaderFile.txt"))
.named('license')
endWithNewline()
toggleOffOn()
}
}
if (!isDetektRulesModule) {
apply plugin: "io.gitlab.arturbosch.detekt"
detekt {
parallel = true
buildUponDefaultConfig = true
allRules = false
config.from(files("$rootDir/config/detekt/detekt.yml"))
reports {
html.required.set(true)
md.required.set(true)
}
}
dependencies {
detektPlugins project(":livekit-detekt-rules")
}
tasks.withType(io.gitlab.arturbosch.detekt.Detekt).configureEach {
pluginClasspath.setFrom(configurations.detektPlugins)
}
}
// From Gradle 8 onwards, Kapt no longer automatically picks up jvmTarget
// from normal KotlinOptions. Must be manually set.
// JvmToolchain should not be used since it changes the actual JDK used.
tasks.withType(KaptGenerateStubs).configureEach {
kotlinOptions {
jvmTarget = java_version
}
}
}
tasks.register('clean', Delete) {
delete rootProject.buildDir
}
group = GROUP
version = VERSION_NAME
def getRepositoryUsername() {
return hasProperty('nexusUsername') ? nexusUsername : ""
}
def getRepositoryPassword() {
return hasProperty('nexusPassword') ? nexusPassword : ""
}
nexusPublishing {
packageGroup = GROUP
repositories {
maven {
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
username = getRepositoryUsername()
password = getRepositoryPassword()
stagingProfileId = STAGING_PROFILE_ID
}
}
}