Chore: update tun2socket

This commit is contained in:
kr328
2021-05-25 14:11:17 +08:00
parent 12220789a3
commit 271d56c01c
7 changed files with 32 additions and 17 deletions

View File

@@ -39,8 +39,8 @@ abstract class ClashBuildTask : DefaultTask() {
config.abis.forEach {
Command.ofGoRun(
"make/make.go",
listOf("bridge", "native", "build", "android", it.goArch),
input.resolve("tun2socket/bridge"),
listOf("tun2socket", ".", "android", it.goArch),
input.resolve("tun2socket"),
environment.ofLwipBuild(it)
).exec()

View File

@@ -6,7 +6,7 @@ import golangSource
abstract class ClashCleanTask : Delete() {
fun applyFrom(project: Project, abis: List<NativeAbi>) {
val bridge = project.golangSource.resolve("tun2socket/bridge")
val bridge = project.golangSource.resolve("tun2socket")
delete(bridge.resolve("build"))

View File

@@ -34,11 +34,25 @@ class Environment(
}
fun ofLwipBuild(abi: NativeAbi): Map<String, String> {
val host = when {
Os.isFamily(Os.FAMILY_WINDOWS) ->
"windows"
Os.isFamily(Os.FAMILY_MAC) ->
"darwin"
Os.isFamily(Os.FAMILY_UNIX) ->
"linux"
else ->
throw GradleException("Unsupported host: ${System.getProperty("os.name")}")
}
val compiler = ndkDirectory.resolve("toolchains/llvm/prebuilt/$host-x86_64/bin")
.resolve("${abi.compiler}${minSdkVersion}-clang")
val ar = ndkDirectory.resolve("toolchains/llvm/prebuilt/$host-x86_64/bin")
.resolve("${abi.archiver}-ar")
return mapOf(
"CMAKE_SYSTEM_NAME" to "Android",
"CMAKE_ANDROID_NDK" to ndkDirectory.absolutePath,
"CMAKE_ANDROID_ARCH_ABI" to abi.value,
"CMAKE_SYSTEM_VERSION" to minSdkVersion.toString()
"CC" to compiler.absolutePath,
"AR" to ar.absolutePath,
)
}
}

View File

@@ -3,13 +3,14 @@ package com.github.kr328.clash.tools
enum class NativeAbi(
val value: String,
val compiler: String,
val archiver: String,
val goArch: String,
val goArm: String
) {
ArmeabiV7a("armeabi-v7a", "armv7a-linux-androideabi", "arm", "7"),
Arm64V8a("arm64-v8a", "aarch64-linux-android", "arm64", ""),
X86("x86", "i686-linux-android", "386", ""),
X64("x86_64", "x86_64-linux-android", "amd64", "");
ArmeabiV7a("armeabi-v7a", "armv7a-linux-androideabi", "arm-linux-androideabi", "arm", "7"),
Arm64V8a("arm64-v8a", "aarch64-linux-android", "aarch64-linux-android", "arm64", ""),
X86("x86", "i686-linux-android", "i686-linux-android", "386", ""),
X64("x86_64", "x86_64-linux-android", "x86_64-linux-android", "amd64", "");
companion object {
fun parse(value: String): NativeAbi {