]> git.saurik.com Git - wxWidgets.git/blobdiff - distrib/scripts/builddemos.sh
handle error in GetDataSize()
[wxWidgets.git] / distrib / scripts / builddemos.sh
index aee9350475a26f91926b61e48eeaed6efb53b419..3afdd02c5611f8ce162c00abb3d4254640679ec2 100644 (file)
@@ -7,11 +7,25 @@
 PROGNAME=$0
 WXSRCDIR=$WXWIN
 WXDESTDIR=$WXSRCDIR/deliver
+PLATFORM=linux
+
+# Default binary subdirectory to copy sample executable from
+WINBINDIR=vc_msw
 
 # Suffix to append to each demo tarball, e.g. SuSE92 for widgets-SuSE92
 SUFFIX=linux
 
-dobuilddemos()
+# Determine if the binary name is .app or not
+determine_binary()
+{
+    if [ "$PLATFORM" = "mac" ]; then
+        BINARYNAME=$1.app
+    else
+        BINARYNAME=$1
+    fi
+}
+
+dobuilddemos_unix()
 {
     if [ ! -d "$WXSRCDIR" ] ; then
         echo Cannot find wxWidgets source directory. Use --wxdir option.
@@ -25,7 +39,7 @@ dobuilddemos()
         echo Cannot find samples directory. Invoke this script from the root of the build folder.
         exit
     fi
-    if [ -d src ] ; then
+    if [ -d include ] ; then
         echo Do not invoke this from the source directory - invoke from the build directory.
         exit
     fi
@@ -42,8 +56,9 @@ dobuilddemos()
     pushd samples/dialogs
     make
     if [ -f dialogs ] ; then
+        determine_binary dialogs
         cp $WXSRCDIR/samples/dialogs/*.cpp $WXSRCDIR/samples/dialogs/*.h .
-        tar cfz $WXDESTDIR/wxWidgets-DialogsDemo-$SUFFIX.tar.gz dialogs *.cpp *.h
+        tar cfz $WXDESTDIR/wxWidgets-DialogsDemo-$SUFFIX.tar.gz $BINARYNAME *.cpp *.h
         rm -f *.cpp *.h
     else
         echo "*** Warning: dialogs sample did not build"
@@ -55,9 +70,15 @@ dobuilddemos()
     pushd samples/html/test
     make
     if [ -f test ] ; then
-        mv test htmldemo
+        if [ "$PLATFORM" = "mac" ]; then
+            # Don't rename app on Mac in case it messes up the bundle
+            determine_binary test
+        else
+            mv test htmldemo
+            determine_binary htmldemo
+        fi
         cp $WXSRCDIR/samples/html/test/*.cpp $WXSRCDIR/samples/html/test/*.htm* $WXSRCDIR/samples/html/test/*.png $WXSRCDIR/samples/html/test/*.gif .
-        tar cfz $WXDESTDIR/wxWidgets-HtmlDemo-$SUFFIX.tar.gz htmldemo *.cpp *.png *.gif *.htm*
+        tar cfz $WXDESTDIR/wxWidgets-HtmlDemo-$SUFFIX.tar.gz $BINARYNAME *.cpp *.png *.gif *.htm*
         rm -f *.cpp *.gif *.png *.htm*
     else
         echo "*** Warning: HTML sample did not build"
@@ -69,8 +90,9 @@ dobuilddemos()
     pushd samples/widgets
     make
     if [ -f widgets ] ; then
+        determine_binary widgets
         cp $WXSRCDIR/samples/widgets/*.cpp $WXSRCDIR/samples/widgets/*.h .
-        tar cfz $WXDESTDIR/wxWidgets-WidgetsDemo-$SUFFIX.tar.gz widgets *.cpp *.h
+        tar cfz $WXDESTDIR/wxWidgets-WidgetsDemo-$SUFFIX.tar.gz $BINARYNAME *.cpp *.h
         rm -f *.cpp *.h
     else
         echo "*** Warning: widgets sample did not build"
@@ -82,10 +104,11 @@ dobuilddemos()
     pushd demos/life
     make
     if [ -f life ] ; then
+        determine_binary life
         cp $WXSRCDIR/demos/life/*.cpp $WXSRCDIR/demos/life/*.h $WXSRCDIR/demos/life/*.xpm $WXSRCDIR/demos/life/*.inc $WXSRCDIR/demos/life/*.lif .
         mkdir bitmaps
         cp $WXSRCDIR/demos/life/bitmaps/*.* bitmaps
-        tar cfz $WXDESTDIR/wxWidgets-LifeDemo-$SUFFIX.tar.gz life *.cpp *.h *.xpm *.inc *.lif bitmaps/*.*
+        tar cfz $WXDESTDIR/wxWidgets-LifeDemo-$SUFFIX.tar.gz $BINARYNAME *.cpp *.h *.xpm *.inc *.lif bitmaps/*.*
         rm -f *.cpp *.h *.xpm *.inc *.lif
         rm -f -r bitmaps
     else
@@ -94,6 +117,75 @@ dobuilddemos()
     popd    
 }
 
+dobuilddemos_windows()
+{
+    if [ ! -d "$WXSRCDIR" ] ; then
+        echo Cannot find wxWidgets source directory. Use --wxdir option.
+        exit
+    fi
+    if [ ! -d "$WXDESTDIR" ] ; then
+        echo Cannot find wxWidgets destination directory. Use --deliver option.
+        exit
+    fi
+    if [ ! -d samples ] ; then
+        echo Cannot find samples directory. Invoke this script from the root of the build folder.
+        exit
+    fi
+
+    echo wxWidgets build directory is `pwd`
+    echo wxWidgets source directory is $WXSRCDIR
+    echo wxWidgets deliver directory is $WXDESTDIR
+    echo Suffix is $SUFFIX
+
+    rm -f $WXDESTDIR/*.zip
+
+    # Dialogs
+
+    pushd samples/dialogs
+    if [ -f $WINBINDIR/dialogs.exe ] ; then
+        cp $WINBINDIR/dialogs.exe .
+        zip $WXDESTDIR/wxWidgets-DialogsDemo-$SUFFIX.zip dialogs.exe *.cpp *.h
+        rm -f dialogs.exe
+    else
+        echo "*** Warning: dialogs sample did not build"
+    fi
+    popd
+    
+    # HTML
+
+    pushd samples/html/test
+    if [ -f $WINBINDIR/test.exe ] ; then
+        cp $WINBINDIR/test.exe htmldemo.exe
+        zip $WXDESTDIR/wxWidgets-HtmlDemo-$SUFFIX.zip htmldemo.exe *.cpp *.png *.gif *.htm*
+        rm -f htmldemo.exe
+    else
+        echo "*** Warning: HTML sample did not build"
+    fi
+    popd
+    
+    # Widgets
+
+    pushd samples/widgets
+    if [ -f $WINBINDIR/widgets.exe ] ; then
+        cp $WINBINDIR/widgets.exe .
+        zip $WXDESTDIR/wxWidgets-WidgetsDemo-$SUFFIX.zip widgets.exe *.cpp *.h
+    else
+        echo "*** Warning: widgets sample did not build"
+    fi
+    popd
+    
+    # Life
+
+    pushd demos/life
+    if [ -f $WINBINDIR/life.exe ] ; then
+        cp $WINBINDIR/life.exe .
+        zip $WXDESTDIR/wxWidgets-LifeDemo-$SUFFIX.zip life.exe *.cpp *.h *.xpm *.inc *.lif bitmaps/*.*
+    else
+        echo "*** Warning: life demo did not build"
+    fi
+    popd    
+}
+
 usage()
 {
     echo "Usage: $PROGNAME [ options ]" 1>&2
@@ -102,6 +194,7 @@ usage()
     echo "    --suffix          Append suffix to each tarball"
     echo "    --wxdir           wxWidgets source dir"
     echo "    --deliver         Tarball destination dir"
+    echo "    --mac             Whether we're building on Mac"
     echo.
     echo Note that options only override settings in $SCRIPTDIR/setup.var.
     exit 1
@@ -115,6 +208,7 @@ do
         --suffix) SUFFIX=$2; shift;;
         --wxdir) WXSRCDIR=$2; WXDESTDIR=$WXSRCDIR/deliver; shift;;
         --deliver) WXDESTDIR=$2; shift;;
+        --mac) PLATFORM=mac;;
         *)
             usage
                exit
@@ -123,5 +217,11 @@ do
     shift
 done
 
-dobuilddemos
+if [ "$OS" = "Windows_NT" ]; then
+    dobuilddemos_windows
+else
+    dobuilddemos_unix
+fi
+
+