changeset 10061:b6dfe12478ff

[GRAAL-308] pre-defined working sets for Eclipse
author Michael Haupt <michael.haupt@oracle.com>
date Mon, 17 Jun 2013 08:30:03 +0200
parents 193d5163a94a
children 56fc40ca4ae0
files mx/projects mxtool/mx.py
diffstat 2 files changed, 192 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mx/projects	Sat Jun 15 21:28:20 2013 +0200
+++ b/mx/projects	Mon Jun 17 08:30:03 2013 +0200
@@ -32,6 +32,7 @@
 project@com.oracle.graal.api.runtime@sourceDirs=src
 project@com.oracle.graal.api.runtime@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.runtime@javaCompliance=1.7
+project@com.oracle.graal.api.runtime@workingSets=API,Graal
 
 # graal.api.test
 project@com.oracle.graal.api.test@subDir=graal
@@ -39,12 +40,14 @@
 project@com.oracle.graal.api.test@dependencies=JUNIT,com.oracle.graal.api.runtime
 project@com.oracle.graal.api.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.test@javaCompliance=1.7
+project@com.oracle.graal.api.test@workingSets=API,Graal,Test
 
 # graal.api.meta
 project@com.oracle.graal.api.meta@subDir=graal
 project@com.oracle.graal.api.meta@sourceDirs=src
 project@com.oracle.graal.api.meta@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.meta@javaCompliance=1.7
+project@com.oracle.graal.api.meta@workingSets=API,Graal
 
 # graal.api.meta.test
 project@com.oracle.graal.api.meta.test@subDir=graal
@@ -52,6 +55,7 @@
 project@com.oracle.graal.api.meta.test@dependencies=JUNIT,com.oracle.graal.api.meta,com.oracle.graal.api.runtime
 project@com.oracle.graal.api.meta.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.meta.test@javaCompliance=1.7
+project@com.oracle.graal.api.meta.test@workingSets=API,Graal,Test
 
 # graal.api.code
 project@com.oracle.graal.api.code@subDir=graal
@@ -59,6 +63,7 @@
 project@com.oracle.graal.api.code@dependencies=com.oracle.graal.api.meta
 project@com.oracle.graal.api.code@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.code@javaCompliance=1.7
+project@com.oracle.graal.api.code@workingSets=API,Graal
 
 # graal.api.replacements
 project@com.oracle.graal.api.replacements@subDir=graal
@@ -66,6 +71,7 @@
 project@com.oracle.graal.api.replacements@dependencies=com.oracle.graal.api.meta
 project@com.oracle.graal.api.replacements@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.api.replacements@javaCompliance=1.7
+project@com.oracle.graal.api.replacements@workingSets=API,Graal,Replacements
 
 # graal.service.processor
 project@com.oracle.graal.service.processor@subDir=graal
@@ -73,6 +79,7 @@
 project@com.oracle.graal.service.processor@dependencies=com.oracle.graal.api.runtime
 project@com.oracle.graal.service.processor@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.service.processor@javaCompliance=1.7
+project@com.oracle.graal.service.processor@workingSets=Codegen,HotSpot
 
 # graal.amd64
 project@com.oracle.graal.amd64@subDir=graal
@@ -80,6 +87,7 @@
 project@com.oracle.graal.amd64@dependencies=com.oracle.graal.api.code
 project@com.oracle.graal.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.amd64@javaCompliance=1.7
+project@com.oracle.graal.amd64@workingSets=Graal,AMD64
 
 # graal.ptx
 project@com.oracle.graal.ptx@subDir=graal
@@ -87,6 +95,7 @@
 project@com.oracle.graal.ptx@dependencies=com.oracle.graal.api.code
 project@com.oracle.graal.ptx@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.ptx@javaCompliance=1.7
+project@com.oracle.graal.ptx@workingSets=Graal,PTX
 
 # graal.sparc
 project@com.oracle.graal.sparc@subDir=graal
@@ -94,6 +103,7 @@
 project@com.oracle.graal.sparc@dependencies=com.oracle.graal.api.code
 project@com.oracle.graal.sparc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.sparc@javaCompliance=1.7
+project@com.oracle.graal.sparc@workingSets=Graal,SPARC
 
 # graal.hotspot
 project@com.oracle.graal.hotspot@subDir=graal
@@ -102,6 +112,7 @@
 project@com.oracle.graal.hotspot@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
 project@com.oracle.graal.hotspot@javaCompliance=1.7
+project@com.oracle.graal.hotspot@workingSets=Graal,HotSpot
 
 # graal.hotspot.amd64
 project@com.oracle.graal.hotspot.amd64@subDir=graal
@@ -109,6 +120,7 @@
 project@com.oracle.graal.hotspot.amd64@dependencies=com.oracle.graal.hotspot,com.oracle.graal.compiler.amd64,com.oracle.graal.replacements.amd64
 project@com.oracle.graal.hotspot.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot.amd64@javaCompliance=1.7
+project@com.oracle.graal.hotspot.amd64@workingSets=Graal,HotSpot,AMD64
 
 # graal.hotspot.sparc
 project@com.oracle.graal.hotspot.sparc@subDir=graal
@@ -116,6 +128,7 @@
 project@com.oracle.graal.hotspot.sparc@dependencies=com.oracle.graal.compiler.sparc
 project@com.oracle.graal.hotspot.sparc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot.sparc@javaCompliance=1.7
+project@com.oracle.graal.hotspot.sparc@workingSets=Graal,HotSpot,SPARC
 
 # graal.hotspot.server
 project@com.oracle.graal.hotspot.server@subDir=graal
@@ -123,6 +136,7 @@
 project@com.oracle.graal.hotspot.server@dependencies=com.oracle.graal.hotspot
 project@com.oracle.graal.hotspot.server@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot.server@javaCompliance=1.7
+project@com.oracle.graal.hotspot.server@workingSets=Graal,HotSpot
 
 # graal.hotspot.test
 project@com.oracle.graal.hotspot.test@subDir=graal
@@ -130,6 +144,7 @@
 project@com.oracle.graal.hotspot.test@dependencies=com.oracle.graal.replacements.test
 project@com.oracle.graal.hotspot.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot.test@javaCompliance=1.7
+project@com.oracle.graal.hotspot.test@workingSets=Graal,HotSpot,Test
 
 # graal.hotspot.amd64.test
 project@com.oracle.graal.hotspot.amd64.test@subDir=graal
@@ -137,6 +152,7 @@
 project@com.oracle.graal.hotspot.amd64.test@dependencies=com.oracle.graal.asm.amd64,com.oracle.graal.compiler.test
 project@com.oracle.graal.hotspot.amd64.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.hotspot.amd64.test@javaCompliance=1.7
+project@com.oracle.graal.hotspot.amd64.test@workingSets=Graal,HotSpot,AMD64,Test
 
 # graal.options
 project@com.oracle.graal.options@subDir=graal
@@ -144,12 +160,14 @@
 project@com.oracle.graal.options@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.options@javaCompliance=1.7
 project@com.oracle.graal.options@annotationProcessorForDependents=true
+project@com.oracle.graal.options@workingSets=Graal,Codegen
 
 # graal.graph
 project@com.oracle.graal.graph@subDir=graal
 project@com.oracle.graal.graph@sourceDirs=src
 project@com.oracle.graal.graph@dependencies=
 project@com.oracle.graal.graph@javaCompliance=1.7
+project@com.oracle.graal.graph@workingSets=Graal,Graph
 
 # graal.graph.test
 project@com.oracle.graal.graph.test@subDir=graal
@@ -157,12 +175,14 @@
 project@com.oracle.graal.graph.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.graph.test@dependencies=JUNIT,com.oracle.graal.graph
 project@com.oracle.graal.graph.test@javaCompliance=1.7
+project@com.oracle.graal.graph.test@workingSets=Graal,Graph,Test
 
 # graal.debug
 project@com.oracle.graal.debug@subDir=graal
 project@com.oracle.graal.debug@sourceDirs=src
 project@com.oracle.graal.debug@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.debug@javaCompliance=1.7
+project@com.oracle.graal.debug@workingSets=Graal,Debug
 
 # graal.debug.test
 project@com.oracle.graal.debug.test@subDir=graal
@@ -170,6 +190,7 @@
 project@com.oracle.graal.debug.test@dependencies=JUNIT,com.oracle.graal.debug
 project@com.oracle.graal.debug.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.debug.test@javaCompliance=1.7
+project@com.oracle.graal.debug.test@workingSets=Graal,Debug,Test
 
 # graal.lir
 project@com.oracle.graal.lir@subDir=graal
@@ -177,6 +198,7 @@
 project@com.oracle.graal.lir@dependencies=com.oracle.graal.asm,com.oracle.graal.nodes
 project@com.oracle.graal.lir@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.lir@javaCompliance=1.7
+project@com.oracle.graal.lir@workingSets=Graal,LIR
 
 # graal.lir.amd64
 project@com.oracle.graal.lir.amd64@subDir=graal
@@ -184,6 +206,7 @@
 project@com.oracle.graal.lir.amd64@dependencies=com.oracle.graal.lir,com.oracle.graal.asm.amd64
 project@com.oracle.graal.lir.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.lir.amd64@javaCompliance=1.7
+project@com.oracle.graal.lir.amd64@workingSets=Graal,LIR,AMD64
 
 # graal.lir.ptx
 project@com.oracle.graal.lir.ptx@subDir=graal
@@ -191,6 +214,7 @@
 project@com.oracle.graal.lir.ptx@dependencies=com.oracle.graal.asm.ptx,com.oracle.graal.lir
 project@com.oracle.graal.lir.ptx@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.lir.ptx@javaCompliance=1.7
+project@com.oracle.graal.lir.ptx@workingSets=Graal,LIR,PTX
 
 # graal.lir.sparc
 project@com.oracle.graal.lir.sparc@subDir=graal
@@ -198,6 +222,7 @@
 project@com.oracle.graal.lir.sparc@dependencies=com.oracle.graal.asm.sparc
 project@com.oracle.graal.lir.sparc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.lir.sparc@javaCompliance=1.7
+project@com.oracle.graal.lir.sparc@workingSets=Graal,LIR,SPARC
 
 # graal.alloc
 project@com.oracle.graal.alloc@subDir=graal
@@ -205,6 +230,7 @@
 project@com.oracle.graal.alloc@dependencies=com.oracle.graal.nodes
 project@com.oracle.graal.alloc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.alloc@javaCompliance=1.7
+project@com.oracle.graal.alloc@workingSets=Graal
 
 # graal.word
 project@com.oracle.graal.word@subDir=graal
@@ -212,6 +238,7 @@
 project@com.oracle.graal.word@dependencies=com.oracle.graal.phases
 project@com.oracle.graal.word@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.word@javaCompliance=1.7
+project@com.oracle.graal.word@workingSets=API,Graal
 
 # graal.replacements
 project@com.oracle.graal.replacements@subDir=graal
@@ -220,6 +247,7 @@
 project@com.oracle.graal.replacements@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.replacements@javaCompliance=1.7
 project@com.oracle.graal.replacements@annotationProcessors=com.oracle.graal.replacements.verifier,com.oracle.graal.service.processor
+project@com.oracle.graal.replacements@workingSets=Graal,Replacements
 
 # graal.replacements.amd64
 project@com.oracle.graal.replacements.amd64@subDir=graal
@@ -227,6 +255,7 @@
 project@com.oracle.graal.replacements.amd64@dependencies=com.oracle.graal.replacements
 project@com.oracle.graal.replacements.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.replacements.amd64@javaCompliance=1.7
+project@com.oracle.graal.replacements.amd64@workingSets=Graal,Replacements,AMD64
 
 # graal.replacements.test
 project@com.oracle.graal.replacements.test@subDir=graal
@@ -234,6 +263,7 @@
 project@com.oracle.graal.replacements.test@dependencies=com.oracle.graal.compiler.test
 project@com.oracle.graal.replacements.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.replacements.test@javaCompliance=1.7
+project@com.oracle.graal.replacements.test@workingSets=Graal,Replacements,Test
 
 # graal.replacements.verifier
 project@com.oracle.graal.replacements.verifier@subDir=graal
@@ -241,6 +271,7 @@
 project@com.oracle.graal.replacements.verifier@dependencies=com.oracle.graal.api.replacements
 project@com.oracle.graal.replacements.verifier@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.replacements.verifier@javaCompliance=1.7
+project@com.oracle.graal.replacements.verifier@workingSets=Graal,Replacements
 
 # graal.nodes
 project@com.oracle.graal.nodes@subDir=graal
@@ -248,6 +279,7 @@
 project@com.oracle.graal.nodes@dependencies=com.oracle.graal.api.code,com.oracle.graal.graph,com.oracle.graal.debug,com.oracle.graal.api.replacements
 project@com.oracle.graal.nodes@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.nodes@javaCompliance=1.7
+project@com.oracle.graal.nodes@workingSets=Graal,Graph
 
 # graal.phases
 project@com.oracle.graal.phases@subDir=graal
@@ -255,6 +287,7 @@
 project@com.oracle.graal.phases@dependencies=com.oracle.graal.nodes,com.oracle.graal.options
 project@com.oracle.graal.phases@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.phases@javaCompliance=1.7
+project@com.oracle.graal.phases@workingSets=Graal,Phases
 
 # graal.phases.common
 project@com.oracle.graal.phases.common@subDir=graal
@@ -262,6 +295,7 @@
 project@com.oracle.graal.phases.common@dependencies=com.oracle.graal.phases
 project@com.oracle.graal.phases.common@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.phases.common@javaCompliance=1.7
+project@com.oracle.graal.phases.common@workingSets=Graal,Phases
 
 # graal.virtual
 project@com.oracle.graal.virtual@subDir=graal
@@ -269,6 +303,7 @@
 project@com.oracle.graal.virtual@dependencies=com.oracle.graal.phases.common
 project@com.oracle.graal.virtual@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.virtual@javaCompliance=1.7
+project@com.oracle.graal.virtual@workingSets=Graal,Phases
 
 # graal.loop
 project@com.oracle.graal.loop@subDir=graal
@@ -276,6 +311,7 @@
 project@com.oracle.graal.loop@dependencies=com.oracle.graal.phases.common
 project@com.oracle.graal.loop@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.loop@javaCompliance=1.7
+project@com.oracle.graal.loop@workingSets=Graal,Phases
 
 # graal.compiler
 project@com.oracle.graal.compiler@subDir=graal
@@ -284,6 +320,7 @@
 project@com.oracle.graal.compiler@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler@javaCompliance=1.7
 project@com.oracle.graal.compiler@annotationProcessors=com.oracle.graal.service.processor
+project@com.oracle.graal.compiler@workingSets=Graal
 
 # graal.compiler.amd64
 project@com.oracle.graal.compiler.amd64@subDir=graal
@@ -291,6 +328,7 @@
 project@com.oracle.graal.compiler.amd64@dependencies=com.oracle.graal.compiler,com.oracle.graal.lir.amd64
 project@com.oracle.graal.compiler.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.amd64@javaCompliance=1.7
+project@com.oracle.graal.compiler.amd64@workingSets=Graal,AMD64
 
 # graal.compiler.amd64.test
 project@com.oracle.graal.compiler.amd64.test@subDir=graal
@@ -298,6 +336,7 @@
 project@com.oracle.graal.compiler.amd64.test@dependencies=com.oracle.graal.compiler.test
 project@com.oracle.graal.compiler.amd64.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.amd64.test@javaCompliance=1.7
+project@com.oracle.graal.compiler.amd64.test@workingSets=Graal,AMD64,Test
 
 # graal.compiler.ptx
 project@com.oracle.graal.compiler.ptx@subDir=graal
@@ -305,6 +344,7 @@
 project@com.oracle.graal.compiler.ptx@dependencies=com.oracle.graal.lir.ptx,com.oracle.graal.hotspot
 project@com.oracle.graal.compiler.ptx@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.ptx@javaCompliance=1.7
+project@com.oracle.graal.compiler.ptx@workingSets=Graal,PTX
 
 # graal.compiler.ptx.test
 project@com.oracle.graal.compiler.ptx.test@subDir=graal
@@ -312,6 +352,7 @@
 project@com.oracle.graal.compiler.ptx.test@dependencies=com.oracle.graal.compiler.ptx,com.oracle.graal.compiler.test,com.oracle.graal.ptx
 project@com.oracle.graal.compiler.ptx.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.ptx.test@javaCompliance=1.7
+project@com.oracle.graal.compiler.ptx.test@workingSets=Graal,PTX,Test
 
 # graal.compiler.sparc
 project@com.oracle.graal.compiler.sparc@subDir=graal
@@ -319,6 +360,7 @@
 project@com.oracle.graal.compiler.sparc@dependencies=com.oracle.graal.lir.sparc
 project@com.oracle.graal.compiler.sparc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.sparc@javaCompliance=1.7
+project@com.oracle.graal.compiler.sparc@workingSets=Graal,SPARC
 
 # graal.compiler.sparc.test
 project@com.oracle.graal.compiler.sparc.test@subDir=graal
@@ -326,12 +368,14 @@
 project@com.oracle.graal.compiler.sparc.test@dependencies=com.oracle.graal.compiler.sparc,com.oracle.graal.compiler.test
 project@com.oracle.graal.compiler.sparc.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.sparc.test@javaCompliance=1.7
+project@com.oracle.graal.compiler.sparc.test@workingSets=Graal,SPARC,Test
 
 # graal.bytecode
 project@com.oracle.graal.bytecode@subDir=graal
 project@com.oracle.graal.bytecode@sourceDirs=src
 project@com.oracle.graal.bytecode@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.bytecode@javaCompliance=1.7
+project@com.oracle.graal.bytecode@workingSets=Graal,Java
 
 # graal.java
 project@com.oracle.graal.java@subDir=graal
@@ -339,6 +383,7 @@
 project@com.oracle.graal.java@dependencies=com.oracle.graal.phases,com.oracle.graal.bytecode
 project@com.oracle.graal.java@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.java@javaCompliance=1.7
+project@com.oracle.graal.java@workingSets=Graal,Java
 
 # graal.printer
 project@com.oracle.graal.printer@subDir=graal
@@ -346,6 +391,7 @@
 project@com.oracle.graal.printer@dependencies=com.oracle.graal.java,com.oracle.graal.compiler
 project@com.oracle.graal.printer@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.printer@javaCompliance=1.7
+project@com.oracle.graal.printer@workingSets=Graal,Graph
 
 # graal.test
 project@com.oracle.graal.test@subDir=graal
@@ -353,6 +399,7 @@
 project@com.oracle.graal.test@dependencies=JUNIT
 project@com.oracle.graal.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.test@javaCompliance=1.7
+project@com.oracle.graal.test@workingSets=Graal,Test
 
 # graal.compiler.test
 project@com.oracle.graal.compiler.test@subDir=graal
@@ -360,6 +407,7 @@
 project@com.oracle.graal.compiler.test@dependencies=com.oracle.graal.test,com.oracle.graal.hotspot
 project@com.oracle.graal.compiler.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.compiler.test@javaCompliance=1.7
+project@com.oracle.graal.compiler.test@workingSets=Graal,Test
 
 # graal.jtt
 project@com.oracle.graal.jtt@subDir=graal
@@ -367,6 +415,7 @@
 project@com.oracle.graal.jtt@dependencies=com.oracle.graal.compiler.test
 project@com.oracle.graal.jtt@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.jtt@javaCompliance=1.7
+project@com.oracle.graal.jtt@workingSets=Graal,Test
 
 # graal.asm
 project@com.oracle.graal.asm@subDir=graal
@@ -374,6 +423,7 @@
 project@com.oracle.graal.asm@dependencies=com.oracle.graal.api.code
 project@com.oracle.graal.asm@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm@javaCompliance=1.7
+project@com.oracle.graal.asm@workingSets=Graal,Assembler
 
 # graal.asm.test
 project@com.oracle.graal.asm.test@subDir=graal
@@ -381,6 +431,7 @@
 project@com.oracle.graal.asm.test@dependencies=com.oracle.graal.api.runtime,com.oracle.graal.test,com.oracle.graal.asm
 project@com.oracle.graal.asm.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm.test@javaCompliance=1.7
+project@com.oracle.graal.asm.test@workingSets=Graal,Assembler,Test
 
 # graal.asm.amd64
 project@com.oracle.graal.asm.amd64@subDir=graal
@@ -388,6 +439,7 @@
 project@com.oracle.graal.asm.amd64@dependencies=com.oracle.graal.asm,com.oracle.graal.amd64
 project@com.oracle.graal.asm.amd64@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm.amd64@javaCompliance=1.7
+project@com.oracle.graal.asm.amd64@workingSets=Graal,Assembler,AMD64
 
 # graal.asm.amd64.test
 project@com.oracle.graal.asm.amd64.test@subDir=graal
@@ -395,6 +447,7 @@
 project@com.oracle.graal.asm.amd64.test@dependencies=com.oracle.graal.asm.test,com.oracle.graal.asm.amd64
 project@com.oracle.graal.asm.amd64.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm.amd64.test@javaCompliance=1.7
+project@com.oracle.graal.asm.amd64.test@workingSets=Graal,Assembler,AMD64,Test
 
 # graal.asm.ptx
 project@com.oracle.graal.asm.ptx@subDir=graal
@@ -402,6 +455,7 @@
 project@com.oracle.graal.asm.ptx@dependencies=com.oracle.graal.asm
 project@com.oracle.graal.asm.ptx@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm.ptx@javaCompliance=1.7
+project@com.oracle.graal.asm.ptx@workingSets=Graal,Assembler,PTX
 
 # graal.asm.sparc
 project@com.oracle.graal.asm.sparc@subDir=graal
@@ -409,6 +463,7 @@
 project@com.oracle.graal.asm.sparc@dependencies=com.oracle.graal.hotspot,com.oracle.graal.sparc
 project@com.oracle.graal.asm.sparc@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.asm.sparc@javaCompliance=1.7
+project@com.oracle.graal.asm.sparc@workingSets=Graal,Assembler,SPARC
 
 # truffle.api
 project@com.oracle.truffle.api@subDir=graal
@@ -416,6 +471,7 @@
 project@com.oracle.truffle.api@dependencies=
 project@com.oracle.truffle.api@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.api@javaCompliance=1.7
+project@com.oracle.truffle.api@workingSets=API,Truffle
 
 # truffle.api.test
 project@com.oracle.truffle.api.test@subDir=graal
@@ -423,6 +479,7 @@
 project@com.oracle.truffle.api.test@dependencies=com.oracle.truffle.api,JUNIT
 project@com.oracle.truffle.api.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.api.test@javaCompliance=1.7
+project@com.oracle.truffle.api.test@workingSets=API,Truffle,Test
 
 # truffle.api.codegen
 project@com.oracle.truffle.api.codegen@subDir=graal
@@ -430,6 +487,7 @@
 project@com.oracle.truffle.api.codegen@dependencies=com.oracle.truffle.api
 project@com.oracle.truffle.api.codegen@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.api.codegen@javaCompliance=1.7
+project@com.oracle.truffle.api.codegen@workingSets=API,Truffle,Codegen
 
 # truffle.api.codegen.test
 project@com.oracle.truffle.api.codegen.test@subDir=graal
@@ -438,6 +496,7 @@
 project@com.oracle.truffle.api.codegen.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.api.codegen.test@javaCompliance=1.7
 project@com.oracle.truffle.api.codegen.test@annotationProcessors=com.oracle.truffle.codegen.processor
+project@com.oracle.truffle.api.codegen.test@workingSets=API,Truffle,Codegen,Test
 
 # truffle.codegen.processor
 project@com.oracle.truffle.codegen.processor@subDir=graal
@@ -445,6 +504,7 @@
 project@com.oracle.truffle.codegen.processor@dependencies=com.oracle.truffle.api.codegen
 project@com.oracle.truffle.codegen.processor@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.codegen.processor@javaCompliance=1.7
+project@com.oracle.truffle.codegen.processor@workingSets=Truffle,Codegen
 
 # truffle.sl
 project@com.oracle.truffle.sl@subDir=graal
@@ -453,6 +513,7 @@
 project@com.oracle.truffle.sl@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.sl@javaCompliance=1.7
 project@com.oracle.truffle.sl@annotationProcessors=com.oracle.truffle.codegen.processor
+project@com.oracle.truffle.sl@workingSets=Truffle,SimpleLanguage
 
 # truffle.sl.test
 project@com.oracle.truffle.sl.test@subDir=graal
@@ -460,6 +521,7 @@
 project@com.oracle.truffle.sl.test@dependencies=com.oracle.truffle.sl,JUNIT
 project@com.oracle.truffle.sl.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.truffle.sl.test@javaCompliance=1.7
+project@com.oracle.truffle.sl.test@workingSets=Truffle,SimpleLanguage,Test
 
 
 
--- a/mxtool/mx.py	Sat Jun 15 21:28:20 2013 +0200
+++ b/mxtool/mx.py	Mon Jun 17 08:30:03 2013 +0200
@@ -125,6 +125,11 @@
     javaCompliance
         The minimum JDK version (format: x.y) to which the project's
         sources comply (required for non-native projects).
+    
+    workingSets
+        A comma separated list of working set names. The project belongs
+        to the given working sets, for which the eclipseinit command
+        will generate Eclipse configurations.
 
 Other properties can be specified for projects and libraries for use
 by extension commands.
@@ -198,13 +203,14 @@
         return isinstance(self, Library)
 
 class Project(Dependency):
-    def __init__(self, suite, name, srcDirs, deps, javaCompliance, d):
+    def __init__(self, suite, name, srcDirs, deps, javaCompliance, workingSets, d):
         Dependency.__init__(self, suite, name)
         self.srcDirs = srcDirs
         self.deps = deps
         self.checkstyleProj = name
         self.javaCompliance = JavaCompliance(javaCompliance) if javaCompliance is not None else None
         self.native = False
+        self.workingSets = workingSets
         self.dir = d
         
         # Create directories for projects that don't yet exist
@@ -530,12 +536,13 @@
             ap = pop_list(attrs, 'annotationProcessors')
             #deps += ap
             javaCompliance = attrs.pop('javaCompliance', None)
-            subDir = attrs.pop('subDir', None);
+            subDir = attrs.pop('subDir', None)
             if subDir is None:
                 d = join(self.dir, name)
             else:
                 d = join(self.dir, subDir, name)
-            p = Project(self, name, srcDirs, deps, javaCompliance, d)
+            workingSets = attrs.pop('workingSets', None)
+            p = Project(self, name, srcDirs, deps, javaCompliance, workingSets, d)
             p.checkstyleProj = attrs.pop('checkstyle', name)
             p.native = attrs.pop('native', '') == 'true'
             if not p.native and p.javaCompliance is None:
@@ -2179,7 +2186,7 @@
     return update_file(join(eclipseLaunches, name + '.launch'), launch)
 
 def eclipseinit(args, suite=None, buildProcessorJars=True):
-    """(re)generate Eclipse project configurations"""
+    """(re)generate Eclipse project configurations and working sets"""
 
     if suite is None:
         suite = _mainSuite
@@ -2367,6 +2374,7 @@
             update_file(join(p.dir, '.factorypath'), out.xml(indent='\t', newl='\n'))
 
     make_eclipse_attach('localhost', '8000', deps=projects())
+    generate_eclipse_workingsets(suite)
 
 
 def _isAnnotationProcessorDependency(p):
@@ -2423,6 +2431,124 @@
     dotProjectDoc.close('dictionary')
     dotProjectDoc.close('arguments')
     dotProjectDoc.close('buildCommand')
+
+def generate_eclipse_workingsets(suite):
+    """
+    Populate the workspace's working set configuration with working sets generated from project data.
+    If the workspace already contains working set definitions, the existing ones will be retained and extended.
+    In case mx/env does not contain a WORKSPACE definition pointing to the workspace root directory, the Graal project root directory will be assumed.
+    If no workspace root directory can be identified, the Graal project root directory is used and the user has to place the workingsets.xml file by hand. 
+    """
+    
+    # identify the location where to look for workingsets.xml
+    wsfilename = 'workingsets.xml'
+    wsroot = suite.dir
+    if os.environ.has_key('WORKSPACE'):
+        wsroot = os.environ['WORKSPACE']
+    wsdir = join(wsroot, '.metadata/.plugins/org.eclipse.ui.workbench')
+    if not exists(wsdir):
+        wsdir = wsroot
+    wspath = join(wsdir, wsfilename)
+    
+    # gather working set info from project data
+    workingSets = dict()
+    for p in projects():
+        if p.workingSets is None:
+            continue
+        for w in p.workingSets.split(","):
+            if not workingSets.has_key(w):
+                workingSets[w] = [p.name]
+            else:
+                workingSets[w].append(p.name)
+    
+    if exists(wspath):
+        wsdoc = _copy_workingset_xml(wspath, workingSets)
+    else:
+        wsdoc = _make_workingset_xml(workingSets)
+    
+    update_file(wspath, wsdoc.xml(newl='\n'))
+
+def _make_workingset_xml(workingSets):
+    wsdoc = XMLDoc()
+    wsdoc.open('workingSetManager')
+    
+    for w in sorted(workingSets.keys()):
+        _workingset_open(wsdoc, w)
+        for p in workingSets[w]:
+            _workingset_element(wsdoc, p)
+        wsdoc.close('workingSet')
+    
+    wsdoc.close('workingSetManager')
+    return wsdoc
+
+def _copy_workingset_xml(wspath, workingSets):
+    target = XMLDoc()
+    target.open('workingSetManager')
+
+    parser = xml.parsers.expat.ParserCreate()
+    
+    class ParserState(object):
+        def __init__(self):
+            self.current_ws_name = 'none yet'
+            self.current_ws = None
+            self.seen_ws = list()
+            self.seen_projects = list()
+    
+    ps = ParserState()
+    
+    # parsing logic
+    def _ws_start(name, attributes):
+        if name == 'workingSet':
+            ps.current_ws_name = attributes['name']
+            if workingSets.has_key(ps.current_ws_name):
+                ps.current_ws = workingSets[ps.current_ws_name]
+                ps.seen_ws.append(ps.current_ws_name)
+                ps.seen_projects = list()
+            else:
+                ps.current_ws = None
+            target.open(name, attributes)
+            parser.StartElementHandler = _ws_item
+    
+    def _ws_end(name):
+        if name == 'workingSet':
+            if not ps.current_ws is None:
+                for p in ps.current_ws:
+                    if not p in ps.seen_projects:
+                        _workingset_element(target, p)
+            target.close('workingSet')
+            parser.StartElementHandler = _ws_start
+        elif name == 'workingSetManager':
+            # process all working sets that are new to the file
+            for w in sorted(workingSets.keys()):
+                if not w in ps.seen_ws:
+                    _workingset_open(target, w)
+                    for p in workingSets[w]:
+                        _workingset_element(target, p)
+                    target.close('workingSet')
+    
+    def _ws_item(name, attributes):
+        if name == 'item':
+            if ps.current_ws is None:
+                target.element(name, attributes)
+            else:
+                p_name = attributes['elementID'][1:] # strip off the leading '='
+                _workingset_element(target, p_name)
+                ps.seen_projects.append(p_name)
+    
+    # process document
+    parser.StartElementHandler = _ws_start
+    parser.EndElementHandler = _ws_end
+    with open(wspath, 'r') as wsfile:
+        parser.ParseFile(wsfile)
+    
+    target.close('workingSetManager')
+    return target
+
+def _workingset_open(wsdoc, ws):
+    wsdoc.open('workingSet', {'editPageID': 'org.eclipse.jdt.ui.JavaWorkingSetPage', 'factoryID': 'org.eclipse.ui.internal.WorkingSetFactory', 'id': 'wsid_' + ws, 'label': ws, 'name': ws})
+
+def _workingset_element(wsdoc, p):
+    wsdoc.element('item', {'elementID': '=' + p, 'factoryID': 'org.eclipse.jdt.ui.PersistableJavaElementFactory'})
     
 def netbeansinit(args, suite=None):
     """(re)generate NetBeans project configurations"""