OK, so it sounds like you currently just launch MXMLC and COMPC.  That should 
make it relatively easy to call Falcon's MXMLC and COMPC, depending on how you 
get the error list.  Falcon's MXMLC and COMPC classes are in a different 
package than flex2.tools, but it might even be possible to provide a wrapper 
for Falcon's MXMLC and COMPC in the flex2.tools package.

Currently, FlashBuilder uses an entirely different interface to what MXMLC and 
COMPC eventually call.  If you look in the Apache Flex source under 
modules/compiler/src/java/flex2/tools/oem and 
modules/compiler/src/java/flex2/tools/flexbuilder you will see lots of classes 
in there that seem to build a database of compilation units and try to decide 
which ones need re-compilation without chasing the dependencies from the main 
compilation unit like MXMLC and COMPC currently do.

I had never looked at this code before.  It was only when I tried to get 
FlashBuilder to call Falcon that I realized that FlashBuilder didn't seem to 
call MXMLC and COMPC directly and found this code.  We may have to implement 
this stuff for Falcon if we want to try to get Falcon to plug into 
FlashBuilder.  Or, we might just create our own Eclipse "builder" plug-in.  I 
experimented a bit with that and it might be easier.  But I think the direction 
we take can be significantly influenced by what your team would like to do to 
integrate with Falcon.

I wonder if the FDT guys are watching this thread and can tell us what they 
want, if anything.

In theory, the FlashBuilder code provided faster incremental compiles, but I've 
never created big projects in FlashBuilder or IntelliJ to know if there was a 
significant difference.

Alex Harui
Apache Flex Team
http://blogs.adobe.com/aharui


> -----Original Message-----
> From: Alexander Doroshko [mailto:alexander.doros...@jetbrains.com]
> Sent: Wednesday, February 13, 2013 11:28 PM
> To: dev@flex.apache.org
> Subject: Re: [OT] [FALCON] Falcon and IDE/FB integration
> 
> On 13.02.2013 21:39, Alex Harui wrote:
> > How does IntelliJ call the current MXMLC compiler?  I'm looking at how
> > FlashBuilder calls MXMLC now and it is pretty complex.
> There are 3 modes:
> 
> 1. If 'Prefer ActionScript Compiler 2.0 for pure AS build configurations'
> option is enabled then a new OS process is launched with the following
> command line (some minor options omitted):
> 
> java -classpath [Flex SDK]/lib/compiler.jar
> com.adobe.flash.compiler.clients.MXMLC
> java -classpath [Flex SDK]/lib/compiler.jar
> com.adobe.flash.compiler.clients.COMPC
> 
> 2. Standard mxmlc/compc process:
> 
> java  -classpath [Flex SDK]/lib/compc.jar flex2.tools.Mxmlc java  -
> classpath [Flex SDK]/lib/compc.jar flex2.tools.Compc
> 
> 3. The option called 'Built-in compiler shell'. That's a single OS process
> that can invoke several compilations in parallel threads. To do this it
> invokes flex2.tools.Mxmlc.mxmlc(args) or flex2.tools.Compc.compc(args).
> 
> Just curious, how Flash Builder does it?

Reply via email to