blob: a5bc8a77fb7e2a38045947b72415f40bd5c0bfad [file] [log] [blame]
Apache Flex Cross-Compiler
====================
This Apache Flex Cross-Compiler is also known as the 'FalconJX' compiler. It
leverages code from the Apache Flex 'Falcon' Compiler but outputs JavaScript
instead of a SWF.
For detailed information about Apache Flex please visit
http://flex.apache.org/
This compiler is used in 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 Cross-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 falcon
cd falcon
git checkout develop
See the main README for instructions on setting up and building the Apache
Flex 'Falcon' cross-compiler.
Building the Apache Flex Cross-Compiler
=======================================
The Apache Flex Cross-Compiler is a large project. It requires that the
Apache Flex Compiler has been built. See the main README for instructions.
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 FalconJX Compiler you must install the same
software as specified in the main README. In addition, you will also need:
==================================================================================
SOFTWARE ENVIRONMENT VARIABLE (absolute paths)
==================================================================================
Apache FlexJS SDK or repository ASJS_HOME
==================================================================================
*1) Set the ASJS_HOME variable to the root of the Apache FlexJS SDK or repository.
Software Dependencies
---------------------
The Apache Flex Cross-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.
args4j = http://search.maven.org/remotecontent?filepath=args4j/args4j/2.0.28/args4j-2.0.28.jar
Google Closure Compiler - http://github.com/google/closure-compiler/archive/v 20140625.zip
commons-io - http://archive.apache.org/dist/commons/io/binaries/commons-io-2.0.1.tar.gz
org.json = http://search.maven.org/remotecontent?filepath=org/codeartisans/org.json/20131017/org.json-20131017.jar
Using the Binary Distribution
-----------------------------
The binary distribution is intended to be installed into an existing
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 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
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), use
cd <falcon.dir>
ant all
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-all
To clean the build, of everything, including the downloaded third-party
dependencies use
ant wipe-all (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 need to create a unittest.properties file ( template is found here compiler.tests/template-unittest.properties ).
Thanks for using Apache Flex. Enjoy!
The Apache Flex Project
<http://flex.apache.org>