Mirror of Apache Flex Falcon
Java JavaScript GAP HTML ActionScript Lex Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.mvn - Activated the apache-rat-plugin in all modules to do automated chec… Jul 19, 2016
compiler-build-tools Next development iteration Sep 5, 2016
compiler-jburg-types allow CI builds to use a download cache if downloads fail Oct 25, 2016
compiler-jx don't do removes from within the iterator Mar 28, 2017
compiler-test-utils allow CI builds to use a download cache if downloads fail Oct 25, 2016
compiler - Adjusted the EmbedData class to embed resources from all source-pat… Mar 10, 2017
debugger allow CI builds to use a download cache if downloads fail Oct 25, 2016
flex-compiler-oem - Greatly worked on cleaning up the compiler code Oct 31, 2016
flexjs-ant-tasks - Cleaned up the group-ids of the parents to be more in-line with the… Sep 7, 2016
flexjs-maven-extension - Doing some post-0.7.0-release fine tuning of versions. Sep 7, 2016
flexjs-maven-plugin - Added a PackageJSMojo to make the usage of the maven-war-plugin and… Mar 11, 2017
installer.properties initial attempt at restoring release packaging. Apr 25, 2016
src/site - Merged stuff that seems to have been lost in previous merges Nov 8, 2016
.gitignore - Added a rule to gitignore to exclude files generated by IDE asciido… Sep 9, 2016
ApproveFalcon.xml update link in approval script Aug 24, 2016
Jenkinsfile - Disabled the wiping of the workspace Nov 1, 2016
LICENSE add notice files required for releases Apr 7, 2014
LICENSE.base bundle swfutils and add L & N to jars Apr 24, 2015
LICENSE.jx more cleanup of release packages Aug 11, 2016
LICENSE.jx.bin add full text of svg.js license Aug 24, 2016
NOTICE more tweaks to release packaging Mar 13, 2016
NOTICE.base more tweaks to release packaging Mar 13, 2016
NOTICE.fdb more tweaks to release packaging Mar 13, 2016
NOTICE.jx more tweaks to release packaging Mar 13, 2016
NOTICE.oem more tweaks to release packaging Mar 13, 2016
README update list of deps Jun 27, 2016
README_JX update readme and release notes Apr 29, 2016
README_MAVEN.txt - Cleaned up the group-ids of the parents to be more in-line with the… Sep 7, 2016
RELEASE_NOTES more cleanup of release packages Aug 11, 2016
RELEASE_NOTES_JX FLEX-35086 - Update release notes Mar 5, 2017
apache-flex-falcon-installer-config.xml get falcon to work with new installer Jan 16, 2014
apache-flex-falconjx-installer-config.xml get falcon to work with new installer Jan 16, 2014
build.properties move to 0.8.0 Sep 9, 2016
build.xml build a list of things to update for new version Sep 9, 2016
env-template.properties Add env.env.PLAYERGLOBAL_VERSION to env-template.properties Mar 20, 2016
installer.xml try to fix install Jul 21, 2016
jenkins.xml re-add jenkins.xml Apr 26, 2016
mvnw - Refactored the directory structure of the example projects to be ma… Oct 27, 2016
mvnw.cmd - Refactored the directory structure of the example projects to be ma… Oct 27, 2016
pom.xml - Added the maven-dependency-plugin plugin to report dependency probl… Feb 20, 2017
releasecandidate.xml try to handle custom tags in release mode Sep 7, 2016
settings-template.xml add header to setting-template and include in release package Jun 29, 2016

README

Apache Flex Compiler
====================

    This Apache Flex Compiler is also known as the 'Falcon' compiler.  It is 
    the next-generation replacement to the MXMLC compiler that is currently 
    bundled with the Apache Flex SDK and is based on the Adobe ASC2.0 code base
    donated to Apache by Adobe Systems Inc.

    This Compiler may also be packaged with the Apache Flex Cross-Compiler which
    has additional information in the README_JX file.

    For detailed information about Apache Flex please visit
    http://flex.apache.org/

    This compiler may eventually replace MXMLC in the Apache Flex SDK, but is
    also being used as the compiler for the Apache FlexJS SDK.  FlexJS is a
    next-generation SDK that allows the developer to leverage MXML and ActionScript
    to build applications that not only run as a SWF, but can also be cross-compiled
    to JavaScript and run natively in a browser or anywhere JavaScript runs.

Getting the latest sources via git
==================================

    Getting the source code is the recommended way to get the Apache Flex Compiler.  
    We also offer an automated installer along with binary distributions on our 
    website at http://flex.apache.org/.

    You can always checkout the latest source via git using the following
    command:

	 git clone https://git-wip-us.apache.org/repos/asf/flex-falcon.git flex-falcon
	 cd flex-falcon
	 git checkout develop

    When working with the sources from Git, the Apache Flex Compiler 
    also requires code from other Apache Flex git repositories or an Apache Flex SDK.
    These Apache Flex SDK source files are bundled in Apache Flex Falcon
    source code distributions, so this step is optional when using source code
    distributions.

    To get the latest source via git for the Apache Flex SDK use the following command:

	 git clone https://git-wip-us.apache.org/repos/asf/flex-sdk.git flex-sdk
	 cd flex-sdk
	 git checkout develop

    The Apache Flex SDK requires the Text Layout Framework repository which
    you can get as follows:

	 git clone https://git-wip-us.apache.org/repos/asf/flex-tlf.git flex-tlf
	 cd flex-tlf
	 git checkout develop

    To use an Apache Flex SDK, install an Apache Flex SDK on your computer and
    follow the instructions in 'Install Prerequisites'.

Building the Apache Flex Compiler
=================================

    The Apache Flex Compiler is a large project. It requires some build tools 
    which must be installed prior to building the compiler and it depends on 
    some external software which are downloaded as part of the build process.  
    Some of these have different licenses.  See the Software Dependencies section 
    for more information on the external software dependencies.

    Linux support is currently experimental and while it is possible to compile
    the SDK it has not been fully tested so you may run into issues.

Install Prerequisites
---------------------

    Before building the Apache Flex Compiler you must install the following software 
    and set the corresponding environment variables using absolute file paths.  
    Relative file paths will result in build errors.

    ==================================================================================
    SOFTWARE                                     ENVIRONMENT VARIABLE (absolute paths)
    ==================================================================================

    Java SDK 1.6 or greater (*1)                 JAVA_HOME
        (for Java 1.7 see note at (*2))

    Ant 1.7.1 or greater (*1)                    ANT_HOME
        (for Java 1.7 see note at (*2))

    Adobe AIR Integration Kit (*3)               AIR_HOME

    Adobe Flash Player Content Debugger (*4)     FLASHPLAYER_DEBUGGER

    Adobe Flash Player playerglobal swcs (*5)    PLAYERGLOBAL_HOME

    Optional: Apache Flex SDK or repository (*6) FLEX_HOME

    Optional: Apache Flex TLF source (*7)        TLF_HOME

    Optional: Flex Messaging Common (*8)         BLAZEDS_HOME

    ==================================================================================

    *1) The bin directories for ANT_HOME and JAVA_HOME should be added to your
        PATH.

        On Windows, set PATH to

            PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin

        On the Mac (bash), set PATH to

            export PATH="$PATH:$ANT_HOME/bin:$JAVA_HOME/bin"

         On Linux make sure you path include ANT_HOME and JAVA_HOME.

    *2)  If you are using Java SDK 1.7 or greater on a Mac you must use Ant 1.8
         or greater. If you use Java 1.7 with Ant 1.7, ant reports the java
         version as 1.6 so the JVM args for the data model (-d32/-d64) will not
         be set correctly and you will get compile errors.

    *3) The Adobe AIR integration kit for Windows can be downloaded from:
           http://airdownload.adobe.com/air/win/download/4.0/AdobeAIRSDK.zip

         The Adobe AIR integration kit for Mac can be downloaded from:
            http://airdownload.adobe.com/air/mac/download/4.0/AdobeAIRSDK.tbz2

          The Adobe AIR integration kit for Linux can be downloaded from:
            http://airdownload.adobe.com/air/lin/download/2.6/AdobeAIRSDK.tbz2

        Download the AIR SDK for your platform and unzip it. Set AIR_HOME to the
        absolute path of the AIR SDK directory.

    *4) The Adobe Flash Player content debuggers can be found here:
            http://www.adobe.com/support/flashplayer/downloads.html

        On Windows, set FLASHPLAYER_DEBUGGER to the absolute path including the
        filename of the FlashPlayerDebugger.exe. Note the filename of flash
        player debugger maybe different.
           e.g. C:\MyPath\FlashPlayerDebugger.exe

        On the Mac, set FLASHPLAYER_DEBUGGER to the absolute path of
        Flash Player Debugger.app/Contents/MacOS/Flash Player Debugger

        On Linux, set FLASHPLAYER_DEBUGGER to the absolute path of
        flashplayerdebugger

    *5) The Adobe Flash Player playerglobal.swc for 11.1 can be downloaded from:
            http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc

        Use URL above to download playerglobal11_1.swc.

        Set PLAYERGLOBAL_HOME to the absolute path of the player directory (not
        including the version subdirectory). The target-player option controls
        which PLAYERGLOBAL_HOME subdirectory is used.

        Other more recent versions of Adobe Flash Player playerglobal.swc can be
        downloaded from:
            http://download.macromedia.com/get/flashplayer/updaters/<version.major>/playerglobal<version.major>_<version.minor>.swc

        (e.g. http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_1.swc)

        Copy the target playerglobal.swc to the directory:

           frameworks/libs/player/<version.major>.<version.minor>/playerglobal.swc
    
        These can be used with the Apache Flex Compiler but not all have not been fully
        tested.

    *6) The FLEX_HOME variable should point to a folder of the flex-sdk sources.
        If you don’t provide this variable (and TLF_HOME and BLAZEDS_HOME), 
        you may not be able to run all of the tests in the compiler 
        and compiler-jx folders.

    *7) The TLF_HOME variable should point to a folder containing a folder
        named textLayout that contains a src folder of the TLF sources.
        This should be the root of the flex-tlf repository, or can be
        the frameworks/projects folder of an IDE compatible Flex SDK.

    *8) The build scripts assume that the root folder containing the source code 
        for Apache Flex BlazeDS ('flex-blazeds') is at the same level as the 
        SDK root folder ('flex-sdk'). See 'Getting the source code', below. If this 
        is not the case on your system, then you must set the BLAZEDS_HOME environment
        variable to point to your BLAZEDS root folder. If you are using a released
        artifact, the source should be included in the artifact, so setting 
        BLAZEDS_HOME is not required.

Software Dependencies
---------------------

    The Apache Flex Compiler uses third-party code that will be downloaded as 
    part of the build.

    The Apache Version 2.0 license is in the LICENSE file.

    The following dependencies have licenses which are, or are compatible with,
    the Apache Version 2.0 license.  You will not be prompted to acknowledge the
    download.  Most of the jars are installed in lib/external when installed
    into an Apache Flex SDK and the lib folder in the repository working copy.

        antlr - https://repo1.maven.org/maven2/org/antlr/antlr-complete/3.5.2/antlr-3.5.2-complete.jar
        commons-cli - https://repo1.maven.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2-bin.tar.gz
        commons-io - https://repo1.maven.org/maven2/commons-io/commons-io/2.4/commons-io-2.4.tar.gz
        commons-lang - https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.tar.gz
        commons-lang3 - https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
        commons-compress - https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.10/commons-compress-1.10.jar
        guava - https://repo1.maven.org/maven2/com/google/guava/guava/17.0/guava-17.0.jar
        jburg - https://repo1.maven.org/maven2/net/sourceforge/jburg/jburg/1.10.2/jburg-1.10.2.jar
        jflex - http://jflex.de/jflex-1.6.0.tar.gz
        lzma - http://www.java2s.com/Code/JarDownload/lzma/lzma-9.20.jar.zip


Using the Binary Distribution
-----------------------------

    The binary distribution is intended to be installed into an existing Apache Flex
    SDK or Apache FlexJS SDK.

    There is an Apache Ant script in the binary distribution that will copy the 
    files into the right places.

    To run it, use:
        ant -f installer.xml -DFLEX_HOME=<path to Flex or FlexJS SDK

    The script does not check the FLEX_HOME environment variable as that often
    points to your primary Flex SDK.

    If you expand the binary distribution into the "in" folder of an Apache Flex or
    FlexJS SDK, the installer.xml script should find FLEX_HOME automatically.

    Another option is to use the InstallApacheFlex (version 3.0 or higher).

Building the Source in the Source Distribution
----------------------------------------------

    When you have all the prerequisites in place and the environment variables
    set (see Install Prerequisites above), one final thing to check is whether
    the folder contain the source code is in your Flash Player Trust files as
    the build script runs the Flash Player Debugger as part of its automated
    tests.  Once you've done that, use

        cd <falcon.dir>
        ant main        (or just ant since the default target is main)

    to download the thirdparty dependencies and build the source.  Since the
    third-party dependencies take a little while to download and they don't
    change very often, they are not cleaned with the regular clean target.

    To clean the build, of everything other than the downloaded third-party
    dependencies use

        ant clean

    To clean the build, of everything, including the downloaded third-party
    dependencies use

        ant wipe (which is just thirdparty-clean followed by clean)

    To generate a source distribution package and a binary distribution package
    use

        ant -Dbuild.number=<YYYYMMDD> -Dbuild.noprompt= release

    The packages can be found in the "out" subdirectory.

    To get a brief listing of all the targets type

        ant -projecthelp

Running Tests
-------------

Before running unit-, functional- or feature-tests you may need to create a 
compiler/src/tests/unittest.properties file 

A template is found here compiler/src/main/resources/template-unittest.properties. 



Thanks for using Apache Flex.  Enjoy!

                                          The Apache Flex Project
                                          <http://flex.apache.org>