Skip to content

Commit 4a1d13c

Browse files
author
matrixdev
committed
fixed linux build
1 parent cb57ff4 commit 4a1d13c

File tree

5 files changed

+52
-13
lines changed

5 files changed

+52
-13
lines changed

example/app/build.gradle.kts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ plugins {
55
}
66

77
android {
8-
compileSdk = 32
8+
compileSdk = 33
99

1010
defaultConfig {
1111
applicationId = "dev.matrix.rust"
1212
minSdk = 21
13-
targetSdk = 32
13+
targetSdk = 33
1414
versionCode = 1
1515
versionName = "1.0"
1616
}
@@ -39,10 +39,10 @@ androidRust {
3939
}
4040

4141
dependencies {
42-
implementation("androidx.core:core-ktx:1.8.0")
43-
implementation("androidx.appcompat:appcompat:1.4.2")
42+
implementation("androidx.core:core-ktx:1.9.0")
43+
implementation("androidx.appcompat:appcompat:1.6.1")
4444
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
45-
implementation("androidx.navigation:navigation-fragment-ktx:2.5.1")
46-
implementation("androidx.navigation:navigation-ui-ktx:2.5.1")
47-
implementation("com.google.android.material:material:1.6.1")
45+
implementation("androidx.navigation:navigation-fragment-ktx:2.5.3")
46+
implementation("androidx.navigation:navigation-ui-ktx:2.5.3")
47+
implementation("com.google.android.material:material:1.8.0")
4848
}

plugin/src/main/java/dev/matrix/agp/rust/RustBuildTask.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.matrix.agp.rust
22

33
import dev.matrix.agp.rust.utils.Abi
4+
import dev.matrix.agp.rust.utils.Os
45
import dev.matrix.agp.rust.utils.SemanticVersion
56
import org.gradle.api.DefaultTask
67
import org.gradle.api.provider.Property
@@ -45,11 +46,18 @@ internal abstract class RustBuildTask : DefaultTask() {
4546
val variantBuildDirectory = variantBuildDirectory.get()
4647
val variantJniLibsDirectory = variantJniLibsDirectory.get()
4748

49+
val platform = when (Os.current) {
50+
Os.Linux -> "linux-x86_64"
51+
Os.MacOs -> "darwin-x86_64"
52+
Os.Windows -> "windows-x86_64"
53+
Os.Unknown -> throw Exception("OS is not supported")
54+
}
55+
4856
var toolchainFolder = ndkDirectory
4957
toolchainFolder = File(toolchainFolder, "toolchains")
5058
toolchainFolder = File(toolchainFolder, "llvm")
5159
toolchainFolder = File(toolchainFolder, "prebuilt")
52-
toolchainFolder = File(toolchainFolder, "darwin-x86_64")
60+
toolchainFolder = File(toolchainFolder, platform)
5361
toolchainFolder = File(toolchainFolder, "bin")
5462

5563
val cc = File(toolchainFolder, abi.cc(apiLevel))

plugin/src/main/java/dev/matrix/agp/rust/RustInstaller.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ internal fun installRustComponentsIfNeeded(
99
minimalVersion: SemanticVersion?,
1010
abiSet: Collection<Abi>,
1111
) {
12-
if (Os.isWindows) {
12+
if (Os.current.isWindows) {
1313
return
1414
}
1515

plugin/src/main/java/dev/matrix/agp/rust/utils/Abi.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ internal enum class Abi(
5555
}
5656
}
5757

58-
fun cc(apiLevel: Int) = when (Os.isWindows) {
58+
fun cc(apiLevel: Int) = when (Os.current.isWindows) {
5959
true -> "${compilerTriple}${apiLevel}-clang.cmd"
6060
else -> "${compilerTriple}${apiLevel}-clang"
6161
}
6262

63-
fun ccx(apiLevel: Int) = when (Os.isWindows) {
63+
fun ccx(apiLevel: Int) = when (Os.current.isWindows) {
6464
true -> "${compilerTriple}${apiLevel}-clang++.cmd"
6565
else -> "${compilerTriple}${apiLevel}-clang++"
6666
}
Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,39 @@
11
package dev.matrix.agp.rust.utils
22

3-
internal object Os {
3+
import org.gradle.internal.os.OperatingSystem
4+
5+
internal enum class Os {
6+
Linux,
7+
MacOs,
8+
Windows,
9+
Unknown;
10+
11+
companion object {
12+
val current: Os
13+
14+
init {
15+
val os = OperatingSystem.current()
16+
current = when {
17+
os.isLinux -> Linux
18+
os.isMacOsX -> MacOs
19+
os.isWindows -> Windows
20+
else -> Unknown
21+
}
22+
}
23+
}
24+
25+
val isLinux: Boolean
26+
get() {
27+
return this == Linux
28+
}
29+
30+
val isMacOs: Boolean
31+
get() {
32+
return this == MacOs
33+
}
34+
435
val isWindows: Boolean
536
get() {
6-
return System.getProperty("os.name").orEmpty().startsWith("windows", ignoreCase = true)
37+
return this == Windows
738
}
839
}

0 commit comments

Comments
 (0)