2017-04-21 18:33:55 -06:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
##
|
|
|
|
# This software was developed and / or modified by Raytheon Company,
|
|
|
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
|
|
|
#
|
|
|
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
|
|
|
# This software product contains export-restricted data whose
|
|
|
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
|
|
|
# to non-U.S. persons whether in the United States or abroad requires
|
|
|
|
# an export license or other authorization.
|
|
|
|
#
|
|
|
|
# Contractor Name: Raytheon Company
|
|
|
|
# Contractor Address: 6825 Pine Street, Suite 340
|
|
|
|
# Mail Stop B8
|
|
|
|
# Omaha, NE 68106
|
|
|
|
# 402.291.0100
|
|
|
|
#
|
|
|
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
|
|
|
# further licensing information.
|
|
|
|
##
|
|
|
|
|
|
|
|
# SOFTWARE HISTORY
|
|
|
|
# Date Ticket# Engineer Description
|
|
|
|
# ------------ ---------- ----------- --------------------------
|
|
|
|
# Feb 20, 2009 jelkins - Initial creation
|
|
|
|
|
|
|
|
# build.sh: prepares build tools, performs initial build setup, and builds
|
|
|
|
# the native code from the command line
|
|
|
|
|
|
|
|
|
|
|
|
set -o errexit
|
|
|
|
|
|
|
|
# returns a fully resolved path
|
|
|
|
get_full_path() {
|
|
|
|
cd "$1"
|
|
|
|
echo $(pwd)
|
|
|
|
}
|
|
|
|
|
|
|
|
script_dir=$(get_full_path $(dirname $0))
|
|
|
|
|
|
|
|
log_file=$(get_full_path $(dirname $0))/build.log
|
|
|
|
|
|
|
|
workspace_dir=$(get_full_path $script_dir/..)
|
|
|
|
|
|
|
|
eclipse_dir=""
|
|
|
|
|
|
|
|
build_options=""
|
|
|
|
|
|
|
|
configuration_list=""
|
|
|
|
|
|
|
|
# initialize local variables from command arguments
|
|
|
|
if [ "$#" = "0" ]
|
|
|
|
then
|
|
|
|
cat << TO_HERE
|
|
|
|
|
|
|
|
Builds the workspace using the given Eclipse.
|
|
|
|
|
|
|
|
Usage: $(basename $0) [OPTION] eclipse_dir
|
|
|
|
|
|
|
|
-w workspace_dir The directory in which all projects are located.
|
|
|
|
defaults to: $workspace_dir
|
|
|
|
|
|
|
|
-b build options Options to pass to the command line builder.
|
|
|
|
Currently the only build option is "clean"
|
|
|
|
|
|
|
|
-c configuration Enable the given configurations for the target. If a
|
|
|
|
a project has multiple matching configurations, the last
|
|
|
|
configuration is used.
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
-c Default -c Debug
|
|
|
|
|
|
|
|
TO_HERE
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
|
|
|
|
while getopts "w:b:c:" flag
|
|
|
|
do
|
|
|
|
case $flag in
|
|
|
|
w)
|
|
|
|
workspace_dir=$OPTARG
|
|
|
|
;;
|
|
|
|
b)
|
|
|
|
build_options="-b $OPTARG"
|
|
|
|
;;
|
|
|
|
c)
|
|
|
|
configuration_list="$configuration_list -c $OPTARG"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
shift `expr $OPTIND - 1`
|
|
|
|
|
|
|
|
eclipse_dir=$(get_full_path $1)
|
|
|
|
fi
|
|
|
|
|
2017-07-10 13:58:01 -06:00
|
|
|
|
|
|
|
echo "Using $eclipse_dir"
|
|
|
|
#exit
|
|
|
|
|
2017-04-21 18:33:55 -06:00
|
|
|
echo "Cleaning Eclipse plugins... "
|
|
|
|
|
|
|
|
rm -vf $eclipse_dir/plugins/com.raytheon*
|
|
|
|
|
|
|
|
if [[ "$build_options" =~ "clean" ]]
|
|
|
|
then
|
|
|
|
echo "Cleaning workspace metadata..."
|
|
|
|
rm -fr $workspace_dir/.metadata
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Building Eclipse plugins ..."
|
|
|
|
|
|
|
|
launcher_jar=$(ls $eclipse_dir/plugins/org.eclipse.equinox.launcher_*.jar)
|
|
|
|
|
|
|
|
pde_buildfile=$(ls -d $eclipse_dir/plugins/org.eclipse.pde.build_*)/scripts/productBuild/productBuild.xml
|
|
|
|
|
|
|
|
build_properties_dir=$script_dir
|
|
|
|
|
|
|
|
build_dir=${script_dir}/generated_tools
|
|
|
|
|
|
|
|
java -jar $launcher_jar -application org.eclipse.ant.core.antRunner \
|
|
|
|
-buildfile ${pde_buildfile} \
|
|
|
|
-Dbuilder=$build_properties_dir \
|
|
|
|
-DbaseLocation=$eclipse_dir \
|
|
|
|
-DbuildDirectory=$build_dir \
|
|
|
|
-Dbase=$eclipse_dir \
|
|
|
|
|
|
|
|
echo "Copying build plugins into Eclipse ..."
|
|
|
|
|
|
|
|
cp -vf $build_dir/tmp/eclipse/plugins/com.raytheon* $eclipse_dir/plugins
|
|
|
|
rm -fr $build_dir
|
|
|
|
|
|
|
|
echo "Building all projects in the workspace ..."
|
|
|
|
|
|
|
|
$eclipse_dir/eclipse -data $workspace_dir -nosplash \
|
|
|
|
$build_options $configuration_list \
|
|
|
|
-application com.raytheon.uf.nativelib.cimport.application \
|
|
|
|
-vmargs -Dorg.eclipse.cdt.core.console=org.eclipse.cdt.core.systemConsole \
|
|
|
|
-Xmx512m -XX:PermSize=128m \ | tee $log_file
|
|
|
|
|
|
|
|
error_code=$?
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "==== Build Complete"
|
|
|
|
echo "---- Status:"
|
|
|
|
|
|
|
|
egrep "^\*\*\*\* |] Error" $log_file
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "Build log saved to: $log_file"
|
|
|
|
|
|
|
|
exit $error_code
|