379 lines
16 KiB
XML
Executable File
379 lines
16 KiB
XML
Executable File
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- BigBlueButton Client build.xml for use by Hudson builds. -->
|
|
<project name="BigBlueButton Client" basedir="." default="clean-build-all" >
|
|
<property environment="env" />
|
|
<property name="BUILD_ENV" value="DEV" />
|
|
<property name="FLEX_HOME" value="${env.FLEX_HOME}" />
|
|
<property name="LOCALE_DIR" value="${FLEX_HOME}/frameworks/locale"/>
|
|
<property name="BASE_DIR" value="${basedir}" />
|
|
<property name="RESOURCES_DIR" value="${BASE_DIR}/resources" />
|
|
<property name="PROD_RESOURCES_DIR" value="${RESOURCES_DIR}/prod" />
|
|
<property name="SRC_DIR" value="${BASE_DIR}/src" />
|
|
|
|
<property name="OUTPUT_DIR" value="${BASE_DIR}/bin" />
|
|
<taskdef resource="flexTasks.tasks" classpath="${FLEX_HOME}/ant/lib/flexTasks.jar" />
|
|
|
|
<!-- Declare module names here -->
|
|
<property name="BBB_MAIN" value="BigBlueButton" />
|
|
<property name="CHAT" value="ChatModule" />
|
|
<property name="VIEWERS" value="ViewersModule" />
|
|
<property name="LISTENERS" value="ListenersModule" />
|
|
<property name="PRESENT" value="PresentModule" />
|
|
<property name="DESKSHARE" value="DeskShareModule" />
|
|
<property name="DESKSHARE_SA" value="DeskshareStandalone" />
|
|
<property name="PHONE" value="PhoneModule" />
|
|
<property name="VIDEO" value="VideoconfModule" />
|
|
<property name="WHITEBOARD" value="WhiteboardModule" />
|
|
<property name="DYN_INFO" value="DynamicInfoModule" />
|
|
<property name="BREAKOUT" value="BreakoutModule" />
|
|
<property name="CLASSROOM_AUDIO" value="ClassroomAudioModule" />
|
|
<property name="SETTINGS" value="SettingsModule" />
|
|
|
|
<property name="AVAILABLE_LOCALES" value="az_AZ,bg_BG,cs_CZ,da_DK,de_DE,el_GR,en_US,es_ES,es_LA,fa_IR,fr_FR,fr_CA,hr_HR,hu_HU,id_ID,it_IT,ja_JP,ko_KR,lv_LV,lt_LT,nb_NO,nl_NL,pl_PL,pt_BR,pt_PT,ro_RO,ru_RU,sv_SE,sr_RS,sr_SR,th_TH,tr_TR,vi_VN,uk_UA,zh_CN,zh_TW"/>
|
|
|
|
<xmlproperty file="${SRC_DIR}/conf/locales.xml" collapseAttributes="true"/>
|
|
|
|
<target name="init-ant-contrib">
|
|
<property name="ant-contrib.jar" location="${BASE_DIR}/build/lib/ant-contrib-0.6.jar"/>
|
|
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${ant-contrib.jar}"/>
|
|
</target>
|
|
|
|
<target name="localization" depends="init-ant-contrib">
|
|
<echo message="Parsing ${SRC_DIR}/conf/locales.xml for supported locales"/>
|
|
<echo message="Available locales ${AVAILABLE_LOCALES}"/>
|
|
<!--foreach list="${locales.locale.code}" target="build-locale" param="supportedlocale" delimiter=","/-->
|
|
<foreach list="${AVAILABLE_LOCALES}" target="build-locale" param="supportedlocale" delimiter=","/>
|
|
</target>
|
|
|
|
<target name="branding" depends="init-ant-contrib">
|
|
<sequential>
|
|
<mxmlc file="${SRC_DIR}/branding/css/${themeFile}" output="${OUTPUT_DIR}/branding/css/${themeFile}.swf" debug="false" optimize="true">
|
|
</mxmlc>
|
|
</sequential>
|
|
</target>
|
|
|
|
<target name="build-locale">
|
|
<echo message="Building ${supportedlocale}"/>
|
|
<available file="${LOCALE_DIR}/${supportedlocale}" type="dir" property="locale.dir.present"/>
|
|
<if>
|
|
<equals arg1="${locale.dir.present}" arg2="true"/>
|
|
<then>
|
|
<echo message="No need to copy ${LOCALE_DIR}/${supportedlocale}"/>
|
|
</then>
|
|
<else>
|
|
<echo message="Need to copy ${LOCALE_DIR}/${supportedlocale}"/>
|
|
<exec dir="${BASE_DIR}" vmlauncher="true" executable="copylocale">
|
|
<arg value="en_US"/>
|
|
<arg value="${supportedlocale}"/>
|
|
</exec>
|
|
</else>
|
|
</if>
|
|
<compileLocale locale="${supportedlocale}" />
|
|
</target>
|
|
|
|
<macrodef name="compileLocale" description="Compiles the Resource package for the given locale">
|
|
<attribute name="locale" default="en_US"/>
|
|
<sequential>
|
|
<echo message="Building @{locale}"/>
|
|
<available file="${LOCALE_DIR}/@{locale}" type="dir" property="locale.dir.present"/>
|
|
<if>
|
|
<equals arg1="${locale.dir.present}" arg2="true"/>
|
|
<then>
|
|
<echo message="No need to copy ${LOCALE_DIR}/@{locale}"/>
|
|
</then>
|
|
<else>
|
|
<echo message="Need to copy ${LOCALE_DIR}/@{locale}"/>
|
|
<exec dir="${BASE_DIR}" vmlauncher="true" executable="copylocale">
|
|
<arg value="en_US"/>
|
|
<arg value="@{locale}"/>
|
|
</exec>
|
|
</else>
|
|
</if>
|
|
|
|
<!--
|
|
Create the Flex Home directory for the language in question.
|
|
This is necessary to compensate for a bug in pre-3.2 releases of
|
|
mxmlc.
|
|
|
|
<mkdir dir="${FLEX_HOME}/frameworks/locale/@{locale}"/>-->
|
|
|
|
<!-- Invoke MXMLC -->
|
|
<mxmlc output="${OUTPUT_DIR}/locale/@{locale}_resources.swf">
|
|
<locale>@{locale}</locale>
|
|
<target-player>10.0.0</target-player>
|
|
<source-path path-element="locale/{locale}"/>
|
|
<include-resource-bundles>bbbResources</include-resource-bundles>
|
|
<include-resource-bundles>core</include-resource-bundles>
|
|
<include-resource-bundles>controls</include-resource-bundles>
|
|
<source-path path-element="${FLEX_HOME}/frameworks"/>
|
|
</mxmlc>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="build-bbb-main" description="Compile BigBlueButton Main">
|
|
<build-main src="${SRC_DIR}" target="${BBB_MAIN}" />
|
|
|
|
<echo message="Copying common assets for BBB Main" />
|
|
<copy todir="${OUTPUT_DIR}/org/bigbluebutton/common/assets/images" >
|
|
<fileset dir="${BASE_DIR}/src/org/bigbluebutton/common/assets/images/" />
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="build-breakout" description="Compile Breakout Module" >
|
|
<build-module src="${SRC_DIR}" target="${BREAKOUT}" />
|
|
</target>
|
|
|
|
<target name="build-chat" description="Compile Chat Module">
|
|
<build-module src="${SRC_DIR}" target="${CHAT}" />
|
|
</target>
|
|
|
|
<target name="build-viewers" description="Compile Viewers Module">
|
|
<build-module src="${SRC_DIR}" target="${VIEWERS}" />
|
|
</target>
|
|
|
|
<target name="build-listeners" description="Compile Listeners Module">
|
|
<build-module src="${SRC_DIR}" target="${LISTENERS}" />
|
|
</target>
|
|
|
|
<target name="build-present" description="Compile Present Module">
|
|
<build-module src="${SRC_DIR}" target="${PRESENT}" />
|
|
</target>
|
|
|
|
<target name="build-deskshare-standalone" depends="build-deskshare-no-linker" description="Compile Deskshare Standalone Module">
|
|
<echo message="Compiling deskshare standalone without optimization." />
|
|
<build-module-no-link src="${SRC_DIR}" target="${DESKSHARE_SA}" />
|
|
</target>
|
|
|
|
<target name="build-deskshare-no-linker" description="Compile Deskshare Module without the linker">
|
|
<echo message="Compiling deskshare without optimization." />
|
|
<build-module-no-link src="${SRC_DIR}" target="${DESKSHARE}" />
|
|
</target>
|
|
|
|
<target name="build-deskshare" description="Compile Deskshare Module">
|
|
<build-module src="${SRC_DIR}" target="${DESKSHARE}" />
|
|
<echo message="Copying deskshare applet for Deskshare Module" />
|
|
<copy file="${PROD_RESOURCES_DIR}/bbb-deskshare-applet-0.71.jar" todir="${OUTPUT_DIR}"/>
|
|
</target>
|
|
|
|
<target name="build-phone" description="Compile Phone Module">
|
|
<build-module src="${SRC_DIR}" target="${PHONE}" />
|
|
|
|
<echo message="Copying assets for Phone Module" />
|
|
<copy todir="${OUTPUT_DIR}/org/bigbluebutton/modules/phone/views/assets/images/" >
|
|
<fileset dir="${BASE_DIR}/src/org/bigbluebutton/modules/phone/views/assets/images/" />
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="build-classroom-audio" description="Compile Classroom Audio Module">
|
|
<build-module src="${SRC_DIR}" target="${CLASSROOM_AUDIO}" />
|
|
</target>
|
|
|
|
<target name="build-settings" description="Compile Settings Module">
|
|
<build-module src="${SRC_DIR}" target="${SETTINGS}" />
|
|
</target>
|
|
|
|
<target name="build-video" description="Compile Video Module">
|
|
<build-module src="${SRC_DIR}" target="${VIDEO}" />
|
|
</target>
|
|
|
|
<target name="build-whiteboard" description="Compile Whiteboard Module">
|
|
<build-module src="${SRC_DIR}" target="${WHITEBOARD}" />
|
|
</target>
|
|
|
|
<target name="build-dyn" description="Compile Dynamic Info Module">
|
|
<build-module src="${SRC_DIR}" target="${DYN_INFO}" />
|
|
</target>
|
|
|
|
<!-- just a grouping of modules to compile -->
|
|
<target name="build-main-chat-viewers-listeners-present"
|
|
depends="build-bbb-main, build-chat, build-viewers, build-listeners, build-present, build-breakout"
|
|
description="Compile main, chat, viewers, listeners, present, breakout modules">
|
|
</target>
|
|
|
|
<!-- just a grouping of modules to compile -->
|
|
<target name="build-deskshare-phone-video-whiteboard-dyn"
|
|
depends="build-deskshare, build-phone, build-video, build-whiteboard, build-dyn, build-classroom-audio, build-settings"
|
|
description="Compile deskshare, phone, video, whiteboard, dynamic info modules">
|
|
</target>
|
|
|
|
<macrodef name="build-main">
|
|
<attribute name="target" description="Module to compile" />
|
|
<attribute name="flex" default="${FLEX_HOME}" description="Location of the Flex install." />
|
|
<attribute name="app" default="."/>
|
|
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
|
|
<sequential>
|
|
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false" optimize="true" link-report="linker-report.xml">
|
|
<target-player>10.0.0</target-player>
|
|
<load-config filename="@{flex}/frameworks/flex-config.xml" />
|
|
<source-path path-element="@{flex}/frameworks" />
|
|
<compiler.library-path dir="@{flex}/frameworks" append="true">
|
|
<include name="libs" />
|
|
<include name="../bundles/{locale}" />
|
|
</compiler.library-path>
|
|
|
|
<compiler.library-path dir="@{app}" append="true">
|
|
<include name="libs" />
|
|
<include name="libs/generated" />
|
|
</compiler.library-path>
|
|
|
|
<default-size width="500" height="600" />
|
|
</mxmlc>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<macrodef name="build-module-no-link">
|
|
<attribute name="target" description="Module to compile" />
|
|
<attribute name="flex" default="${FLEX_HOME}" description="Location of the Flex install." />
|
|
<attribute name="app" default="."/>
|
|
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
|
|
<sequential>
|
|
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false">
|
|
<target-player>10.0.0</target-player>
|
|
<load-config filename="@{flex}/frameworks/flex-config.xml" />
|
|
<source-path path-element="@{flex}/frameworks" />
|
|
<compiler.library-path dir="@{flex}/frameworks" append="true">
|
|
<include name="libs" />
|
|
<include name="../bundles/{locale}" />
|
|
</compiler.library-path>
|
|
|
|
<compiler.library-path dir="@{app}" append="true">
|
|
<include name="libs" />
|
|
<include name="libs/generated" />
|
|
</compiler.library-path>
|
|
|
|
<default-size width="500" height="600" />
|
|
</mxmlc>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<macrodef name="build-module">
|
|
<attribute name="target" description="Module to compile" />
|
|
<attribute name="flex" default="${FLEX_HOME}" description="Location of the Flex install." />
|
|
<attribute name="app" default="."/>
|
|
<attribute name="src" default="${SRC_DIR}" description="Path to the module to compile" />
|
|
<sequential>
|
|
<mxmlc file="@{src}/@{target}.mxml" output="${OUTPUT_DIR}/@{target}.swf" debug="false" optimize="true" load-externs="linker-report.xml">
|
|
<target-player>10.0.0</target-player>
|
|
<load-config filename="@{flex}/frameworks/flex-config.xml" />
|
|
<source-path path-element="@{flex}/frameworks" />
|
|
<compiler.library-path dir="@{flex}/frameworks" append="true">
|
|
<include name="libs" />
|
|
<include name="../bundles/{locale}" />
|
|
</compiler.library-path>
|
|
|
|
<compiler.library-path dir="@{app}" append="true">
|
|
<include name="libs" />
|
|
<include name="libs/generated" />
|
|
</compiler.library-path>
|
|
|
|
<default-size width="500" height="600" />
|
|
</mxmlc>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="compile-deskshare-standalone" depends="build-deskshare-standalone"
|
|
description="Compiling standalone desktop sharing">
|
|
<echo message="Deskshare standalone built without optimization." />
|
|
</target>
|
|
|
|
<target name="compile-bbb" depends="build-main-chat-viewers-listeners-present, build-deskshare-phone-video-whiteboard-dyn, copy-resource-files"
|
|
description="Compiling the BBB without copying config.xml">
|
|
</target>
|
|
|
|
<target name="copy-resource-files">
|
|
<copy todir="${OUTPUT_DIR}/swfobject/" >
|
|
<fileset dir="${BASE_DIR}/src/swfobject/" />
|
|
</copy>
|
|
<copy file="${PROD_RESOURCES_DIR}/BigBlueButton.html" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/DeskshareStandalone.html" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/bbb.gif" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/locales.xml" todir="${OUTPUT_DIR}/conf" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/example-info-data.xml" todir="${OUTPUT_DIR}/conf" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/jquery-1.5.1.min.js" todir="${OUTPUT_DIR}" overwrite="true" />
|
|
<copy file="${PROD_RESOURCES_DIR}/bigbluebutton.js" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/deployJava.js" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/bbb_blinker.js" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/bbb_deskshare.js" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<copy file="${PROD_RESOURCES_DIR}/bbb_localization.js" todir="${OUTPUT_DIR}" overwrite="true"/>
|
|
<if>
|
|
<equals arg1="${BUILD_ENV}" arg2="DEV"/>
|
|
<then>
|
|
<echo message="Copying config.xml for development environment"/>
|
|
<copy file="${BASE_DIR}/src/conf/config.xml" todir="${OUTPUT_DIR}/conf" />
|
|
<echo message="Copying join-mock.xml for development environment"/>
|
|
<copy file="${BASE_DIR}/src/conf/join-mock.xml" todir="${OUTPUT_DIR}/conf" />
|
|
</then>
|
|
<else>
|
|
<echo message="Need to copy config.xml.template for production environment"/>
|
|
<copy file="${RESOURCES_DIR}/config.xml.template" todir="${OUTPUT_DIR}/conf" overwrite="true"/>
|
|
</else>
|
|
</if>
|
|
</target>
|
|
|
|
<target name="check-config-xml">
|
|
<available file="/var/www/bigbluebutton/client/conf/config.xml" property="config-xml.present"/>
|
|
</target>
|
|
|
|
<target name="copy-config-xml" depends="check-config-xml" if="config-xml.present">
|
|
<echo message="Updating config.xml from /var/www/bigbluebutton/client/conf/config.xml" />
|
|
<copy file="/var/www/bigbluebutton/client/conf/config.xml" todir="${OUTPUT_DIR}/conf" />
|
|
</target>
|
|
|
|
<target name="generate-html-wrapper">
|
|
<html-wrapper
|
|
title="BigBlueButton"
|
|
file="BigBlueButton.html"
|
|
height="100%"
|
|
width="100%"
|
|
bgcolor="grey"
|
|
application="BBB"
|
|
swf="BigBlueButton"
|
|
version-major="10"
|
|
version-minor="0"
|
|
version-revision="0"
|
|
history="true"
|
|
template="express-installation"
|
|
output="${OUTPUT_DIR}"
|
|
/>
|
|
</target>
|
|
|
|
<target name="asdoc">
|
|
<echo message="Generating ASDocs"/>
|
|
<delete dir="${BASE_DIR}/asdoc" />
|
|
<mkdir dir="${BASE_DIR}/asdoc" />
|
|
<!-- asdoc task not natively supported for ant flexTasks.jar for flex3. It is supported for flex 4, so it should be enabled here
|
|
when bbb-client is moved to Flex 4 -->
|
|
<!--<asdoc output="${BASE_DIR}/asdoc"
|
|
external-library-path="{BASE_DIR}/libs"
|
|
lenient="true"
|
|
failonerror="true"
|
|
source-path="${SRC_DIR}"
|
|
doc-sources="${SRC_DIR}"
|
|
/> -->
|
|
<exec executable="${FLEX_HOME}/bin/asdoc" failonerror="true">
|
|
<arg line="-source-path ${SRC_DIR}/ "/>
|
|
<arg line="-doc-sources ${SRC_DIR}/ "/>
|
|
<arg line="-external-library-path '${BASE_DIR}/libs/' "/>
|
|
<arg line="-output '${BASE_DIR}/asdoc' "/>
|
|
</exec>
|
|
<echo message="Done Generating ASDocs" />
|
|
</target>
|
|
|
|
<target name="clean">
|
|
<delete dir="${OUTPUT_DIR}" />
|
|
<mkdir dir="${OUTPUT_DIR}"/>
|
|
</target>
|
|
|
|
<!-- NOTE: compile-deskshare-standalone MUST come first before compile-bbb as we need the deskshare-standalone
|
|
to be compiled withouth being optimized by using the linker -->
|
|
<target name="clean-build-bbb" depends="clean, generate-html-wrapper, compile-deskshare-standalone, compile-bbb"
|
|
description="Build BBB client skipping compiling of locales"/>
|
|
<target name="clean-build-all" depends="clean, generate-html-wrapper, localization, compile-deskshare-standalone, compile-bbb"
|
|
description="Build BBB client including locales"/>
|
|
<target name="modules" depends="init-ant-contrib, generate-html-wrapper, compile-deskshare-standalone, compile-bbb"
|
|
description="Build BBB client without locales"/>
|
|
<target name="cleanandmake" depends="clean-build-all" description="Build BBB client including locales"/>
|
|
|
|
<target name="build-custom" depends="init-ant-contrib, build-classroom-audio" description="Build a custom defined module only, to save time as each build takes several minutes" />
|
|
</project>
|