awips2/nativeLib/build.native/build.sh

155 lines
4 KiB
Bash
Raw Normal View History

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