@@ -14,20 +14,15 @@ import java.util.*
1414class PreprocessPlugin : Plugin <Project > {
1515 override fun apply (project : Project ) {
1616 val coreVersionFile = project.file(" ../mainVersion" )
17- val originalSrc = " ../../src/main/java"
18- val originalRes = " ../../src/main/resources"
19- val preprocessedSrc = " build/preprocessed/src"
20- val preprocessedRes = " build/preprocessed/res"
2117 val mappingFiles = findMappingFiles(project)
2218
19+ val parent = project.parent!!
2320 val coreVersion = coreVersionFile.readText().toInt()
2421 val mcVersion = project.extra[" mcVersion" ] as Int
2522 if (coreVersion == mcVersion) {
26- project.configure<SourceSetContainer > {
27- named(" main" ) {
28- java.setSrcDirs(listOf (originalSrc))
29- resources.setSrcDirs(listOf (originalRes))
30- }
23+ project.the<SourceSetContainer >().configureEach {
24+ java.setSrcDirs(listOf (parent.file(" src/$name /java" )))
25+ resources.setSrcDirs(listOf (parent.file(" src/$name /resources" )))
3126 }
3227 } else {
3328 val core = project.byVersion(coreVersion)
@@ -62,56 +57,58 @@ class PreprocessPlugin : Plugin<Project> {
6257 }
6358 }
6459
65- val preprocessJava = project.tasks.create<PreprocessTask >(" preprocessJava" ) {
66- source = project.file(inherited.the<SourceSetContainer >().getByName(" main" ).java.srcDirs.first())
67- generated = project.file(preprocessedSrc)
68- compileTask(inherited.tasks.getByName(" compileJava" ) as AbstractCompile )
69- project.afterEvaluate {
70- val projectIntermediaryMappings = project.intermediaryMappings
71- val inheritedIntermediaryMappings = inherited.intermediaryMappings
72- if (inheritedIntermediaryMappings != null && projectIntermediaryMappings != null ) {
60+ project.the<SourceSetContainer >().configureEach {
61+ val inheritedSourceSet = inherited.the<SourceSetContainer >()[name]
62+ val cName = if (name == " main" ) " " else name.capitalize()
63+ val preprocessedJava = File (project.buildDir, " preprocessed/$name /java" )
64+ val preprocessedResources = File (project.buildDir, " preprocessed/$name /resources" )
65+
66+ val preprocessJava = project.tasks.register<PreprocessTask >(" preprocess${cName} Java" ) {
67+ source = inherited.file(inheritedSourceSet.java.srcDirs.first())
68+ generated = preprocessedJava
69+ compileTask(inherited.tasks[" compile${cName} Java" ] as AbstractCompile )
70+ mapping = mappingFile
71+ reverseMapping = coreVersion < mcVersion
72+ vars = mutableMapOf (" MC" to mcVersion)
73+ }
74+
75+ val preprocessResources = project.tasks.register<PreprocessTask >(" preprocess${cName} Resources" ) {
76+ source = inherited.file(inheritedSourceSet.resources.srcDirs.first())
77+ generated = preprocessedResources
78+ vars = mutableMapOf (" MC" to mcVersion)
79+ }
80+
81+ val sourceJavaTask = project.tasks.findByName(" source${name.capitalize()} Java" )
82+ (sourceJavaTask ? : project.tasks[" compile${cName} Java" ]).dependsOn(preprocessJava)
83+
84+ project.tasks[" process${cName} Resources" ].dependsOn(preprocessResources)
85+
86+ java.setSrcDirs(listOf (preprocessedJava))
87+ resources.setSrcDirs(listOf (preprocessedResources))
88+ }
89+
90+ project.afterEvaluate {
91+ val projectIntermediaryMappings = project.intermediaryMappings
92+ val inheritedIntermediaryMappings = inherited.intermediaryMappings
93+ if (inheritedIntermediaryMappings != null && projectIntermediaryMappings != null ) {
94+ tasks.withType<PreprocessTask >().configureEach {
7395 sourceMappings = inheritedIntermediaryMappings.first
7496 destinationMappings = projectIntermediaryMappings.first
7597 (inheritedIntermediaryMappings.second + projectIntermediaryMappings.second).forEach { dependsOn(it) }
7698 }
7799 }
78- mapping = mappingFile
79- reverseMapping = coreVersion < mcVersion
80- vars = mutableMapOf (" MC" to mcVersion)
81100 }
82101
83- val preprocessResources = project.tasks.create<PreprocessTask >(" preprocessResources" ) {
84- source = project.file(originalRes)
85- generated = project.file(preprocessedRes)
86- vars = mutableMapOf (" MC" to mcVersion)
87- }
102+ project.tasks.register<Copy >(" setCoreVersion" ) {
103+ from(File (project.buildDir, " preprocessed" ))
104+ into(File (parent.projectDir, " src" ))
88105
89- val sourceMainJava = project.tasks.findByName(" sourceMainJava" )
90- (sourceMainJava ? : project.tasks.getByName(" compileJava" )).dependsOn(preprocessJava)
91- project.tasks.getByName(" processResources" ).dependsOn(preprocessResources)
106+ project.the<SourceSetContainer >().all {
107+ val cName = if (name == " main" ) " " else name.capitalize()
92108
93- project.configure<SourceSetContainer > {
94- named(" main" ) {
95- java.setSrcDirs(listOf (preprocessedSrc))
96- resources.setSrcDirs(listOf (preprocessedRes))
109+ dependsOn(project.tasks.named(" preprocess${cName} Java" ))
110+ dependsOn(project.tasks.named(" preprocess${cName} Resources" ))
97111 }
98- }
99-
100- val setCoreVersionJava = project.tasks.create<Copy >(" setCoreVersionJava" ) {
101- dependsOn(preprocessJava)
102- from(project.file(preprocessedSrc))
103- into(project.file(originalSrc))
104- }
105-
106- val setCoreVersionResources = project.tasks.create<Copy >(" setCoreVersionResources" ) {
107- dependsOn(preprocessResources)
108- from(project.file(preprocessedRes))
109- into(project.file(originalRes))
110- }
111-
112- project.tasks.create(" setCoreVersion" ) {
113- dependsOn(setCoreVersionJava)
114- dependsOn(setCoreVersionResources)
115112
116113 doLast {
117114 coreVersionFile.writeText(mcVersion.toString())
0 commit comments