#!/bin/bash start_path=`pwd` ############################################################### ## ## Please modify parameter value. ## ############################################################### build_type=N build_id=dynamicanalyzeride_build build_path="`pwd`/../build_result" ############################################################### ## ## Do not touch here. ## ############################################################### build_result_directory=${build_type}.${build_id} build_result_path="$build_path/$build_result_directory" builder_path="$start_path/builder" equinox_launcher=`echo org.eclipse.equinox.launcher_*.jar` ## check base-native-ide-produce p2 install update_plugin_path=${ROOTDIR}/ide/updatablenative if [ -d ${update_plugin_path} ] then ## install native feature by p2 for install script failure on the cross build java -jar ${reference_ide_path}/plugins/$equinox_launcher \ -application org.eclipse.equinox.p2.director \ -repository "file:/${update_plugin_path}" \ -installIU org.tizen.base.native.feature.feature.group \ -noSplash \ -p2.os ${archive_platform_name} \ -p2.ws ${windowing} \ -p2.arch ${architecture} rm -rf ${update_plugin_path} fi ## check base-web-ide-product p2 install update_plugin_path=${ROOTDIR}/ide/updatableweb if [ -d ${update_plugin_path} ] then ## install web feature by p2 for install script failure on the cross build java -jar ${reference_ide_path}/plugins/$equinox_launcher \ -application org.eclipse.equinox.p2.director \ -repository "file:/${update_plugin_path}" \ -installIU org.tizen.base.web.feature.feature.group \ -noSplash \ -p2.os ${archive_platform_name} \ -p2.ws ${windowing} \ -p2.arch ${architecture} rm -rf ${update_plugin_path} fi pde_build=`echo org.eclipse.pde.build_*` metadata_path=$start_path/builder fresh_ide_path=$3 if [ "x$1" = "x" ] then echo " Usage : build.sh PLATFORM_NAME TARGET_ECLIPSE_PATH PLATFORM_NAME You can set \"linux\" or \"windows\" TARGET_ECLIPSE_PATH Set target eclipse path. For example, $HOME/git/fresh-ide-pde " exit 1 fi if [ "x$2" = "x" ] then echo " Usage : build.sh $1 TARGET_ECLIPSE_PATH TARGET_ECLIPSE_PATH Set target eclipse path. For example, $HOME/git/fresh-ide-pde " exit 1 fi #if [ "x$3" != "x" ] #then # build_path=$3 #fi platform=$1 based_eclipse_path=$2 parent_path_of_based_eclipse=${based_eclipse_path}/.. architecture=x86 case ${platform} in linux) archive_platform_name=linux windowing=gtk ;; windows) archive_platform_name=win32 windowing=win32 ;; *) echo "${platform} is not support yet." exit 1 ;; esac result_archive_file=${build_id}-${archive_platform_name}.${windowing}.${architecture}.zip 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/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 echo "Copy features from $start_path to $build_path/features" cp -r $start_path/*.feature $build_path/features echo "Copy plugins from $start_path to $build_path/plugins" cp -r $start_path/* $build_path/plugins rm -rf $build_path/plugins/*.feature echo "Copy fresh ide plugins..." if [ -d ${fresh_ide_path} ] then cp -rf ${fresh_ide_path}/${archive_platform_name}.${windowing}.${architecture}/IDE/plugins/* ${build_path}/plugins cp -rf ${fresh_ide_path}/${archive_platform_name}.${windowing}.${architecture}/IDE/features/* ${build_path}/features else echo "ERROR : Fresh IDE does not exist..." exit 1 fi 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 $based_eclipse_path ] then sed -e "s;\(^buildDirectory=\).*;\1${build_path};g" -e "s;\(^base=\).*;\1${parent_path_of_based_eclipse};g" -e "s;\(^baseLocation=\).*;\1${based_eclipse_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" < $build_path/build.properties.clean > $build_path/build.properties else echo "ERROR : target eclipse is not exist." exit 1 fi echo "Execute Product Ant Builder..." java -server -XX:+UseParNewGC -jar ${based_eclipse_path}/plugins/$equinox_launcher -application org.eclipse.ant.core.antRunner -buildfile ${based_eclipse_path}/plugins/$pde_build/scripts/productBuild/productBuild.xml -Dbuilder=$build_path 2>&1 if [ $? != 0 ]; then echo "Build failed..." exit 1 fi echo "unzip to $build_result_path" unzip -a $build_result_path/${result_archive_file} -d $build_result_path/${archive_platform_name}.${windowing}.${architecture} #echo "Delete temp files..." #rm -rf $build_path/features #rm -rf $build_path/plugins #rm $build_path/*.xml #rm $build_path/*.properties #rm $build_path/*.properties.clean echo "Build SUCCESS. You will find SDK IDE in \"${build_result_path}\"."