build scripts: create new AntBuilder's instance instead of getting it from GantBinding

This simplifies code and reduces dependency on Gant.
This commit is contained in:
nik
2017-07-11 14:21:52 +03:00
parent 90fab02d40
commit 691d8a4f06
7 changed files with 18 additions and 24 deletions
@@ -20,17 +20,13 @@ import org.codehaus.gant.GantBinding
* @author nik
*/
class IdeaCommunityBuilder {
private final GantBinding binding
private final BuildContext buildContext
IdeaCommunityBuilder(String home, GantBinding binding, BuildOptions options = new BuildOptions(), String projectHome = home) {
this.binding = binding
buildContext = BuildContext.createContext(binding.ant, home, projectHome, new IdeaCommunityProperties(home), ProprietaryBuildTools.DUMMY,
options)
buildContext = BuildContext.createContext(home, projectHome, new IdeaCommunityProperties(home), ProprietaryBuildTools.DUMMY, options)
}
IdeaCommunityBuilder(GantBinding binding, BuildContext buildContext) {
this.binding = binding
this.buildContext = buildContext
}
+1 -1
View File
@@ -24,6 +24,6 @@ import org.jetbrains.jps.idea.IdeaProjectLoader
target("default": "Run tests") {
String home = IdeaProjectLoader.guessHome(this)
String outputDir = "$home/out/tests"
def context = CompilationContextImpl.create(home, home, outputDir, this)
def context = CompilationContextImpl.create(home, home, outputDir)
TestingTasks.create(context).runTests([], "community-main", null)
}
@@ -86,20 +86,20 @@ abstract class BuildContext implements CompilationContext {
abstract boolean shouldBuildDistributionForOS(String os)
static BuildContext createContext(AntBuilder ant, String communityHome, String projectHome, ProductProperties productProperties,
static BuildContext createContext(String communityHome, String projectHome, ProductProperties productProperties,
ProprietaryBuildTools proprietaryBuildTools = ProprietaryBuildTools.DUMMY,
BuildOptions options = new BuildOptions()) {
return BuildContextImpl.create(ant, communityHome, projectHome, productProperties, proprietaryBuildTools, options)
return BuildContextImpl.create(communityHome, projectHome, productProperties, proprietaryBuildTools, options)
}
/**
* @deprecated use {@link #createContext(AntBuilder, String, String, ProductProperties, ProprietaryBuildTools, BuildOptions)} instead
* @deprecated use {@link #createContext(String, String, ProductProperties, ProprietaryBuildTools, BuildOptions)} instead
*/
static BuildContext createContext(AntBuilder ant, JpsGantProjectBuilder projectBuilder, JpsProject project, JpsGlobal global,
String communityHome, String projectHome, ProductProperties productProperties,
ProprietaryBuildTools proprietaryBuildTools = ProprietaryBuildTools.DUMMY,
BuildOptions options = new BuildOptions()) {
return BuildContextImpl.create(ant, communityHome, projectHome, productProperties, proprietaryBuildTools, options)
String communityHome, String projectHome, ProductProperties productProperties,
ProprietaryBuildTools proprietaryBuildTools = ProprietaryBuildTools.DUMMY,
BuildOptions options = new BuildOptions()) {
return BuildContextImpl.create(communityHome, projectHome, productProperties, proprietaryBuildTools, options)
}
/**
@@ -90,7 +90,7 @@ abstract class BuildTasks {
BuildUtils.addToClassPath("$projectHome/$it", binding.ant)
}
ProductProperties productProperties = (ProductProperties) Class.forName(productPropertiesClassName).constructors[0].newInstance(projectHome)
BuildContext context = BuildContext.createContext(binding.ant, "$projectHome/$communityHomeRelativePath", projectHome,
BuildContext context = BuildContext.createContext("$projectHome/$communityHomeRelativePath", projectHome,
productProperties, proprietaryBuildTools)
return context
}
@@ -37,13 +37,13 @@ class BuildContextImpl extends BuildContext {
private final JpsGlobal global
private final CompilationContextImpl compilationContext
static BuildContextImpl create(AntBuilder ant, String communityHome, String projectHome, ProductProperties productProperties,
static BuildContextImpl create(String communityHome, String projectHome, ProductProperties productProperties,
ProprietaryBuildTools proprietaryBuildTools, BuildOptions options) {
WindowsDistributionCustomizer windowsDistributionCustomizer = productProperties.createWindowsCustomizer(projectHome)
LinuxDistributionCustomizer linuxDistributionCustomizer = productProperties.createLinuxCustomizer(projectHome)
MacDistributionCustomizer macDistributionCustomizer = productProperties.createMacCustomizer(projectHome)
def compilationContext = CompilationContextImpl.create(ant, communityHome, projectHome,
def compilationContext = CompilationContextImpl.create(communityHome, projectHome,
createBuildOutputRootEvaluator(projectHome, productProperties), options)
def context = new BuildContextImpl(compilationContext, productProperties,
windowsDistributionCustomizer, linuxDistributionCustomizer, macDistributionCustomizer,
@@ -18,7 +18,6 @@ package org.jetbrains.intellij.build.impl
import com.intellij.openapi.util.io.FileUtil
import groovy.transform.CompileDynamic
import groovy.transform.CompileStatic
import org.codehaus.gant.GantBinding
import org.jetbrains.intellij.build.*
import org.jetbrains.jps.gant.JpsGantProjectBuilder
import org.jetbrains.jps.model.JpsElementFactory
@@ -52,15 +51,15 @@ class CompilationContextImpl implements CompilationContext {
@SuppressWarnings("GrUnresolvedAccess")
@CompileDynamic
static CompilationContextImpl create(String communityHome, String projectHome, String defaultOutputRoot, Script gantScript) {
GantBinding binding = (GantBinding) gantScript.binding
static CompilationContextImpl create(String communityHome, String projectHome, String defaultOutputRoot) {
//noinspection GroovyAssignabilityCheck
return create(binding.ant, communityHome, projectHome,
{ p, m -> defaultOutputRoot } as BiFunction<JpsProject, BuildMessages, String>, new BuildOptions())
return create(communityHome, projectHome,
{ p, m -> defaultOutputRoot } as BiFunction<JpsProject, BuildMessages, String>, new BuildOptions())
}
static CompilationContextImpl create(AntBuilder ant, String communityHome, String projectHome,
static CompilationContextImpl create(String communityHome, String projectHome,
BiFunction<JpsProject, BuildMessages, String> buildOutputRootEvaluator, BuildOptions options) {
AntBuilder ant = new AntBuilder()
def messages = BuildMessagesImpl.create(ant.project)
communityHome = toCanonicalPath(communityHome)
if (["platform/build-scripts", "bin/log.xml", "build.txt"].any { !new File(communityHome, it).exists() }) {
@@ -36,8 +36,7 @@ class PythonCommunityPluginBuilder {
def build() {
def pluginBuildNumber = System.getProperty("build.number", "SNAPSHOT")
def options = new BuildOptions(targetOS: BuildOptions.OS_NONE, buildNumber: pluginBuildNumber, outputRootPath: "$home/out/pycharmCE")
def buildContext = BuildContext.createContext(binding.ant, home, home, new PythonCommunityPluginProperties(),
ProprietaryBuildTools.DUMMY, options)
def buildContext = BuildContext.createContext(home, home, new PythonCommunityPluginProperties(), ProprietaryBuildTools.DUMMY, options)
def buildTasks = BuildTasks.create(buildContext)
buildTasks.buildDistributions()
def pluginsPaths = new File("$buildContext.paths.buildOutputRoot/plugins-paths.txt")