Download and unpack MPS release as a dependency before the build. The root folder "MPS_HOME" to always point to the MPS installation or contain the MPS itself.

This commit is contained in:
Fedor Isakov 2017-06-09 12:08:12 +02:00
parent 2dbd4cec52
commit 7cbef4cf9d
8 changed files with 121 additions and 76 deletions

2
.gitignore vendored
View File

@ -13,3 +13,5 @@ config/*
system/*
logic/solutions/jetbrains.mps.logic.reactor/lib/*
logic/solutions/jetbrains.mps.logic.test/lib/*
MPS_HOME
TEST-*

View File

@ -1,31 +1,73 @@
defaultTasks 'init'
allprojects {
repositories {
mavenCentral()
}
}
def alldependencies = [
'logic/solutions/jetbrains.mps.logic.reactor:copyDependencies',
'logic/solutions/jetbrains.mps.logic.test:copyDependencies' ]
task init(dependsOn: alldependencies) {
doLast {
println 'Initialized all dependencies.'
repositories {
mavenCentral()
}
}
repositories {
ivy {
url 'https://teamcity.jetbrains.com/guestAuth/repository/download'
layout ('pattern') {
artifact '[organization]/[classifier]/[module]-[revision].[ext]'
}
}
}
// initialize JUnit optional ant task
configurations {
junitAnt
mps
}
dependencies {
// initialize JUnit optional ant task
junitAnt 'junit:junit:4.8.2'
junitAnt('org.apache.ant:ant-junit:1.9.2') {
transitive = false
}
// MPS-related stuff declared as project properties
mps "${mpsBuildConfiguration}:MPS:${mpsBuildNumber}:${mpsRelease}.tcbuildtag@zip"
}
task installMps(type: Copy) {
onlyIf {
! file('MPS_HOME').exists()
}
from zipTree(configurations.mps[0])
into 'MPS_HOME'
// Gradle woodoo for unzipping an archive
eachFile { FileCopyDetails fcp ->
// copy the contents of the directory named "MPS ${mpsRelease}"
if (fcp.relativePath.pathString.startsWith("MPS ${mpsRelease}/")) {
// remap the file to the root
def segments = fcp.relativePath.segments
def pathsegments = segments[1..-1] as String[]
fcp.relativePath = new RelativePath(!fcp.file.isDirectory(), pathsegments)
} else {
fcp.exclude()
}
// avoid overriding files
if (fcp.relativePath.getFile(destinationDir).exists()) {
it.exclude()
}
}
includeEmptyDirs = false
}
def allInitDependencies = [
'installMps',
'logic/solutions/jetbrains.mps.logic.reactor:copyDependencies',
'logic/solutions/jetbrains.mps.logic.test:copyDependencies' ]
task init(dependsOn: allInitDependencies) {
doLast {
println 'Initialized all dependencies.'
}
}
ant.taskdef(name: 'junit',
@ -34,14 +76,20 @@ ant.taskdef(name: 'junit',
ant.importBuild('build.xml')
// ensure 'init' runs before 'fetchDependencies' task from ant build
// ensure 'init' runs before 'fetchDependencies' and 'declare-mps-tasks'
fetchDependencies {
dependsOn {
'init'
}
}
// ensure 'generate' runs before 'classes'
'declare-mps-tasks' {
dependsOn {
'init'
}
}
// ensure 'generate' runs before 'classes' ('generate' is NOT optional)
classes {
dependsOn {
'generate'

View File

@ -4,7 +4,7 @@
<property name="build.tmp" location="${build.dir}/tmp/typechecking-plugin" />
<property name="build.layout" location="${build.dir}/artifacts/typechecking-plugin" />
<property name="mps.macro.logic_home" location="${basedir}" />
<property name="mps_home" location="${basedir}/../MPS_HOME" />
<property name="mps_home" location="${basedir}/MPS_HOME" />
<property name="artifacts.mps" location="${mps_home}" />
<property file="${artifacts.mps}/build.properties" prefix="import.mps" />
<property name="mps.build.number" value="${import.mps.mps.build.number}" />

4
gradle.properties Normal file
View File

@ -0,0 +1,4 @@
mpsBuildConfiguration = MPS_35_Distribution_DownloadableArtifacts
mpsRelease = 2017.1
mpsBuildNumber = 171.1065

View File

@ -3,7 +3,7 @@
<property name="build.dir" location="build" />
<property name="build.tmp" location="${build.dir}/tmp/samplechecker" />
<property name="build.layout" location="${build.dir}/artifacts/samplechecker" />
<property name="mps_home" location="${basedir}/../MPS_HOME" />
<property name="mps_home" location="${basedir}/MPS_HOME" />
<property name="artifacts.mps" location="${mps_home}" />
<property file="${artifacts.mps}/build.properties" prefix="import.mps" />
<property name="mps.build.number" value="${import.mps.mps.build.number}" />

View File

@ -1452,10 +1452,7 @@
<property role="TrG5h" value="mps_home" />
<node concept="55IIr" id="7Ant4WkHLn4" role="398pKh">
<node concept="2Ry0Ak" id="7Ant4WkHLn5" role="iGT6I">
<property role="2Ry0Am" value=".." />
<node concept="2Ry0Ak" id="7Ant4WkHLn6" role="2Ry0An">
<property role="2Ry0Am" value="MPS_HOME" />
</node>
<property role="2Ry0Am" value="MPS_HOME" />
</node>
</node>
</node>

View File

@ -4,7 +4,7 @@
<property name="build.tmp" location="${build.dir}/tmp/samplechecker-test" />
<property name="build.layout" location="${build.dir}/artifacts/samplechecker-test" />
<property name="mps.macro.logic_home" location="${basedir}" />
<property name="mps_home" location="${basedir}/../MPS_HOME" />
<property name="mps_home" location="${basedir}/MPS_HOME" />
<property name="artifacts.mps" location="${mps_home}" />
<property file="${artifacts.mps}/build.properties" prefix="import.mps" />
<property name="mps.build.number" value="${import.mps.mps.build.number}" />
@ -17,13 +17,13 @@
<property name="environment" value="env" />
<property name="env.JAVA_HOME" value="${java.home}/.." />
<property name="jdk.home" value="${env.JAVA_HOME}" />
<path id="path.mps.ant.path">
<pathelement location="${artifacts.mps}/lib/ant/lib/ant-mps.jar" />
<pathelement location="${artifacts.mps}/lib/jdom.jar" />
<pathelement location="${artifacts.mps}/lib/log4j.jar" />
</path>
<target name="assemble" depends="classes, declare-mps-tasks">
<mkdir dir="${build.layout}/tests" />
<mkdir dir="${build.tmp}/default/jetbrains.mps.logic.jar" />
@ -856,28 +856,28 @@
</copy>
<echo file="${build.layout}/build.properties">mps.build.number=${mps.build.number}${line.separator}mps.date=${mps.date}${line.separator}mps.build.vcs.number=${mps.build.vcs.number}${line.separator}mps.teamcity.buildConfName=${mps.teamcity.buildConfName}${line.separator}mps.idea.platform.build.number=${mps.idea.platform.build.number}${line.separator}mps.mps.build.counter=${mps.mps.build.counter}${line.separator}mpsBootstrapCore.version=${mpsBootstrapCore.version}</echo>
</target>
<target name="buildDependents" />
<target name="fetchDependencies" />
<target name="build" depends="assemble" />
<target name="clean">
<delete dir="${build.tmp}" />
<delete dir="${build.layout}" />
</target>
<target name="compileJava" depends="java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic#6626732309150416985, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.test, java.compile.jetbrains.mps.lang.typesystem2, java.compile.jetbrains.mps.lang.typesystem2#4578927328670739933, java.compile.java.modules.cycle.1, java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.lang.typesystem2.helper, java.compile.jetbrains.mps.lang.typesystem2.sampleplugin, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.typechecking.annotation, java.compile.jetbrains.mps.typechecking.annotation#8686569986502648408, java.compile.jetbrains.mps.lang.typesystem2.sampleLang, java.compile.jetbrains.mps.lang.typesystem2.sampleLang#8436953480441303409, java.compile.jetbrains.mps.lang.typesystem2.sample, java.compile.jetbrains.mps.lang.typesystem2.sampleLang.test, java.compile.jetbrains.mps.lang.typesystem2.sample.test, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.test" />
<target name="processResources" />
<target name="classes" depends="compileJava, processResources" />
<target name="test" depends="classes, module-tests" />
<target name="check" depends="test" />
<target name="generate" depends="declare-mps-tasks, fetchDependencies">
<echo message="generating" />
<generate strictMode="true" parallelMode="true" parallelThreads="8" useInplaceTransform="false" hideWarnings="false" createStaticRefs="true" fork="true">
@ -992,15 +992,15 @@
<macro name="mps_home" path="${mps_home}" />
</generate>
</target>
<target name="declare-mps-tasks">
<taskdef resource="jetbrains/mps/build/ant/antlib.xml" classpathref="path.mps.ant.path" />
</target>
<target name="makeDependents" />
<target name="module-tests" depends="assemble, test.testconfig" />
<target name="java.compile.jetbrains.mps.logic" depends="java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/logic/languages/jetbrains.mps.logic/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.logic" />
@ -1050,7 +1050,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.logic#6626732309150416985" depends="java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic.reactor, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/logic/languages/jetbrains.mps.logic/generator/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.logic#6626732309150416985" />
@ -1099,7 +1099,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.logic.runtime" depends="java.compile.jetbrains.mps.logic.reactor, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/logic/languages/jetbrains.mps.logic/runtime/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.logic.runtime" />
@ -1135,7 +1135,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.logic.reactor" depends="fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/logic/solutions/jetbrains.mps.logic.reactor/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.logic.reactor" />
@ -1169,7 +1169,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.logic.test" depends="java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/logic/solutions/jetbrains.mps.logic.test/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.logic.test" />
@ -1217,7 +1217,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2" depends="java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typesystem2/languages/jetbrains.mps.lang.typesystem2/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2" />
@ -1281,7 +1281,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2#4578927328670739933" depends="java.compile.jetbrains.mps.lang.typesystem2, java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typesystem2/languages/jetbrains.mps.lang.typesystem2/generator/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2#4578927328670739933" />
@ -1344,7 +1344,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.java.modules.cycle.1" depends="java.compile.jetbrains.mps.lang.typesystem2.helper, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${build.tmp}/java.modules.cycle.1" />
<javac destdir="${build.tmp}/java.modules.cycle.1" fork="true" encoding="utf8" nowarn="true" includeantruntime="false">
@ -1399,7 +1399,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.runtime" depends="java.compile.jetbrains.mps.lang.typesystem2.helper, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, java.compile.java.modules.cycle.1, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typesystem2/languages/jetbrains.mps.lang.typesystem2/runtime/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.runtime" />
@ -1453,7 +1453,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.template" depends="java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, java.compile.java.modules.cycle.1, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typesystem2/solutions/jetbrains.mps.lang.typesystem2.template/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.template" />
@ -1491,7 +1491,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.helper" depends="fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.helper" />
@ -1530,7 +1530,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sampleplugin" depends="java.compile.jetbrains.mps.lang.typesystem2.helper, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, java.compile.java.modules.cycle.1, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleplugin/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sampleplugin" />
@ -1581,7 +1581,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util" depends="java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.handler.util/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.samplechecker.handler.util" />
@ -1625,7 +1625,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.typechecking.annotation" depends="fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/languages/jetbrains.mps.typechecking.annotation/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.typechecking.annotation" />
@ -1675,7 +1675,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.typechecking.annotation#8686569986502648408" depends="java.compile.jetbrains.mps.typechecking.annotation, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/languages/jetbrains.mps.typechecking.annotation/generator/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.typechecking.annotation#8686569986502648408" />
@ -1715,7 +1715,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sampleLang" depends="java.compile.jetbrains.mps.lang.typesystem2.runtime, java.compile.jetbrains.mps.lang.typesystem2.samplechecker.handler.util, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sampleLang" />
@ -1767,7 +1767,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sampleLang#8436953480441303409" depends="java.compile.jetbrains.mps.lang.typesystem2.sampleLang, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/languages/jetbrains.mps.lang.typesystem2.sampleLang/generator/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sampleLang#8436953480441303409" />
@ -1810,7 +1810,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sample">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sample" />
@ -1822,7 +1822,7 @@
<classpath />
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sampleLang.test" depends="java.compile.jetbrains.mps.lang.typesystem2.sampleLang, java.compile.jetbrains.mps.logic.reactor, java.compile.jetbrains.mps.logic.runtime, java.compile.jetbrains.mps.logic.test, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.sampleLang.test/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sampleLang.test" />
@ -1895,7 +1895,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.sample.test" depends="java.compile.jetbrains.mps.lang.typesystem2.sample, java.compile.jetbrains.mps.lang.typesystem2.sampleplugin, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.sample.test" />
@ -1960,7 +1960,7 @@
</classpath>
</javac>
</target>
<target name="java.compile.jetbrains.mps.lang.typesystem2.samplechecker.test" depends="java.compile.jetbrains.mps.lang.typesystem2.sampleplugin, java.compile.jetbrains.mps.lang.typesystem2.template, java.compile.jetbrains.mps.logic.runtime, fetchDependencies">
<mkdir dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/source_gen" />
<mkdir dir="${build.tmp}/java/out/jetbrains.mps.lang.typesystem2.samplechecker.test" />
@ -2027,7 +2027,7 @@
</classpath>
</javac>
</target>
<target name="test.testconfig" depends="assemble">
<path id="mps.libraries.path">
<pathelement location="${artifacts.mps}/languages/baseLanguage/jetbrains.mps.baseLanguage.blTypes.jar" />
@ -2155,23 +2155,23 @@
<jvmarg value="-Xmx1024m" />
<jvmarg value="-XX:MaxPermSize=256m" />
<jvmarg value="-XX:+HeapDumpOnOutOfMemoryError" />
<classpath>
<fileset dir="${build.tmp}">
<include name="mps.class.path.jar" />
</fileset>
</classpath>
<sysproperty key="plugin.path" value="${mps.plugins.path.string}" />
<sysproperty key="mps.libraries" value="${mps.libraries.path.string}" />
<sysproperty key="mps.test.modules" value="${mps.tests.path.string}" />
<sysproperty key="mps.macro.logic_home" value="${basedir}" />
<test name="jetbrains.mps.testbench.junit.suites.AntModuleTestSuite" outfile="TEST-jetbrains.mps.testbench.junit.suites.AntModuleTestSuite-testconfig" />
<formatter type="xml" />
</junit>
</target>
<target name="cleanSources">
<delete dir="${mps.macro.logic_home}/typesystem2/solutions/jetbrains.mps.lang.typesystem2.helper/source_gen" />
<delete dir="${mps.macro.logic_home}/logic/languages/jetbrains.mps.logic/source_gen" />
@ -2198,4 +2198,4 @@
<delete dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.sample.test/test_gen" />
<delete dir="${mps.macro.logic_home}/typechecking/solutions/jetbrains.mps.lang.typesystem2.samplechecker.test/test_gen" />
</target>
</project>
</project>

View File

@ -222,12 +222,9 @@
<node concept="3b7kt6" id="4hh0cTRkaUn" role="10PD9s" />
<node concept="398rNT" id="4hh0cTRkaVm" role="1l3spd">
<property role="TrG5h" value="mps_home" />
<node concept="55IIr" id="4hh0cTRkaVz" role="398pKh">
<node concept="2Ry0Ak" id="4hh0cTRkaVA" role="iGT6I">
<property role="2Ry0Am" value=".." />
<node concept="2Ry0Ak" id="4hh0cTRkaVF" role="2Ry0An">
<property role="2Ry0Am" value="MPS_HOME" />
</node>
<node concept="55IIr" id="2UpdbBtLWVy" role="398pKh">
<node concept="2Ry0Ak" id="2UpdbBtLX2C" role="iGT6I">
<property role="2Ry0Am" value="MPS_HOME" />
</node>
</node>
</node>
@ -1407,12 +1404,9 @@
</node>
<node concept="398rNT" id="7Ant4WkHLn3" role="1l3spd">
<property role="TrG5h" value="mps_home" />
<node concept="55IIr" id="7Ant4WkHLn4" role="398pKh">
<node concept="2Ry0Ak" id="7Ant4WkHLn5" role="iGT6I">
<property role="2Ry0Am" value=".." />
<node concept="2Ry0Ak" id="7Ant4WkHLn6" role="2Ry0An">
<property role="2Ry0Am" value="MPS_HOME" />
</node>
<node concept="55IIr" id="2UpdbBtLXi_" role="398pKh">
<node concept="2Ry0Ak" id="2UpdbBtLXue" role="iGT6I">
<property role="2Ry0Am" value="MPS_HOME" />
</node>
</node>
</node>