-
-
Notifications
You must be signed in to change notification settings - Fork 130
/
common-scripts.gradle
128 lines (103 loc) · 3.51 KB
/
common-scripts.gradle
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
/*
* Copyright 2024 by Patryk Goworowski and Patrick Michalik.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
android {
compileSdk library.target_sdk
defaultConfig {
minSdk library.min_sdk
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
freeCompilerArgs = [
"-Xexplicit-api=strict",
"-opt-in=kotlin.RequiresOptIn",
]
}
}
ext {
getNamespace = this.&getNamespace
getArtifactId = this.&getArtifactId
customizePom = this.&customizePom
setUpRepositories = this.&setUpRepositories
setUpSigning = this.&setUpSigning
}
String getNamespace(Project project) {
return "${library.groupId}.${project.name.replace("-", ".")}"
}
String getArtifactId(Project project) {
return project.name
}
void customizePom(MavenPom pom) {
pom.name = "Vico"
pom.description = "A light and extensible chart library for Android."
pom.url = "https://github.com/patrykandpatrick/vico"
pom.licenses {
license {
name = "The Apache License, Version 2.0"
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
}
}
pom.scm {
connection = "scm:git:git://github.com/patrykandpatrick/vico.git"
developerConnection = "scm:git:ssh://github.com/patrykandpatrick/vico.git"
url = "https://github.com/patrykandpatrick/vico"
}
pom.developers {
developer {
id = "patrykgoworowski"
name = "Patryk Goworowski"
email = "[email protected]"
}
developer {
id = "patrickmichalik"
name = "Patrick Michalik"
email = "[email protected]"
}
}
}
boolean isReleaseVersion() {
return !project.version.endsWith("SNAPSHOT")
}
void setUpRepositories(RepositoryHandler handler) {
handler.maven {
def releaseUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
def snapshotUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
url = isReleaseVersion() ? releaseUrl : snapshotUrl
credentials {
username = findProperty("OSSRH_TOKEN")
password = findProperty("OSSRH_TOKEN_PASSWORD")
}
}
}
void setUpSigning(SigningExtension signing, MavenPublication publication) {
signing.setRequired {
isReleaseVersion() && gradle.taskGraph.allTasks.any { it.is(PublishToMavenRepository) }
}
def gpgKey = findProperty("GPG_KEY")
def gpgKeyPassword = findProperty("GPG_KEY_PASSWORD")
signing.useInMemoryPgpKeys(gpgKey, gpgKeyPassword)
signing.sign publication
}