Experiment with moving creation of artifacts dir to gradle
This commit is contained in:
parent
9736937fed
commit
61d8aff1b4
|
@ -21,7 +21,7 @@ val Project.codegenDir get() = buildDir.resolve("generated/sources/jfCodegen")
|
|||
fun SourceSet.generate(project: Project, generate: Action<ContentGenerator>) {
|
||||
val generators = project.extra["codeGenerators"] as LinkedHashMap<String, ContentGenerator.Generated>
|
||||
val exists = generators.containsKey(name)
|
||||
val generator = ContentGenerator().run(generate)
|
||||
val generator = ContentGenerator().runAction(generate)
|
||||
generators[name] = if (exists) generators[name]!!.merge(generator.finalize()) else generator.finalize()
|
||||
if (!exists) {
|
||||
java.srcDir(project.codegenDir.resolve("java/$name"))
|
||||
|
@ -91,9 +91,9 @@ class ContentGenerator {
|
|||
|
||||
// Extensions for TypeSpec.Builder
|
||||
fun TypeSpec.Builder.javadoc(`import`: String) = addJavadoc(import)
|
||||
fun TypeSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().run(generate).build())
|
||||
fun TypeSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun TypeSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun TypeSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().runAction(generate).build())
|
||||
fun TypeSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun TypeSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun TypeSpec.Builder.modifiers(vararg modifiers: Modifier) = addModifiers(*modifiers)
|
||||
fun TypeSpec.Builder.typeVariable(typeVariable: TypeVariableName) = addTypeVariable(typeVariable)
|
||||
fun TypeSpec.Builder.superInterface(superInterface: TypeName) = addSuperinterface(superInterface)
|
||||
|
@ -103,8 +103,8 @@ fun TypeSpec.Builder.superInterface(superInterface: TypeMirror) = addSuperinterf
|
|||
fun TypeSpec.Builder.superInterface(superInterface: TypeMirror, avoidNestedTypeNameClashes: Boolean) = addSuperinterface(superInterface, avoidNestedTypeNameClashes)
|
||||
fun TypeSpec.Builder.enumConstant(name: String) = addEnumConstant(name)
|
||||
fun TypeSpec.Builder.enumConstant(name: String, typeSpec: TypeSpec) = addEnumConstant(name, typeSpec)
|
||||
fun TypeSpec.Builder.field(type: Type, name: String, vararg modifiers: Modifier, generate: Action<FieldSpec.Builder>? = null) = addField(FieldSpec.builder(type, name, *modifiers).run(generate).build())
|
||||
fun TypeSpec.Builder.field(type: TypeName, name: String, vararg modifiers: Modifier, generate: Action<FieldSpec.Builder>? = null) = addField(FieldSpec.builder(type, name, *modifiers).run(generate).build())
|
||||
fun TypeSpec.Builder.field(type: Type, name: String, vararg modifiers: Modifier, generate: Action<FieldSpec.Builder>? = null) = addField(FieldSpec.builder(type, name, *modifiers).runAction(generate).build())
|
||||
fun TypeSpec.Builder.field(type: TypeName, name: String, vararg modifiers: Modifier, generate: Action<FieldSpec.Builder>? = null) = addField(FieldSpec.builder(type, name, *modifiers).runAction(generate).build())
|
||||
fun TypeSpec.Builder.field(name: String, value: Boolean, vararg modifiers: Modifier) = field(Boolean::class.java, name, *modifiers) { initializer("$value") }
|
||||
fun TypeSpec.Builder.field(name: String, value: Short, vararg modifiers: Modifier) = field(Short::class.java, name, *modifiers) { initializer("$value") }
|
||||
fun TypeSpec.Builder.field(name: String, value: Int, vararg modifiers: Modifier) = field(Int::class.java, name, *modifiers) { initializer("$value") }
|
||||
|
@ -112,50 +112,50 @@ fun TypeSpec.Builder.field(name: String, value: Long, vararg modifiers: Modifier
|
|||
fun TypeSpec.Builder.field(name: String, value: Float, vararg modifiers: Modifier) = field(Float::class.java, name, *modifiers) { initializer("${value}f") }
|
||||
fun TypeSpec.Builder.field(name: String, value: Double, vararg modifiers: Modifier) = field(Double::class.java, name, *modifiers) { initializer("$value") }
|
||||
fun TypeSpec.Builder.field(name: String, value: String, vararg modifiers: Modifier) = field(String::class.java, name, *modifiers) { initializer("\$S", value) }
|
||||
fun TypeSpec.Builder.static(generate: Action<CodeBlock.Builder>) = addStaticBlock(CodeBlock.builder().run(generate).build())
|
||||
fun TypeSpec.Builder.initializer(generate: Action<CodeBlock.Builder>) = addInitializerBlock(CodeBlock.builder().run(generate).build())
|
||||
fun TypeSpec.Builder.method(name: String, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.methodBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.override(element: ExecutableElement, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.overriding(element).run(generate).build())
|
||||
fun TypeSpec.Builder.override(element: ExecutableElement, enclosing: DeclaredType, types: Types, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.overriding(element, enclosing, types).run(generate).build())
|
||||
fun TypeSpec.Builder.constructor(generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.constructorBuilder().run(generate).build())
|
||||
fun TypeSpec.Builder.innerEnum(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.enumBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerInterface(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.interfaceBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerClass(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.classBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerAnnotation(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.annotationBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerEnum(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.enumBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerInterface(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.interfaceBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerClass(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.classBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.innerAnnotation(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.annotationBuilder(name).run(generate).build())
|
||||
fun TypeSpec.Builder.static(generate: Action<CodeBlock.Builder>) = addStaticBlock(CodeBlock.builder().runAction(generate).build())
|
||||
fun TypeSpec.Builder.initializer(generate: Action<CodeBlock.Builder>) = addInitializerBlock(CodeBlock.builder().runAction(generate).build())
|
||||
fun TypeSpec.Builder.method(name: String, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.methodBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.override(element: ExecutableElement, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.overriding(element).runAction(generate).build())
|
||||
fun TypeSpec.Builder.override(element: ExecutableElement, enclosing: DeclaredType, types: Types, generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.overriding(element, enclosing, types).runAction(generate).build())
|
||||
fun TypeSpec.Builder.constructor(generate: Action<MethodSpec.Builder>) = addMethod(MethodSpec.constructorBuilder().runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerEnum(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.enumBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerInterface(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.interfaceBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerClass(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.classBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerAnnotation(name: String, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.annotationBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerEnum(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.enumBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerInterface(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.interfaceBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerClass(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.classBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.innerAnnotation(name: ClassName, generate: Action<TypeSpec.Builder>) = addType(TypeSpec.annotationBuilder(name).runAction(generate).build())
|
||||
fun TypeSpec.Builder.origin(origin: Element) = addOriginatingElement(origin)
|
||||
|
||||
// Extensions for AnnotationSpec.Builder
|
||||
fun AnnotationSpec.Builder.member(name: String, format: String, vararg args: Any) = addMember(name, format, args)
|
||||
fun AnnotationSpec.Builder.member(name: String, generate: Action<CodeBlock.Builder>) = addMember(name, CodeBlock.builder().run(generate).build())
|
||||
fun AnnotationSpec.Builder.member(name: String, generate: Action<CodeBlock.Builder>) = addMember(name, CodeBlock.builder().runAction(generate).build())
|
||||
|
||||
// Extensions for FieldSpec.Builder
|
||||
fun FieldSpec.Builder.initializer(generate: Action<CodeBlock.Builder>) = initializer(CodeBlock.builder().run(generate).build())
|
||||
fun FieldSpec.Builder.initializer(generate: Action<CodeBlock.Builder>) = initializer(CodeBlock.builder().runAction(generate).build())
|
||||
|
||||
// Extensions for MethodSpec.Builder
|
||||
fun MethodSpec.Builder.javadoc(`import`: String) = addJavadoc(import)
|
||||
fun MethodSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().run(generate).build())
|
||||
fun MethodSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun MethodSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun MethodSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().runAction(generate).build())
|
||||
fun MethodSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun MethodSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun MethodSpec.Builder.modifiers(vararg modifiers: Modifier) = addModifiers(*modifiers)
|
||||
fun MethodSpec.Builder.typeVariable(typeVariable: TypeVariableName) = addTypeVariable(typeVariable)
|
||||
fun MethodSpec.Builder.parameter(type: Type, name: String, vararg modifiers: Modifier, generate: Action<ParameterSpec.Builder>) = addParameter(ParameterSpec.builder(type, name, *modifiers).run(generate).build())
|
||||
fun MethodSpec.Builder.parameter(type: TypeName, name: String, vararg modifiers: Modifier, generate: Action<ParameterSpec.Builder>) = addParameter(ParameterSpec.builder(type, name, *modifiers).run(generate).build())
|
||||
fun MethodSpec.Builder.parameter(type: Type, name: String, vararg modifiers: Modifier, generate: Action<ParameterSpec.Builder>) = addParameter(ParameterSpec.builder(type, name, *modifiers).runAction(generate).build())
|
||||
fun MethodSpec.Builder.parameter(type: TypeName, name: String, vararg modifiers: Modifier, generate: Action<ParameterSpec.Builder>) = addParameter(ParameterSpec.builder(type, name, *modifiers).runAction(generate).build())
|
||||
fun MethodSpec.Builder.exception(exception: Type) = addException(exception)
|
||||
fun MethodSpec.Builder.exception(exception: TypeName) = addException(exception)
|
||||
fun MethodSpec.Builder.code(generate: Action<CodeBlock.Builder>) = addCode(CodeBlock.builder().run(generate).build())
|
||||
fun MethodSpec.Builder.defaultValue(generate: Action<CodeBlock.Builder>) = defaultValue(CodeBlock.builder().run(generate).build())
|
||||
fun MethodSpec.Builder.code(generate: Action<CodeBlock.Builder>) = addCode(CodeBlock.builder().runAction(generate).build())
|
||||
fun MethodSpec.Builder.defaultValue(generate: Action<CodeBlock.Builder>) = defaultValue(CodeBlock.builder().runAction(generate).build())
|
||||
|
||||
// Extensions for ParameterSpec.Builder
|
||||
fun ParameterSpec.Builder.javadoc(`import`: String) = addJavadoc(import)
|
||||
fun ParameterSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().run(generate).build())
|
||||
fun ParameterSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun ParameterSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).run(generate).build())
|
||||
fun ParameterSpec.Builder.javadoc(generate: Action<CodeBlock.Builder>) = addJavadoc(CodeBlock.builder().runAction(generate).build())
|
||||
fun ParameterSpec.Builder.annotation(annotation: Class<*>, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun ParameterSpec.Builder.annotation(annotation: ClassName, generate: Action<AnnotationSpec.Builder>? = null) = addAnnotation(AnnotationSpec.builder(annotation).runAction(generate).build())
|
||||
fun ParameterSpec.Builder.modifiers(vararg modifiers: Modifier) = addModifiers(*modifiers)
|
||||
|
||||
// Extensions for CodeBlock.Builder
|
||||
fun CodeBlock.Builder.controlFlow(controlFlow: String, vararg args: Any, generate: Action<CodeBlock.Builder>) = beginControlFlow(controlFlow, *args).run(generate).endControlFlow()
|
||||
fun CodeBlock.Builder.indent(generate: Action<CodeBlock.Builder>) = indent().run(generate).unindent()
|
||||
fun CodeBlock.Builder.controlFlow(controlFlow: String, vararg args: Any, generate: Action<CodeBlock.Builder>) = beginControlFlow(controlFlow, *args).runAction(generate).endControlFlow()
|
||||
fun CodeBlock.Builder.indent(generate: Action<CodeBlock.Builder>) = indent().runAction(generate).unindent()
|
|
@ -24,6 +24,10 @@ var Project.changelog: String
|
|||
get() = if (extra.has("changelog")) extra["changelog"].toString() else ""
|
||||
set(value) = extra.set("changelog", value)
|
||||
|
||||
var Project.flavour: String
|
||||
get() = prop("flavour", "").trim()
|
||||
set(value) = setProperty("flavour", value)
|
||||
|
||||
val TaskContainer.deployDebug: Task get() = findByName("deployDebug") ?: register("deployDebug").get().dependsOn(named<DefaultTask>("build").get())
|
||||
val TaskContainer.deployRelease: Task get() = findByName("deployRelease") ?: register("deployRelease").get().dependsOn(deployDebug)
|
||||
|
||||
|
@ -32,7 +36,7 @@ fun Project.prop(name: String, default: String? = null): String =
|
|||
else default
|
||||
|
||||
// Utility to run actions on values
|
||||
fun <T> T.run(action: Action<T>?): T {
|
||||
fun <T> T.runAction(action: Action<T>?): T {
|
||||
action?.execute(this!!)
|
||||
return this
|
||||
}
|
|
@ -90,5 +90,22 @@ subprojects {
|
|||
}
|
||||
}
|
||||
|
||||
val moveArtifacts by tasks.registering(Copy::class) {
|
||||
val suffix = if (flavour.isEmpty()) "" else "-$flavour"
|
||||
|
||||
val sources = mapOf("latest$suffix.jar" to tasks.remapJar, "latest$suffix-dev.jar" to tasks.shadowJar)
|
||||
|
||||
for (source in sources) {
|
||||
from(source.value.map { it.archiveFile }) {
|
||||
this.rename { source.key }
|
||||
}
|
||||
dependsOn(source.value)
|
||||
}
|
||||
|
||||
into(buildDir.resolve("artifacts"))
|
||||
}
|
||||
|
||||
tasks.deployDebug.dependsOn(moveArtifacts)
|
||||
|
||||
if (hasProperty("curseforge_id")) apply(plugin = "jfmod.curseforge")
|
||||
if (hasProperty("modrinth_id")) apply(plugin = "jfmod.modrinth")
|
||||
|
|
Loading…
Reference in New Issue