[build] Switch to gradle.kts and new plugin-based jfmod scripts

This commit is contained in:
Johannes Frohnmeyer 2022-10-07 19:25:25 +02:00
parent 00f1a74bc0
commit 5459a313c2
Signed by: Johannes
GPG Key ID: E76429612C2929F4
33 changed files with 231 additions and 219 deletions

View File

@ -1,36 +0,0 @@
apply from: "https://jfmods.gitlab.io/scripts/gradle/v2.gradle"
allprojects {
if (project.name in rootProject.nonModSubprojects) return
loom {
runs {
testmodClient {
client()
ideConfigGenerated project.rootProject == project
name = "Testmod Client"
source sourceSets.testmod
}
testmodServer {
server()
ideConfigGenerated project.rootProject == project
name = "Testmod Server"
source sourceSets.testmod
}
}
}
dependencies {
modLocalRuntime("com.terraformersmc:modmenu:$rootProject.modmenu_version")
modLocalRuntime(fabricApi.module("fabric-command-api-v2", "$rootProject.fabric_version"))
compileOnly("io.gitlab.jfronny:commons:$rootProject.commons_version")
compileOnly("io.gitlab.jfronny:commons-gson:$rootProject.commons_version")
}
}
task copyVersionNumber {
doLast {
java.awt.Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new java.awt.datatransfer.StringSelection("$version"), null)
println("Copied version number: $version")
}
}

19
build.gradle.kts Normal file
View File

@ -0,0 +1,19 @@
import io.gitlab.jfronny.scripts.*
plugins {
id("jfmod") version "1.0-SNAPSHOT"
}
val nonModSubprojects: List<String> by extra
val devOnlyModules: List<String> by extra
allprojects {
if (name in nonModSubprojects) return@allprojects
dependencies {
modLocalRuntime("com.terraformersmc:modmenu:${prop("modmenu_version")}")
modLocalRuntime(fabricApi.module("fabric-command-api-v2", prop("fabric_version")))
compileOnly("io.gitlab.jfronny:commons:${prop("commons_version")}")
compileOnly("io.gitlab.jfronny:commons-gson:${prop("commons_version")}")
}
}

View File

@ -19,4 +19,4 @@ commons_version=2022.9.25+10-22-41
modmenu_version=4.0.6
asm_version=9.4
ant_version=1.10.12
ant_version=1.10.12

View File

@ -1,14 +0,0 @@
archivesBaseName = "libjf-base"
dependencies {
include modImplementation(fabricApi.module("fabric-lifecycle-events-v1", "$rootProject.fabric_version"))
shadow "io.gitlab.jfronny:commons:$rootProject.commons_version"
shadow "io.gitlab.jfronny:commons-gson:$rootProject.commons_version"
shadow "io.gitlab.jfronny:commons-slf4j:$rootProject.commons_version"
}
shadowJar {
dependencies {
exclude(dependency('org.slf4j:slf4j-api'))
}
}

View File

@ -0,0 +1,14 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-base")
}
dependencies {
include(modImplementation(fabricApi.module("fabric-lifecycle-events-v1", prop("fabric_version")))!!)
shadow("io.gitlab.jfronny:commons:${prop("commons_version")}")
shadow("io.gitlab.jfronny:commons-gson:${prop("commons_version")}")
shadow("io.gitlab.jfronny:commons-slf4j:${prop("commons_version")}") {
isTransitive = false
}
}

View File

@ -1,7 +0,0 @@
archivesBaseName = "libjf-config-reflect-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
include modImplementation(fabricApi.module("fabric-command-api-v2", "${project.fabric_version}"))
}

View File

@ -0,0 +1,11 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-config-commands-v1")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-config-core-v1"))
include(modImplementation(fabricApi.module("fabric-command-api-v2", prop("fabric_version")))!!)
}

View File

@ -1,67 +0,0 @@
plugins {
id 'java-gradle-plugin'
id 'maven-publish'
}
group project.maven_group
version rootProject.ext.currentVer
repositories {
mavenCentral()
maven {
name = 'JF Commons'
url = 'https://gitlab.com/api/v4/projects/35745143/packages/maven'
}
}
dependencies {
compileOnly(gradleApi())
implementation("org.apache.ant:ant:$rootProject.ant_version")
implementation("io.gitlab.jfronny:commons-gson:$rootProject.commons_version")
implementation("org.ow2.asm:asm:$rootProject.asm_version")
implementation("org.ow2.asm:asm-commons:$rootProject.asm_version")
implementation(project(":libjf-config-core-v1")) {
transitive(false)
}
}
gradlePlugin {
plugins {
simplePlugin {
id = "io.gitlab.jfronny.libjf.libjf-config-compiler-plugin"
implementationClass = "io.gitlab.jfronny.libjf.config.plugin.ConfigPlugin"
}
}
}
publishing {
repositories {
mavenLocal()
if (project.hasProperty("maven")) {
maven {
url = project.getProperty("maven")
name = "dynamic"
credentials(HttpHeaderCredentials) {
name = "Job-Token"
value = System.getenv().CI_JOB_TOKEN
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
}
}
tasks.publish.dependsOn(tasks.build)
rootProject.tasks.deployDebug.dependsOn(tasks.publish)
java.nio.file.Files.writeString(java.nio.file.Path.of("$projectDir/src/main/java/io/gitlab/jfronny/libjf/config/plugin/BuildMetadata.java"), """
package io.gitlab.jfronny.libjf.config.plugin;
public class BuildMetadata {
public static final boolean isRelease = ${project.hasProperty("release")};
}
""")

View File

@ -0,0 +1,47 @@
import io.gitlab.jfronny.scripts.*
plugins {
id("java-gradle-plugin")
id("jf.maven-publish")
}
group = rootProject.group
version = rootProject.version
repositories {
mavenCentral()
maven {
name = "JF Commons"
url = uri("https://gitlab.com/api/v4/projects/35745143/packages/maven")
}
maven("https://maven.fabricmc.net/")
}
dependencies {
compileOnly(gradleApi())
implementation("org.apache.ant:ant:${prop("ant_version")}")
implementation("io.gitlab.jfronny:commons-gson:${prop("commons_version")}")
implementation("org.ow2.asm:asm:${prop("asm_version")}")
implementation("org.ow2.asm:asm-commons:${prop("asm_version")}")
implementation(project(":libjf-config-core-v1")) { isTransitive = false }
}
gradlePlugin {
plugins {
create("simplePlugin") {
id = "io.gitlab.jfronny.libjf.libjf-config-compiler-plugin"
implementationClass = "io.gitlab.jfronny.libjf.config.plugin.ConfigPlugin"
}
}
}
tasks.publish.get().dependsOn(tasks.build.get())
rootProject.tasks.deployDebug.dependsOn(tasks.publish.get())
projectDir.resolve("src/main/java/io/gitlab/jfronny/libjf/config/plugin/BuildMetadata.java").writeText("""
package io.gitlab.jfronny.libjf.config.plugin;
public class BuildMetadata {
public static final boolean isRelease = ${project.hasProperty("release")};
}
""".trimIndent())

View File

@ -1,5 +0,0 @@
archivesBaseName = "libjf-config-core-v1"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
}

View File

@ -0,0 +1,9 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-config-core-v1")
}
dependencies {
api(devProject(":libjf-base"))
}

View File

@ -1,10 +0,0 @@
archivesBaseName = "libjf-config-legacy-shim"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
api project(path: ":libjf-config-commands-v1", configuration: "dev")
api project(path: ":libjf-config-reflect-v1", configuration: "dev")
api project(path: ":libjf-config-ui-tiny-v1", configuration: "dev")
api project(path: ":libjf-unsafe-v0", configuration: "dev")
}

View File

@ -0,0 +1,14 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-config-legacy-shim")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-config-core-v1"))
api(devProject(":libjf-config-commands-v1"))
api(devProject(":libjf-config-reflect-v1"))
api(devProject(":libjf-config-ui-tiny-v1"))
api(devProject(":libjf-unsafe-v0"))
}

View File

@ -1,7 +0,0 @@
archivesBaseName = "libjf-config-reflect-v1"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-unsafe-v0", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
}

View File

@ -0,0 +1,11 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-config-reflect-v1")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-unsafe-v0"))
api(devProject(":libjf-config-core-v1"))
}

View File

@ -1,8 +0,0 @@
archivesBaseName = "libjf-config-ui-tiny-v1"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
include fabricApi.module("fabric-resource-loader-v0", "${project.fabric_version}")
modCompileOnly("com.terraformersmc:modmenu:$rootProject.modmenu_version")
}

View File

@ -0,0 +1,12 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-config-ui-tiny-v1")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-config-core-v1"))
include(fabricApi.module("fabric-resource-loader-v0", prop("fabric_version")))
modCompileOnly("com.terraformersmc:modmenu:${prop("modmenu_version")}")
}

View File

@ -1,7 +0,0 @@
archivesBaseName = "libjf-data-manipulation-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-unsafe-v0", configuration: "dev")
modApi(fabricApi.module("fabric-api-base", "$rootProject.fabric_version"))
}

View File

@ -0,0 +1,11 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-data-manipulation-v0")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-unsafe-v0"))
modApi(fabricApi.module("fabric-api-base", prop("fabric_version")))
}

View File

@ -1,6 +0,0 @@
archivesBaseName = "libjf-data-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
include fabricApi.module("fabric-resource-loader-v0", "${project.fabric_version}")
}

View File

@ -0,0 +1,10 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-data-v0")
}
dependencies {
api(devProject(":libjf-base"))
include(fabricApi.module("fabric-resource-loader-v0", prop("fabric_version")))
}

View File

@ -1,5 +0,0 @@
archivesBaseName = "libjf-devutil-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
}

View File

@ -0,0 +1,9 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-devutil")
}
dependencies {
api(devProject(":libjf-base"))
}

View File

@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"id": "libjf-devutil-v0",
"id": "libjf-devutil",
"name": "LibJF Development Util",
"version": "${version}",
"authors": [

View File

@ -1,6 +0,0 @@
archivesBaseName = "libjf-translate-v1"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
}

View File

@ -0,0 +1,10 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-translate-v1")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-config-core-v1"))
}

View File

@ -1,5 +0,0 @@
archivesBaseName = "libjf-unsafe-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
}

View File

@ -0,0 +1,9 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-unsafe-v0")
}
dependencies {
api(devProject(":libjf-base"))
}

View File

@ -1,7 +0,0 @@
archivesBaseName = "libjf-web-v0"
dependencies {
api project(path: ":libjf-base", configuration: "dev")
api project(path: ":libjf-config-core-v1", configuration: "dev")
include modImplementation(fabricApi.module("fabric-command-api-v2", "${rootProject.fabric_version}"))
}

View File

@ -0,0 +1,11 @@
import io.gitlab.jfronny.scripts.*
base {
archivesName.set("libjf-web-v0")
}
dependencies {
api(devProject(":libjf-base"))
api(devProject(":libjf-config-core-v1"))
include(modImplementation(fabricApi.module("fabric-command-api-v2", prop("fabric_version")))!!)
}

View File

@ -1,27 +0,0 @@
pluginManagement {
repositories {
maven {
name = 'Fabric'
url = 'https://maven.fabricmc.net/'
}
gradlePluginPortal()
}
}
rootProject.name = "libjf"
include 'libjf-base'
include 'libjf-config-core-v1'
include 'libjf-config-reflect-v1'
include 'libjf-config-commands-v1'
include 'libjf-config-ui-tiny-v1'
include 'libjf-config-legacy-shim'
include 'libjf-data-v0'
include 'libjf-data-manipulation-v0'
include 'libjf-devutil'
include 'libjf-translate-v1'
include 'libjf-unsafe-v0'
include 'libjf-web-v0'
include 'libjf-config-compiler-plugin'

26
settings.gradle.kts Normal file
View File

@ -0,0 +1,26 @@
pluginManagement {
repositories {
maven("https://maven.fabricmc.net/") // FabricMC
maven("https://gitlab.com/api/v4/projects/32776914/packages/maven") // CurseGradle
maven("https://gitlab.com/api/v4/projects/31672498/packages/maven") // scripts
gradlePluginPortal()
}
}
rootProject.name = "libjf"
include("libjf-base")
include("libjf-config-core-v1")
include("libjf-config-reflect-v1")
include("libjf-config-commands-v1")
include("libjf-config-ui-tiny-v1")
include("libjf-config-legacy-shim")
include("libjf-data-v0")
include("libjf-data-manipulation-v0")
include("libjf-devutil")
include("libjf-translate-v1")
include("libjf-unsafe-v0")
include("libjf-web-v0")
include("libjf-config-compiler-plugin")

View File

@ -0,0 +1,6 @@
{
"schemaVersion": 1,
"id": "libjf-testmod",
"version": "1.0",
"environment": "*"
}