| <?xml version="1.0"?> | |
| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one or more | |
| contributor license agreements. See the NOTICE file distributed with | |
| this work for additional information regarding copyright ownership. | |
| The ASF licenses this file to You under the Apache License, Version 2.0 | |
| (the "License"); you may not use this file except in compliance with | |
| the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| <project name="JewelThemeJS" default="main" basedir="."> | |
| <property name="ROYALE_HOME" location="../../../.."/> | |
| <property file="${ROYALE_HOME}/env.properties"/> | |
| <property environment="env"/> | |
| <property file="${ROYALE_HOME}/local.properties"/> | |
| <property file="${ROYALE_HOME}/build.properties"/> | |
| <property name="ROYALE_HOME" value="${ROYALE_HOME}"/> | |
| <property name="target.name" value="${ant.project.name}.swc" /> | |
| <echo file="${basedir}/${target.name}.properties">target.name.nojs=${ant.project.name}</echo> | |
| <replaceregexp file="${basedir}/${target.name}.properties" match="(.*)JS$" replace="\1" flags="m" /> | |
| <property file="${basedir}/${target.name}.properties"/> | |
| <delete file="${basedir}/${target.name}.properties"/> | |
| <target name="main" depends="clean,check-compiler,compile" description="Full build of ${ant.project.name}.swc"> | |
| </target> | |
| <target name="clean"> | |
| <delete failonerror="false"> | |
| <fileset dir="${ROYALE_HOME}/frameworks/js/libs"> | |
| <include name="${target.name}"/> | |
| </fileset> | |
| </delete> | |
| <delete failonerror="false" includeemptydirs="true"> | |
| <fileset dir="${basedir}/target"> | |
| <include name="**/**"/> | |
| </fileset> | |
| </delete> | |
| </target> | |
| <target name="compile" depends="check-compiler"> | |
| <echo message="Cross-compiling ${target.name}"/> | |
| <echo message="ROYALE_COMPILER_HOME: ${ROYALE_COMPILER_HOME}"/> | |
| <mkdir dir="${basedir}/target/generated-sources/royale"/> | |
| <java jar="${ROYALE_COMPILER_HOME}/lib/compc.jar" fork="true" failonerror="true"> | |
| <jvmarg value="-Xmx384m" /> | |
| <jvmarg value="-Dsun.io.useCanonCaches=false" /> | |
| <jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" /> | |
| <arg value="+royalelib=${ROYALE_HOME}/frameworks" /> | |
| <arg value="-compiler.strict-xml=true" /> | |
| <arg value="-compiler.targets=SWF,JSRoyale" /> | |
| <arg line="-metadata.date="${royale.swc-date}"" /> | |
| <arg line="-metadata.dateFormat="MM/dd/yy HH:mm Z"" /> | |
| <arg line="-source-map=true"/> | |
| <arg line="-source-map-source-root=/frameworks/themes/JewelTheme/src/main/royale/"/> | |
| <arg line="-swf-debugfile-alias="/org/apache/royale/${release.version}/frameworks/themes/JewelTheme/src/main/royale"" /> | |
| <arg value="-output=${basedir}/target/${target.name}" /> | |
| <arg value="-load-config=${ROYALE_HOME}/frameworks/js-config.xml" /> | |
| <arg value="-load-config+=${basedir}/src/main/config/compile-js-config.xml" /> | |
| </java> | |
| <!-- this is different from other projects because the JewelThemeJS is only built | |
| if the SWF version isn't going to get built. And then the SWC is renamed to | |
| match the SWF SWC's name in the frameworks/projects/Jewel/build.xml | |
| <copy file="${basedir}/target/${target.name}" tofile="${ROYALE_HOME}/frameworks/js/libs/${target.name}" /> | |
| --> | |
| </target> | |
| <target name="copy-js" > | |
| <mkdir dir="${ROYALE_HOME}/frameworks/js/generated-sources"/> | |
| <copy todir="${ROYALE_HOME}/frameworks/js/generated-sources"> | |
| <fileset dir="${basedir}/target/generated-sources/royale"> | |
| <include name="**/**" /> | |
| </fileset> | |
| </copy> | |
| </target> | |
| <target name="check-compiler" depends="check-compiler-home, check-transpiler-home"> | |
| <path id="lib.path"> | |
| <fileset dir="${ROYALE_COMPILER_HOME}/lib" includes="compiler-royaleTasks.jar"/> | |
| </path> | |
| <taskdef resource="flexTasks.tasks" classpathref="lib.path"/> | |
| </target> | |
| <target name="check-compiler-home" unless="ROYALE_SWF_COMPILER_HOME" | |
| description="Check ROYALE_SWF_COMPILER_HOME is a directory."> | |
| <echo message="ROYALE_SWF_COMPILER_HOME is ${env.ROYALE_SWF_COMPILER_HOME}"/> | |
| <available file="${env.ROYALE_SWF_COMPILER_HOME}/lib/compiler-mxmlc.jar" | |
| type="file" | |
| property="ROYALE_SWF_COMPILER_HOME" | |
| value="${env.ROYALE_SWF_COMPILER_HOME}"/> | |
| <available file="${ROYALE_HOME}/../royale-compiler/compiler/lib/compiler-mxmlc.jar" | |
| type="file" | |
| property="ROYALE_SWF_COMPILER_HOME" | |
| value="${ROYALE_HOME}/../royale-compiler/compiler"/> | |
| <fail message="ROYALE_SWF_COMPILER_HOME must be set to a folder with a lib sub-folder containing compiler-mxmlc.jar such as the compiler folder in royale-compiler repo or a Royale SDK folder" | |
| unless="ROYALE_SWF_COMPILER_HOME"/> | |
| </target> | |
| <target name="check-transpiler-home" unless="ROYALE_COMPILER_HOME" | |
| description="Check ROYALE_SWF_COMPILER_HOME is a directory."> | |
| <echo message="ROYALE_COMPILER_HOME is ${env.ROYALE_COMPILER_HOME}"/> | |
| <available file="${env.ROYALE_COMPILER_HOME}/lib/jsc.jar" | |
| type="file" | |
| property="ROYALE_COMPILER_HOME" | |
| value="${env.ROYALE_COMPILER_HOME}"/> | |
| <available file="${ROYALE_HOME}/../royale-compiler/compiler-jx/lib/jsc.jar" | |
| type="file" | |
| property="ROYALE_COMPILER_HOME" | |
| value="${ROYALE_HOME}/../royale-compiler/compiler-jx"/> | |
| <fail message="ROYALE_COMPILER_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in royale-compiler repo or the js folder of a Royale SDK" | |
| unless="ROYALE_COMPILER_HOME"/> | |
| </target> | |
| </project> |