[Title] add 64bit build script
authorjihye kim <jihye1128.kim@samsung.com>
Wed, 25 Jul 2012 08:33:53 +0000 (17:33 +0900)
committerjihye kim <jihye1128.kim@samsung.com>
Wed, 25 Jul 2012 08:33:53 +0000 (17:33 +0900)
[Type] work
[Module] event injector
[Priority] major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

package/build.ubuntu-64 [new file with mode: 0755]
package/pkginfo.manifest

diff --git a/package/build.ubuntu-64 b/package/build.ubuntu-64
new file mode 100755 (executable)
index 0000000..f8b5030
--- /dev/null
@@ -0,0 +1,306 @@
+#!/bin/bash -x
+
+build_path=${SRCDIR}/build_result
+
+__set_parameter()
+{
+       build_id=${package_name}
+       build_type=N
+       build_result_directory=${build_type}.${build_id}
+       build_result_path="$build_path/$build_result_directory"
+       architecture=x86
+       ide_root_path_name=ide
+
+       case ${platform} in
+               ubuntu-32)
+                       archive_platform_name=linux
+                       windowing=gtk
+                       ;;
+               ubuntu-64)
+                       archive_platform_name=linux
+                       windowing=gtk
+                       ;;
+               windows-32)
+                       archive_platform_name=win32
+                       windowing=win32
+                       ;;
+               *)
+                       echo "${platform} is not support yet."
+                       ;;
+       esac
+
+       result_archive_file=${build_id}-${archive_platform_name}.${windowing}.${architecture}.zip
+}
+
+__set_build_parameter()
+{
+       case ${platform} in
+               ubuntu-32)
+                       reference_ide_path=${ROOTDIR}/indigo-pde/eclipse
+                       ;;
+               ubuntu-64)
+                       reference_ide_path=${ROOTDIR}/indigo-pde/eclipse
+                       ;;
+               windows-32)
+                       reference_ide_path=${ROOTDIR}/indigo-winpde/eclipse
+                       ;;
+               *)
+                       echo "${platform} is not support yet."
+                       ;;
+       esac
+}
+
+__set_install_parameter()
+{
+       INSTALL_DIR=${SRCDIR}/package/${package_name}.package.${platform}/data
+}
+
+__clean_build_environment()
+{
+       if [ -d $build_path ]
+       then
+               echo "Build result directory : [$build_path]"
+       else
+               echo "Make build result directory [$build_path]"
+               mkdir -p $build_path
+       fi
+
+       echo "Remove legacy build files..."
+       if [ -d ${build_result_path}/${archive_platform_name}.${windowing}.${architecture} ]
+       then
+               rm -rf ${build_result_path}/${archive_platform_name}.${windowing}.${architecture}
+       fi
+       if [ -e ${build_result_path}/${result_archive_file} ]
+       then
+               rm -rf ${build_result_path}/${result_archive_file}
+       fi
+       if [ -d ${build_path}/tmp ]
+       then
+               rm -rf ${build_path}/tmp
+       fi
+
+       if [ -d ${build_path}/buildRepo ]
+       then
+               rm -rf ${build_path}/buildRepo
+       fi
+
+       rm -rf ${build_path}/*.xml
+       rm -rf ${build_path}/*.properties
+       rm -rf ${build_path}/*.clean
+
+
+       if [ -d $build_path/plugins ]
+       then
+               echo "plugins directory recreate..."
+               rm -rf $build_path/plugins
+               mkdir $build_path/plugins
+       else
+               echo "Make plugins directory..."
+               mkdir $build_path/plugins
+       fi
+       if [ -d $build_path/features/ ]
+       then
+               echo "features directory recreate..."
+               rm -rf $build_path/features
+               mkdir $build_path/features
+       else
+               echo "Make features directory..."
+               mkdir $build_path/features
+       fi
+
+}
+
+__copy_build_sources()
+{
+       echo "Copy features from $SRCDIR to $build_path/features"
+       temp_dir="`mktemp -d /tmp/ide.XXXXX`"
+       cp -r $SRCDIR/* $temp_dir
+       cp -r $temp_dir/* $build_path/features
+       rm -rf $temp_dir
+
+       echo "Copy plugins from $SRCDIR to $build_path/plugins"
+       temp_dir="`mktemp -d /tmp/ide.XXXXX`"
+       cp -r $SRCDIR/* $temp_dir
+       cp -r $temp_dir/* $build_path/plugins
+       rm -rf $temp_dir
+}
+
+__copy_dependency_plugins()
+{
+       dependency_plugin_path=${ROOTDIR}/${ide_root_path_name}
+       if [ -d ${dependency_plugin_path} ]
+       then
+               cp -rf ${dependency_plugin_path}/features/* ${build_path}/features/
+               cp -rf ${dependency_plugin_path}/plugins/* ${build_path}/plugins/
+       fi
+}
+
+__make_ant_build_properties_file()
+{
+       builder_path="${SRCDIR}/builder"
+       parent_path_of_based_eclipse=${reference_ide_path}/..
+
+       echo "Make build.properties file..."
+       if [ ! -e $builder_path/build.properties.clean ] ; then
+               echo "ERROR : \"build.properties.clean\" file does not exist..."
+               exit 1
+       fi
+       cp $builder_path/build.properties.clean $build_path
+       cp $builder_path/customTargets.xml $build_path
+
+       if [ -d $reference_ide_path ] 
+       then
+               sed -e "s;\(^buildDirectory=\).*;\1${build_path};g" \
+               -e "s;\(^base=\).*;\1${parent_path_of_based_eclipse};g" \
+               -e "s;\(^baseLocation=\).*;\1${reference_ide_path};g" \
+               -e "s;\(^configs=\).*;\1${archive_platform_name},${windowing},${architecture};g" \
+               -e "s;\(^buildType=\).*;\1${build_type};g" \
+               -e "s;\(^buildId=\).*;\1${build_id};g" \
+               -e "s;\(^archivePrefix=\).*;\1${build_id};g" \
+               < $build_path/build.properties.clean > $build_path/build.properties
+
+       else
+               echo "ERROR : target eclipse is not exist."
+               exit 1
+       fi
+}
+
+__execute_pde_build()
+{
+       echo "Execute Product Ant Builder..."
+       equinox_launcher=`echo org.eclipse.equinox.launcher_*.jar`
+       pde_build=`echo org.eclipse.pde.build_*`
+
+       java -XX:+UseParNewGC -jar ${reference_ide_path}/plugins/$equinox_launcher -application org.eclipse.ant.core.antRunner -buildfile ${reference_ide_path}/plugins/$pde_build/scripts/productBuild/productBuild.xml -Dbuilder=$build_path -Dosgi.locking=none 2>&1
+
+       if [ $? != 0 ];
+       then
+               echo "Build failed..."
+               exit 1
+       fi
+}
+
+__unzip_plugin_pack()
+{
+       echo "unzip to $build_result_path"
+       unzip -a $build_result_path/${result_archive_file} -d $build_result_path/${archive_platform_name}.${windowing}.${architecture}
+}
+
+build_plugins()
+{
+       case ${platform} in
+               ubuntu-32)
+                       echo "build plugin for ${platform}"
+                       ;;
+               ubuntu-64)
+                       echo "build plugin for ${platform}"
+                       ;;
+               windows-32)
+                       echo "build plugin for ${platform}"
+                       ;;
+               *)
+                       echo "${platform} is not support yet."
+                       exit 1
+                       ;;
+       esac
+
+       __set_parameter
+       __set_build_parameter
+       __clean_build_environment
+       __copy_build_sources
+       __copy_dependency_plugins
+       __make_ant_build_properties_file
+       __execute_pde_build
+       __unzip_plugin_pack
+
+       echo "Build SUCCESS. You will find SDK IDE in \"${build_result_path}\"."
+}
+
+__clean_packaging_environment()
+{
+
+       if [ -d ${INSTALL_DIR} ]
+       then
+               rm -rf ${INSTALL_DIR}
+       else
+               mkdir -p ${INSTALL_DIR}
+       fi
+}
+
+__copy_necessary_binaries()
+{
+       echo "add necessary files."
+       ## ex) cp -rf ~~~~/file.file ${INSTALL_DIR}/${ide_root_path_name}/
+}
+
+packaging_plugins()
+{
+       __set_parameter
+       __set_install_parameter
+
+       __clean_packaging_environment
+       __copy_necessary_binaries
+
+       install_ide_path=${INSTALL_DIR}/${ide_root_path_name}
+       
+       if [ ! -d ${install_ide_path} ]
+       then
+               mkdir -p ${install_ide_path}
+       fi
+
+       cp -rf ${build_result_path}/${archive_platform_name}.${windowing}.${architecture}/${package_name}/* ${install_ide_path}/
+}
+
+# clean
+clean()
+{
+       echo "=========================================CLEAN============================================"
+       rm -rf ${SRCDIR}/*.zip
+       rm -rf ${SRCDIR}/*.tar.gz
+       rm -rf ${build_path}
+}
+
+# build
+build() 
+{
+       echo "=========================================BUILD============================================"
+       pkgname_and_platform_list=`awk 'BEGIN{RS="\n\n"; FS="\n"} /Package:/{for(i=1;i<NF;i++){if($i ~ /^OS:/){print $1,$i}}}' ${SRCDIR}/package/pkginfo.manifest | tr ' ' '@'`
+       for pkgname_and_platform in ${pkgname_and_platform_list}
+       do
+               pkgname_and_platform=`echo $pkgname_and_platform | tr '@' ' '`
+               package_name=`echo ${pkgname_and_platform} | cut -f1 -d " " | cut -f2 -d ":"`
+               platform=`echo ${pkgname_and_platform} | cut -f2 -d " " | cut -f2 -d ":"`
+       
+               if [ "x${BUILD_TARGET_OS}" = "x${platform}" ]
+               then
+                       build_plugins
+               else
+                       echo ""
+               fi
+       done
+}
+
+# install
+install() 
+{
+       pkgname_and_platform_list=`awk 'BEGIN{RS="\n\n"; FS="\n"} /Package:/{for(i=1;i<NF;i++){if($i ~ /^OS:/){print $1,$i}}}' ${SRCDIR}/package/pkginfo.manifest | tr ' ' '@'`
+       for pkgname_and_platform in ${pkgname_and_platform_list}
+       do
+               echo "=========================================INSTALL============================================"
+               pkgname_and_platform=`echo $pkgname_and_platform | tr '@' ' '`
+               package_name=`echo ${pkgname_and_platform} | cut -f1 -d " " | cut -f2 -d ":"`
+               platform=`echo ${pkgname_and_platform} | cut -f2 -d " " | cut -f2 -d ":"`
+
+               if [ "x${BUILD_TARGET_OS}" = "x${platform}" ]
+               then
+                       packaging_plugins
+               else
+                       echo ""
+               fi
+       done    
+}
+
+[ "$1" = "clean" ] && clean
+[ "$1" = "build" ] && build
+[ "$1" = "install" ] && install
+exit 0
index df0c1d3..f3c6b20 100644 (file)
@@ -10,6 +10,13 @@ Build-dependency:indigo-pde[ubuntu-32], common-eplugin[ubuntu-32]
 Install-dependency:common-eplugin[ubuntu-32], base-ide-product[ubuntu-32]
 
 Package:eventinjector-eplugin
+OS:ubuntu-64
+Build-host-os:ubuntu-64
+Description:EventInjector for emulator
+Build-dependency:indigo-pde[ubuntu-64], common-eplugin[ubuntu-64]
+Install-dependency:common-eplugin[ubuntu-32], base-ide-product[ubuntu-64]
+
+Package:eventinjector-eplugin
 OS:windows-32
 Build-host-os:ubuntu-32
 Description:EventInjector for emulator