build/mps.xml (328 lines of code) (raw):

<project name="mps" default="build" basedir=".."> <!-- Generated by MPS --> <property name="build.dir" location="build" /> <property name="build.tmp" location="${build.dir}/tmp/mps" /> <property name="build.layout" location="${build.dir}/artifacts/mps" /> <loadfile property="build.number" srcFile="${basedir}/build.txt" /> <tstamp> <format property="date" pattern="yyyyMMdd" /> </tstamp> <property name="build.vcs.number" value="HEAD" /> <property name="teamcity.buildConfName" value="local" /> <loadfile property="idea.platform.build.number" srcFile="${basedir}/lib/build.txt" /> <property name="mps.build.counter" value="SNAPSHOT" /> <property file="${basedir}/build/dependencies/dependencies.properties" prefix="loaded.for.runtimeBuild" /> <property name="runtimeBuild" value="${loaded.for.runtimeBuild.runtimeBuild}" /> <property name="mps_home" location="${basedir}" /> <property name="artifacts.mpsBuild" location="${build.dir}/artifacts/mpsBuild" /> <property name="artifacts.mpsConsolePlugin" location="${build.dir}/artifacts/mpsConsolePlugin" /> <property name="artifacts.mpsTroveCollections" location="${build.dir}/artifacts/mpsTroveCollections" /> <property name="artifacts.mpsStandalone" location="${build.dir}/artifacts/mpsStandalone" /> <property name="artifacts.mpsDevKit" location="${build.dir}/artifacts/mpsDevKit" /> <property name="artifacts.mpsPlugins" location="${build.dir}/artifacts/mpsPlugins" /> <property name="artifacts.mpsJava" location="${build.dir}/artifacts/mpsJava" /> <property name="artifacts.mpsHttpSupportPlugin" location="${build.dir}/artifacts/mpsHttpSupportPlugin" /> <property name="artifacts.mpsNavigationBar" location="${build.dir}/artifacts/mpsNavigationBar" /> <property name="artifacts.mpsMakePlugin" location="${build.dir}/artifacts/mpsMakePlugin" /> <property name="artifacts.mpsBuildUI" location="${build.dir}/artifacts/mpsBuildUI" /> <property name="artifacts.mpsVcs" location="${build.dir}/artifacts/mpsVcs" /> <property name="artifacts.mpsMigrationCore" location="${build.dir}/artifacts/mpsMigrationCore" /> <property name="artifacts.mpsMigration" location="${build.dir}/artifacts/mpsMigration" /> <property name="artifacts.mpsDebuggerPlugin" location="${build.dir}/artifacts/mpsDebuggerPlugin" /> <property name="artifacts.mpsDiagramEditor" location="${build.dir}/artifacts/mpsDiagramEditor" /> <property name="artifacts.jetpad" location="${build.dir}/artifacts/jetpad" /> <property name="artifacts.mpsExecutionPlugin" location="${build.dir}/artifacts/mpsExecutionPlugin" /> <property name="artifacts.mpsTooltips" location="${build.dir}/artifacts/mpsTooltips" /> <property name="artifacts.mpsTesting" location="${build.dir}/artifacts/mpsTesting" /> <property name="artifacts.mpsContextActionsTool" location="${build.dir}/artifacts/mpsContextActionsTool" /> <property name="artifacts.mpsSpellCheckPlugin" location="${build.dir}/artifacts/mpsSpellCheckPlugin" /> <property name="artifacts.mpsKotlinPlugin" location="${build.dir}/artifacts/mpsKotlinPlugin" /> <property name="artifacts.mpsCore" location="${build.dir}/artifacts/mpsCore" /> <property name="artifacts.mpsAntToolsPlugin" location="${build.dir}/artifacts/mpsAntToolsPlugin" /> <property file="${artifacts.mpsBuild}/build.properties" prefix="import.mpsBuild" /> <property name="mpsBootstrapCore.version.major" value="${import.mpsBuild.mpsBootstrapCore.version.major}" /> <property name="mpsBootstrapCore.version.minor" value="${import.mpsBuild.mpsBootstrapCore.version.minor}" /> <property name="mpsBootstrapCore.version.bugfixNr" value="${import.mpsBuild.mpsBootstrapCore.version.bugfixNr}" /> <property name="mpsBootstrapCore.version.eap" value="${import.mpsBuild.mpsBootstrapCore.version.eap}" /> <property name="mpsBootstrapCore.version" value="${import.mpsBuild.mpsBootstrapCore.version}" /> <target name="assemble" depends="collect-tips-mps-tips, fetchDependencies"> <mkdir dir="${build.layout}/bin" /> <copy todir="${build.layout}/bin"> <fileset dir="${mps_home}/bin"> <exclude name="**/*.dll" /> <exclude name="**/*.exe" /> <exclude name="**/linux/" /> <exclude name="**/mac/" /> <exclude name="**/nix/" /> <exclude name="**/win/" /> </fileset> </copy> <copy todir="${build.layout}/bin"> <fileset file="${mps_home}/workbench/mps-icons/source/mps.svg" /> </copy> <mkdir dir="${build.layout}/languages" /> <copy todir="${build.layout}/languages"> <fileset dir="${artifacts.mpsStandalone}/languages" /> </copy> <mkdir dir="${build.layout}/lib" /> <copy todir="${build.layout}/lib"> <fileset dir="${artifacts.mpsStandalone}/lib"> <exclude name="jna/" /> <exclude name="pty4j/" /> </fileset> </copy> <mkdir dir="${build.tmp}/default/branding.jar" /> <mkdir dir="${build.tmp}/default/branding.jar/idea" /> <echoxml file="${build.tmp}/default/branding.jar/idea/MPSApplicationInfo.xml"> <component> <version major="${mpsBootstrapCore.version.major}" minor="${mpsBootstrapCore.version.minor}${mpsBootstrapCore.version.bugfixNr}" eap="true" update-channel="MPS261EAP" /> <company name="JetBrains s.r.o." url="https://www.jetbrains.com/?fromIDE" copyrightStart="2009" /> <build number="${build.number}" date="${date}" /> <logo url="/splash.png" textcolor="FFFFFF" progressColor="FFFFFF" progressY="396" progressHeight="4" /> <icon ico="/MPS.ico" svg="/mps.svg" svg-small="/mps_16.svg" /> <package code="code" /> <names product="MPS" fullname="JetBrains MPS" script="mps" /> <welcome-screen logo-url="/MPS_welcomeScreen.png" /> <plugins url="https://plugins.jetbrains.com/" /> <update-urls check="https://www.jetbrains.com/mps/update.xml" patches="https://www.jetbrains.com/mps/download/?utm_source=product&amp;utm_media=link&amp;utm_campaign=MPS&amp;utm_content=${mpsBootstrapCore.version.major}.${mpsBootstrapCore.version.minor}" /> <help root="mps" webhelp-url="https://www.jetbrains.com/mps/webhelp/" /> <documentation url="https://www.jetbrains.com/help/mps/${mpsBootstrapCore.version.major}.${mpsBootstrapCore.version.minor}/fast-track-to-mps.html" /> <support url="https://www.jetbrains.com/support/mps/index.html" /> <feedback url="https://www.jetbrains.com/feedback/feedback.jsp?product=mps" /> <whatsnew url="https://www.jetbrains.com/mps/whatsnew/index.html" /> <keymap win="https://www.jetbrains.com/help/mps/${mpsBootstrapCore.version.major}.${mpsBootstrapCore.version.minor}/default-keymap-reference.html" mac="https://www.jetbrains.com/help/mps/${mpsBootstrapCore.version.major}.${mpsBootstrapCore.version.minor}/default-keymap-reference.html" /> <jetbrains-tv url="https://www.youtube.com/user/JetBrainsTV/search?query=MPS" /> <youtrack url="https://youtrack.jetbrains.com/newissue?project=MPS&amp;clearDraft=true&amp;description=$DESCR" /> </component> </echoxml> <jar destfile="${build.layout}/lib/branding.jar" duplicate="preserve"> <fileset file="${basedir}/workbench/mps-icons/source/mps.svg" /> <fileset file="${basedir}/workbench/mps-icons/source/mps_16.svg" /> <fileset file="${basedir}/workbench/mps-icons/source/MPS.ico" /> <fileset file="${basedir}/workbench/mps-icons/source/MPS_welcomeScreen.png" /> <fileset file="${basedir}/workbench/mps-icons/source/splash.png" /> <fileset file="${basedir}/workbench/mps-icons/source/splash@2x.png" /> <fileset file="${basedir}/workbench/mps-icons/source/about@2x.png" /> <fileset file="${basedir}/workbench/mps-icons/source/MPS_welcomeScreen@2x.png" /> <fileset file="${basedir}/euaMps.html" /> <fileset dir="${build.tmp}/default/branding.jar" /> </jar> <jar destfile="${build.layout}/lib/mps-tips.jar" duplicate="preserve"> <fileset file="${build.tmp}/out/mps-tips/mps-tips/**" /> </jar> <mkdir dir="${build.tmp}/default/MPS-src.zip" /> <copy todir="${build.tmp}/default/MPS-src.zip"> <fileset dir="${mps_home}"> <include name="MPSPlugin/**/*.java" /> <include name="core/**/*.java" /> <include name="plugins/**/*.java" /> <include name="workbench/**/*.java" /> <include name="testbench/**/*.java" /> <exclude name="**/sandbox/**" /> <exclude name="**/languages/**" /> </fileset> <regexpmapper from="(.*)(/|\\)(src|sources|source|source_gen|source-api)(/|\\)(.*)" to="\5" /> </copy> <zip destfile="${build.layout}/lib/MPS-src.zip"> <fileset dir="${build.tmp}/default/MPS-src.zip" /> </zip> <mkdir dir="${build.layout}/license" /> <copy todir="${build.layout}/license"> <fileset dir="${artifacts.mpsStandalone}/license" /> </copy> <copy file="${artifacts.mpsStandalone}/LICENSE.txt" todir="${build.layout}" /> <mkdir dir="${build.layout}/plugins" /> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsStandalone}/plugins" /> </copy> <mkdir dir="${build.layout}/plugins/mps-core" /> <copy todir="${build.layout}/plugins/mps-core"> <fileset dir="${artifacts.mpsCore}/mps-core" /> </copy> <mkdir dir="${build.layout}/plugins/mps-build" /> <copy todir="${build.layout}/plugins/mps-build"> <fileset dir="${artifacts.mpsBuild}/mps-build" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsConsolePlugin}" /> </copy> <mkdir dir="${build.layout}/plugins/mps-trove" /> <copy todir="${build.layout}/plugins/mps-trove"> <fileset dir="${artifacts.mpsTroveCollections}/mps-trove" /> </copy> <mkdir dir="${build.layout}/plugins/mps-java" /> <copy todir="${build.layout}/plugins/mps-java"> <fileset dir="${artifacts.mpsJava}/mps-java" /> </copy> <mkdir dir="${build.layout}/plugins/mps-devkit" /> <copy todir="${build.layout}/plugins/mps-devkit"> <fileset dir="${artifacts.mpsDevKit}/mps-devkit" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsExecutionPlugin}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsMakePlugin}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsPlugins}" /> </copy> <mkdir dir="${build.layout}/plugins/mps-vcs" /> <copy todir="${build.layout}/plugins/mps-vcs"> <fileset dir="${artifacts.mpsVcs}/mps-vcs" /> </copy> <mkdir dir="${build.layout}/plugins/vcs-git" /> <copy todir="${build.layout}/plugins/vcs-git"> <fileset dir="${artifacts.mpsVcs}/vcs-git" /> </copy> <mkdir dir="${build.layout}/plugins/mps-git4idea" /> <copy todir="${build.layout}/plugins/mps-git4idea"> <fileset dir="${artifacts.mpsVcs}/mps-git4idea" /> </copy> <mkdir dir="${build.layout}/plugins/vcs-svn" /> <copy todir="${build.layout}/plugins/vcs-svn"> <fileset dir="${artifacts.mpsVcs}/vcs-svn" /> </copy> <mkdir dir="${build.layout}/plugins/mps-migration" /> <copy todir="${build.layout}/plugins/mps-migration"> <fileset dir="${artifacts.mpsMigration}/mps-migration" /> </copy> <mkdir dir="${build.layout}/plugins/mps-project-migrations" /> <copy todir="${build.layout}/plugins/mps-project-migrations"> <fileset dir="${artifacts.mpsMigration}/mps-project-migrations" /> </copy> <mkdir dir="${build.layout}/plugins/mps-tooltips" /> <copy todir="${build.layout}/plugins/mps-tooltips"> <fileset dir="${artifacts.mpsTooltips}/mps-tooltips" /> </copy> <mkdir dir="${build.layout}/plugins/mps-build-ui" /> <copy todir="${build.layout}/plugins/mps-build-ui"> <fileset dir="${artifacts.mpsBuildUI}/mps-build-ui" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.jetpad}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsDiagramEditor}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsDebuggerPlugin}" /> </copy> <mkdir dir="${build.layout}/plugins/mps-junit5" /> <copy todir="${build.layout}/plugins/mps-junit5"> <fileset dir="${artifacts.mpsTesting}/mps-junit5" /> </copy> <mkdir dir="${build.layout}/plugins/mps-testing" /> <copy todir="${build.layout}/plugins/mps-testing"> <fileset dir="${artifacts.mpsTesting}/mps-testing" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsHttpSupportPlugin}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsNavigationBar}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsContextActionsTool}" /> </copy> <copy todir="${build.layout}/plugins"> <fileset dir="${artifacts.mpsSpellCheckPlugin}" /> </copy> <mkdir dir="${build.layout}/plugins/mps-kotlin" /> <copy todir="${build.layout}/plugins/mps-kotlin"> <fileset dir="${artifacts.mpsKotlinPlugin}/mps-kotlin" /> </copy> <mkdir dir="${build.layout}/plugins/mps-ant-make" /> <copy todir="${build.layout}/plugins/mps-ant-make"> <fileset dir="${artifacts.mpsAntToolsPlugin}/mps-ant-make" /> </copy> <zip destfile="${build.layout}/samples.zip"> <zipfileset dir="${basedir}/samples" prefix="MPSSamples"> <exclude name="**/vcs.xml" /> <exclude name="**/*.history" /> </zipfileset> </zip> <echo file="${build.layout}/build.number">build.number=${build.number}${line.separator}date=${date}${line.separator}revision.number=${build.vcs.number}${line.separator}configuration.name=${teamcity.buildConfName}${line.separator}version=${mpsBootstrapCore.version}${line.separator}idea.platform.build.number=${idea.platform.build.number}</echo> <copy todir="${build.layout}"> <fileset file="${basedir}/build.txt" /> <filterchain> <tokenfilter> <replaceregex pattern=".+" replace="${build.number}" flags="" /> </tokenfilter> </filterchain> </copy> <copy todir="${build.layout}"> <fileset file="${basedir}/about.txt" /> </copy> <copy todir="${build.layout}"> <fileset file="${basedir}/releaseNotes.txt" /> </copy> <copy todir="${build.layout}"> <fileset file="${basedir}/readme.txt" /> <filterchain> <tokenfilter> <replaceregex pattern="\$version\$" replace="${mpsBootstrapCore.version}" flags="" /> </tokenfilter> </filterchain> </copy> <echo file="${build.layout}/build.properties">mps.build.number=${build.number}${line.separator}mps.date=${date}${line.separator}mps.build.vcs.number=${build.vcs.number}${line.separator}mps.teamcity.buildConfName=${teamcity.buildConfName}${line.separator}mps.idea.platform.build.number=${idea.platform.build.number}${line.separator}mps.mps.build.counter=${mps.build.counter}${line.separator}mps.runtimeBuild=${runtimeBuild}${line.separator}mpsBootstrapCore.version.major=${mpsBootstrapCore.version.major}${line.separator}mpsBootstrapCore.version.minor=${mpsBootstrapCore.version.minor}${line.separator}mpsBootstrapCore.version.bugfixNr=${mpsBootstrapCore.version.bugfixNr}${line.separator}mpsBootstrapCore.version.eap=${mpsBootstrapCore.version.eap}${line.separator}mpsBootstrapCore.version=${mpsBootstrapCore.version}</echo> </target> <target name="buildDependents"> <ant antfile="build/mpsTrueBootstrap.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsBootstrapCore.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsCore.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsWorkbench.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsBuild.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsTesting.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsTroveCollections.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsPlugins.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsDevKit.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsJavaCore.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsMakePlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsConsolePlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsStandalone.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsJava.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsHttpSupportPlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsNavigationBar.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsDebuggerPlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsExecutionPlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsBuildUI.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsVcsPlatform.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsVcsStandaloneJar.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsVcs.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsMigrationCore.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsMigration.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/jetpad.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsDiagramEditor.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsTooltips.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsContextActionsTool.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsSpellCheckPlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsKotlinPlugin.xml" inheritAll="false" useNativeBasedir="true" /> <ant antfile="build/mpsAntToolsPlugin.xml" inheritAll="false" useNativeBasedir="true" /> </target> <target name="fetchDependencies" /> <target name="build" depends="assemble" /> <target name="clean"> <delete dir="${build.tmp}" /> <delete dir="${build.layout}" /> </target> <target name="collect-tips-mps-tips"> <mkdir dir="${build.tmp}/out/mps-tips/mps-tips/tips/css" /> <mkdir dir="${build.tmp}/out/mps-tips/mps-tips/tips/images" /> <mkdir dir="${build.tmp}/out/mps-tips/mps-tips/tips" /> <copy todir="${build.tmp}/out/mps-tips/mps-tips/tips"> <fileset dir="${basedir}/workbench/mps-tips/source/tips" /> </copy> <mkdir dir="${build.tmp}/out/mps-tips/mps-tips/META-INF" /> <fileset id="contents" includes="*.*" dir="${build.tmp}/out/mps-tips/mps-tips/tips" /> <property name="mps-tips.prop.contents" refid="contents" /> <echoxml file="${build.tmp}/out/mps-tips/mps-tips/META-INF/IdeTipsAndTricks.xml"> <idea-plugin> <extensions defaultExtensionNs="com.intellij"> <tipAndTrick file="${mps-tips.prop.contents}" /> </extensions> </idea-plugin> </echoxml> <replace file="${build.tmp}/out/mps-tips/mps-tips/META-INF/IdeTipsAndTricks.xml" token=";" value="&quot;/&gt;&#xD;&#x0009;&lt;tipAndTrick file=&quot;" /> <replace file="${build.tmp}/out/mps-tips/mps-tips/META-INF/IdeTipsAndTricks.xml" token="&lt;tipAndTrick file=&quot;&quot; /&gt;" value="" /> </target> </project>