Skip to content

Commit fe933fc

Browse files
committed
Merge remote-tracking branch 'origin/master' into bugfix/modulo-expression-cast-exception-2
2 parents 88aae6f + e0ebe41 commit fe933fc

File tree

11 files changed

+407
-476
lines changed

11 files changed

+407
-476
lines changed

build.gradle

Lines changed: 125 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def major = "2020"
6363
def minor = "3"
6464

6565
// Dependency versions
66-
ext.mpsVersion = '2020.3.1'
66+
ext.mpsVersion = '2020.3.4'
6767

6868
def mbeddrVersion = "2020.3+"
6969

@@ -135,12 +135,14 @@ configurations {
135135
mps
136136
languageLibs
137137
junitAnt
138+
pcollections // Synced to org.iets3.core.expr.base.collections.stubs/lib
138139
}
139140

140141
dependencies {
141142
mps "com.jetbrains:mps:$mpsVersion"
142143
languageLibs "com.mbeddr:platform:$mbeddrVersionSelector"
143144
junitAnt 'org.apache.ant:ant-junit:1.10.6'
145+
pcollections 'org.pcollections:pcollections:3.1.4'
144146
}
145147

146148
repositories {
@@ -159,21 +161,40 @@ repositories {
159161
mavenCentral()
160162
}
161163

162-
task resolveMps(type: Copy) {
164+
task resolveMps(type: Sync) {
163165
dependsOn configurations.mps
164166
from {
165167
configurations.mps.resolve().collect { zipTree(it) }
166168
}
167169
into "$buildDir/mps"
168170
}
169171

170-
task resolveLanguageLibs(type: Copy) {
172+
task resolveLanguageLibs(type: Sync) {
171173
from {
172174
configurations.languageLibs.resolve().collect { zipTree(it) }
173175
}
174176
into "$buildDir/dependencies"
175177
}
176178

179+
task resolvePcollections(type: Sync) {
180+
from configurations.pcollections
181+
into file('code/languages/org.iets3.opensource/solutions/org.iets3.core.expr.base.collections.stubs/lib')
182+
183+
// Strip version numbers from file names
184+
rename { filename ->
185+
def ra = configurations.pcollections.resolvedConfiguration.resolvedArtifacts.find { ResolvedArtifact ra -> ra.file.name == filename }
186+
String finalName
187+
if (ra.classifier != null) {
188+
finalName = "${ra.name}-${ra.classifier}.${ra.extension}"
189+
} else {
190+
finalName = "${ra.name}.${ra.extension}"
191+
}
192+
return finalName
193+
}
194+
}
195+
196+
task resolveDependencies(dependsOn: [resolveLanguageLibs, resolvePcollections])
197+
177198
// Default arguments for ant scripts
178199
def defaultScriptArgs = [
179200
'mps.home' : resolveMps.destinationDir,
@@ -194,7 +215,7 @@ ext["itemis.mps.gradle.ant.defaultScriptArgs"] = defaultScriptArgs.collect { "-D
194215
ext["itemis.mps.gradle.ant.defaultScriptClasspath"] = defaultScriptClasspath
195216
ext["itemis.mps.gradle.ant.defaultJavaExecutable"] = new File(jdk_home, 'bin/java')
196217

197-
task buildAllScripts(type: BuildLanguages, dependsOn: [resolveMps, resolveLanguageLibs]) {
218+
task buildAllScripts(type: BuildLanguages, dependsOn: [resolveMps, resolveDependencies]) {
198219
script "$buildDir/scripts/build-allScripts.xml"
199220
}
200221

@@ -218,12 +239,6 @@ task buildAndRunTests(type: TestLanguages, dependsOn: buildLanguages) {
218239

219240
check.dependsOn buildAndRunTests
220241

221-
task packageAllScripts(type: Zip, dependsOn: buildAllScripts) {
222-
archiveBaseName = 'org.iets3.opensource.allScripts'
223-
from artifactsDir
224-
include 'org.iets3.opensource.allScripts.build/**'
225-
}
226-
227242
task packageLanguages(type: Zip, dependsOn: buildLanguages) {
228243
archiveBaseName = 'org.iets3.opensource'
229244
from artifactsDir
@@ -247,7 +262,28 @@ task packageDistroWithDependencies(type: Zip, dependsOn: buildDistroWithDependen
247262
include 'org.iets3.opensource.distro/**'
248263
}
249264

250-
assemble.dependsOn packageAllScripts, packageLanguages, packageTests
265+
assemble.dependsOn packageLanguages, packageTests
266+
267+
static def addDependency(Object pom, Object groupId, Object artifactId, Object version, Object type = null) {
268+
pom.withXml { XmlProvider prov ->
269+
Node root = prov.asNode()
270+
Node deps = root.dependencies[0] ?: root.appendNode("dependencies")
271+
def dep = deps.appendNode("dependency")
272+
dep.appendNode("groupId", groupId)
273+
dep.appendNode("artifactId", artifactId)
274+
dep.appendNode("version", version)
275+
if (type != null) {
276+
dep.appendNode("type", type)
277+
}
278+
}
279+
}
280+
281+
static def addDependency(Object pom, Configuration config) {
282+
config.resolvedConfiguration.firstLevelModuleDependencies.each {
283+
addDependency(pom, it.moduleGroup, it.moduleName, it.moduleVersion, it.moduleArtifacts[0].type)
284+
}
285+
286+
}
251287

252288
publishing {
253289
repositories {
@@ -261,57 +297,100 @@ publishing {
261297
}
262298
}
263299
}
300+
repositories {
301+
if(currentBranch == "master" || currentBranch.startsWith("maintenance") || currentBranch.startsWith("mps")) {
302+
maven {
303+
name = "GitHubPackages"
304+
url = uri("https://maven.pkg.github.com/IETS3/iets3.opensource")
305+
if(project.hasProperty("gpr.token")) {
306+
credentials {
307+
username = project.findProperty("gpr.user")
308+
password = project.findProperty("gpr.token")
309+
}
310+
}
311+
}
312+
}
313+
}
264314

265315
publications {
266-
allScripts(MavenPublication) {
267-
groupId 'org.iets3.opensource'
268-
artifactId 'allScripts'
269-
artifact packageAllScripts
270-
}
271316
openSource(MavenPublication) {
272317
groupId 'org.iets3'
273318
artifactId 'opensource'
274319
artifact packageLanguages
275-
pom.withXml {
276-
def dependenciesNode = asNode().appendNode('dependencies')
277-
configurations.languageLibs.resolvedConfiguration.firstLevelModuleDependencies.each{
278-
def dependencyNode = dependenciesNode.appendNode('dependency')
279-
dependencyNode.appendNode('groupId', it.moduleGroup)
280-
dependencyNode.appendNode('artifactId', it.moduleName)
281-
dependencyNode.appendNode('version', it.moduleVersion)
282-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
283-
}
284-
configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each{
285-
def dependencyNode = dependenciesNode.appendNode('dependency')
286-
dependencyNode.appendNode('groupId', it.moduleGroup)
287-
dependencyNode.appendNode('artifactId', it.moduleName)
288-
dependencyNode.appendNode('version', it.moduleVersion)
289-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
290-
dependencyNode.appendNode('scope', 'provided')
291-
}
292-
}
320+
321+
addDependency(pom, configurations.languageLibs)
293322
}
323+
294324
tests(MavenPublication) {
295325
groupId 'org.iets3.opensource'
296326
artifactId 'tests'
297327
artifact packageTests
298-
pom.withXml {
299-
def dependenciesNode = asNode().appendNode('dependencies')
300-
configurations.mps.resolvedConfiguration.firstLevelModuleDependencies.each{
301-
def dependencyNode = dependenciesNode.appendNode('dependency')
302-
dependencyNode.appendNode('groupId', it.moduleGroup)
303-
dependencyNode.appendNode('artifactId', it.moduleName)
304-
dependencyNode.appendNode('version', it.moduleVersion)
305-
dependencyNode.appendNode('type', it.moduleArtifacts[0].type)
306-
}
328+
329+
addDependency(pom, 'org.iets3', 'opensource', project.version, 'zip')
330+
}
331+
332+
def runtimesDir = new File(artifactsDir, 'org.iets3.opensource/org.iets3.core.os/languages/iets3.core.os')
333+
334+
'org.iets3.core.expr.base.shared.runtime'(MavenPublication) {
335+
groupId 'org.iets3.core.expr.base.shared'
336+
artifactId 'shared-runtime'
337+
artifact(new File(runtimesDir, 'org.iets3.core.expr.base.shared.runtime.jar')) {
338+
builtBy buildLanguages
339+
}
340+
artifact(new File(runtimesDir, 'org.iets3.core.expr.base.shared.runtime-src.jar')) {
341+
builtBy buildLanguages
342+
classifier 'sources'
343+
}
344+
}
345+
346+
'org.iets3.core.expr.simpleTypes.runtime'(MavenPublication) {
347+
// GitHub Packages refuse uppercase artifactId (not sure about groupId) so use lower case here
348+
groupId 'org.iets3.core.expr.simpletypes'
349+
artifactId 'simpletypes-runtime'
350+
artifact(new File(runtimesDir, 'org.iets3.core.expr.simpleTypes.runtime.jar')) {
351+
builtBy buildLanguages
307352
}
353+
artifact(new File(runtimesDir, 'org.iets3.core.expr.simpleTypes.runtime-src.jar')) {
354+
builtBy buildLanguages
355+
classifier 'sources'
356+
}
357+
358+
addDependency(pom, 'org.iets3.core.expr.base.shared', 'shared-runtime', project.version)
359+
}
360+
361+
'org.iets3.core.expr.datetime.runtime'(MavenPublication) {
362+
groupId 'org.iets3.core.expr.datetime'
363+
artifactId 'datetime-runtime'
364+
artifact(new File(runtimesDir, 'org.iets3.core.expr.datetime.runtime.jar')) {
365+
builtBy buildLanguages
366+
}
367+
artifact(new File(runtimesDir, 'org.iets3.core.expr.datetime.runtime-src.jar')) {
368+
builtBy buildLanguages
369+
classifier 'sources'
370+
}
371+
372+
addDependency(pom, 'org.iets3.core.expr.base.shared', 'shared-runtime', project.version)
373+
}
374+
375+
'org.iets3.core.expr.temporal.runtime'(MavenPublication) {
376+
groupId 'org.iets3.core.expr.temporal'
377+
artifactId 'temporal-runtime'
378+
artifact(new File(runtimesDir, 'org.iets3.core.expr.temporal.runtime.jar')) {
379+
builtBy buildLanguages
380+
}
381+
artifact(new File(runtimesDir, 'org.iets3.core.expr.temporal.runtime-src.jar')) {
382+
builtBy buildLanguages
383+
classifier 'sources'
384+
}
385+
386+
addDependency(pom, 'org.iets3.core.expr.datetime', 'datetime-runtime', project.version)
308387
}
309388
}
310389
}
311390

312391

313392
task generateLibrariesXml(type: GenerateLibrariesXml) {
314-
dependsOn resolveLanguageLibs
393+
dependsOn resolveDependencies
315394
description "Will read project libraries from projectlibraries.properties and generate libraries.xml in .mps directory. Libraries are loaded in mps during start."
316395
defaults rootProject.file('projectlibraries.properties')
317396
overrides rootProject.file('projectlibraries.overrides.properties')
@@ -320,7 +399,7 @@ task generateLibrariesXml(type: GenerateLibrariesXml) {
320399

321400
task setup {
322401
dependsOn generateLibrariesXml
323-
dependsOn resolveLanguageLibs
402+
dependsOn resolveDependencies
324403
description 'Set up MPS project libraries. Libraries are read in from projectlibraries.properties file.'
325404
}
326405

@@ -365,4 +444,4 @@ githubRelease.doFirst {
365444
}
366445
}
367446

368-
githubRelease.dependsOn packageDistroWithDependencies
447+
githubRelease.dependsOn packageDistroWithDependencies

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.collections/lib/pcollections/LICENSE

Lines changed: 0 additions & 19 deletions
This file was deleted.
-41.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)