plugins { java id("dev.nokee.jni-library") id("dev.nokee.cpp-language") `uber-jni-jar` `use-prebuilt-binaries` } library { dependencies { jvmImplementation(projects.darklafNativeUtils) jvmImplementation(projects.darklafUtils) jvmImplementation(projects.darklafPlatformBase) jvmImplementation(projects.darklafTheme) jvmImplementation(projects.darklafPropertyLoader) jvmLibImplementation(libs.jna) } targetMachines.addAll(machines.windows.x86, machines.windows.x86_64) variants.configureEach { resourcePath.set("com/github/weisj/darklaf/platform/${project.name}/${targetMachine.variantName}") sharedLibrary { compileTasks.configureEach { compilerArgs.addAll(toolChain.map { when (it) { is Gcc, is Clang -> listOf("--std=c++17", "-Wall", "-Wextra", "-pedantic") is VisualCpp -> listOf("/std:c++17", "/EHsc", "/W4", "/permissive", "/WX") else -> emptyList() } }) optimizedBinary() } linkTask.configure { linkerArgs.addAll(toolChain.map { when (it) { is Gcc, is Clang -> listOf("-ldwmapi", "-lGdi32", "-luser32", "-ladvapi32", "-lShell32") is VisualCpp -> listOf("dwmapi.lib", "user32.lib", "Gdi32.lib", "Advapi32.lib", "Shell32.lib") else -> emptyList() } }) } } } }