mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
build scripts: fix building updater-full.jar
Move code which build updater-full.jar to groovy scripts to automatically compute all dependencies, also get rid of jarjar task which isn't necessary here (see discussion at https://github.com/JetBrains/intellij-community/pull/703).
This commit is contained in:
@@ -28,12 +28,14 @@
|
||||
|
||||
<macrodef name="call_gant">
|
||||
<attribute name="script" />
|
||||
<attribute name="target" default="default"/>
|
||||
<sequential>
|
||||
<java failonerror="true" jar="${project.home}/lib/ant/lib/ant-launcher.jar" fork="true">
|
||||
<jvmarg line="-Xmx812m -XX:MaxPermSize=152m"/>
|
||||
<sysproperty key="jna.nosys" value="true" />
|
||||
<sysproperty key="java.awt.headless" value="true"/>
|
||||
<sysproperty key="gant.script" value="@{script}"/>
|
||||
<sysproperty key="gant.target" value="@{target}"/>
|
||||
<syspropertyset refid="intellij.build.properties"/>
|
||||
<arg value="-f"/>
|
||||
<arg value="${project.home}/build/gant.xml"/>
|
||||
@@ -49,17 +51,8 @@
|
||||
<call_gant script="${project.home}/build/scripts/tests_in_community.gant"/>
|
||||
</target>
|
||||
|
||||
<!-- The build task creates an updater.jar in ${out.dir}. This task bundles the updater and its dependencies into a single jar -->
|
||||
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${project.home}/build/lib/jarjar-1.0.jar"/>
|
||||
<target name="fullupdater" depends="build">
|
||||
<condition property="out.dir" value="${intellij.build.output.root}" else="${project.home}/out">
|
||||
<isset property="intellij.build.output.root"/>
|
||||
</condition>
|
||||
<jarjar jarfile="${out.dir}/updater-full.jar">
|
||||
<zipfileset src="${out.dir}/updater.jar" />
|
||||
<zipfileset src="lib/log4j.jar" />
|
||||
<zipfileset src="lib/jna.jar" />
|
||||
<zipfileset src="lib/jna-platform.jar" />
|
||||
</jarjar>
|
||||
<!-- Creates an updater-full.jar in ${intellij.build.output.root}/artifacts, it includes 'intellij.platform.updater' module with all its dependencies -->
|
||||
<target name="fullupdater" depends="init">
|
||||
<call_gant script="${project.home}/build/scripts/idea_community.gant" target="updater-full"/>
|
||||
</target>
|
||||
</project>
|
||||
|
||||
@@ -32,6 +32,12 @@ class IdeaCommunityBuilder {
|
||||
BuildTasks.create(buildContext).compileProjectAndTests(["intellij.platform.jps.build"])
|
||||
}
|
||||
|
||||
void buildFullUpdater() {
|
||||
def tasks = BuildTasks.create(buildContext)
|
||||
tasks.compileModules(["updater"])
|
||||
tasks.buildFullUpdaterJar()
|
||||
}
|
||||
|
||||
void buildIntelliJCore() {
|
||||
def builder = new IntelliJCoreArtifactsBuilder(buildContext)
|
||||
builder.compileModules()
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import org.jetbrains.intellij.build.BuildOptions
|
||||
import org.jetbrains.intellij.build.IdeaCommunityBuilder
|
||||
import org.jetbrains.jps.idea.IdeaProjectLoader
|
||||
@@ -23,6 +24,10 @@ target(compile: "Compile project") {
|
||||
new IdeaCommunityBuilder(home).compileModules()
|
||||
}
|
||||
|
||||
target('updater-full': 'Build updater-full.jar which includes IDE updater with its dependencies') {
|
||||
new IdeaCommunityBuilder(home).buildFullUpdater()
|
||||
}
|
||||
|
||||
target('default': 'The default target') {
|
||||
def options = new BuildOptions()
|
||||
options.buildNumber = null //we cannot provide consistent build number for IDEA Community if it's built separately so use *.SNAPSHOT number to avoid confusion
|
||||
|
||||
@@ -50,6 +50,11 @@ abstract class BuildTasks {
|
||||
|
||||
abstract void buildUpdaterJar()
|
||||
|
||||
/**
|
||||
* Builds updater-full.jar artifact which includes 'intellij.platform.updater' module with all its dependencies
|
||||
*/
|
||||
abstract void buildFullUpdaterJar()
|
||||
|
||||
abstract void buildUnpackedDistribution(String targetDirectory)
|
||||
|
||||
static BuildTasks create(BuildContext context) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.jetbrains.intellij.build.*
|
||||
import org.jetbrains.jps.model.artifact.JpsArtifactService
|
||||
import org.jetbrains.jps.model.java.JavaResourceRootType
|
||||
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.library.JpsOrderRootType
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
|
||||
@@ -547,6 +548,23 @@ idea.fatal.error.notification=disabled
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
void buildFullUpdaterJar() {
|
||||
String updaterModule = "intellij.platform.updater"
|
||||
def libraryFiles = JpsJavaExtensionService.dependencies(buildContext.findRequiredModule(updaterModule)).productionOnly().runtimeOnly().libraries.collectMany {
|
||||
it.getFiles(JpsOrderRootType.COMPILED)
|
||||
}
|
||||
buildContext.messages.info("Files: $libraryFiles")
|
||||
new LayoutBuilder(buildContext, false).layout(buildContext.paths.artifacts) {
|
||||
jar("updater-full.jar") {
|
||||
module(updaterModule)
|
||||
libraryFiles.each { file ->
|
||||
ant.zipfileset(src: file.absolutePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
void buildUnpackedDistribution(String targetDirectory) {
|
||||
buildContext.paths.distAll = targetDirectory
|
||||
|
||||
Reference in New Issue
Block a user