Added first cut wxWindows Configuration Tool
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21083 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
267
utils/configtool/scripts/makesetup.sh
Normal file
267
utils/configtool/scripts/makesetup.sh
Normal file
@@ -0,0 +1,267 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Make a distribution of an application.
|
||||
|
||||
# If your zip accepts Cygwin-style paths, then
|
||||
# use cygpath, else substitute echo
|
||||
CYGPATHPROG=cygpath
|
||||
#CYGPATHPROG=echo
|
||||
|
||||
PROGNAME=$0
|
||||
SCRIPTDIR=`pwd`
|
||||
|
||||
. $SCRIPTDIR/setup.var
|
||||
|
||||
# Set this to the required version
|
||||
VERSION=
|
||||
|
||||
doreplace()
|
||||
{
|
||||
thefile=$1
|
||||
theexpr=$2
|
||||
|
||||
if [ -f $thefile ]; then
|
||||
sed -e "$theexpr" < $thefile > $thefile.tmp
|
||||
mv $thefile.tmp $thefile
|
||||
else
|
||||
echo "*** $thefile not found."
|
||||
fi
|
||||
}
|
||||
|
||||
unix2dosname()
|
||||
{
|
||||
echo $1 | sed -e "s/\//\\\\\\\/g" > /tmp/filename.tmp
|
||||
RETVALUE=`cat /tmp/filename.tmp`
|
||||
rm -f /tmp/filename.tmp
|
||||
}
|
||||
|
||||
unix2dosname2()
|
||||
{
|
||||
echo $1 | sed -e "s/\//\\\\/g" > /tmp/filename.tmp
|
||||
RETVALUE=`cat /tmp/filename.tmp`
|
||||
rm -f /tmp/filename.tmp
|
||||
}
|
||||
|
||||
findversion()
|
||||
{
|
||||
echo "#include <stdio.h>" > /tmp/appver.c
|
||||
echo "#include \"$VERSIONSYMBOLFILE\"" >> /tmp/appver.c
|
||||
echo "int main() { printf(\"%.2f\", $VERSIONSYMBOL); }" >> /tmp/appver.c
|
||||
gcc /tmp/appver.c -I$APPDIR -o /tmp/appver
|
||||
VERSION=`/tmp/appver`
|
||||
rm -f /tmp/appver /tmp/appver.c
|
||||
}
|
||||
|
||||
makesetup()
|
||||
{
|
||||
if [ -d $SETUPIMAGEDIR ]; then
|
||||
echo Removing existing $SETUPIMAGEDIR
|
||||
rm -f -r $SETUPIMAGEDIR
|
||||
fi
|
||||
|
||||
echo Making the $SETUPIMAGEDIR for preparing the setup
|
||||
mkdir -p $SETUPIMAGEDIR
|
||||
|
||||
if [ -f $READMEFILE ]; then
|
||||
echo Copying readme.txt
|
||||
cp $READMEFILE $SETUPIMAGEDIR
|
||||
else
|
||||
echo "*** Warning - $READMEFILE not found"
|
||||
fi
|
||||
|
||||
if [ -f $LICENSEFILE ]; then
|
||||
echo Copying licence.txt
|
||||
cp $LICENSEFILE $SETUPIMAGEDIR
|
||||
else
|
||||
echo "*** Warning - $LICENSEFILE not found"
|
||||
fi
|
||||
|
||||
cp $APPDIR/docs/gpl.txt $SETUPIMAGEDIR
|
||||
cp $APPDIR/docs/lgpl.txt $SETUPIMAGEDIR
|
||||
cp $APPDIR/docs/licendoc.txt $SETUPIMAGEDIR
|
||||
|
||||
echo Copying sample configuration settings file...
|
||||
cp $APPDIR/configs/wxwin250.wxs $SETUPIMAGEDIR
|
||||
|
||||
if [ "$RESOURCESFILE" != "" ] && [ "$RESOURCESDIR" != "" ]; then
|
||||
if [ -d $RESOURCESDIR ]; then
|
||||
cd $RESOURCESDIR
|
||||
echo Compiling resource file $RESOURCESFILE
|
||||
zip $SETUPIMAGEDIR/$RESOURCESFILE *
|
||||
else
|
||||
echo "*** Warning - $RESOURCESDIR directory not found"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MAKEMANUAL" != "0" ]; then
|
||||
if [ -d $MANUALDIR ]; then
|
||||
cd $MANUALDIR
|
||||
make
|
||||
|
||||
for EACHFILE in $MANUALFILES ; do
|
||||
if [ -f $EACHFILE ]; then
|
||||
echo Copying $EACHFILE
|
||||
cp $EACHFILE $SETUPIMAGEDIR
|
||||
else
|
||||
echo "*** Warning - $EACHFILE not found"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "*** Warning - $MANUALDIR not found"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f $WXMANUALCHM ]; then
|
||||
echo Copying wxWindows manual $WXMANUALCHM
|
||||
cp $WXMANUALCHM $SETUPIMAGEDIR
|
||||
else
|
||||
echo "*** Warning - $WXMANUALCHM not found"
|
||||
fi
|
||||
|
||||
if [ -f $APPBINARY ]; then
|
||||
echo Copying binary $APPBINARY
|
||||
cp $APPBINARY $SETUPIMAGEDIR
|
||||
else
|
||||
echo "*** Error - $APPBINARY not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$UPX" != "0" ]; then
|
||||
echo Compressing binary
|
||||
upx $SETUPIMAGEDIR/`basename $APPBINARY`
|
||||
fi
|
||||
|
||||
# Time to regenerate the Inno Install script
|
||||
if [ "$INNO" != "0" ]; then
|
||||
echo Generating $SETUPSCRIPTNAME
|
||||
rm -f $SETUPSCRIPTNAME
|
||||
|
||||
sh $SCRIPTDIR/makeinno.sh $SETUPIMAGEDIR $INNOTOP $INNOBOTTOM $SETUPSCRIPTNAME
|
||||
|
||||
if [ ! -f $SETUPSCRIPTNAME ]; then
|
||||
echo "*** Error - something went wrong with the script file generation."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Now replace %VERSION% with the real application version, and other
|
||||
# variables
|
||||
echo Replacing variables in the setup script
|
||||
doreplace $SETUPSCRIPTNAME "s/%VERSION%/$VERSION/g"
|
||||
doreplace $SETUPSCRIPTNAME "s/%COPYRIGHTHOLDER%/$AUTHOR/g"
|
||||
doreplace $SETUPSCRIPTNAME "s/%VENDOR%/$VENDOR/g"
|
||||
|
||||
unix2dosname $READMEFILE
|
||||
doreplace $SETUPSCRIPTNAME "s;%READMEFILE%;$RETVALUE;g"
|
||||
|
||||
unix2dosname $READMEAFTERFILE
|
||||
doreplace $SETUPSCRIPTNAME "s;%READMEAFTERFILE%;$RETVALUE;g"
|
||||
|
||||
unix2dosname $LICENSEFILE
|
||||
doreplace $SETUPSCRIPTNAME "s;%LICENSEFILE%;$RETVALUE;g"
|
||||
|
||||
doreplace $SETUPSCRIPTNAME "s/%APPNAME%/$APPNAME/g"
|
||||
doreplace $SETUPSCRIPTNAME "s/%APPTITLE%/$APPTITLE/g"
|
||||
|
||||
unix2dosname $SETUPIMAGEDIR
|
||||
doreplace $SETUPSCRIPTNAME "s;%SOURCEDIR%;$RETVALUE;g"
|
||||
|
||||
unix2dosname $DESTDIR
|
||||
doreplace $SETUPSCRIPTNAME "s;%OUTPUTDIR%;$RETVALUE;g"
|
||||
|
||||
doreplace $SETUPSCRIPTNAME "s/%APPEXTENSION%/$APPEXTENSION/g"
|
||||
|
||||
# FIXME: how do we get the first name in the list?
|
||||
if [ "$MANUALFILES" != "" ]; then
|
||||
HELPFILE=`basename $MANUALFILES`
|
||||
unix2dosname $HELPFILE
|
||||
doreplace $SETUPSCRIPTNAME "s;%HELPFILE%;$RETVALUE;g"
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -f $DESTDIR/setup*.*
|
||||
|
||||
# Inno Setup complains if this step is not done
|
||||
unix2dos --unix2dos $SETUPSCRIPTNAME
|
||||
|
||||
# Now invoke INNO compiler on the new ISS file
|
||||
# First, make a DOS filename or Inno Setup will get confused.
|
||||
|
||||
unix2dosname2 $SETUPSCRIPTNAME
|
||||
DOSFILENAME=$RETVALUE
|
||||
|
||||
# Note: the double slash is Mingw32/MSYS convention for
|
||||
# denoting a switch, that must not be converted into
|
||||
# a path (otherwise /c = c:/)
|
||||
|
||||
cd `dirname $SETUPSCRIPTNAME`
|
||||
BASESCRIPTNAME=`basename $SETUPSCRIPTNAME`
|
||||
echo Invoking Inno Setup compiler on $BASESCRIPTNAME
|
||||
|
||||
"$SETUPCOMPILER" //cc $BASESCRIPTNAME
|
||||
|
||||
if [ ! -f $DESTDIR/setup.exe ]; then
|
||||
echo "*** Error - the setup.exe was not generated."
|
||||
exit
|
||||
fi
|
||||
|
||||
cd $DESTDIR
|
||||
mv setup.exe $APPNAME-$VERSION-setup.exe
|
||||
|
||||
echo If you saw no warnings or errors, $APPTITLE was successfully spun.
|
||||
echo
|
||||
}
|
||||
|
||||
# We can't use e.g. this:
|
||||
# ls `cat $SRC/distrib/msw/makefile.rsp` zip -@ -u $DEST/wxWindows-$VERSION-gen.zip
|
||||
# because there's not enough space on the command line, plus we need to ignore the
|
||||
# blank lines.
|
||||
# So if we need to (not in this script so far) we do something like this instead:
|
||||
# expandlines $SRC/setup/files.rsp temp.txt
|
||||
# zip -@ `$CYGPATHPROG -w $DEST/archive.zip` < temp.txt
|
||||
|
||||
expandlines()
|
||||
{
|
||||
toexpand=$1
|
||||
outputfile=$2
|
||||
|
||||
rm -f $outputfile
|
||||
touch $outputfile
|
||||
for line in `cat $toexpand` ; do
|
||||
if [ $line != "" ]; then
|
||||
ls $line >> $outputfile
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
usage()
|
||||
{
|
||||
echo "Usage: $PROGNAME [ options ]" 1>&2
|
||||
echo Options:
|
||||
echo " --help Display this help message"
|
||||
echo " --upx Compress executable with UPX"
|
||||
echo " --no-upx Do not compress executable with UPX"
|
||||
echo " --inno Build the setup.exe"
|
||||
echo " --no-inno Do not build the setup.exe"
|
||||
echo.
|
||||
echo Note that options only override settings in $SCRIPTDIR/setup.var.
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Process command line options.
|
||||
|
||||
for i in "$@"; do
|
||||
case "$i" in
|
||||
--inno) INNO=1 ;;
|
||||
--no-inno) INNO=0 ;;
|
||||
--upx) UPX=1 ;;
|
||||
--no-upx) UPX=0 ;;
|
||||
*)
|
||||
usage
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
findversion
|
||||
makesetup
|
||||
|
Reference in New Issue
Block a user