forked from microg/GmsCore
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
124 lines (106 loc) · 4.3 KB
/
build.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
/*
* SPDX-FileCopyrightText: 2013 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
buildscript {
ext.cronetVersion = '102.5005.125'
ext.wearableVersion = '0.1.1'
ext.kotlinVersion = '1.9.22'
ext.coroutineVersion = '1.7.3'
ext.annotationVersion = '1.7.1'
ext.appcompatVersion = '1.6.1'
ext.biometricVersion = '1.1.0'
ext.coreVersion = '1.12.0'
ext.fragmentVersion = '1.6.2'
ext.lifecycleVersion = '2.7.0'
ext.loaderVersion = '1.1.0'
ext.materialVersion = '1.11.0'
ext.mediarouterVersion = '1.6.0'
ext.multidexVersion = '2.0.1'
ext.navigationVersion = '2.7.7'
ext.preferenceVersion = '1.2.0'
ext.recyclerviewVersion = '1.3.2'
ext.webkitVersion = '1.10.0'
ext.slf4jVersion = '1.7.36'
ext.volleyVersion = '1.2.1'
ext.wireVersion = '4.8.0'
ext.androidBuildGradleVersion = '8.2.2'
ext.androidBuildVersionTools = '34.0.0'
ext.androidMinSdk = 19
ext.androidTargetSdk = 29
ext.androidCompileSdk = 34
ext.localProperties = new Properties()
try {
var stream = rootProject.file('local.properties').newDataInputStream()
ext.localProperties.load(stream)
stream.close()
} catch (ignored) {
// Ignore
}
ext.hasModule = (String name, boolean enabledByDefault) -> {
return ext.localProperties.getProperty("modules." + name, enabledByDefault.toString()).toBoolean()
}
repositories {
mavenCentral()
google()
}
dependencies {
classpath "com.android.tools.build:gradle:$androidBuildGradleVersion"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
classpath "com.squareup.wire:wire-gradle-plugin:$wireVersion"
}
}
def execResult(...args) {
def stdout = new ByteArrayOutputStream()
exec {
commandLine args
standardOutput = stdout
}
return stdout.toString()
}
def gmsVersion = "23.35.15"
def gmsVersionCode = Integer.parseInt(gmsVersion.replaceAll('\\.', ''))
def vendingVersion = "37.5.24"
def vendingVersionCode = Integer.parseInt(vendingVersion.replaceAll('\\.', ''))
def gitVersionBase = execResult('git', 'describe', '--tags', '--abbrev=0', '--match=v[0-9]*').trim().substring(1)
def gitCommitCount = Integer.parseInt(execResult('git', 'rev-list', '--count', "v$gitVersionBase..HEAD").trim())
def gitCommitId = execResult('git', 'show-ref', '--abbrev=7', '--head', 'HEAD').trim().split(' ')[0]
def gitDirty = false
execResult('git', 'status', '--porcelain').lines().each { stat ->
def status = stat.substring(0,2)
def file = stat.substring(3)
if (status == '??') {
if (subprojects.any { p -> file.startsWith(p.name + '/') }) {
logger.lifecycle('Dirty file: {} (untracked)', file)
gitDirty = true
} else {
logger.info('New file outside module: {} (ignored for dirty check)', file)
}
} else {
logger.lifecycle('Dirty file: {} (changed)', file)
gitDirty = true
}
}
def ourVersionBase = gitVersionBase.substring(0, gitVersionBase.lastIndexOf('.'))
def ourVersionMinor = Integer.parseInt(ourVersionBase.substring(ourVersionBase.lastIndexOf('.') + 1))
def ourGmsVersionCode = gmsVersionCode * 1000 + ourVersionMinor * 2 + (gitCommitCount > 0 || gitDirty ? 1 : 0)
def ourGmsVersionName = "$ourVersionBase.$gmsVersionCode" + (gitCommitCount > 0 && !gitDirty ? "-$gitCommitCount" : "") + (gitDirty ? "-dirty" : "") + (gitCommitCount > 0 && !gitDirty ? " ($gitCommitId)" : "")
def ourVendingVersionCode = 80000000 + vendingVersionCode * 100 + ourVersionMinor * 2 + (gitCommitCount > 0 || gitDirty ? 1 : 0)
def ourVendingVersionName = "$ourVersionBase.$vendingVersionCode" + (gitCommitCount > 0 && !gitDirty ? "-$gitCommitCount" : "") + (gitDirty ? "-dirty" : "") + (gitCommitCount > 0 && !gitDirty ? " ($gitCommitId)" : "")
logger.lifecycle('Starting build for GMS version {} ({})...', ourGmsVersionName, ourGmsVersionCode)
allprojects {
apply plugin: 'idea'
group = 'org.microg.gms'
version = ourGmsVersionName
ext.vendingAppVersionName = ourVendingVersionName
ext.vendingAppVersionCode = ourVendingVersionCode
ext.appVersionCode = ourGmsVersionCode
ext.isReleaseVersion = false
}
subprojects {
repositories {
mavenCentral()
google()
if (hasModule("hms", false)) maven {url 'https://developer.huawei.com/repo/'}
}
}