2019-01-11 09:44:36 +08:00
|
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
|
|
import com.android.build.OutputFile
|
|
|
|
|
|
|
|
import java.util.regex.Matcher
|
|
|
|
import java.util.regex.Pattern
|
|
|
|
|
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
|
|
|
|
apply plugin: 'kotlin-android'
|
|
|
|
|
|
|
|
def getCurrentFlavor() {
|
|
|
|
String task = getGradle().getStartParameter().getTaskRequests().toString()
|
|
|
|
Matcher matcher = Pattern.compile("(assemble|generate)\\w*(Release|Debug)").matcher(task)
|
|
|
|
if (matcher.find()) return matcher.group(2).toLowerCase() else {
|
|
|
|
println "Warning: No match found for $task"
|
|
|
|
return "debug"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
buildToolsVersion "28.0.3"
|
|
|
|
compileSdkVersion 28
|
|
|
|
defaultConfig {
|
|
|
|
applicationId "com.github.shadowsocks.plugin.v2ray"
|
|
|
|
minSdkVersion rootProject.minSdkVersion
|
|
|
|
targetSdkVersion 28
|
2019-01-18 17:12:15 +08:00
|
|
|
versionCode 1020000
|
|
|
|
versionName "1.2.0"
|
2019-01-11 09:44:36 +08:00
|
|
|
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
|
|
|
}
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
|
|
minifyEnabled true
|
|
|
|
shrinkResources true
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
splits {
|
|
|
|
abi {
|
|
|
|
enable true
|
|
|
|
universalApk true
|
|
|
|
}
|
|
|
|
}
|
2019-01-18 09:45:25 +08:00
|
|
|
sourceSets.main.jniLibs.srcDirs += new File(projectDir, "build/go")
|
2019-01-11 09:44:36 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
task goBuild(type: Exec) {
|
|
|
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
|
|
println "Warning: Building on Windows is not supported"
|
|
|
|
} else {
|
2019-01-18 09:45:25 +08:00
|
|
|
executable "/bin/bash"
|
|
|
|
args "go-build.bash", minSdkVersion
|
2019-01-17 17:04:39 +08:00
|
|
|
environment "ANDROID_HOME", android.sdkDirectory
|
|
|
|
environment "ANDROID_NDK_HOME", android.ndkDirectory
|
2019-01-11 09:44:36 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
task goClean(type: Exec) {
|
|
|
|
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
|
|
println "Warning: Building on Windows is not supported"
|
|
|
|
} else {
|
|
|
|
executable "sh"
|
|
|
|
args "-c", "src/clean.bash"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.whenTaskAdded { task ->
|
|
|
|
if ((task.name == 'javaPreCompileDebug' ||
|
|
|
|
task.name == 'javaPreCompileRelease')) {
|
|
|
|
task.dependsOn(goBuild)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
2019-02-12 19:28:03 +08:00
|
|
|
implementation "androidx.preference:preference:1.1.0-alpha03"
|
2019-01-15 15:24:21 +08:00
|
|
|
implementation 'com.github.shadowsocks:plugin:1.1.0'
|
2019-01-14 13:29:28 +08:00
|
|
|
implementation 'com.takisoft.preferencex:preferencex-simplemenu:1.0.0'
|
|
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
|
2019-01-11 09:44:36 +08:00
|
|
|
testImplementation 'junit:junit:4.12'
|
|
|
|
androidTestImplementation 'androidx.test:runner:1.1.1'
|
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
|
|
|
|
}
|
|
|
|
|
|
|
|
ext.abiCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2, x86: 3, x86_64: 4]
|
|
|
|
if (getCurrentFlavor() == 'release') android.applicationVariants.all { variant ->
|
|
|
|
variant.outputs.each { output ->
|
|
|
|
def offset = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
|
|
|
|
if (offset != null) output.versionCodeOverride = variant.versionCode + offset
|
|
|
|
}
|
|
|
|
}
|