Browse Source

Build: Add and compile module info

We add a custom task to compile the module-info with a newer java version.
To ensure the module-info is correct we need to compile it together with all other project sources.
modulesv2
weisj 3 years ago
parent
commit
2b3c99b229
No known key found for this signature in database
GPG Key ID: 31124CB75461DA2A
  1. 1
      annotations-processor/build.gradle.kts
  2. 28
      annotations-processor/src/main/module/module-info.java
  3. 1
      annotations/build.gradle.kts
  4. 27
      annotations/src/main/module/module-info.java
  5. 26
      build.gradle.kts
  6. 4
      buildSrc/build.gradle.kts
  7. 56
      buildSrc/src/main/kotlin/ModuleInfoCompilePlugin.kt
  8. 8
      core/build.gradle.kts
  9. 135
      core/src/main/module/module-info.java
  10. 1
      gradle.properties
  11. 1
      macos/build.gradle.kts
  12. 35
      macos/src/main/module/module-info.java
  13. 3
      modules_setup.gradle
  14. 1
      native-utils/build.gradle.kts
  15. 30
      native-utils/src/main/module/module-info.java
  16. 1
      platform-base/build.gradle.kts
  17. 30
      platform-base/src/main/module/module-info.java
  18. 3
      property-loader/build.gradle.kts
  19. 38
      property-loader/src/main/module/module-info.java
  20. 1
      theme/build.gradle.kts
  21. 35
      theme/src/main/module/module-info.java
  22. 3
      utils/build.gradle.kts
  23. 34
      utils/src/main/module/module-info.java
  24. 1
      windows/build.gradle.kts
  25. 34
      windows/src/main/module/module-info.java

1
annotations-processor/build.gradle.kts

@ -1,5 +1,6 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }
dependencies { dependencies {

28
annotations-processor/src/main/module/module-info.java

@ -0,0 +1,28 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.annotations.processor {
requires java.compiler;
requires darklaf.annotations;
}

1
annotations/build.gradle.kts

@ -1,3 +1,4 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }

27
annotations/src/main/module/module-info.java

@ -0,0 +1,27 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.annotations {
exports com.github.weisj.darklaf.annotations;
}

26
build.gradle.kts

@ -133,7 +133,7 @@ allprojects {
apply(plugin = "com.github.autostyle") apply(plugin = "com.github.autostyle")
autostyle { autostyle {
kotlinGradle { kotlinGradle {
ktlint() ktlint(version = "ktlint".v)
} }
format("properties") { format("properties") {
configFilter { configFilter {
@ -162,6 +162,16 @@ allprojects {
configFile("${project.rootDir}/darklaf_cpp.eclipseformat.xml") configFile("${project.rootDir}/darklaf_cpp.eclipseformat.xml")
} }
} }
plugins.withType<JavaPlugin>().configureEach {
java {
importOrder("java", "javax", "org", "com")
removeUnusedImports()
license()
eclipse {
configFile("${project.rootDir}/darklaf_java.eclipseformat.xml")
}
}
}
} }
} }
@ -188,20 +198,6 @@ allprojects {
withJavadocJar() withJavadocJar()
} }
} }
if (!skipAutostyle) {
autostyle {
java {
importOrder("java", "javax", "org", "com")
removeUnusedImports()
license()
eclipse {
configFile("${project.rootDir}/darklaf_java.eclipseformat.xml")
}
}
}
}
apply(plugin = "maven-publish") apply(plugin = "maven-publish")
val useInMemoryKey by props() val useInMemoryKey by props()

4
buildSrc/build.gradle.kts

@ -33,5 +33,9 @@ gradlePlugin {
id = "apple-m1-toolchain" id = "apple-m1-toolchain"
implementationClass = "AppleM1ToolChainRule" implementationClass = "AppleM1ToolChainRule"
} }
create("module-info-compile") {
id = "module-info-compile"
implementationClass = "ModuleInfoCompilePlugin"
}
} }
} }

56
buildSrc/src/main/kotlin/ModuleInfoCompilePlugin.kt

@ -0,0 +1,56 @@
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.kotlin.dsl.getValue
import org.gradle.kotlin.dsl.named
import org.gradle.kotlin.dsl.provideDelegate
import org.gradle.kotlin.dsl.registering
open class ModuleInfoExtension {
var version: JavaVersion = JavaVersion.VERSION_1_9
var extraArgs: List<String> = emptyList()
}
class ModuleInfoCompilePlugin : Plugin<Project> {
override fun apply(target: Project) = target.run {
val moduleInfoFile = file("src/main/module/module-info.java")
if (moduleInfoFile.exists()) {
val infoExtension = target.extensions.create("moduleInfo", ModuleInfoExtension::class.java)
val compileJava = tasks.named<JavaCompile>("compileJava")
val compileModuleInfoJava by tasks.registering(JavaCompile::class) {
val javaCompile = compileJava.get()
classpath = files()
source("src/main/module/module-info.java")
source(javaCompile.source)
destinationDir = buildDir.resolve("classes/module")
check(infoExtension.version.isJava9Compatible)
options.compilerArgs.addAll(listOf("--module-path", javaCompile.classpath.asPath))
if (infoExtension.extraArgs.isNotEmpty()) {
options.compilerArgs.addAll(infoExtension.extraArgs)
sourceCompatibility = infoExtension.version.majorVersion
targetCompatibility = infoExtension.version.majorVersion
} else {
options.compilerArgs.addAll(listOf("--release", infoExtension.version.majorVersion))
}
}
val copyModuleInfo by tasks.registering(Copy::class) {
dependsOn(compileModuleInfoJava)
from(buildDir.resolve("classes/module/module-info.class"))
into(buildDir.resolve("classes/java/main"))
}
compileJava.configure {
dependsOn(copyModuleInfo)
taskDependencies.getDependencies(this).forEach {
if (it.project != this@run || it.name != "copyModuleInfo") {
compileModuleInfoJava.get().dependsOn(it)
}
}
}
}
}
}

8
core/build.gradle.kts

@ -4,9 +4,17 @@ import com.github.vlsi.gradle.properties.dsl.props
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
id("com.github.vlsi.crlf") id("com.github.vlsi.crlf")
} }
configure<ModuleInfoExtension> {
version = JavaVersion.VERSION_11
extraArgs = listOf(
"--add-exports", "java.desktop/sun.awt=darklaf.core"
)
}
dependencies { dependencies {
api(projects.darklafTheme) api(projects.darklafTheme)
api(projects.darklafPropertyLoader) api(projects.darklafPropertyLoader)

135
core/src/main/module/module-info.java

@ -0,0 +1,135 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.core {
requires transitive java.desktop;
requires transitive darklaf.theme;
requires transitive darklaf.properties;
requires transitive darklaf.utils;
requires darklaf.compatibility;
requires darklaf.iconset;
requires darklaf.nativeutil;
requires darklaf.platform.base;
requires darklaf.platform.windows;
requires darklaf.platform.macos;
requires swingdsl.laf;
requires swingdsl.visualPadding;
requires static annotations;
requires static com.google.auto.service;
requires static swingx;
uses com.github.weisj.darklaf.theme.Theme;
// Open resource bundles for java.desktop
opens com.github.weisj.darklaf.task;
// Open properties to PropertyLoader
opens com.github.weisj.darklaf to darklaf.properties;
opens com.github.weisj.darklaf.platform to darklaf.properties;
opens com.github.weisj.darklaf.ui to darklaf.properties;
provides com.github.weisj.darklaf.theme.laf.SynthesisedThemedLaf.ThemedLafProvider with
com.github.weisj.darklaf.synthesised.ThemedDarkLafProvider;
exports com.github.weisj.darklaf;
exports com.github.weisj.darklaf.components;
exports com.github.weisj.darklaf.components.alignment;
exports com.github.weisj.darklaf.components.border;
exports com.github.weisj.darklaf.components.button;
exports com.github.weisj.darklaf.components.chooser;
exports com.github.weisj.darklaf.components.color;
exports com.github.weisj.darklaf.components.help;
exports com.github.weisj.darklaf.components.iconeditor;
exports com.github.weisj.darklaf.components.loading;
exports com.github.weisj.darklaf.components.popup;
exports com.github.weisj.darklaf.components.renderer;
exports com.github.weisj.darklaf.components.tabframe;
exports com.github.weisj.darklaf.components.text;
exports com.github.weisj.darklaf.components.togglebuttonlist;
exports com.github.weisj.darklaf.components.tooltip;
exports com.github.weisj.darklaf.components.tree;
exports com.github.weisj.darklaf.focus;
exports com.github.weisj.darklaf.graphics;
exports com.github.weisj.darklaf.listener;
exports com.github.weisj.darklaf.settings;
exports com.github.weisj.darklaf.task;
exports com.github.weisj.darklaf.ui;
exports com.github.weisj.darklaf.ui.button;
exports com.github.weisj.darklaf.ui.colorchooser;
exports com.github.weisj.darklaf.ui.combobox;
exports com.github.weisj.darklaf.ui.list;
exports com.github.weisj.darklaf.ui.progressbar;
exports com.github.weisj.darklaf.ui.rootpane;
exports com.github.weisj.darklaf.ui.scrollpane;
exports com.github.weisj.darklaf.ui.slider;
exports com.github.weisj.darklaf.ui.spinner;
exports com.github.weisj.darklaf.ui.splitpane;
exports com.github.weisj.darklaf.ui.table;
exports com.github.weisj.darklaf.ui.text;
exports com.github.weisj.darklaf.ui.togglebutton;
exports com.github.weisj.darklaf.ui.toolbar;
exports com.github.weisj.darklaf.ui.tooltip;
exports com.github.weisj.darklaf.ui.tree;
opens com.github.weisj.darklaf.ui.button;
opens com.github.weisj.darklaf.ui.cell;
opens com.github.weisj.darklaf.ui.colorchooser;
opens com.github.weisj.darklaf.ui.combobox;
opens com.github.weisj.darklaf.ui.filechooser;
opens com.github.weisj.darklaf.ui.internalframe;
opens com.github.weisj.darklaf.ui.label;
opens com.github.weisj.darklaf.ui.list;
opens com.github.weisj.darklaf.ui.menu;
opens com.github.weisj.darklaf.ui.numberingpane;
opens com.github.weisj.darklaf.ui.optionpane;
opens com.github.weisj.darklaf.ui.panel;
opens com.github.weisj.darklaf.ui.popupmenu;
opens com.github.weisj.darklaf.ui.progressbar;
opens com.github.weisj.darklaf.ui.rootpane;
opens com.github.weisj.darklaf.ui.scrollpane;
opens com.github.weisj.darklaf.ui.separator;
opens com.github.weisj.darklaf.ui.slider;
opens com.github.weisj.darklaf.ui.spinner;
opens com.github.weisj.darklaf.ui.splitbutton;
opens com.github.weisj.darklaf.ui.splitpane;
opens com.github.weisj.darklaf.ui.statusbar;
opens com.github.weisj.darklaf.ui.tabbedpane;
opens com.github.weisj.darklaf.ui.tabframe;
opens com.github.weisj.darklaf.ui.table;
opens com.github.weisj.darklaf.ui.table.header;
opens com.github.weisj.darklaf.ui.taskpane;
opens com.github.weisj.darklaf.ui.text;
opens com.github.weisj.darklaf.ui.titledborder;
opens com.github.weisj.darklaf.ui.togglebutton;
opens com.github.weisj.darklaf.ui.togglebutton.checkbox;
opens com.github.weisj.darklaf.ui.togglebutton.radiobutton;
opens com.github.weisj.darklaf.ui.togglebutton.tristate;
opens com.github.weisj.darklaf.ui.toolbar;
opens com.github.weisj.darklaf.ui.tooltip;
opens com.github.weisj.darklaf.ui.tree;
}

1
gradle.properties

@ -15,3 +15,4 @@ com.github.vlsi.vlsi-release-plugins.version = 1.74
com.github.autostyle.version = 3.1 com.github.autostyle.version = 3.1
nokee.version = 0.4.264-202107071245.986a5b8a nokee.version = 0.4.264-202107071245.986a5b8a
org.ajoberstar.grgit.version = 4.1.0 org.ajoberstar.grgit.version = 4.1.0
ktlint.version = 0.40.0

1
macos/build.gradle.kts

@ -2,6 +2,7 @@
plugins { plugins {
java java
`module-info-compile`
id("dev.nokee.jni-library") id("dev.nokee.jni-library")
id("dev.nokee.objective-cpp-language") id("dev.nokee.objective-cpp-language")
`uber-jni-jar` `uber-jni-jar`

35
macos/src/main/module/module-info.java

@ -0,0 +1,35 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.platform.macos {
requires transitive darklaf.platform.base;
requires transitive darklaf.theme;
requires darklaf.nativeutil;
requires darklaf.utils;
requires darklaf.properties;
exports com.github.weisj.darklaf.platform.macos;
exports com.github.weisj.darklaf.platform.macos.theme;
}

3
modules_setup.gradle

@ -0,0 +1,3 @@
jar {
moduleInfoPath = "src/main/module/module-info.java"
}

1
native-utils/build.gradle.kts

@ -3,6 +3,7 @@ import com.github.vlsi.gradle.crlf.LineEndings
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }
dependencies { dependencies {

30
native-utils/src/main/module/module-info.java

@ -0,0 +1,30 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.nativeutil {
requires transitive java.desktop;
requires transitive java.logging;
exports com.github.weisj.darklaf.nativeutil;
}

1
platform-base/build.gradle.kts

@ -1,3 +1,4 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }

30
platform-base/src/main/module/module-info.java

@ -0,0 +1,30 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.platform.base {
requires transitive java.desktop;
exports com.github.weisj.darklaf.platform.decorations;
}

3
property-loader/build.gradle.kts

@ -1,12 +1,13 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }
dependencies { dependencies {
api(projects.darklafUtils) api(projects.darklafUtils)
implementation(libs.svgSalamander) implementation(libs.svgSalamander)
implementation(libs.visualPaddings) implementation(libs.visualPaddings)
implementation(libs.nullabilityAnnotations) compileOnly(libs.nullabilityAnnotations)
testImplementation(libs.test.junit.api) testImplementation(libs.test.junit.api)
testRuntimeOnly(libs.test.junit.engine) testRuntimeOnly(libs.test.junit.engine)
} }

38
property-loader/src/main/module/module-info.java

@ -0,0 +1,38 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.properties {
requires transitive java.desktop;
requires transitive darklaf.utils;
requires swingdsl.visualPadding;
requires com.kitfox.svg;
requires static annotations;
exports com.github.weisj.darklaf.properties;
exports com.github.weisj.darklaf.properties.parser;
exports com.github.weisj.darklaf.properties.uiresource;
exports com.github.weisj.darklaf.properties.color;
exports com.github.weisj.darklaf.properties.icons;
}

1
theme/build.gradle.kts

@ -1,5 +1,6 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }
dependencies { dependencies {

35
theme/src/main/module/module-info.java

@ -0,0 +1,35 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.theme {
requires transitive java.desktop;
requires darklaf.annotations;
requires com.google.auto.service;
exports com.github.weisj.darklaf.theme;
exports com.github.weisj.darklaf.theme.info;
exports com.github.weisj.darklaf.theme.event;
exports com.github.weisj.darklaf.theme.laf;
}

3
utils/build.gradle.kts

@ -1,7 +1,8 @@
plugins { plugins {
`java-library` `java-library`
`module-info-compile`
} }
dependencies { dependencies {
implementation(libs.nullabilityAnnotations) compileOnly(libs.nullabilityAnnotations)
} }

34
utils/src/main/module/module-info.java

@ -0,0 +1,34 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.utils {
requires transitive java.desktop;
requires transitive java.logging;
requires static annotations;
exports com.github.weisj.darklaf.util;
exports com.github.weisj.darklaf.util.graphics;
exports com.github.weisj.darklaf.util.value;
}

1
windows/build.gradle.kts

@ -1,5 +1,6 @@
plugins { plugins {
java java
`module-info-compile`
id("dev.nokee.jni-library") id("dev.nokee.jni-library")
id("dev.nokee.cpp-language") id("dev.nokee.cpp-language")
`uber-jni-jar` `uber-jni-jar`

34
windows/src/main/module/module-info.java

@ -0,0 +1,34 @@
/*
* MIT License
*
* Copyright (c) 2021 Jannis Weis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
module darklaf.platform.windows {
requires transitive darklaf.platform.base;
requires transitive darklaf.theme;
requires darklaf.nativeutil;
requires darklaf.utils;
requires darklaf.properties;
exports com.github.weisj.darklaf.platform.windows;
}
Loading…
Cancel
Save