Standalone IDE with MPS 3.1 - "Dependency on MPS build scripts"


I am currenty building a standalone IDE for my DSLs with MPS 3.1 (latest, 135.944). I have to do it headless (using ant), because I do it automatcially on a continuous integration server. It's working so far, building the standalone IDE and is not complaining. But when starting the IDE, creating a new solution and importing the languages/devkits of my DSLs, it will let me create the root concepts, but they don't have an editor, so I can't edit them. It seems that some aspects of the language are missing or incomplete (e.g. the editors?).

I figured that maybe just building the default ant target is not enough, since I remember that I had to build tthe the 'generate' target before, when I did the same with MPS 2.5 to get a working standalone IDE. But when calling
ant generate

now with the build script generated by MPS 3.1, it will always raise the error
{...snip...}/build.xml:208: Dependency on MPS build scripts is required to generate MPS modules.

which sounds reasonable, but I have no idea how to correct this.

Any ideas, tipps, tricks? How can I add this missing dependency to my build solution?

Thanks in advance, cheers,

PS: I had a look at, but figured it is much easier to use the 'New->Build Solution' provided by MPS, which does much of the stuff automagically.
I found the missing piece. Where the build solution wizard will already put a dependency to mpsStandalone and mpsMakePlugin , you have to add a dependency to mps . After that, headless
ant generate

worked for me (except this minor issue




I am attempting to create a small language based off the Calculator example to learn how to create a Standalone IDE and build scripts.  I am new to MPS.

I keep getting the following error in my build script and I can't figure out how to resolve the dependency.  I am hoping someone here can help me.

Here is the entire build script:

build ProjectDecaf generates build.xml

base directory: ../../ [JComponent javax.swing.JButton[,513,48,20x20,alignmentX=0.0,alignmentY=0.5,border=com.intellij.ide.ui.laf.intellij.WinIntelliJButtonBorder@11227dea,flags=296,maximumSize=,minimumSize=,preferredSize=java.awt.Dimension[width=20,height=20],defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=com.intellij.util.ui.JBInsets$JBInsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=...,defaultCapable=true] ]

use plugins:

var date = date yyyyMMdd
var build.number = ProjectDecaf-172.SNAPSHOT
folder mps_home = <no defaultPath>

mpsStandalone (artifacts location $mps_home)
mpsMakePlugin (artifacts location $mps_home/plugins)
mps (artifacts location $mps_home)

project structure:
idea branding
codename ProjectDecaf
1.0.<no bugfixNr>, eap false
company <no company>
build number ${build.number}, date ${date}
logo splash screen ./icons/splash.png
textcolor 002387
progressColor <no progressColor>
progressX <no progressX>
progressY <no progressY>
progressHeight <no progressHeight>
about screen ./icons/about.png
foreground <no foreground>
copyrightForeground <no copyrightForeground>
linkColor <no linkColor>
logoX <no logoX>
logoY <no logoY>
logoW <no logoW>
logoH <no logoH>
16x16 ./icons/MPS16.png
32x32 ./icons/MPS32.png
32x32 opaque ./icons/MPS32.png
128x128 <no icon128>
icon <no icon>
icon toolWindow <no iconToolWindow>
name ProjectDecaf
full name ProjectDecaf

welcome screen ./icons/logo.png
editor background-url default background

plugins <no plugins>
<no updateWebsite>

<no help>
documentation <no documentation>
support <no support>
feedback url <no feedbackUrl>
whats new <no whatsnew>
<no keymap>
third-party <no thirdparty>
custom elements
<< ... >>

<no stats>

idea plugin ProjectDecaf
name ProjectDecaf
short (folder) name ProjectDecaf
description <no description>
version 1.0
<< no vendor >>
<< ... >>

mps group ProjectDecaf
solution Decaf2.runtime
load from ./languages/Decaf2/runtime/

language Decaf2
load from ./languages/Decaf2/Decaf2.mpl

default layout:
import mpsStandalone::languages
import mpsStandalone::license
folder bin
import files from mpsStandalone::bin
include log.xml
include log4j.dtd
file $mps_home/bin/
replace regex "\.MPS(\w+)" /g -> \.${build.number}

folder lib
import files from mpsStandalone::lib
exclude branding.jar
jar branding.jar
files of idea branding ProjectDecaf

folder plugins
import mpsStandalone::plugins/cvsIntegration
import mps::plugins/svn4idea
import mps::plugins/git4idea
import mpsStandalone::plugins/mps-core
plugin ProjectDecaf

properties file build.number
build.number = ${build.number}
date = ${date}
version = 1.0

<<additional aspects>>



Please sign in to leave a comment.