mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
build scripts cleanup: unused methods removed, some method names corrected, obsolete todo's removed
This commit is contained in:
@@ -38,33 +38,11 @@ abstract class BuildTasks {
|
||||
*/
|
||||
abstract void zipSourcesOfModules(Collection<String> modules, String targetFilePath)
|
||||
|
||||
/**
|
||||
* Updates search/searchableOptions.xml file in {@code targetModuleName} module output directory
|
||||
* <br>
|
||||
* todo[nik] this is temporary solution until code from layouts.gant files moved to the new builders. After that this method will
|
||||
* be called inside {@link #buildDistributions()}
|
||||
*/
|
||||
abstract void buildSearchableOptions(String targetModuleName, List<String> modulesToIndex, List<String> pathsToLicenses)
|
||||
|
||||
/**
|
||||
* Creates a copy of *ApplicationInfo.xml file with substituted __BUILD_NUMBER__ and __BUILD_DATE__ placeholders
|
||||
* <br>
|
||||
* todo[nik] this is temporary solution until code from layouts.gant files moved to the new builders. After that this method will
|
||||
* be called inside {@link #buildDistributions()}
|
||||
* @return path to the copied file
|
||||
*/
|
||||
abstract File patchApplicationInfo()
|
||||
|
||||
/**
|
||||
* Creates distribution for all operating systems from JAR files located at {@link BuildPaths#distAll}
|
||||
*/
|
||||
abstract void buildDistributions()
|
||||
|
||||
/**
|
||||
* Produces distributions for all operating systems from sources. This includes compiling required modules, packing their output into JAR
|
||||
* files accordingly to {@link ProductProperties#productLayout}, and creating distributions and installers for all OS.
|
||||
*/
|
||||
abstract void compileModulesAndBuildDistributions()
|
||||
abstract void buildDistributions()
|
||||
|
||||
abstract void compileProjectAndTests(List<String> includingTestsInModules)
|
||||
|
||||
@@ -97,6 +75,6 @@ abstract class BuildTasks {
|
||||
ProductProperties productProperties = (ProductProperties) Class.forName(productPropertiesClassName).constructors[0].newInstance(projectHome)
|
||||
def context = BuildContext.createContext(binding.ant, binding.projectBuilder, binding.project, binding.global,
|
||||
"$projectHome/$communityHomeRelativePath", projectHome, productProperties, proprietaryBuildTools)
|
||||
create(context).compileModulesAndBuildDistributions()
|
||||
create(context).buildDistributions()
|
||||
}
|
||||
}
|
||||
@@ -41,13 +41,13 @@ class IdeaCommunityBuilder {
|
||||
}
|
||||
|
||||
void buildDistJars() {
|
||||
BuildTasks.create(buildContext).compileModulesAndBuildDistributions()
|
||||
BuildTasks.create(buildContext).buildDistributions()
|
||||
layoutAdditionalArtifacts()
|
||||
}
|
||||
|
||||
void buildDistributions() {
|
||||
def tasks = BuildTasks.create(buildContext)
|
||||
tasks.compileModulesAndBuildDistributions()
|
||||
tasks.buildDistributions()
|
||||
layoutAdditionalArtifacts(true)
|
||||
tasks.buildUpdaterJar()
|
||||
}
|
||||
|
||||
@@ -164,8 +164,6 @@ abstract class ProductProperties {
|
||||
*/
|
||||
boolean enableYourkitAgentInEAP = false
|
||||
|
||||
List<String> excludedPlugins = []
|
||||
|
||||
/**
|
||||
* Specified additional modules (not included into the product layout) which need to be compiled when product is built.
|
||||
* todo[nik] get rid of this
|
||||
|
||||
@@ -311,9 +311,7 @@ class BuildContextImpl extends BuildContext {
|
||||
|
||||
private boolean isJavaSupportedInProduct() {
|
||||
def productLayout = productProperties.productLayout
|
||||
return productLayout.mainJarName == null ||
|
||||
//todo[nik] remove this condition later; currently build scripts for IDEA don't fully migrated to the new scheme
|
||||
productLayout.includedPlatformModules.contains("execution-impl")
|
||||
return productLayout.includedPlatformModules.contains("execution-impl")
|
||||
}
|
||||
|
||||
@CompileDynamic
|
||||
|
||||
@@ -91,12 +91,6 @@ class BuildTasksImpl extends BuildTasks {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
void buildSearchableOptions(String targetModuleName, List<String> modulesToIndex, List<String> pathsToLicenses) {
|
||||
buildSearchableOptions(new File(buildContext.projectBuilder.moduleOutput(buildContext.findRequiredModule(targetModuleName))), modulesToIndex, pathsToLicenses)
|
||||
}
|
||||
|
||||
//todo[nik] do we need 'cp' and 'jvmArgs' parameters?
|
||||
void buildSearchableOptions(File targetDirectory, List<String> modulesToIndex, List<String> pathsToLicenses) {
|
||||
buildContext.executeStep("Build searchable options index", BuildOptions.SEARCHABLE_OPTIONS_INDEX_STEP, {
|
||||
def javaRuntimeClasses = "${buildContext.projectBuilder.moduleOutput(buildContext.findModule("java-runtime"))}"
|
||||
@@ -187,7 +181,6 @@ idea.fatal.error.notification=disabled
|
||||
return propertiesFile
|
||||
}
|
||||
|
||||
@Override
|
||||
File patchApplicationInfo() {
|
||||
def sourceFile = buildContext.findApplicationInfoInSources()
|
||||
def targetFile = new File(buildContext.paths.temp, sourceFile.name)
|
||||
@@ -229,38 +222,6 @@ idea.fatal.error.notification=disabled
|
||||
src.filterLine { String it -> !it.contains('appender-ref ref="CONSOLE-WARN"') }.writeTo(dst.newWriter()).close()
|
||||
}
|
||||
|
||||
@Override
|
||||
void buildDistributions() {
|
||||
layoutShared()
|
||||
|
||||
def propertiesFile = patchIdeaPropertiesFile()
|
||||
List<BuildTaskRunnable<String>> tasks = [
|
||||
createDistributionForOsTask("win", { BuildContext context ->
|
||||
context.windowsDistributionCustomizer?.with {new WindowsDistributionBuilder(context, it, propertiesFile)}
|
||||
}),
|
||||
createDistributionForOsTask("linux", { BuildContext context ->
|
||||
context.linuxDistributionCustomizer?.with {new LinuxDistributionBuilder(context, it, propertiesFile)}
|
||||
}),
|
||||
createDistributionForOsTask("mac", { BuildContext context ->
|
||||
context.macDistributionCustomizer?.with {new MacDistributionBuilder(context, it, propertiesFile)}
|
||||
})
|
||||
]
|
||||
|
||||
List<String> paths = runInParallel(tasks).findAll {it != null}
|
||||
|
||||
if (buildContext.productProperties.buildCrossPlatformDistribution) {
|
||||
if (paths.size() == 3) {
|
||||
buildContext.executeStep("Build cross-platform distribution", BuildOptions.CROSS_PLATFORM_DISTRIBUTION_STEP) {
|
||||
def crossPlatformBuilder = new CrossPlatformDistributionBuilder(buildContext)
|
||||
crossPlatformBuilder.buildCrossPlatformZip(paths[0], paths[1], paths[2])
|
||||
}
|
||||
}
|
||||
else {
|
||||
buildContext.messages.info("Skipping building cross-platform distribution because some OS-specific distributions were skipped")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static BuildTaskRunnable<String> createDistributionForOsTask(String taskName, Function<BuildContext, OsSpecificDistributionBuilder> factory) {
|
||||
new BuildTaskRunnable<String>(taskName) {
|
||||
@Override
|
||||
@@ -279,8 +240,9 @@ idea.fatal.error.notification=disabled
|
||||
}
|
||||
|
||||
@Override
|
||||
void compileModulesAndBuildDistributions() {
|
||||
void buildDistributions() {
|
||||
checkProductProperties()
|
||||
|
||||
def distributionJARsBuilder = new DistributionJARsBuilder(buildContext)
|
||||
compileModules(buildContext.productProperties.productLayout.includedPluginModules + distributionJARsBuilder.platformModules +
|
||||
buildContext.productProperties.additionalModulesToCompile, buildContext.productProperties.modulesToCompileTests)
|
||||
@@ -289,24 +251,56 @@ idea.fatal.error.notification=disabled
|
||||
distributionJARsBuilder.buildAdditionalArtifacts()
|
||||
}
|
||||
if (buildContext.productProperties.scrambleMainJar) {
|
||||
if (buildContext.proprietaryBuildTools.scrambleTool != null) {
|
||||
buildContext.proprietaryBuildTools.scrambleTool.scramble(buildContext.productProperties.productLayout.mainJarName, buildContext)
|
||||
scramble()
|
||||
}
|
||||
|
||||
layoutShared()
|
||||
|
||||
def propertiesFile = patchIdeaPropertiesFile()
|
||||
List<BuildTaskRunnable<String>> tasks = [
|
||||
createDistributionForOsTask("win", { BuildContext context ->
|
||||
context.windowsDistributionCustomizer?.with { new WindowsDistributionBuilder(context, it, propertiesFile) }
|
||||
}),
|
||||
createDistributionForOsTask("linux", { BuildContext context ->
|
||||
context.linuxDistributionCustomizer?.with { new LinuxDistributionBuilder(context, it, propertiesFile) }
|
||||
}),
|
||||
createDistributionForOsTask("mac", { BuildContext context ->
|
||||
context.macDistributionCustomizer?.with { new MacDistributionBuilder(context, it, propertiesFile) }
|
||||
})
|
||||
]
|
||||
|
||||
List<String> paths = runInParallel(tasks).findAll { it != null }
|
||||
|
||||
if (buildContext.productProperties.buildCrossPlatformDistribution) {
|
||||
if (paths.size() == 3) {
|
||||
buildContext.executeStep("Build cross-platform distribution", BuildOptions.CROSS_PLATFORM_DISTRIBUTION_STEP) {
|
||||
def crossPlatformBuilder = new CrossPlatformDistributionBuilder(buildContext)
|
||||
crossPlatformBuilder.buildCrossPlatformZip(paths[0], paths[1], paths[2])
|
||||
}
|
||||
}
|
||||
else {
|
||||
buildContext.messages.warning("Scrambling skipped: 'scrambleTool' isn't defined")
|
||||
buildContext.messages.info("Skipping building cross-platform distribution because some OS-specific distributions were skipped")
|
||||
}
|
||||
buildContext.ant.zip(destfile: "$buildContext.paths.artifacts/internalUtilities.zip") {
|
||||
fileset(file: "$buildContext.paths.buildOutputRoot/internal/internalUtilities.jar")
|
||||
fileset(dir: "$buildContext.paths.communityHome/lib") {
|
||||
include(name: "junit-4*.jar")
|
||||
include(name: "hamcrest-core-*.jar")
|
||||
}
|
||||
zipfileset(src: "$buildContext.paths.buildOutputRoot/internal/internalUtilities.jar") {
|
||||
include(name: "*.xml")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void scramble() {
|
||||
if (buildContext.proprietaryBuildTools.scrambleTool != null) {
|
||||
buildContext.proprietaryBuildTools.scrambleTool.scramble(buildContext.productProperties.productLayout.mainJarName, buildContext)
|
||||
}
|
||||
else {
|
||||
buildContext.messages.warning("Scrambling skipped: 'scrambleTool' isn't defined")
|
||||
}
|
||||
buildContext.ant.zip(destfile: "$buildContext.paths.artifacts/internalUtilities.zip") {
|
||||
fileset(file: "$buildContext.paths.buildOutputRoot/internal/internalUtilities.jar")
|
||||
fileset(dir: "$buildContext.paths.communityHome/lib") {
|
||||
include(name: "junit-4*.jar")
|
||||
include(name: "hamcrest-core-*.jar")
|
||||
}
|
||||
zipfileset(src: "$buildContext.paths.buildOutputRoot/internal/internalUtilities.jar") {
|
||||
include(name: "*.xml")
|
||||
}
|
||||
}
|
||||
buildDistributions()
|
||||
}
|
||||
|
||||
private void checkProductProperties() {
|
||||
|
||||
@@ -59,7 +59,6 @@ class CrossPlatformDistributionBuilder {
|
||||
buildContext.ant.zip(zipfile: targetPath, duplicate: "fail") {
|
||||
fileset(dir: buildContext.paths.distAll) {
|
||||
exclude(name: "bin/idea.properties")
|
||||
exclude(name: "lib/libpty/**") //todo[nik] this is temporary workaround until IDEA fully migrates to the new scheme
|
||||
}
|
||||
fileset(dir: zipDir)
|
||||
|
||||
|
||||
@@ -101,7 +101,6 @@ class WindowsDistributionBuilder extends OsSpecificDistributionBuilder {
|
||||
|
||||
private void generateScripts(String winDistPath) {
|
||||
String fullName = buildContext.applicationInfo.productName
|
||||
//todo[nik] looks like names without .exe were also supported, do we need this?
|
||||
String vmOptionsFileName = "${buildContext.productProperties.baseFileName}%BITS%.exe"
|
||||
|
||||
String classPath = "SET CLASS_PATH=%IDE_HOME%\\lib\\${buildContext.bootClassPathJarNames[0]}\n"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
|
||||
import org.jetbrains.intellij.build.*
|
||||
import org.jetbrains.intellij.build.impl.BuildTasksImpl
|
||||
import org.jetbrains.jps.util.JpsPathUtil
|
||||
|
||||
import static org.jetbrains.jps.idea.IdeaProjectLoader.guessHome
|
||||
@@ -41,7 +42,7 @@ boolean setPluginAndIDEVersionInPluginXml() {
|
||||
}
|
||||
|
||||
List<String> getExcludedPlugins() {
|
||||
return isDefined("productProperties") ? productProperties.excludedPlugins : []
|
||||
return []
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,7 +52,7 @@ def layoutFull(BuildContext context) {
|
||||
binding.setVariable("productProperties", context.productProperties)
|
||||
String home = context.paths.communityHome
|
||||
String targetDirectory = context.paths.distAll
|
||||
File patchedApplicationInfo = BuildTasks.create(context).patchApplicationInfo()
|
||||
File patchedApplicationInfo = ((BuildTasksImpl)BuildTasks.create(context)).patchApplicationInfo()
|
||||
projectBuilder.stage("layout to $targetDirectory")
|
||||
|
||||
List<String> jpsCommonModules = ["jps-model-impl", "jps-model-serialization"]
|
||||
|
||||
Reference in New Issue
Block a user