From 219194828f4c4e4399877f755690bc5a79203d03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Wy=C5=82uda?= Date: Sun, 4 Aug 2013 19:21:27 +0200 Subject: [PATCH] Fix forge.gradle to work with subprojects and to use project.ext instead of project dynamic properties (which are scheduled to be removed in Gradle 2.0). --- impl/src/main/resources/forge.gradle | 372 +++++++++++++-------------- 1 file changed, 186 insertions(+), 186 deletions(-) diff --git a/impl/src/main/resources/forge.gradle b/impl/src/main/resources/forge.gradle index fc02449..e73c119 100644 --- a/impl/src/main/resources/forge.gradle +++ b/impl/src/main/resources/forge.gradle @@ -1,119 +1,118 @@ // FORGE_LIBRARY_VERSION=2.0 allprojects { - afterEvaluate { - if (project.hasProperty('profile')) { - def profileFile = "$projectDir.path/$profile-profile.gradle" - if (new File(profileFile).exists()) { - project.apply from: profileFile + if (!project.ext.has('forgeInstalled')) { + project.ext.set('forgeInstalled', true) + + afterEvaluate { + if (project.ext.has('profile')) { + def profileFile = "$projectDir.path/$profile-profile.gradle" + if (new File(profileFile).exists()) { + project.apply from: profileFile + } } - } - } - if (project.hasProperty('_archiveName')) { - assemble.taskDependencies.getDependencies(assemble).each { - if (it.hasProperty('archiveName')) { - it.archiveName = project._archiveName + - it.archiveName.substring(it.archiveName.lastIndexOf('.')) + if (project.ext.has('_archiveName')) { + assemble.taskDependencies.getDependencies(assemble).each { + if (it.hasProperty('archiveName')) { + it.archiveName = project.ext._archiveName + + it.archiveName.substring(it.archiveName.lastIndexOf('.')) + } + } } } - } -} -if (!project.hasProperty('forgeInstalled')) { - project.set('forgeInstalled', true) - - project.set('archiveName', { - project.set('_archiveName', it) - }) + project.ext.set('archiveName', { + project.ext.set('_archiveName', it) + }) - project.set('_managedDependencies', [:]) - project.set('managed', { - project._managedDependencies[[ - group: it.group, - name: it.name - ]] = [ - version: it.version, - config: it.config - ] - }) - project.set('direct', { - def _groupName = [ - group: it.group, - name: it.name - ] - it.handler.add(project._managedDependencies[_groupName].config, - _groupName.group + ':' + _groupName.name + ':' + project._managedDependencies[_groupName].version) - }) + project.ext.set('_managedDependencies', [:]) + project.ext.set('managed', { + project.ext._managedDependencies[[ + group: it.group, + name: it.name + ]] = [ + version: it.version, + config: it.config + ] + }) + project.ext.set('direct', { + def _groupName = [ + group: it.group, + name: it.name + ] + it.handler.add(project.ext._managedDependencies[_groupName].config, + _groupName.group + ':' + _groupName.name + ':' + + project.ext._managedDependencies[_groupName].version) + }) - task forgeOutput << { - def indentLevel = 0 - def outputFile = new File("$projectDir.path/forge-output.xml").newPrintWriter() - def indent = { - indentLevel.times { - outputFile.print ' ' + task forgeOutput << { + def indentLevel = 0 + def outputFile = new File("$projectDir.path/forge-output.xml").newPrintWriter() + def indent = { + indentLevel.times { + outputFile.print ' ' + } } - } - def output = { - indent() - outputFile.println it - } - def outputInc = { - output it - indentLevel++ - } - def outputDec = { - indentLevel-- - output it - } - def outputRelative = { file, to -> - output file.absolutePath.substring(to.absolutePath.length() + 1).replace("\\", "/") - } - def outputProject = { p -> - outputInc '' - outputInc '' - output p.group - outputDec '' - outputInc '' - output p.name - outputDec '' - outputInc '' - output p.version - outputDec '' - def _assembleArchiveTask - if (p.tasks.findByPath('assemble') != null) { - assemble.taskDependencies.getDependencies(assemble).each { - if (it.hasProperty('archiveName')) { - _assembleArchiveTask = it - } - } - } - outputInc '' - output _assembleArchiveTask != null ? _assembleArchiveTask.name : '' - outputDec '' - outputInc '' - output _assembleArchiveTask != null ? - "$buildDir.name/$libsDirName/$_assembleArchiveTask.archiveName" - : '' - outputDec '' - outputInc '' - p.tasks.each { t -> - outputInc '' + def output = { + indent() + outputFile.println it + } + def outputInc = { + output it + indentLevel++ + } + def outputDec = { + indentLevel-- + output it + } + def outputRelative = { file, to -> + output file.absolutePath.substring(to.absolutePath.length() + 1).replace("\\", "/") + } + def outputProject = { p -> + outputInc '' + outputInc '' + output p.group + outputDec '' outputInc '' - output t.name + output p.name outputDec '' - outputInc '' - t.taskDependencies.getDependencies(t).each { + outputInc '' + output p.version + outputDec '' + def _assembleArchiveTask + if (p.tasks.findByPath('assemble') != null) { + assemble.taskDependencies.getDependencies(assemble).each { + if (it.hasProperty('archiveName')) { + _assembleArchiveTask = it + } + } + } + outputInc '' + output _assembleArchiveTask != null ? _assembleArchiveTask.name : '' + outputDec '' + outputInc '' + output _assembleArchiveTask != null ? + "$buildDir.name/$libsDirName/$_assembleArchiveTask.archiveName" + : '' + outputDec '' + outputInc '' + p.tasks.each { t -> outputInc '' - output it.name + outputInc '' + output t.name + outputDec '' + outputInc '' + t.taskDependencies.getDependencies(t).each { + outputInc '' + output it.name + outputDec '' + } + outputDec '' outputDec '' } - outputDec '' - outputDec '' - } - outputDec '' - outputInc '' - p.configurations.each { c -> - if (c.allDependencies.size() > 0) { + outputDec '' + outputInc '' + p.configurations.each { c -> c.allDependencies.each { d -> outputInc '' outputInc '' @@ -131,97 +130,98 @@ if (!project.hasProperty('forgeInstalled')) { outputDec '' } } - } - outputDec '' - outputInc '' - p._managedDependencies.each { groupName, configVersion -> - outputInc '' - outputInc '' - output groupName.name - outputDec '' - outputInc '' - output groupName.group - outputDec '' - outputInc '' - output configVersion.version - outputDec '' - outputInc '' - output configVersion.config - outputDec '' - outputDec '' - } - outputDec '' - outputInc '' - p.repositories.each { r -> - outputInc '' - outputInc '' - output r.name - outputDec '' - outputInc '' - output r.url - outputDec '' - outputDec '' - } - outputDec '' - outputInc '' - p.plugins.each { plugin -> - outputInc '' - outputInc '' - output plugin.class.name - outputDec '' - outputDec '' - } - outputDec '' - outputInc '' - p.sourceSets.each { set -> - outputInc '' - outputInc '' - output set.name - outputDec '' - outputInc '' - set.java.srcDirs.each { - outputInc '' - outputRelative(it, project.projectDir) - outputDec '' + outputDec '' + outputInc '' + p.ext._managedDependencies.each { groupName, configVersion -> + outputInc '' + outputInc '' + output groupName.name + outputDec '' + outputInc '' + output groupName.group + outputDec '' + outputInc '' + output configVersion.version + outputDec '' + outputInc '' + output configVersion.config + outputDec '' + outputDec '' + } + outputDec '' + outputInc '' + p.repositories.each { r -> + outputInc '' + outputInc '' + output r.name + outputDec '' + outputInc '' + output r.url + outputDec '' + outputDec '' } - outputDec '' - outputInc '' - set.resources.srcDirs.each { - outputInc '' - outputRelative(it, project.projectDir) - outputDec '' + outputDec '' + outputInc '' + p.plugins.each { plugin -> + outputInc '' + outputInc '' + output plugin.class.name + outputDec '' + outputDec '' } - outputDec '' - outputDec '' + outputDec '' + outputInc '' + p.sourceSets.each { set -> + outputInc '' + outputInc '' + output set.name + outputDec '' + outputInc '' + set.java.srcDirs.each { + outputInc '' + outputRelative(it, project.projectDir) + outputDec '' + } + outputDec '' + outputInc '' + set.resources.srcDirs.each { + outputInc '' + outputRelative(it, project.projectDir) + outputDec '' + } + outputDec '' + outputDec '' + } + outputDec '' + outputDec '' } - outputDec '' - outputDec '' - } - outputInc '' - outputProject project - projectDir.eachFileMatch(groovy.io.FileType.FILES, { - it.matches('^[a-zA-Z0-9]+-profile\\.gradle$') - }, { - outputInc '' - outputInc '' - output it.name.substring(0, it.name.indexOf('-')) - outputDec '' + outputInc '' + outputProject project + projectDir.eachFileMatch(groovy.io.FileType.FILES, { + it.matches('^[a-zA-Z0-9]+-profile\\.gradle$') + }, { + outputInc '' + outputInc '' + output it.name.substring(0, it.name.indexOf('-')) + outputDec '' - project.configurations.each { - it.allDependencies.clear() - } - project.plugins.clear() - project.sourceSets.clear() - project.repositories.clear() - project.tasks.clear() + project.configurations.each { + it.allDependencies.clear() + } + project.plugins.clear() + project.sourceSets.clear() + project.repositories.clear() + project.tasks.clear() + project.ext.set('_managedDependencies', [:]) - project.apply from: it - outputProject project - outputDec '' - }) - outputDec '' + project.apply from: it + outputProject project + outputDec '' + }) + outputDec '' - outputFile.close() + outputFile.close() + } } }