Skip to content

Commit 11b4787

Browse files
committed
Update GradleUtils Shared to fix various issues
1 parent 0c37ca3 commit 11b4787

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

gitversion-gradle/settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ dependencyResolutionManagement {
3232
}
3333

3434
versionCatalogs.register('libs') {
35-
version 'gradleutils', '3.2.14'
35+
version 'gradleutils', '3.2.15'
3636

3737
plugin 'licenser', 'net.minecraftforge.licenser' version '1.2.0' // https://plugins.gradle.org/plugin/net.minecraftforge.licenser
3838
plugin 'javadoc-links', 'io.freefair.javadoc-links' version '8.14' // https://plugins.gradle.org/plugin/io.freefair.javadoc-links

gitversion-gradle/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionExtensionImpl.groovy

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import groovy.transform.PackageScope
1010
import net.minecraftforge.gradleutils.GenerateActionsWorkflow
1111
import org.gradle.api.Project
1212
import org.gradle.api.file.Directory
13-
import org.gradle.api.logging.LogLevel
1413
import org.gradle.api.model.ObjectFactory
1514
import org.gradle.api.plugins.ExtensionAware
1615
import org.gradle.api.provider.Property
@@ -21,21 +20,28 @@ import javax.inject.Inject
2120

2221
@CompileStatic
2322
@PackageScope abstract class GitVersionExtensionImpl implements GitVersionExtensionInternal {
24-
private final GitVersionProblems problems
2523
private final Property<Output> gitversion
2624

25+
private boolean hasProject
26+
2727
protected abstract @Inject ObjectFactory getObjects()
2828
protected abstract @Inject ProviderFactory getProviders()
2929

3030
@Inject
3131
GitVersionExtensionImpl(GitVersionPlugin plugin, ExtensionAware target, Directory projectDirectory) {
32-
this.problems = this.objects.newInstance(GitVersionProblems)
3332
this.gitversion = this.objects.property(Output)
3433
.value(GitVersionValueSource.of(plugin, projectDirectory))
3534
.tap { disallowChanges(); finalizeValueOnRead() }
3635

3736
if (target instanceof Project)
38-
target.afterEvaluate { this.finish(it) }
37+
this.attachTo(target)
38+
}
39+
40+
void attachTo(Project project) {
41+
if (this.hasProject) return
42+
43+
this.hasProject = true
44+
project.afterEvaluate { this.finish(it) }
3945
}
4046

4147
@CompileDynamic
@@ -49,11 +55,12 @@ import javax.inject.Inject
4955
}
5056
}
5157

52-
if (this.problems.test('net.minecraftforge.gitversion.log.version')) {
58+
final problems = project.objects.newInstance(GitVersionProblems)
59+
if (problems.test('net.minecraftforge.gitversion.log.version')) {
5360
if (project.version === null) {
5461
project.logger.warn('WARNING: Project does not have a version despite applying Git Version Gradle!')
5562
} else {
56-
project.logger.lifecycle('{}', project.version)
63+
project.logger.lifecycle('Version: {}', project.version)
5764
}
5865
}
5966
}

gitversion-gradle/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionExtensionInternal.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55
package net.minecraftforge.gitversion.gradle;
66

7+
import org.gradle.api.Project;
78
import org.gradle.api.reflect.HasPublicType;
89
import org.gradle.api.reflect.TypeOf;
910
import org.jetbrains.annotations.NotNullByDefault;
@@ -27,6 +28,8 @@ default TypeOf<?> getPublicType() {
2728
return TypeOf.typeOf(GitVersionExtension.class);
2829
}
2930

31+
void attachTo(Project project);
32+
3033

3134
/* VERSIONING */
3235

gitversion-gradle/src/main/groovy/net/minecraftforge/gitversion/gradle/GitVersionPlugin.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public void setup(ExtensionAware target) {
3434
if (target instanceof Project project && Objects.equals(this.getProjectLayout().getProjectDirectory().getAsFile(), this.getProjectLayout().getSettingsDirectory().getAsFile())) {
3535
var gitversion = project.getGradle().getExtensions().findByType(GitVersionExtension.class);
3636
if (gitversion != null) {
37+
((GitVersionExtensionInternal) gitversion).attachTo(project);
3738
target.getExtensions().add("gitversion", gitversion);
3839
return;
3940
}
@@ -43,7 +44,12 @@ public void setup(ExtensionAware target) {
4344
if (target instanceof Settings settings) {
4445
var gradle = settings.getGradle();
4546
gradle.getExtensions().add(GitVersionExtension.NAME, gitversion);
46-
gradle.beforeProject(project -> project.setVersion(gitversion.getTagOffset()));
47+
gradle.beforeProject(project -> {
48+
project.setVersion(gitversion.getTagOffset());
49+
((GitVersionExtensionInternal) gitversion).attachTo(project);
50+
});
51+
} else if (target instanceof Project project) {
52+
((GitVersionExtensionInternal) gitversion).attachTo(project);
4753
}
4854
}
4955
}

0 commit comments

Comments
 (0)