# HG changeset patch # User Christian Humer # Date 1359992210 -3600 # Node ID f81be78f15a54792de38790ee8662bcb5e1509ea # Parent c5a4c817fe1cf64a2824755e31e066eeee321bcf Fixed eclipse configuration for annotation processors. Annotation processor jars are not builded asynchronously anymore to avoid a crash of eclipse. diff -r c5a4c817fe1c -r f81be78f15a5 graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/Log.java --- 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) { diff -r c5a4c817fe1c -r f81be78f15a5 graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java --- 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> 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 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(); diff -r c5a4c817fe1c -r f81be78f15a5 mxtool/mx.py --- 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 "/.externalToolBuilders/Jar.launch" - - + return ''.join(["/.externalToolBuilders/", name]) def netbeansinit(args, suite=None):