BTW, it would be great to find a volunteer to update the files like:
compiler/src/main/resources/org/apache/flex/compiler/messages_en.properties


Then the --help system would work from the command line.  And the
printHelp and friends from MXMLC.java and friends needs to be replicated
in MXMLJSC so --help can be used there as well.

Thanks,
-Alex

On 5/9/16, 10:16 AM, "Harbs" <harbs.li...@gmail.com> wrote:

>Awesome! This is exactly what I was looking for.
>
>I’ll copy this info to the wiki.
>
>On May 9, 2016, at 7:59 PM, Alex Harui <aha...@adobe.com> wrote:
>
>> Falcon (SWF Compiler) should support all MXMLC inputs from the regular
>> Flex SDK except the "keep-generated-actionscript" option which I think
>>it
>> just ignores (Falcon does not generate ActionScript from MXML, it goes
>> straight from MXML to ABC).  I think there are some embedded font
>>options
>> that aren't supported either.
>> 
>> In addition, Falcon supports:
>> 
>> -compiler.mxml.children-as-data (this is required to be true for FlexJS
>> MXMLC compilation).  It changes the MXML code generation to be a data
>> structure instead of a bunch of run-once methods.
>> -compiler.mxml.implicitImports.  In FlexJS we change the set of classes
>> you don't have to import in your MXML script blocks and event handlers.
>> -compiler.binding-value-change-event.  The name of the event class the
>> DataBinding subsystem uses for detecting change events
>> -compiler.binding-value-change-event-type.  The name of the event in the
>> event class.
>> -compiler.binding-event-handler-event  This is used in code generation
>>for
>> [Bindable] vars
>> -compiler.binding-event-handler-class  This is used in code generation
>>for
>> [Bindable] vars
>> -compiler.binding-event-handler-interface  This is used in code
>>generation
>> for [Bindable] vars
>> -compiler.states-class                     This is used in code
>>generation
>> for states.
>> -compiler.states-instance-override-class   This is used in code
>>generation
>> for states.
>> -compiler.states-property-override-class   This is used in code
>>generation
>> for states.
>> -compiler.states-event-override-class      This is used in code
>>generation
>> for states.
>> -compiler.states-style-override-class      This is used in code
>>generation
>> for states.
>> -compiler.component-factory-class      This is used in code generation
>>for
>> fx:Components.
>> 
>> -compiler.component-factory-interface  This is used in code generation
>>for
>> fx:Components.
>> -compiler.proxy-base-class  This is used in code generation for Proxy
>> -compiler.allow-subclass-overrides   This does what it says.
>> -compiler.strict-xml
>> -use-flashbuilder-project-files <path to project>.  This has the
>>compiler
>> use most of the settings that Flash Builder uses.  You can use -fb as
>>well.
>> 
>> 
>> 
>> -isExcludeNativeJSLibraries  This removes the externs swcs from the
>> library path and external library path.  I don't think we need this, but
>> not sure.
>> 
>> These configurations are contained in this class:
>> compiler/src/org/apache/flex/compiler/config/Configuration.java
>> 
>> 
>> 
>> 
>> 
>> FalconJX supports all of these options plus:
>> -js-output-type  Options to change some aspects of the output.  FLEXJS
>>is
>> the default.  Also supported is JSC for "no-SWF" workflows, and NODE.
>> -source-map
>> -closure-lib  Path to Google Closure Library.  Defaults to a known place
>> in the FlexJS SDK
>> -sdk-js-lib Path to other folder of JS files to resolve class
>>dependencies
>> -external-js-lib Path to folder of externs JS files
>> -strict-publish  Passes Strict option to Google Closure Compiler
>> -keep-asdoc  Copies ASDoc into JSDoc
>> -remove-circulars  Tries to eliminate goog.requires from output that
>> causes GCC to error about circular dependencies
>> -skip-transpile  When used with -debug=false, doesn't generate the
>> bin/js-debug version so you can just pass what is in js-debug to GCC for
>> optimization (in case you manually edited something in js-debug)
>> -js-compiler-option  Other options to pass to GCC
>> -js-output-optimization Allowed options:
>> skipFunctionCoercions        skipAsCoercions  These options cause the 
>> compiler
>>to
>> not generate calls to Language.is and Language.as.
>> 
>> 
>> ExternC has its own config.  If you need it I can try to generate it.
>> 
>> The various launch scripts set some of the above options.
>> 
>> HTH,
>> -Alex
>> 
>> 
>> 
>> On 5/8/16, 11:44 PM, "Harbs" <harbs.li...@gmail.com> wrote:
>> 
>>> This is good.
>>> 
>>> What about acceptable arguments?
>>> 
>>> Off the top of my head, there’s
>>> 1. remove circulars (which I never totally understood)
>>> 2. strict XML
>>> 3. debug options
>>> 4. keep-asdoc (how well does this work?)
>>> 5. flexlib
>>> etc.
>>> 
>>> Without clear documentation of all this stuff, it feels very
>>>overwhelming.
>>> 
>>> On May 9, 2016, at 9:34 AM, Alex Harui <aha...@adobe.com> wrote:
>>> 
>>>> 
>>>> 
>>>> On 5/8/16, 5:33 AM, "Harbs" <harbs.li...@gmail.com> wrote:
>>>> 
>>>>> I’m trying to set up some development environments and I realized
>>>>> there’s
>>>>> lots of pieces and I’m not sure how everything fits together.
>>>>> 
>>>>> FalconJX currently generates the following scripts and executables:
>>>>> 
>>>>> Scripts:
>>>>> Asjsc - compiles AS app to JS with JS.swc
>>>>> Asjscompc - compiles AS library to JS with JS.swc
>>>>> Asnodec - compiles AS app to JS with JS.swc and Node.swc
>>>>> Jquery = compiles AS app to JS with JS.swc and Jquery.swc
>>>>> Compc - compiles AS library to JS with FlexJS framework
>>>>> Mxmlc - compiles AS app to JS with FlexJS framework
>>>>> Externc - runs ExternC compiler to compile externs JS files to AS.
>>>>> 
>>>>> 
>>>>> 
>>>>> Executables:
>>>>> compc.jar = library compiler
>>>>> externc.jar = ExternC compiler
>>>>> jsc.jar = shared code between compc and mxmlc
>>>>> mxmlc.jar = application compiler
>>>>> 
>>>> 
>>>> Below are this party libraries
>>>>> 
>>>>> args4j.jar
>>>>> commons-io.jar
>>>>> flex-tool-api.jar
>>>>> guava.jar
>>>>> org.json.jar
>>>> 
>>>> HTH,
>>>> -Alex
>>>> 
>>> 
>> 
>

Reply via email to