153 lines
2.4 KiB
Bash
153 lines
2.4 KiB
Bash
#!/bin/sh
|
|
|
|
VERSION=`make -s version`
|
|
|
|
print_header()
|
|
{
|
|
cat <<- EOF
|
|
[Setup]
|
|
AppName=Open Scene Graph
|
|
AppVerName=Open Scene Graph $VERSION
|
|
AppPublisher=OpenSceneGraph
|
|
AppPublisherURL=http://www.openscenegraph.com
|
|
AppSupportURL=http://www.openscenegraph.com
|
|
AppUpdatesURL=http://www.openscenegraph.com
|
|
DefaultDirName={pf}\OpenSceneGraph
|
|
DisableDirPage=yes
|
|
DefaultGroupName=OpenSceneGraph
|
|
DisableProgramGroupPage=yes
|
|
LicenseFile=LICENSE.txt
|
|
EOF
|
|
}
|
|
|
|
# Usage:
|
|
# do_dir $DIR
|
|
#
|
|
|
|
print_file_entry()
|
|
{
|
|
DIR=$1
|
|
FILE=$2
|
|
printf "Source: \"%s\\\%s\"; DestDir: \"{app}\\\%s\\\"; Flags: ignoreversion\n"\
|
|
$DIR $FILE $DIR
|
|
|
|
}
|
|
|
|
do_dir()
|
|
{
|
|
DIR=$1
|
|
shift;
|
|
|
|
DOS_DIR=`echo $DIR | sed 's/\\//\\\/g'`
|
|
|
|
if [ $# -gt 0 ]
|
|
then
|
|
while [ $# -gt 0 ]
|
|
do
|
|
match=$1
|
|
shift;
|
|
for f in `find $DIR -type f | \
|
|
grep -v CVS | \
|
|
grep osg |
|
|
grep "$match"`
|
|
do
|
|
print_file_entry $DOS_DIR `basename $f`
|
|
done
|
|
done
|
|
else
|
|
for f in `find $DIR -type f | grep -v CVS | grep osg`
|
|
do
|
|
print_file_entry $DOS_DIR `basename $f`
|
|
done
|
|
|
|
fi
|
|
}
|
|
|
|
print_files()
|
|
{
|
|
echo "[Files]"
|
|
|
|
do_dir lib .lib
|
|
do_dir bin .exe .dll
|
|
for dir in `ls -1 include | grep osg | grep -v CVS`
|
|
do
|
|
do_dir include/"$dir"
|
|
done
|
|
}
|
|
|
|
print_script()
|
|
{
|
|
print_header
|
|
print_files
|
|
}
|
|
|
|
BUILD_ISS=1
|
|
BUILD_DISTRIBUTION=1
|
|
CLEAN_UP=1
|
|
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case $1 in
|
|
-c )
|
|
BUILD_ISS=0
|
|
BUILD_DISTRIBUTION=0
|
|
CLEAN_UP=1
|
|
;;
|
|
|
|
-d )
|
|
BUILD_ISS=0
|
|
BUILD_DISTRIBUTION=1
|
|
CLEAN_UP=0
|
|
;;
|
|
|
|
-n )
|
|
CLEAN_UP=0
|
|
;;
|
|
|
|
-s )
|
|
BUILD_ISS=1
|
|
BUILD_DISTRIBUTION=0
|
|
CLEAN_UP=0
|
|
;;
|
|
esac
|
|
|
|
shift;
|
|
done
|
|
|
|
if [ $BUILD_ISS = 1 ]
|
|
then
|
|
echo Building Inno Setup script ....
|
|
rm -f osg.iss
|
|
|
|
print_script | awk '{ printf "%s\r\n", $0 }' > osg.iss
|
|
fi
|
|
|
|
if [ $BUILD_DISTRIBUTION = 1 ]
|
|
then
|
|
echo Building distribution ...
|
|
OS=`uname | cut -b1-6`
|
|
|
|
if [ "$OS" = "CYGWIN" ]
|
|
then
|
|
C:/Program\ Files/Inno\ Setup\ 3/iscc.exe osg.iss
|
|
[ -d dist/Win32 ] || mkdir -p dist/Win32
|
|
mv Output/setup.exe dist/Win32/OpenSceneGraph_"$VERSION"_setup.exe
|
|
rm -rf Output
|
|
else
|
|
echo " Distribution may only be built under Cygwin with Inno Setup"
|
|
fi
|
|
fi
|
|
|
|
if [ $CLEAN_UP = 1 ]
|
|
then
|
|
echo Cleaning up...
|
|
rm -f osg.iss
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|