| <!-- |
| * 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="build" default="build-help" basedir="."> |
| |
| <!-- ============================================================ |
| set properties |
| ============================================================ --> |
| |
| <property file="personal.properties" /> |
| <property file="build.properties" /> |
| <property file="vendor.properties" /> |
| |
| <!-- hint: override in your personal.properties --> |
| <property name="BUILDER" value="The Unknown Builder"/> |
| |
| <basename property="ant.file.basename" file="${ant.file}"/> |
| |
| <available property="VENDOR_FOUND" file="${VENDOR}"/> |
| |
| <tstamp> |
| <format property="TSTAMP_STARTED" pattern="HH:mm:ss"/> |
| </tstamp> |
| |
| <!-- |
| <tstamp> |
| <format property="BUILD_DATE" pattern="yyyy-MM-dd__HH-mm-ss" timezone="GMT"/> |
| </tstamp> |
| --> |
| |
| <exec executable="node" outputproperty="BUILD_DATE"> |
| <arg value="-e"/> |
| <arg value="console.log((new Date()).valueOf().toString(36).toUpperCase())"/> |
| </exec> |
| |
| <condition property="BUILD_VERSION" value="${WEINRE_VERSION}-${BUILD_DATE}"> |
| <matches pattern=".*pre$" string="${WEINRE_VERSION}"/> |
| </condition> |
| |
| <condition property="BUILD_VERSION" value="${WEINRE_VERSION}"> |
| <not> |
| <matches pattern=".*pre$" string="${WEINRE_VERSION}"/> |
| </not> |
| </condition> |
| |
| <property name="ARCH-SRC" value="apache-cordova-weinre-${BUILD_VERSION}-src"/> |
| <property name="ARCH-BIN" value="apache-cordova-weinre-${BUILD_VERSION}-bin"/> |
| <property name="ARCH-DOC" value="apache-cordova-weinre-${BUILD_VERSION}-doc"/> |
| |
| <!-- ============================================================ |
| print some help |
| ============================================================ --> |
| |
| <target name="help"> |
| <echo> |
| ant targets available: |
| [default] - runs `build-help` |
| build - runs a development-time build |
| build-archives - runs `build-clean`, then builds archives |
| build-archives-ck - runs `build-archives`, then builds |
| checksum files |
| build-help - prints a line about available help, then |
| runs `build` |
| build-clean - runs `clean` then `build` |
| clean - removes transient build files |
| |
| the file `personal.properties` must be available in the same |
| directory as this ant file. Use the file |
| `sample.personal.properties` as a template. |
| |
| To update the weinre dependencies, use |
| ant -f update-vendor.xml |
| </echo> |
| </target> |
| |
| |
| <!-- ============================================================ |
| do a build, but print message about help |
| ============================================================ --> |
| |
| <target name="build-help"> |
| <echo message="to see commands available, use `ant help`"/> |
| <antcall target="build"/> |
| </target> |
| |
| |
| <!-- ============================================================ |
| do a clean build |
| ============================================================ --> |
| |
| <target name="build-clean" depends="clean,build"> |
| </target> |
| |
| <!-- ============================================================ |
| clean |
| ============================================================ --> |
| |
| <target name="clean"> |
| <delete dir="${OUT}"/> |
| <delete dir="${TMP}"/> |
| <delete dir="${WEB}"/> |
| <delete dir="${CACHED}"/> |
| </target> |
| |
| <!-- ============================================================ |
| development-time build |
| ============================================================ --> |
| |
| <target name="build"> |
| <fail> |
| <condition> |
| <not> |
| <resourceexists> |
| <file file="personal.properties"/> |
| </resourceexists> |
| </not> |
| </condition> |
| The file 'personal.properties' was not found; create one based on 'sample.personal.properties'. |
| </fail> |
| |
| <echo>building version ${BUILD_VERSION}</echo> |
| |
| <mkdir dir="${OUT}"/> |
| <delete includeemptydirs="true"> |
| <fileset dir="${OUT}" includes="**/*" excludes="build-done.txt"/> |
| </delete> |
| |
| <exec |
| executable = "git" |
| outputproperty = "git-log" |
| failifexecutionfails = "false" |
| > |
| <arg line="log -1 --pretty=oneline"/> |
| </exec> |
| |
| <condition property="git-log" value="no git status available"> |
| <not> |
| <isset property="git-log"/> |
| </not> |
| </condition> |
| |
| <property |
| name = "build-info-text" |
| value = "weinre build ${BUILD_VERSION} by ${BUILDER}" |
| /> |
| |
| <concat |
| append = "no" |
| destfile = "${OUT}/build-info.txt" |
| >${build-info-text} |
| </concat> <!-- keep this outdented, since Ant is so wonderful --> |
| |
| <concat |
| append = "yes" |
| fixlastline = "yes" |
| eol = "lf" |
| destfile = "${OUT}/build-info.txt" |
| >git: ${git-log} |
| </concat> <!-- keep this outdented, since Ant is so wonderful --> |
| |
| <antcall target="build-web"/> |
| <antcall target="build-json-idl"/> |
| <antcall target="build-client"/> |
| <antcall target="build-target"/> |
| <antcall target="build-doc"/> |
| |
| <tstamp> |
| <format property="TSTAMP_FINISHED" pattern="HH:mm:ss"/> |
| </tstamp> |
| |
| <property name="MESSAGE_FINISHED" value="at ${TSTAMP_FINISHED} for ${ant.file}:build-dev"/> |
| |
| <antcall target="finished"/> |
| <antcall target="finished-growl"/> |
| |
| <echo file="${OUT}/build-done.txt" message="${build-info-text} is finished!"/> |
| <echo file="${OUT}/version.txt" message="${BUILD_VERSION}"/> |
| |
| </target> |
| |
| <!-- ============================================================ |
| check for personal properties |
| ============================================================ --> |
| |
| <target name="check-personal-properties" unless="personal.properties.exists"> |
| </target> |
| |
| <!-- ============================================================ |
| basic web resources |
| ============================================================ --> |
| |
| <target name="build-web"> |
| <delete dir="${WEB}" /> |
| <mkdir dir="${WEB}" /> |
| |
| <delete dir="${TMP}" /> |
| <mkdir dir="${TMP}" /> |
| |
| <echo message="compiling CoffeeScript modules"/> |
| <mkdir dir="${TMP}/modules/weinre/client" /> |
| <mkdir dir="${TMP}/modules/weinre/common" /> |
| <mkdir dir="${TMP}/modules/weinre/target" /> |
| |
| <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/client"/> |
| <exec executable="node" failonerror="true" failifexecutionfails="true"> |
| <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/> |
| <arg value="--compile"/> |
| <arg value="--bare"/> |
| <arg value="--output"/> |
| <arg value="${TMP}/modules/weinre/client"/> |
| <arg value="../${PROJECT_WEB}/modules/weinre/client"/> |
| </exec> |
| |
| <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/common"/> |
| <exec executable="node" failonerror="true" failifexecutionfails="true"> |
| <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/> |
| <arg value="--compile"/> |
| <arg value="--bare"/> |
| <arg value="--output"/> |
| <arg value="${TMP}/modules/weinre/common"/> |
| <arg value="../${PROJECT_WEB}/modules/weinre/common"/> |
| </exec> |
| |
| <echo message="compiling CoffeeScript files in: ${PROJECT_WEB}/modules/weinre/target"/> |
| <exec executable="node" failonerror="true" failifexecutionfails="true"> |
| <arg value="../${PROJECT_SERVER}/node_modules/coffee-script/bin/coffee"/> |
| <arg value="--compile"/> |
| <arg value="--bare"/> |
| <arg value="--output"/> |
| <arg value="${TMP}/modules/weinre/target"/> |
| <arg value="../${PROJECT_WEB}/modules/weinre/target"/> |
| </exec> |
| |
| <echo message="transportd-izing modules"/> |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/module2amd.py"/> |
| <arg value="--quiet"/> |
| <arg value="--out"/> |
| <arg file="${WEB}"/> |
| <arg file="${TMP}/modules"/> |
| </exec> |
| |
| <copy todir="${WEB}"> |
| <fileset file="../${PROJECT_WEB}/modjewel.js"/> |
| </copy> |
| |
| <!-- |
| <copy todir="${WEB}"> |
| <fileset file="${VENDOR}/json2/json2.js"/> |
| </copy> |
| --> |
| |
| <copy todir="${WEB}"> |
| <fileset dir="../${PROJECT_WEB}"> |
| <exclude name="versions.js"/> |
| <exclude name="common/**/*"/> |
| <exclude name="bin/**/*"/> |
| <include name="**/*.js"/> |
| <include name="**/*.css"/> |
| <include name="**/*.html"/> |
| <include name="**/*.png"/> |
| </fileset> |
| </copy> |
| |
| <echo message="building InjectedScript.js"/> |
| <echo |
| file = "${WEB}/weinre/target/InjectedScript.js" |
| message = "var injectedScriptConstructor = ${line.separator}" |
| /> |
| <concat |
| destfile = "${WEB}/weinre/target/InjectedScript.js" |
| append = "true" |
| > |
| <fileset file="${VENDOR}/webkit/WebCore/inspector/InjectedScriptSource.js"/> |
| </concat> |
| |
| <echo message="building versions.js"/> |
| <copy todir="${WEB}"> |
| <fileset dir="../${PROJECT_WEB}"> |
| <include name="versions.js"/> |
| </fileset> |
| |
| <filterset> |
| <filter token="WEINRE_VERSION" value="${BUILD_VERSION}"/> |
| <filter token="BUILD_DATE" value="${BUILD_DATE}"/> |
| </filterset> |
| </copy> |
| |
| <echo message="building package.json"/> |
| <copy file="package.json.template" tofile="../${PROJECT_SERVER}/package.json" overwrite="true"> |
| <filterset> |
| <filter token="WEINRE_VERSION" value="${BUILD_VERSION}"/> |
| </filterset> |
| </copy> |
| </target> |
| |
| <!-- ============================================================ |
| documentation |
| ============================================================ --> |
| |
| <target name="build-doc"> |
| |
| <mkdir dir="${WEB}/doc" /> |
| |
| <copy todir="${WEB}/doc" file="${OUT}/build-info.txt"/> |
| |
| <build-html name="Building" title="Building" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="Home" title="Home" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="Installing" title="Installing" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="License" title="License" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="Running" title="Running" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="MultiUser" title="Muli-User" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="Security" title="Security" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="UserInterface" title="User Interface" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| <build-html name="ChangeLog" title="ChangeLog" oDir="${WEB}/doc" iDir="../${PROJECT_DOC}"/> |
| |
| <copy file="${WEB}/doc/Home.html" tofile="${WEB}/doc/index.html"/> |
| |
| <copy todir="${WEB}/doc/images" file="../${PROJECT_WEB}/images/weinre-icon-64x64.png"/> |
| |
| <copy todir="${WEB}/doc/css"> <fileset dir="../${PROJECT_DOC}/css"/> </copy> |
| <copy todir="${WEB}/doc/images"> <fileset dir="../${PROJECT_DOC}/images"/> </copy> |
| <copy todir="${WEB}/doc/scripts"> <fileset dir="../${PROJECT_DOC}/scripts"/> </copy> |
| |
| <delete dir="${WEB}/doc/images/orig" /> |
| |
| </target> |
| |
| <!-- ============================================================ |
| convert IDL to JSON (cached) |
| ============================================================ --> |
| |
| <target name="build-json-idl"> |
| <uptodate property="JSON_IDL_UPTODATE" targetfile="${CACHED}/json-idl/all-json-idls.js"> |
| <srcfiles dir="../${PROJECT_SERVER}/interfaces" includes="*.idl"/> |
| <srcfiles dir="${VENDOR}/webkit/WebCore/inspector" includes="*.idl"/> |
| </uptodate> |
| |
| <antcall target="build-json-idl-fresh"/> |
| |
| <copy todir="${WEB}/interfaces"> <fileset dir="${CACHED}/json-idl"/></copy> |
| </target> |
| |
| <!-- ============================================================ |
| convert IDL to JSON (slow part) |
| ============================================================ --> |
| |
| <target name="build-json-idl-fresh" unless="JSON_IDL_UPTODATE"> |
| |
| <delete dir="${CACHED}/json-idl"/> |
| <mkdir dir="${CACHED}/json-idl"/> |
| |
| <simple-idl2json name="WeinreClientCommands" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| <simple-idl2json name="WeinreClientEvents" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| <simple-idl2json name="WeinreTargetCommands" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| <simple-idl2json name="WeinreTargetEvents" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| <simple-idl2json name="WeinreExtraClientCommands" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| <simple-idl2json name="WeinreExtraTargetEvents" oDir="${CACHED}/json-idl" iDir="../${PROJECT_SERVER}/interfaces"/> |
| |
| <simple-idl2json name="InjectedScriptHost" oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector"/> |
| |
| <simple-idl2json name="Inspector" oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector"> |
| <arg value="--anyType"/> |
| <arg value="Value"/> |
| </simple-idl2json> |
| |
| <simple-idl2json name="InspectorFrontendHost" oDir="${CACHED}/json-idl" iDir="${VENDOR}/webkit/WebCore/inspector"> |
| <arg value="--anyType"/> |
| <arg value="MouseEvent"/> |
| </simple-idl2json> |
| |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/collect-all-json-idl.py"/> |
| <arg file="${CACHED}/json-idl/all-json-idls.js"/> |
| <arg file="${CACHED}/json-idl"/> |
| </exec> |
| |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/collect-all-json-idl.py"/> |
| <arg value="-min"/> |
| <arg file="${CACHED}/json-idl/all-json-idls-min.js"/> |
| <arg file="${CACHED}/json-idl"/> |
| </exec> |
| |
| </target> |
| |
| <!-- ============================================================ |
| build the web/target files |
| ============================================================ --> |
| |
| <target name="build-target"> |
| |
| <mkdir dir="${WEB}/target"/> |
| |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/build-target-scripts.py"/> |
| <arg file="${WEB}"/> |
| <arg file="${WEB}/target"/> |
| </exec> |
| |
| </target> |
| |
| <!-- ============================================================ |
| build the web/client files |
| ============================================================ --> |
| |
| <target name="build-client"> |
| |
| <copy todir="${WEB}/client/nls/English.lproj"> |
| <fileset file="${VENDOR}/webkit/WebCore/English.lproj/localizedStrings.js"/> |
| </copy> |
| |
| <copy todir="${WEB}/client"> |
| <fileset dir="${VENDOR}/webkit/WebCore/inspector/front-end"/> |
| </copy> |
| |
| <!-- Replaces webkit-specific 'const' keyword in inspector files with 'var' to support non-webkit browsers --> |
| <replaceregexp match="const " replace="var " flags="g" byline="true"> |
| <fileset dir="${WEB}/client" includes="**/*.js"/> |
| </replaceregexp> |
| |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/build-client-html.py"/> |
| <arg file="${WEB}"/> |
| </exec> |
| |
| </target> |
| |
| <!-- ============================================================ |
| build the archives |
| ============================================================ --> |
| <target name="build-archives" depends="build-clean"> |
| |
| <!-- =================================== --> |
| <delete dir="${OUT}/archives"/> |
| <mkdir dir="${OUT}/archives"/> |
| |
| <delete dir="${OUT}/files"/> |
| |
| <delete dir="${OUT}/files/${ARCH-BIN}"/> |
| <mkdir dir="${OUT}/files/${ARCH-BIN}"/> |
| <copy todir="${OUT}/files/${ARCH-BIN}" file="${OUT}/build-info.txt"/> |
| <copy todir="${OUT}/files/${ARCH-BIN}" file="../LICENSE"/> |
| <copy todir="${OUT}/files/${ARCH-BIN}" file="../NOTICE"/> |
| <copy todir="${OUT}/files/${ARCH-BIN}"> |
| <fileset dir="../${PROJECT_SERVER}"> |
| <exclude name="weinre-hot"/> |
| </fileset> |
| </copy> |
| <chmod file="${OUT}/files/${ARCH-BIN}/weinre" perm="+x"/> |
| |
| <!-- ant's zip task doesn't preserve permission bits --> |
| <exec executable="zip" dir="${OUT}/files"> |
| <arg value="-q"/> |
| <arg value="-r"/> |
| <arg value="../archives/${ARCH-BIN}.zip"/> |
| <arg value="${ARCH-BIN}"/> |
| </exec> |
| |
| <exec executable="tar" dir="${OUT}/files"> |
| <arg value="-czf"/> |
| <arg value="../archives/${ARCH-BIN}.tar.gz"/> |
| <arg value="${ARCH-BIN}"/> |
| </exec> |
| |
| <!-- =================================== --> |
| <delete dir="${OUT}/files/${ARCH-DOC}"/> |
| <mkdir dir="${OUT}/files/${ARCH-DOC}"/> |
| <copy todir="${OUT}/files/${ARCH-DOC}" file="${OUT}/build-info.txt" /> |
| <copy todir="${OUT}/files/${ARCH-DOC}" file="../LICENSE"/> |
| <copy todir="${OUT}/files/${ARCH-DOC}" file="../NOTICE"/> |
| <copy todir="${OUT}/files/${ARCH-DOC}"> |
| <fileset dir="${WEB}/doc"/> |
| </copy> |
| |
| <copy todir="${OUT}/archives/doc"> |
| <fileset dir="${OUT}/files/${ARCH-DOC}"/> |
| </copy> |
| |
| <!-- ant's zip task doesn't preserve permission bits --> |
| <exec executable="zip" dir="${OUT}/files"> |
| <arg value="-q"/> |
| <arg value="-r"/> |
| <arg value="../archives/${ARCH-DOC}.zip"/> |
| <arg value="${ARCH-DOC}"/> |
| </exec> |
| |
| <exec executable="tar" dir="${OUT}/files"> |
| <arg value="-czf"/> |
| <arg value="../archives/${ARCH-DOC}.tar.gz"/> |
| <arg value="${ARCH-DOC}"/> |
| </exec> |
| |
| <!-- =================================== --> |
| <delete dir="${OUT}/files/${ARCH-SRC}"/> |
| <mkdir dir="${OUT}/files/${ARCH-SRC}"/> |
| <copy todir="${OUT}/files/${ARCH-SRC}" file="${OUT}/build-info.txt" /> |
| |
| <copy todir="${OUT}/files/${ARCH-SRC}" preservelastmodified="yes"> |
| <fileset dir=".."> |
| <exclude name="weinre.build/bin/**"/> |
| <exclude name="weinre.build/cached/**"/> |
| <exclude name="weinre.build/out/**"/> |
| <exclude name="weinre.build/tmp/**"/> |
| <exclude name="weinre.build/personal.properties"/> |
| |
| <exclude name="weinre.server/tmp/**"/> |
| <exclude name="weinre.server/web/**"/> |
| </fileset> |
| </copy> |
| |
| <exec executable="zip" dir="${OUT}/files"> |
| <arg value="-q"/> |
| <arg value="-r"/> |
| <arg value="../archives/${ARCH-SRC}.zip"/> |
| <arg value="${ARCH-SRC}"/> |
| </exec> |
| |
| <exec executable="tar" dir="${OUT}/files"> |
| <arg value="-czf"/> |
| <arg value="../archives/${ARCH-SRC}.tar.gz"/> |
| <arg value="${ARCH-SRC}"/> |
| </exec> |
| |
| </target> |
| |
| |
| <!-- ============================================================ |
| build-archives-checksums |
| ============================================================ --> |
| |
| <target name="build-archives-ck" depends="build-archives"> |
| |
| <checksum file="${OUT}/archives/${ARCH-BIN}.zip" algorithm="MD5"/> |
| <checksum file="${OUT}/archives/${ARCH-DOC}.zip" algorithm="MD5"/> |
| <checksum file="${OUT}/archives/${ARCH-SRC}.zip" algorithm="MD5"/> |
| |
| <checksum file="${OUT}/archives/${ARCH-BIN}.tar.gz" algorithm="MD5"/> |
| <checksum file="${OUT}/archives/${ARCH-DOC}.tar.gz" algorithm="MD5"/> |
| <checksum file="${OUT}/archives/${ARCH-SRC}.tar.gz" algorithm="MD5"/> |
| |
| <checksum file="${OUT}/archives/${ARCH-BIN}.zip" algorithm="SHA1"/> |
| <checksum file="${OUT}/archives/${ARCH-DOC}.zip" algorithm="SHA1"/> |
| <checksum file="${OUT}/archives/${ARCH-SRC}.zip" algorithm="SHA1"/> |
| |
| <checksum file="${OUT}/archives/${ARCH-BIN}.tar.gz" algorithm="SHA1"/> |
| <checksum file="${OUT}/archives/${ARCH-DOC}.tar.gz" algorithm="SHA1"/> |
| <checksum file="${OUT}/archives/${ARCH-SRC}.tar.gz" algorithm="SHA1"/> |
| |
| <!-- =================================== --> |
| <!-- |
| <delete dir="${OUT}/files"/> |
| --> |
| |
| </target> |
| |
| |
| <!-- ============================================================ |
| done! |
| ============================================================ --> |
| |
| <target name="finished"> |
| <echo>ant completed successfully ${MESSAGE_FINISHED}</echo> |
| </target> |
| |
| <!-- ============================================================ |
| done! via growl |
| ============================================================ --> |
| |
| <target name="finished-growl" if="USE_GROWL"> |
| <exec os="Mac OS X" executable="growlnotify"> |
| <arg value="-m"/> |
| <arg value="${MESSAGE_FINISHED}"/> |
| <arg value="ant completed successfully"/> |
| </exec> |
| </target> |
| |
| <!-- ============================================================ |
| macro to compile IDL to JSON |
| ============================================================ --> |
| |
| <macrodef name="simple-idl2json"> |
| <attribute name="name"/> |
| <attribute name="iDir"/> |
| <attribute name="oDir"/> |
| <element name="args" optional="true" implicit="true"/> |
| <sequential> |
| <exec executable="python" failonerror="true" failifexecutionfails="true"> |
| <arg file="scripts/simple-idl2json.py"/> |
| <args/> |
| <arg value="--validate"/> |
| <arg file="@{iDir}/@{name}.idl"/> |
| <arg file="@{oDir}/@{name}.json"/> |
| </exec> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============================================================ |
| macro to compile HTML |
| ============================================================ --> |
| |
| <macrodef name="build-html"> |
| <attribute name="name"/> |
| <attribute name="title"/> |
| <attribute name="iDir"/> |
| <attribute name="oDir"/> |
| <element name="args" optional="true" implicit="true"/> |
| <sequential> |
| <delete file="@{oDir}/@{name}.html"/> |
| <concat destfile="@{oDir}/@{name}.html"> |
| <filelist dir="@{iDir}" files="boilerplate-header.html.txt"/> |
| <filelist dir="@{iDir}" files="@{name}.body.html"/> |
| <filelist dir="@{iDir}" files="boilerplate-trailer.html.txt"/> |
| <filterchain> |
| <replacetokens> |
| <token key="PAGE_NAME" value="@{title}"/> |
| </replacetokens> |
| </filterchain> |
| </concat> |
| <echo>generated @{oDir}/@{name}.html</echo> |
| </sequential> |
| </macrodef> |
| |
| <!-- ============================================================ --> |
| </project> |