|
|
|
import JniUtils.asVariantName
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
java
|
|
|
|
id("dev.nokee.jni-library")
|
|
|
|
id("dev.nokee.cpp-language")
|
|
|
|
`uber-jni-jar`
|
|
|
|
`use-prebuilt-binaries`
|
|
|
|
}
|
|
|
|
|
|
|
|
library {
|
|
|
|
dependencies {
|
|
|
|
jvmImplementation(project(":darklaf-native-utils"))
|
|
|
|
jvmImplementation(project(":darklaf-utils"))
|
|
|
|
jvmImplementation(project(":darklaf-platform-base"))
|
|
|
|
jvmImplementation(project(":darklaf-theme"))
|
|
|
|
jvmImplementation(project(":darklaf-property-loader"))
|
|
|
|
jvmImplementation("net.java.dev.jna:jna")
|
|
|
|
}
|
|
|
|
|
|
|
|
targetMachines.addAll(machines.windows.x86, machines.windows.x86_64)
|
|
|
|
variants.configureEach {
|
|
|
|
resourcePath.set("com/github/weisj/darklaf/platform/${project.name}/${asVariantName(targetMachine)}")
|
|
|
|
sharedLibrary {
|
|
|
|
compileTasks.configureEach {
|
|
|
|
compilerArgs.addAll(toolChain.map {
|
|
|
|
when (it) {
|
|
|
|
is Gcc, is Clang -> listOf("--std=c++11", "-Wall", "-Wextra", "-pedantic", "-Werror")
|
|
|
|
is VisualCpp -> listOf("/EHsc", "/W4", "/permissive", "/WX")
|
|
|
|
else -> emptyList()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
// Build type not modeled yet, assuming release
|
|
|
|
compilerArgs.addAll(toolChain.map {
|
|
|
|
when (it) {
|
|
|
|
is Gcc, is Clang -> listOf("-O2")
|
|
|
|
is VisualCpp -> listOf("/O2")
|
|
|
|
else -> emptyList()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
linkTask.configure {
|
|
|
|
linkerArgs.addAll(toolChain.map {
|
|
|
|
when (it) {
|
|
|
|
is Gcc, is Clang -> listOf("-ldwmapi", "-lGdi32", "-luser32", "-ladvapi32", "-Shell32")
|
|
|
|
is VisualCpp -> listOf("dwmapi.lib", "user32.lib", "Gdi32.lib", "Advapi32.lib", "Shell32.lib")
|
|
|
|
else -> emptyList()
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|