@@ -29,6 +29,13 @@ android {
29
29
}
30
30
}
31
31
32
+ val abiFilterList = (properties[" ABI_FILTERS" ] as ? String )?.split(' ;' )
33
+ if (abiFilterList != null ) {
34
+ ndk {
35
+ abiFilters.addAll(abiFilterList)
36
+ }
37
+ }
38
+
32
39
testInstrumentationRunner = " androidx.test.runner.AndroidJUnitRunner"
33
40
}
34
41
@@ -42,6 +49,19 @@ android {
42
49
}
43
50
}
44
51
52
+ flavorDimensions.add(" distribution" )
53
+ productFlavors {
54
+ create(" fdroid" ) {
55
+ dimension = " distribution"
56
+ versionNameSuffix = " -fdroid"
57
+ buildConfigField(" String" , " DISTRIBUTION" , " \" F-Droid\" " )
58
+ }
59
+ create(" playstore" ) {
60
+ dimension = " distribution"
61
+ buildConfigField(" String" , " DISTRIBUTION" , " \" Play Store\" " )
62
+ }
63
+ }
64
+
45
65
sourceSets {
46
66
getByName(" main" ) {
47
67
jniLibs.srcDirs(" libs" )
@@ -60,25 +80,45 @@ android {
60
80
61
81
applicationVariants.all {
62
82
val variant = this
63
- val versionCodes =
64
- mapOf ( " armeabi-v7a " to 4 , " arm64-v8a " to 4 , " x86 " to 4 , " x86_64 " to 4 , " universal " to 4 )
65
-
66
- variant.outputs
67
- .map { it as com.android.build.gradle.internal.api. ApkVariantOutputImpl }
68
- .forEach { output ->
69
- val abi = if (output.getFilter( " ABI " ) != null )
70
- output.getFilter( " ABI " )
71
- else
72
- " universal"
73
-
74
- output.outputFileName = " v2rayNG_ ${variant.versionName} _ ${ abi} .apk "
75
- if (versionCodes.containsKey(abi)) {
76
- output.versionCodeOverride =
77
- ( 1000000 * versionCodes[abi] !! ).plus(variant.versionCode)
78
- } else {
79
- return @forEach
83
+ val isFdroid = variant.productFlavors.any { it.name == " fdroid " }
84
+ if (isFdroid) {
85
+ val versionCodes =
86
+ mapOf ( " armeabi-v7a " to 2 , " arm64-v8a " to 1 , " x86 " to 4 , " x86_64 " to 3 , " universal " to 0
87
+ )
88
+
89
+ variant.outputs
90
+ .map { it as com.android.build.gradle.internal.api. ApkVariantOutputImpl }
91
+ .forEach { output ->
92
+ val abi = output.getFilter( " ABI " ) ? : " universal"
93
+ output.outputFileName = " v2rayNG_ ${variant.versionName} _ ${abi} .apk "
94
+ if (versionCodes.containsKey( abi)) {
95
+ output.versionCodeOverride =
96
+ ( 100 * variant.versionCode + versionCodes[abi] !! ).plus( 5000000 )
97
+ } else {
98
+ return @forEach
99
+ }
80
100
}
81
- }
101
+ } else {
102
+ val versionCodes =
103
+ mapOf (" armeabi-v7a" to 4 , " arm64-v8a" to 4 , " x86" to 4 , " x86_64" to 4 , " universal" to 4 )
104
+
105
+ variant.outputs
106
+ .map { it as com.android.build.gradle.internal.api.ApkVariantOutputImpl }
107
+ .forEach { output ->
108
+ val abi = if (output.getFilter(" ABI" ) != null )
109
+ output.getFilter(" ABI" )
110
+ else
111
+ " universal"
112
+
113
+ output.outputFileName = " v2rayNG_${variant.versionName} _${abi} .apk"
114
+ if (versionCodes.containsKey(abi)) {
115
+ output.versionCodeOverride =
116
+ (1000000 * versionCodes[abi]!! ).plus(variant.versionCode)
117
+ } else {
118
+ return @forEach
119
+ }
120
+ }
121
+ }
82
122
}
83
123
84
124
buildFeatures {
0 commit comments