Skip to content

Commit e31bae2

Browse files
committed
🏗️ change project structure
(and upgrade gradle) Signed-off-by: aemogie <[email protected]>
1 parent 84f4111 commit e31bae2

File tree

15 files changed

+71
-42
lines changed

15 files changed

+71
-42
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
tasks.wrapper {
7-
gradleVersion = "7.5"
7+
gradleVersion = "7.5.1"
88
distributionType = Wrapper.DistributionType.ALL
99
}
1010

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
plugins { kotlin("jvm") version "1.7.0" }
1+
plugins { kotlin("jvm") version "1.7.10" }
22

33
repositories { mavenCentral() }

buildSrc/src/main/kotlin/LWJGL.kt

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,49 @@
11
import org.gradle.api.artifacts.MinimalExternalModuleDependency
22
import org.gradle.api.artifacts.dsl.DependencyHandler
33
import org.gradle.api.provider.Provider
4+
import org.gradle.internal.os.OperatingSystem
45

5-
private val nativeClassifiers = arrayOf(
6-
"natives-linux",
7-
"natives-linux-arm64",
8-
"natives-linux-arm32",
9-
"natives-macos",
10-
"natives-macos-arm64",
11-
"natives-windows",
12-
"natives-windows-arm64",
13-
"natives-windows-x86",
14-
)
6+
object LWJGL {
7+
var allNatives = true
158

16-
fun DependencyHandler.allLwjglNatives(
17-
dependency: Provider<MinimalExternalModuleDependency>
18-
) = nativeClassifiers.map { native ->
19-
variantOf(dependency) { it.classifier(native) }
9+
var current = Pair(
10+
OperatingSystem.current(), System.getProperty("os.arch")
11+
).let { (os, arch) ->
12+
when {
13+
os.isMacOsX -> if (arch.startsWith("aarch64")) "natives-macos-arm64" else "natives-macos"
14+
os.isLinux || (os.isUnix && !os.isMacOsX) -> { // linux, solaris and freebsd
15+
if (arch.startsWith("arm") || arch.startsWith("aarch64")) {
16+
if (arch.contains("64") || arch.startsWith("armv8")) "natives-linux-arm64"
17+
else "natives-linux-arm32"
18+
} else "natives-linux"
19+
}
20+
os.isWindows -> {
21+
if (arch.contains("64")) {
22+
if (arch.startsWith("aarch64")) "natives-windows-arm64" else "natives-windows"
23+
} else "natives-windows-x86"
24+
}
25+
else -> error("Unrecognized or unsupported platform. Please set \"LWJGL.current\" manually")
26+
}
27+
}
28+
29+
internal val classifiers = arrayOf(
30+
"natives-linux",
31+
"natives-linux-arm64",
32+
"natives-linux-arm32",
33+
"natives-macos",
34+
"natives-macos-arm64",
35+
"natives-windows",
36+
"natives-windows-arm64",
37+
"natives-windows-x86",
38+
)
39+
}
40+
41+
fun DependencyHandler.lwjglNatives(dependency: Provider<MinimalExternalModuleDependency>) {
42+
if (LWJGL.allNatives) {
43+
LWJGL.classifiers.map { native ->
44+
variantOf(dependency) { it.classifier(native) }
45+
}.forEach { add("runtimeOnly", it) }
46+
} else {
47+
add("runtimeOnly", variantOf(dependency) { it.classifier(LWJGL.current) })
48+
}
2049
}

demo/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@ tasks.jar {
99

1010
dependencies {
1111
implementation(projects.utils)
12-
implementation(projects.graphics.gl)
13-
implementation(projects.ui)
12+
implementation(projects.gl)
1413
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
dependencies {
2+
api(projects.graphics)
3+
24
implementation(projects.utils)
35
with(libs.lwjgl) {
46
api(opengl)
5-
allLwjglNatives(opengl).forEach(::runtimeOnly)
7+
lwjglNatives(opengl)
68
}
79
}

graphics/gl/src/main/java/io/github/aemogie/timble/gl/OpenGL.kt renamed to gl/src/main/java/io/github/aemogie/timble/gl/OpenGL.kt

File renamed without changes.

graphics/gl/src/main/java/io/github/aemogie/timble/gl/utils/Debug.kt renamed to gl/src/main/java/io/github/aemogie/timble/gl/utils/Debug.kt

File renamed without changes.

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
kotlin = "1.7.0"
2+
kotlin = "1.7.10"
33
shadow = "7.1.2"
44

55
lwjgl = "3.3.1"

gradle/wrapper/gradle-wrapper.jar

935 Bytes
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)