changeset 7681:f81be78f15a5

Fixed eclipse configuration for annotation processors. Annotation processor jars are not builded asynchronously anymore to avoid a crash of eclipse.
author Christian Humer <christian.humer@gmail.com>
date Mon, 04 Feb 2013 16:36:50 +0100
parents c5a4c817fe1c
children 5209cd031aec
files graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/Log.java graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java mxtool/mx.py
diffstat 3 files changed, 33 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/Log.java	Thu Jan 31 16:33:12 2013 +0100
+++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/Log.java	Mon Feb 04 16:36:50 2013 +0100
@@ -33,6 +33,8 @@
  */
 public class Log {
 
+    public static final boolean DEBUG = false;
+
     private final ProcessingEnvironment processingEnv;
 
     public Log(ProcessingEnvironment env) {
--- a/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java	Thu Jan 31 16:33:12 2013 +0100
+++ b/graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java	Mon Feb 04 16:36:50 2013 +0100
@@ -44,8 +44,6 @@
     public static final List<Class<? extends Annotation>> ANNOTATIONS = Arrays.asList(Generic.class, GuardCheck.class, TypeSystemReference.class, ShortCircuit.class, Specialization.class,
                     SpecializationGuard.class, SpecializationListener.class, SpecializationThrows.class);
 
-    private static final boolean DEBUG = false;
-
     private Map<String, NodeData> parsedNodes;
     private TypeElement originalType;
 
@@ -62,7 +60,7 @@
 
             return parseInnerClassHierarchy((TypeElement) element);
         } finally {
-            if (DEBUG) {
+            if (Log.DEBUG) {
                 NodeData parsed = parsedNodes.get(Utils.getQualifiedName(originalType));
                 if (parsed != null) {
                     String dump = parsed.dump();
--- a/mxtool/mx.py	Thu Jan 31 16:33:12 2013 +0100
+++ b/mxtool/mx.py	Mon Feb 04 16:36:50 2013 +0100
@@ -2096,21 +2096,23 @@
                 out.close('buildCommand')
 
         if (_needsEclipseJarBuild(p)):
-            out.open('buildCommand')
-            out.element('name', data='org.eclipse.ui.externaltools.ExternalToolBuilder')
-            out.element('triggers', data='auto,full,incremental,')
-            out.open('arguments')
-            out.open('dictionary')
-            out.element('key', data = 'LaunchConfigHandle')
-            out.element('value', data = _genEclipseJarBuild(p))
-            out.close('dictionary')
-            out.open('dictionary')
-            out.element('key', data = 'incclean')
-            out.element('value', data = 'true')
-            out.close('dictionary')
-            out.close('arguments')
-            out.close('buildCommand')       
-                
+            targetValues = _genEclipseJarBuild(p);
+            for value in targetValues:
+                out.open('buildCommand')
+                out.element('name', data='org.eclipse.ui.externaltools.ExternalToolBuilder')
+                out.element('triggers', data='auto,full,incremental,')
+                out.open('arguments')
+                out.open('dictionary')
+                out.element('key', data = 'LaunchConfigHandle')
+                out.element('value', data = value)
+                out.close('dictionary')
+                out.open('dictionary')
+                out.element('key', data = 'incclean')
+                out.element('value', data = 'true')
+                out.close('dictionary')
+                out.close('arguments')
+                out.close('buildCommand')       
+                    
         out.close('buildSpec')
         out.open('natures')
         out.element('nature', data='org.eclipse.jdt.core.javanature')
@@ -2184,12 +2186,20 @@
     return False
 
 def _genEclipseJarBuild(p):
+    builders = []
+    builders.append(_genEclipseLaunch(p, 'Jar.launch', ''.join(['jar ', p.name]), refresh = False, async = False))
+    builders.append(_genEclipseLaunch(p, 'Refresh.launch', '', refresh = True, async = True))
+    return builders
+
+def _genEclipseLaunch(p, name, mxCommand, refresh=True, async=False):
     launchOut = XMLDoc();
     launchOut.open('launchConfiguration', {'type' : 'org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType'})
-    launchOut.element('stringAttribute',  {'key' : 'org.eclipse.debug.core.ATTR_REFRESH_SCOPE',            'value': '${project}'})
+    if refresh:
+        launchOut.element('stringAttribute',  {'key' : 'org.eclipse.debug.core.ATTR_REFRESH_SCOPE',            'value': '${project}'})
     launchOut.element('booleanAttribute', {'key' : 'org.eclipse.debug.core.capture_output',                'value': 'false'})
     launchOut.element('booleanAttribute', {'key' : 'org.eclipse.debug.ui.ATTR_CONSOLE_OUTPUT_ON',          'value': 'false'})
-    launchOut.element('booleanAttribute', {'key' : 'org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND',       'value': 'true'})
+    if async:
+        launchOut.element('booleanAttribute', {'key' : 'org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND',       'value': 'true'})
     
     baseDir = dirname(dirname(os.path.abspath(__file__)))
     
@@ -2198,7 +2208,7 @@
         cmd = 'mx.cmd'
     launchOut.element('stringAttribute',  {'key' : 'org.eclipse.ui.externaltools.ATTR_LOCATION',           'value': join(baseDir, cmd) })
     launchOut.element('stringAttribute',  {'key' : 'org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS',    'value': 'auto,full,incremental'})
-    launchOut.element('stringAttribute',  {'key' : 'org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS',     'value': ''.join(['jar', ' ', p.name])})
+    launchOut.element('stringAttribute',  {'key' : 'org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS',     'value': mxCommand})
     launchOut.element('booleanAttribute', {'key' : 'org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED','value': 'true'})
     launchOut.element('stringAttribute',  {'key' : 'org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY',  'value': baseDir})
     
@@ -2209,11 +2219,9 @@
     
     if not exists(externalToolDir):
         os.makedirs(externalToolDir)
-    update_file(join(externalToolDir, 'Jar.launch'), launchOut.xml(indent='\t', newl='\n'))
+    update_file(join(externalToolDir, name), launchOut.xml(indent='\t', newl='\n'))
     
-    return "<project>/.externalToolBuilders/Jar.launch"
-
-
+    return ''.join(["<project>/.externalToolBuilders/", name])
 
 
 def netbeansinit(args, suite=None):