From f1fc02c091457754e120316378e110426f58cdee Mon Sep 17 00:00:00 2001 From: SupremeMortal <6178101+SupremeMortal@users.noreply.github.com> Date: Sat, 15 Jun 2024 19:44:40 +0100 Subject: [PATCH] Add BOM --- .github/workflows/deploy.yml | 2 +- gradle/plugin/src/main/kotlin/extensions.kt | 6 ++- ...il.gradle.kts => fastutil.base.gradle.kts} | 28 +------------- .../main/kotlin/fastutil.module.gradle.kts | 38 +++++++++++++++++++ modules/big-lists/build.gradle.kts | 2 +- modules/bom/build.gradle.kts | 27 +++++++++++++ modules/commons/build.gradle.kts | 2 +- modules/core/build.gradle.kts | 2 +- modules/io/build.gradle.kts | 2 +- modules/maps/build.gradle.kts | 2 +- modules/queues/build.gradle.kts | 2 +- modules/sets/build.gradle.kts | 2 +- settings.gradle.kts | 6 +-- 13 files changed, 80 insertions(+), 41 deletions(-) rename gradle/plugin/src/main/kotlin/{fastutil.gradle.kts => fastutil.base.gradle.kts} (79%) create mode 100644 gradle/plugin/src/main/kotlin/fastutil.module.gradle.kts create mode 100644 modules/bom/build.gradle.kts diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a1283610..fd33a961 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,7 +16,7 @@ on: required: true env: - GRADLE_OPTS: "-Dorg.gradle.parallel=true -Dorg.gradle.daemon=false -Dorg.gradle.caching=true -Dorg.gradle.welcome=never" + GRADLE_OPTS: "-Dorg.gradle.parallel=false -Dorg.gradle.daemon=false -Dorg.gradle.caching=true -Dorg.gradle.welcome=never" jobs: publish: diff --git a/gradle/plugin/src/main/kotlin/extensions.kt b/gradle/plugin/src/main/kotlin/extensions.kt index 3baf8748..c9bc5a2a 100644 --- a/gradle/plugin/src/main/kotlin/extensions.kt +++ b/gradle/plugin/src/main/kotlin/extensions.kt @@ -1,7 +1,7 @@ -import org.eclipse.jgit.internal.storage.file.FileRepository import org.eclipse.jgit.lib.Constants import org.eclipse.jgit.lib.RepositoryBuilder import org.gradle.api.Project +import org.gradle.api.initialization.Settings const val PKG = "it/unimi/dsi/fastutil" @@ -83,3 +83,7 @@ fun Project.isRelease(): Boolean { println("Snapshot build. No tag found for ${headRef.objectId.name}") return false } + +fun Settings.addModule(name: String) { + include(":modules:$name") +} \ No newline at end of file diff --git a/gradle/plugin/src/main/kotlin/fastutil.gradle.kts b/gradle/plugin/src/main/kotlin/fastutil.base.gradle.kts similarity index 79% rename from gradle/plugin/src/main/kotlin/fastutil.gradle.kts rename to gradle/plugin/src/main/kotlin/fastutil.base.gradle.kts index 2a5f65d8..8bf9fc91 100644 --- a/gradle/plugin/src/main/kotlin/fastutil.gradle.kts +++ b/gradle/plugin/src/main/kotlin/fastutil.base.gradle.kts @@ -1,18 +1,8 @@ plugins { - id("java-library") id("maven-publish") id("signing") } -java { - withJavadocJar() - withSourcesJar() - - toolchain { - languageVersion.set(JavaLanguageVersion.of(8)) - } -} - publishing { repositories { maven { @@ -28,9 +18,7 @@ publishing { } publications { create("maven") { - from(components["java"]) pom { - packaging = "jar" url.set("https://github.com/CloudburstMC/fastutil") scm { @@ -63,18 +51,4 @@ signing { useInMemoryPgpKeys(System.getenv("PGP_SECRET"), System.getenv("PGP_PASSPHRASE")) sign(publishing.publications["maven"]) } -} - -tasks.javadoc { - options { - (this as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") - } -} - -tasks.test { - useJUnitPlatform() -} - -tasks.compileJava { - options.encoding = Charsets.UTF_8.name(); -} +} \ No newline at end of file diff --git a/gradle/plugin/src/main/kotlin/fastutil.module.gradle.kts b/gradle/plugin/src/main/kotlin/fastutil.module.gradle.kts new file mode 100644 index 00000000..2d3ff535 --- /dev/null +++ b/gradle/plugin/src/main/kotlin/fastutil.module.gradle.kts @@ -0,0 +1,38 @@ +plugins { + id("fastutil.base") + id("java-library") +} + +java { + withJavadocJar() + withSourcesJar() + + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } +} + +publishing { + publications { + named("maven") { + from(components["java"]) + pom { + packaging = "jar" + } + } + } +} + +tasks.javadoc { + options { + (this as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet") + } +} + +tasks.test { + useJUnitPlatform() +} + +tasks.compileJava { + options.encoding = Charsets.UTF_8.name(); +} \ No newline at end of file diff --git a/modules/big-lists/build.gradle.kts b/modules/big-lists/build.gradle.kts index c3482702..40224964 100644 --- a/modules/big-lists/build.gradle.kts +++ b/modules/big-lists/build.gradle.kts @@ -1,5 +1,5 @@ subprojects { - apply(plugin = "fastutil") + apply(plugin = "fastutil.module") group = "org.cloudburstmc.fastutil.biglists" diff --git a/modules/bom/build.gradle.kts b/modules/bom/build.gradle.kts new file mode 100644 index 00000000..45cd4ad2 --- /dev/null +++ b/modules/bom/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("java-platform") + id("fastutil.base") +} + +dependencies { + constraints { + gradle.projectsEvaluated { + for (subProject in project.rootProject.subprojects) { + if (subProject != project && subProject.plugins.hasPlugin(MavenPublishPlugin::class.java)) { + api(subProject) + } + } + } + } +} + +configure { + publications { + named("maven") { + from(components["javaPlatform"]) + pom { + packaging = "pom" + } + } + } +} \ No newline at end of file diff --git a/modules/commons/build.gradle.kts b/modules/commons/build.gradle.kts index 96bfd076..6b39e971 100644 --- a/modules/commons/build.gradle.kts +++ b/modules/commons/build.gradle.kts @@ -1,5 +1,5 @@ subprojects { - apply(plugin = "fastutil") + apply(plugin = "fastutil.module") group = "org.cloudburstmc.fastutil.commons" diff --git a/modules/core/build.gradle.kts b/modules/core/build.gradle.kts index f70bf673..9df29fe0 100644 --- a/modules/core/build.gradle.kts +++ b/modules/core/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fastutil") + id("fastutil.module") } sourceSets.main { diff --git a/modules/io/build.gradle.kts b/modules/io/build.gradle.kts index a637c64a..82cc5c6f 100644 --- a/modules/io/build.gradle.kts +++ b/modules/io/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("fastutil") + id("fastutil.module") } dependencies { diff --git a/modules/maps/build.gradle.kts b/modules/maps/build.gradle.kts index 5297e52e..b9846a3a 100644 --- a/modules/maps/build.gradle.kts +++ b/modules/maps/build.gradle.kts @@ -1,5 +1,5 @@ subprojects { - apply(plugin = "fastutil") + apply(plugin = "fastutil.module") group = "org.cloudburstmc.fastutil.maps" diff --git a/modules/queues/build.gradle.kts b/modules/queues/build.gradle.kts index 86eb9e3f..837225a7 100644 --- a/modules/queues/build.gradle.kts +++ b/modules/queues/build.gradle.kts @@ -1,5 +1,5 @@ subprojects { - apply(plugin = "fastutil") + apply(plugin = "fastutil.module") group = "org.cloudburstmc.fastutil.queues" diff --git a/modules/sets/build.gradle.kts b/modules/sets/build.gradle.kts index 665701ba..898fe55f 100644 --- a/modules/sets/build.gradle.kts +++ b/modules/sets/build.gradle.kts @@ -1,5 +1,5 @@ subprojects { - apply(plugin = "fastutil") + apply(plugin = "fastutil.module") group = "org.cloudburstmc.fastutil.sets" diff --git a/settings.gradle.kts b/settings.gradle.kts index d073a2ec..475bd005 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,11 +15,7 @@ plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0" } -fun addModule(name: String) { - include(":modules:$name") -} - - +addModule("bom") addModule("core") addModule("io")