llvm-project/lldb/scripts/build-swig-wrapper-classes.sh
Caroline Tice d6ac38485b Parameterize the shell scripts for creating and copying the python and
other script files around, so they can be run from outside Xcode.  Also,
check the current OS, and only try to use the framework structure stuff on
Darwin systems.

llvm-svn: 106132
2010-06-16 19:26:52 +00:00

106 lines
2.6 KiB
Bash
Executable File

#!/bin/sh
# build-swig-wrapper-classes.sh
#
# For each scripting language liblldb supports, we need to create the
# appropriate Script Bridge wrapper classes for that language so that
# users can call Script Bridge functions from within the script interpreter.
#
# We use SWIG to help create the appropriate wrapper classes/functions for
# the scripting language. In some cases the file generated by SWIG may
# need some tweaking before it is completely ready to use.
# Below are the arguments/parameters that this script takes (and passes along
# to all the language-specific build scripts that it calls):
#
# SRC_ROOT is the root of the lldb source tree.
# TARGET_DIR is where the lldb framework/shared library gets put.
# CONFIG_BUILD_DIR is where the build-swig-Python-LLDB.sh shell script
# put the lldb.py file it was generated from running SWIG.
# PREFIX is where non-Darwin systems want to put the .py and .so
# files so that Python can find them automatically.
# debug_flag (optional) determines whether or not this script outputs
# additional information when running.
SRC_ROOT=$1
TARGET_DIR=$2
CONFIG_BUILD_DIR=$3
PREFIX=$4
debug_flag=$5
#
# Check to see if we are in debug-mode or not.
#
if [ -n "$debug_flag" -a "$debug_flag" == "-debug" ]
then
Debug=1
else
Debug=0
fi
#
# Verify that 'lldb.swig' exists.
#
if [ ! -f ${SRC_ROOT}/scripts/lldb.swig ]
then
echo Error: unable to find file 'lldb.swig' >&2
exit 1
fi
if [ $Debug == 1 ]
then
echo "Found lldb.swig file"
fi
#
# For each scripting language, make sure the build script for that language
# exists, and if so, call it.
#
# For now the only language we support is Python, but we expect this to
# change.
languages="Python"
cwd=${SRC_ROOT}/scripts
for curlang in $languages
do
if [ $Debug == 1 ]
then
echo "Current language is $curlang"
fi
if [ ! -d "$cwd/$curlang" ]
then
echo "Error: unable to find $curlang script sub-dirctory" >&2
continue
else
if [ $Debug == 1 ]
then
echo "Found $curlang sub-directory"
fi
cd $cwd/$curlang
filename="./build-swig-${curlang}.sh"
if [ ! -f $filename ]
then
echo "Error: unable to find swig build script for $curlang: $filename" >&2
continue
else
if [ $Debug == 1 ]
then
echo "Found $curlang build script."
echo "Executing $curlang build script..."
fi
./build-swig-${curlang}.sh $SRC_ROOT $TARGET_DIR $CONFIG_BUILD_DIR "${PREFIX}" "${debug_flag}"
fi
fi
done