2009-06-03 06:23:56 +08:00
<?xml version="1.0" encoding="utf-8"?>
2009-12-20 02:01:09 +08:00
<!-- BigBlueButton Client build.xml for use by Hudson builds. -->
2010-06-10 05:41:30 +08:00
<project name= "BigBlueButton Client" basedir= "." default= "clean-build-all" >
2010-07-06 23:50:34 +08:00
<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}" />
2010-06-10 05:41:30 +08:00
<property name= "RESOURCES_DIR" value= "${BASE_DIR}/resources" />
2010-07-04 23:28:42 +08:00
<property name= "PROD_RESOURCES_DIR" value= "${RESOURCES_DIR}/prod" />
2010-06-10 05:41:30 +08:00
<property name= "SRC_DIR" value= "${BASE_DIR}/src" />
<property name= "OUTPUT_DIR" value= "${BASE_DIR}/bin" />
2009-06-03 06:23:56 +08:00
<taskdef resource= "flexTasks.tasks" classpath= "${FLEX_HOME}/ant/lib/flexTasks.jar" />
2010-05-13 11:53:39 +08:00
2010-06-10 05:41:30 +08:00
<!-- 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" />
2010-07-18 04:05:57 +08:00
<property name= "WHITEBOARD" value= "WhiteboardModule" />
2010-06-10 05:41:30 +08:00
<property name= "DYN_INFO" value= "DynamicInfoModule" />
2010-09-01 04:43:24 +08:00
<property name= "BREAKOUT" value= "BreakoutModule" />
2011-03-05 05:37:46 +08:00
<property name= "CLASSROOM_AUDIO" value= "ClassroomAudioModule" />
2011-04-23 07:05:08 +08:00
<property name= "SETTINGS" value= "SettingsModule" />
2010-06-11 04:05:37 +08:00
2011-04-22 02:46:21 +08:00
<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" />
2010-06-11 04:05:37 +08:00
2010-06-10 05:41:30 +08:00
<xmlproperty file= "${SRC_DIR}/conf/locales.xml" collapseAttributes= "true" />
2010-06-11 04:05:37 +08:00
2010-06-10 05:41:30 +08:00
<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}" />
2010-06-04 02:31:37 +08:00
</target>
2010-06-10 05:41:30 +08:00
<target name= "localization" depends= "init-ant-contrib" >
<echo message= "Parsing ${SRC_DIR}/conf/locales.xml for supported locales" />
2010-06-11 04:05:37 +08:00
<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= "," />
2010-06-10 05:41:30 +08:00
</target>
2010-08-25 04:10:28 +08:00
<target name= "branding" depends= "init-ant-contrib" >
<sequential >
2010-12-24 12:20:26 +08:00
<mxmlc file= "${SRC_DIR}/branding/css/${themeFile}" output= "${OUTPUT_DIR}/branding/css/${themeFile}.swf" debug= "false" optimize= "true" >
2010-08-25 04:10:28 +08:00
</mxmlc>
</sequential>
</target>
2010-06-10 05:41:30 +08:00
<target name= "build-locale" >
<echo message= "Building ${supportedlocale}" />
<available file= "${LOCALE_DIR}/${supportedlocale}" type= "dir" property= "locale.dir.present" />
<if >
2010-07-06 23:50:34 +08:00
<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" >
2010-06-10 05:41:30 +08:00
<arg value= "en_US" />
2010-07-06 23:50:34 +08:00
<arg value= "${supportedlocale}" />
2010-06-10 05:41:30 +08:00
</exec>
2010-07-06 23:50:34 +08:00
</else>
</if>
<compileLocale locale= "${supportedlocale}" />
2010-06-10 05:41:30 +08:00
</target>
2010-06-11 04:05:37 +08:00
2010-06-10 05:41:30 +08:00
<macrodef name= "compileLocale" description= "Compiles the Resource package for the given locale" >
<attribute name= "locale" default= "en_US" />
<sequential >
2010-06-11 04:05:37 +08:00
<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>
2010-06-10 05:41:30 +08:00
<!--
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>
2010-08-05 15:29:58 +08:00
<target-player > 10.0.0</target-player>
2010-06-10 05:41:30 +08:00
<source-path path-element= "locale/{locale}" />
<include-resource-bundles > bbbResources</include-resource-bundles>
2010-09-02 13:57:43 +08:00
<include-resource-bundles > core</include-resource-bundles>
<include-resource-bundles > controls</include-resource-bundles>
2010-06-10 05:41:30 +08:00
<source-path path-element= "${FLEX_HOME}/frameworks" />
</mxmlc>
</sequential>
</macrodef>
2009-08-04 22:04:06 +08:00
2010-06-10 05:41:30 +08:00
<target name= "build-bbb-main" description= "Compile BigBlueButton Main" >
2010-06-24 16:58:52 +08:00
<build-main src= "${SRC_DIR}" target= "${BBB_MAIN}" />
2009-06-03 06:23:56 +08:00
2010-06-10 05:41:30 +08:00
<echo message= "Copying common assets for BBB Main" />
2009-06-03 06:23:56 +08:00
<copy todir= "${OUTPUT_DIR}/org/bigbluebutton/common/assets/images" >
2010-06-10 05:41:30 +08:00
<fileset dir= "${BASE_DIR}/src/org/bigbluebutton/common/assets/images/" />
</copy>
</target>
2010-09-01 04:43:24 +08:00
<target name= "build-breakout" description= "Compile Breakout Module" >
<build-module src= "${SRC_DIR}" target= "${BREAKOUT}" />
</target>
2010-06-10 05:41:30 +08:00
<target name= "build-chat" description= "Compile Chat Module" >
<build-module src= "${SRC_DIR}" target= "${CHAT}" />
</target>
<target name= "build-viewers" description= "Compile Viewers Module" >
2010-06-10 23:40:39 +08:00
<build-module src= "${SRC_DIR}" target= "${VIEWERS}" />
2010-06-10 05:41:30 +08:00
</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>
2009-12-10 04:57:45 +08:00
2010-06-30 09:17:12 +08:00
<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}" />
2010-06-10 05:41:30 +08:00
</target>
<target name= "build-deskshare" description= "Compile Deskshare Module" >
<build-module src= "${SRC_DIR}" target= "${DESKSHARE}" />
<echo message= "Copying deskshare applet for Deskshare Module" />
2010-11-04 01:47:08 +08:00
<copy file= "${PROD_RESOURCES_DIR}/bbb-deskshare-applet-0.71.jar" todir= "${OUTPUT_DIR}" />
2010-06-10 05:41:30 +08:00
</target>
<target name= "build-phone" description= "Compile Phone Module" >
<build-module src= "${SRC_DIR}" target= "${PHONE}" />
2009-06-26 02:52:04 +08:00
2010-06-10 05:41:30 +08:00
<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>
2011-03-05 05:37:46 +08:00
<target name= "build-classroom-audio" description= "Compile Classroom Audio Module" >
<build-module src= "${SRC_DIR}" target= "${CLASSROOM_AUDIO}" />
</target>
2010-06-10 05:41:30 +08:00
2011-04-23 07:05:08 +08:00
<target name= "build-settings" description= "Compile Settings Module" >
<build-module src= "${SRC_DIR}" target= "${SETTINGS}" />
</target>
2010-06-10 05:41:30 +08:00
<target name= "build-video" description= "Compile Video Module" >
<build-module src= "${SRC_DIR}" target= "${VIDEO}" />
</target>
2010-07-18 04:05:57 +08:00
<target name= "build-whiteboard" description= "Compile Whiteboard Module" >
<build-module src= "${SRC_DIR}" target= "${WHITEBOARD}" />
2010-06-10 05:41:30 +08:00
</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"
2010-09-01 04:43:24 +08:00
depends="build-bbb-main, build-chat, build-viewers, build-listeners, build-present, build-breakout"
description="Compile main, chat, viewers, listeners, present, breakout modules">
2010-06-10 05:41:30 +08:00
</target>
<!-- just a grouping of modules to compile -->
2010-07-18 04:05:57 +08:00
<target name= "build-deskshare-phone-video-whiteboard-dyn"
2011-04-23 07:05:08 +08:00
depends="build-deskshare, build-phone, build-video, build-whiteboard, build-dyn, build-classroom-audio, build-settings"
2010-07-18 04:05:57 +08:00
description="Compile deskshare, phone, video, whiteboard, dynamic info modules">
2010-06-10 05:41:30 +08:00
</target>
2010-06-24 16:58:52 +08:00
<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" >
2010-08-05 15:29:58 +08:00
<target-player > 10.0.0</target-player>
2010-06-24 16:58:52 +08:00
<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>
2010-06-30 09:17:12 +08:00
<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" >
2010-08-05 15:29:58 +08:00
<target-player > 10.0.0</target-player>
2010-06-30 09:17:12 +08:00
<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>
2010-06-10 05:41:30 +08:00
<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 >
2010-06-24 16:58:52 +08:00
<mxmlc file= "@{src}/@{target}.mxml" output= "${OUTPUT_DIR}/@{target}.swf" debug= "false" optimize= "true" load-externs= "linker-report.xml" >
2010-08-05 15:29:58 +08:00
<target-player > 10.0.0</target-player>
2010-06-10 05:41:30 +08:00
<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>
2010-06-30 09:17:12 +08:00
<target name= "compile-deskshare-standalone" depends= "build-deskshare-standalone"
2010-07-04 22:45:17 +08:00
description="Compiling standalone desktop sharing">
2010-06-30 09:17:12 +08:00
<echo message= "Deskshare standalone built without optimization." />
</target>
2009-06-26 03:22:00 +08:00
2010-07-18 04:05:57 +08:00
<target name= "compile-bbb" depends= "build-main-chat-viewers-listeners-present, build-deskshare-phone-video-whiteboard-dyn, copy-resource-files"
2010-06-10 05:41:30 +08:00
description="Compiling the BBB without copying config.xml">
2009-06-03 06:23:56 +08:00
</target>
2009-11-04 11:52:17 +08:00
2010-06-10 05:41:30 +08:00
<target name= "copy-resource-files" >
<copy todir= "${OUTPUT_DIR}/swfobject/" >
<fileset dir= "${BASE_DIR}/src/swfobject/" />
</copy>
2010-07-04 23:28:42 +08:00
<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" />
2010-07-05 00:31:44 +08:00
<copy file= "${PROD_RESOURCES_DIR}/locales.xml" todir= "${OUTPUT_DIR}/conf" overwrite= "true" />
2011-03-28 05:45:08 +08:00
<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" />
2010-07-05 00:31:44 +08:00
<if >
<equals arg1= "${BUILD_ENV}" arg2= "DEV" />
<then >
<echo message= "Copying config.xml for development environment" />
2010-07-06 03:15:51 +08:00
<copy file= "${BASE_DIR}/src/conf/config.xml" todir= "${OUTPUT_DIR}/conf" />
2010-09-28 05:39:54 +08:00
<echo message= "Copying join-mock.xml for development environment" />
<copy file= "${BASE_DIR}/src/conf/join-mock.xml" todir= "${OUTPUT_DIR}/conf" />
2010-07-05 00:31:44 +08:00
</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>
2010-06-10 05:41:30 +08:00
</target>
2009-11-04 11:52:17 +08:00
<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>
2010-01-19 06:13:39 +08:00
2010-06-10 05:41:30 +08:00
<target name= "generate-html-wrapper" >
2009-06-03 06:23:56 +08:00
<html-wrapper
title="BigBlueButton"
file="BigBlueButton.html"
height="100%"
width="100%"
bgcolor="grey"
application="BBB"
swf="BigBlueButton"
2010-06-10 05:41:30 +08:00
version-major="10"
2009-06-03 06:23:56 +08:00
version-minor="0"
version-revision="0"
history="true"
2010-05-06 22:26:06 +08:00
template="express-installation"
2009-06-03 06:23:56 +08:00
output="${OUTPUT_DIR}"
/>
</target>
2011-02-12 06:41:38 +08:00
<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>
2009-06-03 06:23:56 +08:00
<target name= "clean" >
<delete dir= "${OUTPUT_DIR}" />
2010-06-10 23:40:39 +08:00
<mkdir dir= "${OUTPUT_DIR}" />
2009-06-03 06:23:56 +08:00
</target>
2010-06-30 09:17:12 +08:00
<!-- 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"/>
2010-09-01 09:06:25 +08:00
<target name= "modules" depends= "init-ant-contrib, generate-html-wrapper, compile-deskshare-standalone, compile-bbb"
2010-07-06 23:50:34 +08:00
description="Build BBB client without locales"/>
2010-06-10 23:40:39 +08:00
<target name= "cleanandmake" depends= "clean-build-all" description= "Build BBB client including locales" />
2011-03-05 23:20:13 +08:00
<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" />
2009-06-03 06:23:56 +08:00
</project>