diff --git a/build.gradle.kts b/build.gradle.kts index ca6752c10..aadaac0e8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,6 +5,23 @@ val versionObj = Version("5", "2", "0", true) allprojects { version = versionObj group = "com.dfsek.terra" + + tasks.withType().configureEach { + options.isFork = true + options.isIncremental = true + } + tasks.withType().configureEach { + useJUnitPlatform() + + maxHeapSize = "2G" + ignoreFailures = false + failFast = true + maxParallelForks = (Runtime.getRuntime().availableProcessors() - 1).takeIf { it > 0 } ?: 1 + + reports.html.isEnabled = false + reports.junitXml.isEnabled = false + } + } /** * Version class that does version stuff. diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/CommonConfig.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/CommonConfig.kt index c06a71b2d..3f10dc573 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/CommonConfig.kt @@ -7,26 +7,11 @@ import org.gradle.kotlin.dsl.withType import java.io.ByteArrayOutputStream fun Project.configureCommon() { - apply(plugin = "java-library") - apply(plugin = "maven-publish") - apply(plugin = "idea") - configureDependencies() configureCompilation() configureDistribution() version = rootProject.version - - - - tasks.withType().configureEach { - useJUnitPlatform() - - maxHeapSize = "2G" - ignoreFailures = false - failFast = true - maxParallelForks = 12 - } } fun Project.getGitHash(): String { diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/CompilationConfig.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/CompilationConfig.kt index a6619cc1f..1c50177dc 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/CompilationConfig.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/CompilationConfig.kt @@ -3,14 +3,16 @@ package com.dfsek.terra import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginConvention +import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.javadoc.Javadoc -import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.filter -import org.gradle.kotlin.dsl.withType +import org.gradle.kotlin.dsl.* import org.gradle.language.jvm.tasks.ProcessResources fun Project.configureCompilation() { + apply(plugin = "maven-publish") + apply(plugin = "idea") + configure { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 @@ -35,4 +37,19 @@ fun Project.configureCompilation() { tasks.withType { options.encoding = "UTF-8" } + + tasks.withType { + archiveBaseName.set("Terra-${archiveBaseName.get()}") + from("../LICENSE", "../../LICENSE") + } + + tasks.register("sourcesJar") { + archiveClassifier.set("sources") + } + + tasks.register("javadocJar") { + dependsOn("javadoc") + archiveClassifier.set("javadoc") + from(tasks.getByName("javadoc").destinationDir) + } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt index 4bab053e4..a73154b3f 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/DependencyConfig.kt @@ -1,13 +1,27 @@ package com.dfsek.terra import org.gradle.api.Project +import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.invoke import org.gradle.kotlin.dsl.repositories fun Project.configureDependencies() { + apply(plugin = "java") + apply(plugin = "java-library") + + configurations { + val shaded = create("shaded") + val shadedApi = create("shadedApi") + shaded.extendsFrom(shadedApi) + getByName("api").extendsFrom(shadedApi) + val shadedImplementation = create("shadedImplementation") + shaded.extendsFrom(shadedImplementation) + getByName("implementation").extendsFrom(shadedImplementation) + } repositories { - maven { url = uri("http://maven.enginehub.org/repo/") } + maven { url = uri("https://maven.enginehub.org/repo/") } maven { url = uri("https://repo.codemc.org/repository/maven-public") } maven { url = uri("https://papermc.io/repo/repository/maven-public/") } maven { url = uri("https://maven.fabricmc.net/") } @@ -19,6 +33,6 @@ fun Project.configureDependencies() { dependencies { "testImplementation"("org.junit.jupiter:junit-jupiter-api:5.7.0") "testImplementation"("org.junit.jupiter:junit-jupiter-engine:5.7.0") - "compileOnly"("org.jetbrains:annotations:20.1.0") + "api"("org.jetbrains:annotations:20.1.0") } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/com/dfsek/terra/DistributionConfig.kt b/buildSrc/src/main/kotlin/com/dfsek/terra/DistributionConfig.kt index c874d8820..ee81dc9b8 100644 --- a/buildSrc/src/main/kotlin/com/dfsek/terra/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/com/dfsek/terra/DistributionConfig.kt @@ -14,17 +14,6 @@ fun Project.configureDistribution() { apply(plugin = "java-library") apply(plugin = "com.github.johnrengelman.shadow") - configurations { - val shaded = create("shaded") - getByName("compile").extendsFrom(shaded) - val shadedApi = create("shadedApi") - shaded.extendsFrom(shadedApi) - getByName("api").extendsFrom(shadedApi) - val shadedImplementation = create("shadedImplementation") - shaded.extendsFrom(shadedImplementation) - getByName("implementation").extendsFrom(shadedImplementation) - } - val downloadDefaultPacks = tasks.create("downloadDefaultPacks") { group = "terra" doFirst { @@ -38,21 +27,6 @@ fun Project.configureDistribution() { } tasks["processResources"].dependsOn(downloadDefaultPacks) - tasks.withType { - archiveBaseName.set("Terra-${archiveBaseName.get()}") - from("../LICENSE", "../../LICENSE") - } - - tasks.register("sourcesJar") { - archiveClassifier.set("sources") - } - - tasks.register("javadocJar") { - dependsOn("javadoc") - archiveClassifier.set("javadoc") - from(tasks.getByName("javadoc").destinationDir) - } - tasks.named("shadowJar") { // Tell shadow to download the packs dependsOn(downloadDefaultPacks) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index ec58b60e9..e41d28497 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,11 +1,14 @@ -import com.dfsek.terra.configureCommon +import com.dfsek.terra.configureCompilation +import com.dfsek.terra.configureDependencies plugins { `java-library` `maven-publish` + idea } -configureCommon() +configureCompilation() +configureDependencies() group = "com.dfsek.terra.common" diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 000000000..1fca82ba1 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,10 @@ +# Magic options for more perf +org.gradle.jvmargs=-Xmx2048M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC +org.gradle.vfs.watch=true +kapt.use.worker.api=true +kapt.include.compile.classpath=false +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.warning.mode=all +#org.gradle.logging.level=info +org.gradle.configureondemand=true diff --git a/settings.gradle.kts b/settings.gradle.kts index 303d70045..c5e7a4a77 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,7 +16,7 @@ include("platforms:sponge") pluginManagement { repositories { - maven(url = "http://maven.fabricmc.net") { + maven(url = "https://maven.fabricmc.net") { name = "Fabric" } gradlePluginPortal()