From b634ef80c8ba2c1bd2e8831fbabbfc026e004ade Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Fri, 11 Sep 2026 12:11:06 +0100 Subject: [PATCH] Move buildSrc to build-logic What Gradle recommends seems to have gone pretty back-and-forth on this, but it seems like this is the standard these days. --- .gitignore | 18 +++------ .../base}/build.gradle.kts | 29 -------------- .../main/kotlin/cc-tweaked.fabric.gradle.kts | 0 .../main/kotlin/cc-tweaked.forge.gradle.kts | 0 .../cc-tweaked.java-convention.gradle.kts | 0 .../cc-tweaked.mod-publishing.gradle.kts | 0 .../src/main/kotlin/cc-tweaked.mod.gradle.kts | 0 .../kotlin/cc-tweaked.publishing.gradle.kts | 0 .../main/kotlin/cc-tweaked.vanilla.gradle.kts | 0 .../cc/tweaked/gradle/CCTweakedExtension.kt | 0 .../cc/tweaked/gradle/CCTweakedPlugin.kt | 0 .../cc/tweaked/gradle/CheckChangelog.kt | 0 .../cc/tweaked/gradle/DependencyCheck.kt | 0 .../kotlin/cc/tweaked/gradle/ExecTasks.kt | 0 .../kotlin/cc/tweaked/gradle/Extensions.kt | 0 .../main/kotlin/cc/tweaked/gradle/IdeaExt.kt | 0 .../kotlin/cc/tweaked/gradle/Illuaminate.kt | 0 .../kotlin/cc/tweaked/gradle/MergeTrees.kt | 0 .../tweaked/gradle/MinecraftConfigurations.kt | 0 .../kotlin/cc/tweaked/gradle/MinecraftExec.kt | 0 .../src/main/kotlin/cc/tweaked/gradle/Node.kt | 0 .../cc/tweaked/gradle/ProcessHelpers.kt | 0 .../cc/tweaked/gradle/SourceSetReference.kt | 0 build-logic/build.gradle.kts | 14 +++++++ build-logic/settings.gradle.kts | 39 +++++++++++++++++++ build.gradle.kts | 2 +- buildSrc/settings.gradle.kts | 11 ------ gradle/libs.versions.toml | 1 + projects/ARCHITECTURE.md | 2 +- settings.gradle.kts | 18 +++++---- 30 files changed, 72 insertions(+), 62 deletions(-) rename {buildSrc => build-logic/base}/build.gradle.kts (59%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.fabric.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.forge.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.java-convention.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.mod-publishing.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.mod.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.publishing.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc-tweaked.vanilla.gradle.kts (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/CCTweakedPlugin.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/CheckChangelog.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/DependencyCheck.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/ExecTasks.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/Extensions.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/IdeaExt.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/Illuaminate.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/MergeTrees.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/MinecraftConfigurations.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/MinecraftExec.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/Node.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/ProcessHelpers.kt (100%) rename {buildSrc => build-logic/base}/src/main/kotlin/cc/tweaked/gradle/SourceSetReference.kt (100%) create mode 100644 build-logic/build.gradle.kts create mode 100644 build-logic/settings.gradle.kts delete mode 100644 buildSrc/settings.gradle.kts diff --git a/.gitignore b/.gitignore index 7170eed48..b546b32d1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,23 +3,19 @@ # SPDX-License-Identifier: CC0-1.0 # Build directories -/classes -/logs /build -/projects/*/logs -/projects/fabric/fabricloader.log +/build-logic/*/build +/build-logic/build /projects/*/build + +/projects/*/src/generated/resources/.cache /projects/*/src/test/generated_tests/ -/buildSrc/build -/out -/buildSrc/out -/jars -/doc/out/ +/projects/*/logs + /node_modules .jqwik-database # Runtime directories -/run /projects/*/run *.ipr @@ -35,5 +31,3 @@ /.settings /.vscode *.launch - -/projects/*/src/generated/resources/.cache diff --git a/buildSrc/build.gradle.kts b/build-logic/base/build.gradle.kts similarity index 59% rename from buildSrc/build.gradle.kts rename to build-logic/base/build.gradle.kts index b035d446a..a90f6c8d5 100644 --- a/buildSrc/build.gradle.kts +++ b/build-logic/base/build.gradle.kts @@ -5,29 +5,6 @@ plugins { `java-gradle-plugin` `kotlin-dsl` - alias(libs.plugins.gradleVersions) - alias(libs.plugins.versionCatalogUpdate) -} - -// Duplicated in settings.gradle.kts -repositories { - mavenCentral() - gradlePluginPortal() - - maven("https://maven.fabricmc.net/") { - name = "Fabric" - content { - includeGroup("net.fabricmc") - includeGroup("net.fabricmc.unpick") - } - } - - maven("https://maven.squiddev.cc") { - name = "SquidDev" - content { - includeGroup("cc.tweaked.vanilla-extract") - } - } } dependencies { @@ -60,9 +37,3 @@ gradlePlugin { } } } - -versionCatalogUpdate { - sortByKey = false - keep { keepUnusedVersions = true } - catalogFile = file("../gradle/libs.versions.toml") -} diff --git a/buildSrc/src/main/kotlin/cc-tweaked.fabric.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.fabric.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.fabric.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.fabric.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.forge.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.forge.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.forge.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.forge.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.java-convention.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.java-convention.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.java-convention.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.mod-publishing.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.mod-publishing.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.mod-publishing.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.mod-publishing.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.mod.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.mod.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.mod.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.mod.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.publishing.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.publishing.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.publishing.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.publishing.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc-tweaked.vanilla.gradle.kts b/build-logic/base/src/main/kotlin/cc-tweaked.vanilla.gradle.kts similarity index 100% rename from buildSrc/src/main/kotlin/cc-tweaked.vanilla.gradle.kts rename to build-logic/base/src/main/kotlin/cc-tweaked.vanilla.gradle.kts diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedPlugin.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/CCTweakedPlugin.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedPlugin.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/CCTweakedPlugin.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CheckChangelog.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/CheckChangelog.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/CheckChangelog.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/CheckChangelog.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/DependencyCheck.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/DependencyCheck.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/DependencyCheck.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/DependencyCheck.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/ExecTasks.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/ExecTasks.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/ExecTasks.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/ExecTasks.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/Extensions.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/Extensions.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/Extensions.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/Extensions.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/IdeaExt.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/IdeaExt.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/IdeaExt.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/IdeaExt.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/Illuaminate.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/Illuaminate.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/Illuaminate.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/Illuaminate.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/MergeTrees.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/MergeTrees.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/MergeTrees.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/MergeTrees.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/MinecraftConfigurations.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/MinecraftConfigurations.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/MinecraftConfigurations.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/MinecraftConfigurations.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/MinecraftExec.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/MinecraftExec.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/MinecraftExec.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/MinecraftExec.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/Node.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/Node.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/Node.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/Node.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/ProcessHelpers.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/ProcessHelpers.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/ProcessHelpers.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/ProcessHelpers.kt diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/SourceSetReference.kt b/build-logic/base/src/main/kotlin/cc/tweaked/gradle/SourceSetReference.kt similarity index 100% rename from buildSrc/src/main/kotlin/cc/tweaked/gradle/SourceSetReference.kt rename to build-logic/base/src/main/kotlin/cc/tweaked/gradle/SourceSetReference.kt diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts new file mode 100644 index 000000000..4de04bb62 --- /dev/null +++ b/build-logic/build.gradle.kts @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: 2022 The CC: Tweaked Developers +// +// SPDX-License-Identifier: MPL-2.0 + +plugins { + alias(libs.plugins.gradleVersions) + alias(libs.plugins.versionCatalogUpdate) +} + +versionCatalogUpdate { + sortByKey = false + keep { keepUnusedVersions = true } + catalogFile = file("../gradle/libs.versions.toml") +} diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts new file mode 100644 index 000000000..22010463f --- /dev/null +++ b/build-logic/settings.gradle.kts @@ -0,0 +1,39 @@ +// SPDX-FileCopyrightText: 2022 The CC: Tweaked Developers +// +// SPDX-License-Identifier: MPL-2.0 + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } + + repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS + + // Duplicated in root settings.gradle.kts + repositories { + mavenCentral() + gradlePluginPortal() + + exclusiveContent { + forRepositories(maven("https://maven.fabricmc.net/")) + filter { + includeGroup("fabric-loom") + includeGroup("net.fabricmc") + includeGroup("net.fabricmc.unpick") + } + } + + exclusiveContent { + forRepositories(maven("https://maven.squiddev.cc")) + filter { + includeGroup("cc.tweaked.vanilla-extract") + } + } + } +} + +rootProject.name = "build-logic" + +include("base") diff --git a/build.gradle.kts b/build.gradle.kts index 9bdc7f554..6fb519c04 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,8 +11,8 @@ plugins { publishing alias(libs.plugins.githubRelease) alias(libs.plugins.gradleVersions) + alias(libs.plugins.ideaExt) alias(libs.plugins.versionCatalogUpdate) - id("org.jetbrains.gradle.plugin.idea-ext") id("cc-tweaked") } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts deleted file mode 100644 index d25531a48..000000000 --- a/buildSrc/settings.gradle.kts +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-FileCopyrightText: 2022 The CC: Tweaked Developers -// -// SPDX-License-Identifier: MPL-2.0 - -dependencyResolutionManagement { - versionCatalogs { - create("libs") { - from(files("../gradle/libs.versions.toml")) - } - } -} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b5f9d19e4..564bb6834 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -170,6 +170,7 @@ yarn = { module = "net.fabricmc:yarn", version.ref = "yarn" } [plugins] githubRelease = { id = "com.github.breadmoirai.github-release", version.ref = "githubRelease" } gradleVersions = { id = "io.github.ben-manes.versions", version.ref = "gradleVersions" } +ideaExt = { id = "org.jetbrains.gradle.plugin.idea-ext", version.ref = "ideaExt" } kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } shadow = { id = "com.gradleup.shadow", version.ref = "shadow" } versionCatalogUpdate = { id = "nl.littlerobots.version-catalog-update", version.ref = "versionCatalogUpdate" } diff --git a/projects/ARCHITECTURE.md b/projects/ARCHITECTURE.md index 0fac433ed..1d4f0310e 100644 --- a/projects/ARCHITECTURE.md +++ b/projects/ARCHITECTURE.md @@ -68,7 +68,7 @@ mentioning: - `web`: This contains the additional tooling for building [the documentation website][tweaked.cc], such as support for rendering recipes - - `buildSrc` (in the base directory, not in `projects/`): This contains any build logic shared between modules. For + - `build-logic` (in the base directory, not in `projects/`): This contains any build logic shared between modules. For instance, `cc-tweaked.java-convention.gradle.kts` sets up the defaults for Java that we use across the whole project. > **Note** diff --git a/settings.gradle.kts b/settings.gradle.kts index d5090c0d3..7361a5206 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,23 +3,23 @@ // SPDX-License-Identifier: MPL-2.0 pluginManagement { - // Duplicated in buildSrc/build.gradle.kts + // Duplicated in build-logic/settings.gradle.kts repositories { mavenCentral() gradlePluginPortal() - maven("https://maven.fabricmc.net/") { - name = "Fabric" - content { + exclusiveContent { + forRepositories(maven("https://maven.fabricmc.net/")) + filter { includeGroup("fabric-loom") includeGroup("net.fabricmc") includeGroup("net.fabricmc.unpick") } } - maven("https://maven.squiddev.cc") { - name = "SquidDev" - content { + exclusiveContent { + forRepositories(maven("https://maven.squiddev.cc")) + filter { includeGroup("cc.tweaked.vanilla-extract") } } @@ -27,13 +27,15 @@ pluginManagement { } plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version("1.0.0") + id("org.gradle.toolchains.foojay-resolver-convention") version ("1.0.0") } enableFeaturePreview("STABLE_CONFIGURATION_CACHE") rootProject.name = "cc-tweaked" +includeBuild("build-logic") + include(":core-api") include(":core")