/
build.gradle
109 lines (94 loc) · 3.13 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
import com.android.tools.profgen.ArtProfileKt
import com.android.tools.profgen.ArtProfileSerializer
import com.android.tools.profgen.DexFile
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.devtools.ksp")
}
def calcVersionCode() {
def versionCodeFile = file("versionCode.txt")
def versionCode = versionCodeFile.text.trim().toInteger()
return versionCode + abiId.toInteger()
}
android {
namespace = "io.github.saeeddev94.xray"
compileSdk = 34
defaultConfig {
applicationId = "io.github.saeeddev94.xray"
minSdk = 26
targetSdk = 34
versionCode = calcVersionCode()
versionName = "6.6.0"
vectorDrawables.useSupportLibrary = true
vectorDrawables.generatedDensities = []
}
aaptOptions {
cruncherEnabled = false
}
buildFeatures {
buildConfig = true
viewBinding = true
}
buildTypes {
release {
minifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
externalNativeBuild {
ndkVersion = "26.2.11394342"
ndkBuild.path = "src/main/jni/Android.mk"
}
packagingOptions {
doNotStrip("**/*.so")
}
splits {
abi {
enable = true
universalApk = false
reset()
//noinspection ChromeOsAbiSupport
include abiTarget.split(',')
}
}
}
project.afterEvaluate {
tasks.compileReleaseArtProfile.doLast {
outputs.files.each { file ->
if (file.toString().endsWith(".profm")) {
println("Sorting ${file} ...")
def version = ArtProfileSerializer.valueOf("METADATA_0_0_2")
def profile = ArtProfileKt.ArtProfile(file)
def keys = new ArrayList(profile.profileData.keySet())
def sortedData = new LinkedHashMap()
Collections.sort keys, new DexFile.Companion()
keys.each { key -> sortedData[key] = profile.profileData[key] }
new FileOutputStream(file).with {
write(version.magicBytes$profgen)
write(version.versionBytes$profgen)
version.write$profgen(it, sortedData, "")
}
}
}
}
}
dependencies {
implementation(fileTree(dir: "libs", include: ["*.aar", "*.jar"]))
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.9.22"))
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.room:room-ktx:2.6.1")
implementation("androidx.room:room-runtime:2.6.1")
ksp("androidx.room:room-compiler:2.6.1")
implementation("com.blacksquircle.ui:editorkit:2.9.0")
implementation("com.blacksquircle.ui:language-json:2.9.0")
implementation("com.google.android.material:material:1.11.0")
}