Skip to content

Commit

Permalink
Merge early config souceset handling. Merges #3121
Browse files Browse the repository at this point in the history
Specifically settled on the package naming structure as
we have a new source set, the configs live in
org.spongepowered.applaunch.config respectively.

Signed-off-by: Gabriel Harris-Rouquette <gabizou@me.com>
  • Loading branch information
gabizou committed Aug 23, 2020
2 parents a0dedbf + 104f493 commit 6b013da
Show file tree
Hide file tree
Showing 103 changed files with 758 additions and 486 deletions.
54 changes: 49 additions & 5 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,27 @@ tasks {
}
from(launch.get().output)
}
val applaunchJar by registering(Jar::class) {
getArchiveClassifier().set("applaunch")
manifest {
attributes(mapOf(
"Specification-Title" to "SpongeCommon",
"Specification-Vendor" to "SpongePowered",
"Specification-Version" to apiProject.version,
"Implementation-Title" to project.name,
"Implementation-Version" to generateImplementationVersionString(apiProject.version as String, minecraftVersion, recommendedVersion),
"Implementation-Vendor" to "SpongePowered"
// "Implementation-Timestamp" to Instant.now().format("yyyy-MM-dd'T'HH:mm:ssZ")
))
}
from(applaunch.get().output)
}

reobf {
create("mixinsJar")
create("accessorsJar")
create("launchJar")
// TODO: does applaunch need to be here? it has no reference to obf classes
}

}
Expand All @@ -128,26 +144,38 @@ version = generateImplementationVersionString(apiProject.version as String, mine
// Configurations
val minecraftConfig by configurations.named("minecraft")

val applaunchConfig by configurations.register("applaunch")

val launchConfig by configurations.register("launch") {
extendsFrom(minecraftConfig)
extendsFrom(applaunchConfig)
}
val accessorsConfig by configurations.register("accessors") {
extendsFrom(minecraftConfig)
extendsFrom(launchConfig)
}
val mixinsConfig by configurations.register("mixins") {
extendsFrom(applaunchConfig)
extendsFrom(launchConfig)
extendsFrom(minecraftConfig)
}
val modlauncherConfig by configurations.register("modlauncher") {
extendsFrom(applaunchConfig)
extendsFrom(launchConfig)
extendsFrom(minecraftConfig)
}

// create the sourcesets
val main by sourceSets

val applaunch by sourceSets.registering {
applyNamedDependencyOnOutput(originProject = project, sourceAdding = this, targetSource = main, implProject = project, dependencyConfigName = main.implementationConfigurationName)
project.dependencies {
mixinsConfig(this@registering.output)
}
}
val launch by sourceSets.registering {
applyNamedDependencyOnOutput(originProject = project, sourceAdding = applaunch.get(), targetSource = this, implProject = project, dependencyConfigName = this.implementationConfigurationName)
project.dependencies {
mixinsConfig(this@registering.output)
}
Expand All @@ -163,6 +191,7 @@ val accessors by sourceSets.registering {
}
val mixins by sourceSets.registering {
applyNamedDependencyOnOutput(originProject = project, sourceAdding = launch.get(), targetSource = this, implProject = project, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = project, sourceAdding = applaunch.get(), targetSource = this, implProject = project, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = project, sourceAdding = accessors.get(), targetSource = this, implProject = project, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = project, sourceAdding = main, targetSource = this, implProject = project, dependencyConfigName = this.implementationConfigurationName)
}
Expand Down Expand Up @@ -212,13 +241,17 @@ dependencies {
launchConfig("com.google.code.gson:gson:2.8.0")
launchConfig("org.ow2.asm:asm-tree:6.2")
launchConfig("org.ow2.asm:asm-util:6.2")
launchConfig("org.apache.logging.log4j:log4j-api:2.11.2")
launchConfig("org.spongepowered:configurate-core:3.7.1")
launchConfig("org.spongepowered:configurate-hocon:3.7.1")
launchConfig("org.spongepowered:configurate-json:3.7.1")
launchConfig("org.apache.logging.log4j:log4j-core:2.11.2")
add(launch.get().implementationConfigurationName, launchConfig)

// Applaunch -- initialization that needs to occur without game access
applaunchConfig("org.spongepowered:plugin-spi:0.1.1-SNAPSHOT")
applaunchConfig("org.apache.logging.log4j:log4j-api:2.11.2")
applaunchConfig("org.spongepowered:configurate-core:3.7.1")
applaunchConfig("org.spongepowered:configurate-hocon:3.7.1")
applaunchConfig("org.spongepowered:configurate-json:3.7.1")
applaunchConfig("org.apache.logging.log4j:log4j-core:2.11.2")
add(applaunch.get().implementationConfigurationName, applaunchConfig)

// Annotation Processor
"accessorsAnnotationProcessor"("org.spongepowered:mixin:$mixinVersion:processor")
"mixinsAnnotationProcessor"("org.spongepowered:mixin:$mixinVersion:processor")
Expand Down Expand Up @@ -399,16 +432,19 @@ project("SpongeVanilla") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
}
val vanillaLaunch by sourceSets.register("launch") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = main, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = this, targetSource = vanillaMain, implProject = vanillaProject, dependencyConfigName = vanillaMain.implementationConfigurationName)
}
val vanillaAccessors by sourceSets.register("accessors") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = this, targetSource = vanillaMain, implProject = vanillaProject, dependencyConfigName = vanillaMain.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaLaunch, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
Expand All @@ -419,6 +455,7 @@ project("SpongeVanilla") {
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaAccessors, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = main, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaMain, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaLaunch, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
Expand All @@ -427,6 +464,7 @@ project("SpongeVanilla") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaLaunch, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = vanillaProject, dependencyConfigName = this.implementationConfigurationName)
// runtime dependencies - literally add the rest of the project, because we want to launch the game
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaMixins, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.runtimeConfigurationName)
applyNamedDependencyOnOutput(originProject = vanillaProject, sourceAdding = vanillaAccessors, targetSource = this, implProject = vanillaProject, dependencyConfigName = this.runtimeConfigurationName)
Expand Down Expand Up @@ -642,6 +680,7 @@ project("SpongeVanilla") {
from(commonProject.tasks.getByName("mixinsJar"))
from(commonProject.tasks.getByName("accessorsJar"))
from(commonProject.tasks.getByName("launchJar"))
from(commonProject.tasks.getByName("applaunchJar"))
from(jar)
from(vanillaLaunchJar)
from(vanillaModLauncherJar)
Expand Down Expand Up @@ -670,6 +709,7 @@ project("SpongeVanilla") {
from(commonProject.tasks.getByName("mixinsJar"))
from(commonProject.tasks.getByName("accessorsJar"))
from(commonProject.tasks.getByName("launchJar"))
from(commonProject.tasks.getByName("applaunchJar"))
from(jar)
from(vanillaLaunchJar)
from(vanillaModLauncherJar)
Expand Down Expand Up @@ -769,16 +809,19 @@ if (spongeForge != null) {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
}
val forgeLaunch by sourceSets.register("launch") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = main, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = this, targetSource = forgeMain, implProject = forgeProject, dependencyConfigName = forgeMain.implementationConfigurationName)
}
val forgeAccessors by sourceSets.register("accessors") {
// implementation (compile) dependencies
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = this, targetSource = forgeMain, implProject = forgeProject, dependencyConfigName = forgeMain.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = forgeLaunch, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
Expand All @@ -789,6 +832,7 @@ if (spongeForge != null) {
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = accessors.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = forgeAccessors, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = launch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = applaunch.get(), targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = commonProject, sourceAdding = main, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = forgeMain, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
applyNamedDependencyOnOutput(originProject = forgeProject, sourceAdding = forgeLaunch, targetSource = this, implProject = forgeProject, dependencyConfigName = this.implementationConfigurationName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,12 @@
import org.spongepowered.common.bridge.world.WorldInfoBridge;
import org.spongepowered.common.bridge.world.chunk.ChunkBridge;
import org.spongepowered.common.config.SpongeConfig;
import org.spongepowered.common.config.inheritable.category.MetricsCategory;
import org.spongepowered.common.config.inheritable.ConfigBase;
import org.spongepowered.common.config.inheritable.DimensionConfig;
import org.spongepowered.common.config.inheritable.GlobalConfig;
import org.spongepowered.common.config.inheritable.TrackerConfig;
import org.spongepowered.common.config.inheritable.WorldConfig;
import org.spongepowered.applaunch.config.inheritable.category.MetricsCategory;
import org.spongepowered.applaunch.config.inheritable.ConfigBase;
import org.spongepowered.applaunch.config.inheritable.DimensionConfig;
import org.spongepowered.applaunch.config.inheritable.GlobalConfig;
import org.spongepowered.applaunch.config.inheritable.TrackerConfig;
import org.spongepowered.applaunch.config.inheritable.WorldConfig;
import org.spongepowered.common.entity.EntityUtil;
import org.spongepowered.common.event.SpongeEventManager;
import org.spongepowered.common.mixin.core.world.WorldAccessor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
import org.spongepowered.common.bridge.world.chunk.ChunkBridge;
import org.spongepowered.common.bridge.world.chunk.ServerChunkProviderBridge;
import org.spongepowered.common.bridge.world.storage.WorldInfoBridge;
import org.spongepowered.common.config.inheritable.category.WorldCategory;
import org.spongepowered.applaunch.config.inheritable.category.WorldCategory;
import org.spongepowered.common.event.tracking.IPhaseState;
import org.spongepowered.common.event.tracking.PhaseContext;
import org.spongepowered.common.event.tracking.PhasePrinter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
import org.spongepowered.common.bridge.world.chunk.ChunkBridge;
import org.spongepowered.common.bridge.world.chunk.AbstractChunkProviderBridge;
import org.spongepowered.common.config.SpongeConfig;
import org.spongepowered.common.config.inheritable.WorldConfig;
import org.spongepowered.applaunch.config.inheritable.WorldConfig;
import org.spongepowered.common.event.tracking.PhaseContext;
import org.spongepowered.common.event.tracking.PhaseTracker;
import org.spongepowered.common.event.tracking.phase.generation.GenerationPhase;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.common.SpongeCommon;
import org.spongepowered.common.SpongeImplHooks;
import org.spongepowered.common.config.inheritable.category.StructureModCategory;
import org.spongepowered.common.config.inheritable.category.StructureSaveCategory;
import org.spongepowered.applaunch.config.inheritable.category.StructureModCategory;
import org.spongepowered.applaunch.config.inheritable.category.StructureSaveCategory;

import javax.annotation.Nullable;
import java.util.Locale;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@
import org.spongepowered.common.bridge.world.chunk.ChunkBridge;
import org.spongepowered.common.bridge.world.storage.WorldInfoBridge;
import org.spongepowered.common.config.SpongeConfig;
import org.spongepowered.common.config.inheritable.category.EntityActivationModCategory;
import org.spongepowered.common.config.inheritable.category.EntityActivationRangeCategory;
import org.spongepowered.common.config.inheritable.GlobalConfig;
import org.spongepowered.common.config.inheritable.WorldConfig;
import org.spongepowered.applaunch.config.inheritable.category.EntityActivationModCategory;
import org.spongepowered.applaunch.config.inheritable.category.EntityActivationRangeCategory;
import org.spongepowered.applaunch.config.inheritable.GlobalConfig;
import org.spongepowered.applaunch.config.inheritable.WorldConfig;
import org.spongepowered.common.accessor.entity.EntityAccessor;
import org.spongepowered.common.accessor.entity.LivingEntityAccessor;
import org.spongepowered.common.accessor.util.math.AxisAlignedBBAccessor;
Expand Down
Loading

0 comments on commit 6b013da

Please sign in to comment.