From 2379321355365e1f6442eee368f71385b56ed9fd Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Tue, 13 May 2014 14:37:27 +1000 Subject: Change windows packaging to have separate scripts for Fedora 19 and 20 A large part of the packaging is shared in package.sh, this approach should work on windows with another dll list in package-waves.sh and redefined copydll function(which I've added untested as copydll-waves.sh) Also add support for 64bit mingw builds via ARCH env variable. If unset defaults to 32bit build --- tools/windows_packaging/copydll-fedora.sh | 12 ++++ tools/windows_packaging/copydll-waves.sh | 35 +++++++++++ tools/windows_packaging/mingw-env.sh | 31 ++++++--- tools/windows_packaging/package-f19.sh | 73 +++++++++++++++++++++ tools/windows_packaging/package-f20.sh | 73 +++++++++++++++++++++ tools/windows_packaging/package.sh | 101 +++++++----------------------- 6 files changed, 241 insertions(+), 84 deletions(-) create mode 100755 tools/windows_packaging/copydll-fedora.sh create mode 100755 tools/windows_packaging/copydll-waves.sh create mode 100755 tools/windows_packaging/package-f19.sh create mode 100755 tools/windows_packaging/package-f20.sh (limited to 'tools/windows_packaging') diff --git a/tools/windows_packaging/copydll-fedora.sh b/tools/windows_packaging/copydll-fedora.sh new file mode 100755 index 0000000000..dcfbc41ac6 --- /dev/null +++ b/tools/windows_packaging/copydll-fedora.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +function copydll () { + if [ -f $MINGW_ROOT/bin/$1 ] ; then + echo "cp $MINGW_ROOT/bin/$1 $2" + cp $MINGW_ROOT/bin/$1 $2 || return 1 + return 0 + fi + + echo "ERROR: File $1 does not exist" + return 1 +} diff --git a/tools/windows_packaging/copydll-waves.sh b/tools/windows_packaging/copydll-waves.sh new file mode 100755 index 0000000000..fe2b5edf3c --- /dev/null +++ b/tools/windows_packaging/copydll-waves.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +function copydll () { + if [ -f $GTK/bin/$1 ] ; then + echo "cp $GTK/bin/$1 $2" + cp $GTK/bin/$1 $2 || return 1 + return 0 + fi + + if [ -f $GTK/lib/$1 ] ; then + echo "cp $GTK/lib/$1 $2" + cp $GTK/lib/$1 $2 || return 1 + return 0 + fi + + if [ -f $A3/bin/$1 ] ; then + echo "cp $A3/bin/$1 $2" + cp $A3/bin/$1 $2 || return 1 + return 0 + fi + + if [ -f $A3/lib/$1 ] ; then + echo "$A3/lib/$1 $2" + cp $A3/lib/$1 $2 || return 1 + return 0 + fi + if which $1 ; then + echo "cp `which $1` $2" + cp `which $1` $2 || return 1 + return 0 + fi + + echo "there is no $1" + return 1 +} diff --git a/tools/windows_packaging/mingw-env.sh b/tools/windows_packaging/mingw-env.sh index 983e6d0b9b..00145de2ad 100755 --- a/tools/windows_packaging/mingw-env.sh +++ b/tools/windows_packaging/mingw-env.sh @@ -1,11 +1,23 @@ #!/bin/bash -BASE=$(readlink -f $0) -BASE=$(dirname $BASE) # up one -BASE=$(dirname $BASE) # up one more -BASE=$(dirname $BASE) # up one more +if [ -z "$ARCH" ]; then + echo "ARCH not set defaulting to win32" + ARCH=win32 +elif [ "$ARCH" == "win32" ]; then + echo "ARCH set to win32" +elif [ "$ARCH" == "win64" ]; then + echo "ARCH set to win64" +else + echo "ARCH set invalid value aborting..." + exit 1 +fi + +if [ "$ARCH" == "win32" ]; then + HOST=i686-w64-mingw32 +else + HOST=x86_64-w64-mingw32 +fi -HOST=i686-w64-mingw32 MINGW_ROOT=/usr/$HOST/sys-root/mingw export PKG_CONFIG_PREFIX=$MINGW_ROOT @@ -22,6 +34,11 @@ export LINK_CXX=$HOST-g++ export WINRC=$HOST-windres export STRIP=$HOST-strip +BASE=$(readlink -f $0) +BASE=$(dirname $BASE) # up one +BASE=$(dirname $BASE) # up one more +BASE=$(dirname $BASE) # up one more + BUILD_DIR=$BASE/build BUILD_CACHE_FILE=$BUILD_DIR/c4che/_cache.py TOOLS_DIR=$BASE/tools/windows_packaging @@ -35,9 +52,9 @@ then # Figure out the Build Type if [ x$DEBUG = xT ]; then - PACKAGE_DIR="$APPNAME-${release_version}-win32-dbg" + PACKAGE_DIR="$APPNAME-${release_version}-$ARCH-dbg" else - PACKAGE_DIR="$APPNAME-${release_version}-win32" + PACKAGE_DIR="$APPNAME-${release_version}-$ARCH" fi if grep -q "BUILD_TESTS = True" $BUILD_CACHE_FILE; then diff --git a/tools/windows_packaging/package-f19.sh b/tools/windows_packaging/package-f19.sh new file mode 100755 index 0000000000..3900571fd6 --- /dev/null +++ b/tools/windows_packaging/package-f19.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +DLLS=' +jack-0.dll +jackserver-0.dll +libatk-1.0-0.dll +libatkmm-1.6-1.dll +libbz2-1.dll +libcairo-2.dll +libcairo-gobject-2.dll +libcairomm-1.0-1.dll +libcairo-script-interpreter-2.dll +libcppunit-1-12-1.dll +libcrypto-10.dll +libcurl-4.dll +libexpat-1.dll +libfftw3-3.dll +libfftw3f-3.dll +libfontconfig-1.dll +libfreetype-6.dll +libgailutil-18.dll +libgcc_s_sjlj-1.dll +libgdkmm-2.4-1.dll +libgdk_pixbuf-2.0-0.dll +libgdk-win32-2.0-0.dll +libgio-2.0-0.dll +libgiomm-2.4-1.dll +libglib-2.0-0.dll +libglibmm-2.4-1.dll +libglibmm_generate_extra_defs-2.4-1.dll +libgmodule-2.0-0.dll +libgnurx-0.dll +libgobject-2.0-0.dll +libgthread-2.0-0.dll +libgtkmm-2.4-1.dll +libgtk-win32-2.0-0.dll +libharfbuzz-0.dll +iconv.dll +libFLAC-8.dll +libogg-0.dll +libvorbis-0.dll +libvorbisenc-2.dll +libffi-6.dll +libidn-11.dll +libintl-8.dll +liblo-7.dll +libpango-1.0-0.dll +libpangocairo-1.0-0.dll +libpangoft2-1.0-0.dll +libpangomm-1.4-1.dll +libpangowin32-1.0-0.dll +libpixman-1-0.dll +libpng15-15.dll +rubberband-2.dll +libsamplerate-0.dll +libsigc-2.0-0.dll +libsndfile-1.dll +libssh2-1.dll +libssl-10.dll +libstdc++-6.dll +libtag.dll +libxml2-2.dll +pthreadGC2.dll +portaudio-2.dll +vamp-hostsdk-3.dll +vamp-sdk-2.dll +zlib1.dll +' + +WITH_JACK='TRUE' + +. ./copydll-fedora.sh +. ./package.sh diff --git a/tools/windows_packaging/package-f20.sh b/tools/windows_packaging/package-f20.sh new file mode 100755 index 0000000000..50cbcd9734 --- /dev/null +++ b/tools/windows_packaging/package-f20.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +DLLS=' +jack-0.dll +jackserver-0.dll +libatk-1.0-0.dll +libatkmm-1.6-1.dll +libbz2-1.dll +libcairo-2.dll +libcairo-gobject-2.dll +libcairomm-1.0-1.dll +libcairo-script-interpreter-2.dll +libcppunit-1-12-1.dll +libcrypto-10.dll +libcurl-4.dll +libexpat-1.dll +libfftw3-3.dll +libfftw3f-3.dll +libfontconfig-1.dll +libfreetype-6.dll +libgailutil-18.dll +libgcc_s_sjlj-1.dll +libgdkmm-2.4-1.dll +libgdk_pixbuf-2.0-0.dll +libgdk-win32-2.0-0.dll +libgio-2.0-0.dll +libgiomm-2.4-1.dll +libglib-2.0-0.dll +libglibmm-2.4-1.dll +libglibmm_generate_extra_defs-2.4-1.dll +libgmodule-2.0-0.dll +libgnurx-0.dll +libgobject-2.0-0.dll +libgthread-2.0-0.dll +libgtkmm-2.4-1.dll +libgtk-win32-2.0-0.dll +libharfbuzz-0.dll +iconv.dll +libFLAC-8.dll +libogg-0.dll +libvorbis-0.dll +libvorbisenc-2.dll +libffi-6.dll +libidn-11.dll +libintl-8.dll +liblo-7.dll +libpango-1.0-0.dll +libpangocairo-1.0-0.dll +libpangoft2-1.0-0.dll +libpangomm-1.4-1.dll +libpangowin32-1.0-0.dll +libpixman-1-0.dll +libpng16-16.dll +rubberband-2.dll +libsamplerate-0.dll +libsigc-2.0-0.dll +libsndfile-1.dll +libssh2-1.dll +libssl-10.dll +libstdc++-6.dll +libtag.dll +libxml2-2.dll +libwinpthread-1.dll +portaudio-2.dll +vamp-hostsdk-3.dll +vamp-sdk-2.dll +zlib1.dll +' + +WITH_JACK='TRUE' + +. ./copydll-fedora.sh +. ./package.sh diff --git a/tools/windows_packaging/package.sh b/tools/windows_packaging/package.sh index dd1ec88119..33eaa350e3 100755 --- a/tools/windows_packaging/package.sh +++ b/tools/windows_packaging/package.sh @@ -4,6 +4,11 @@ . ./print-env.sh +if [ -z "$DLLS" ]; then + echo "ERROR: DLLS variable is not defined..." + exit 1 +fi + cd $BASE || exit 1 if ! test -f $BUILD_CACHE_FILE; then @@ -50,90 +55,30 @@ cp -r $MINGW_ROOT/lib/gtk-2.0 $PACKAGE_DIR/lib cp -r $MINGW_ROOT/lib/gdk-pixbuf-2.0 $PACKAGE_DIR/lib cp $TOOLS_DIR/loaders.cache $PACKAGE_DIR/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache -mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules -cp -r $MINGW_ROOT/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules +if test x$WITH_PANGO_1_6 != x; then + mkdir -p $PACKAGE_DIR/lib/pango/1.6.0/modules + cp -r $MINGW_ROOT/lib/pango/1.6.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.6.0/modules +else + mkdir -p $PACKAGE_DIR/lib/pango/1.8.0/modules + cp -r $MINGW_ROOT/lib/pango/1.8.0/modules/*.dll $PACKAGE_DIR/lib/pango/1.8.0/modules +fi + cp $TOOLS_DIR/pango.modules $PACKAGE_DIR/etc/pango cp $TOOLS_DIR/README $PACKAGE_DIR -DLLS=' -jack-0.dll -jackserver-0.dll -libart_lgpl_2-2.dll -libatk-1.0-0.dll -libatkmm-1.6-1.dll -libbz2-1.dll -libcairo-2.dll -libcairo-gobject-2.dll -libcairomm-1.0-1.dll -libcairo-script-interpreter-2.dll -libcppunit-1-12-1.dll -libcrypto-10.dll -libcurl-4.dll -libexpat-1.dll -libfftw3-3.dll -libfftw3f-3.dll -libfontconfig-1.dll -libfreetype-6.dll -libgailutil-18.dll -libgcc_s_sjlj-1.dll -libgdkmm-2.4-1.dll -libgdk_pixbuf-2.0-0.dll -libgdk-win32-2.0-0.dll -libgio-2.0-0.dll -libgiomm-2.4-1.dll -libglib-2.0-0.dll -libglibmm-2.4-1.dll -libglibmm_generate_extra_defs-2.4-1.dll -libgmodule-2.0-0.dll -libgnomecanvas-2-0.dll -libgnomecanvasmm-2.6-1.dll -libgnurx-0.dll -libgobject-2.0-0.dll -libgthread-2.0-0.dll -libgtkmm-2.4-1.dll -libgtk-win32-2.0-0.dll -libharfbuzz-0.dll -libiconv-2.dll -iconv.dll -libFLAC-8.dll -libogg-0.dll -libvorbis-0.dll -libvorbisenc-2.dll -libffi-6.dll -libidn-11.dll -libintl-8.dll -liblo-7.dll -libpango-1.0-0.dll -libpangocairo-1.0-0.dll -libpangoft2-1.0-0.dll -libpangomm-1.4-1.dll -libpangowin32-1.0-0.dll -libpixman-1-0.dll -libpng15-15.dll -libsamplerate-0.dll -libsigc-2.0-0.dll -libsndfile-1.dll -libssh2-1.dll -libssl-10.dll -libstdc++-6.dll -libxml2-2.dll -pthreadGC2.dll -zlib1.dll -' - echo "Copying mingw shared libraries to $PACKAGE_DIR ..." for i in $DLLS; do -cp $MINGW_ROOT/bin/$i $PACKAGE_DIR + copydll "$i" "$PACKAGE_DIR" || exit 1 done -echo "Copying JACK server and drivers to $PACKAGE_DIR ..." - -cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR -cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR -cp $MINGW_ROOT/bin/libportaudio-2.dll $PACKAGE_DIR +if test x$WITH_JACK != x; then + echo "Copying JACK server and drivers to $PACKAGE_DIR ..." + cp $MINGW_ROOT/bin/jackd.exe $PACKAGE_DIR + cp -r $MINGW_ROOT/bin/jack $PACKAGE_DIR +fi SRC_DIRS=' libs/ardour @@ -156,9 +101,11 @@ if [ x$DEBUG = xT ]; then do cp -r -p $BASE/$i $PACKAGE_SRC_DIR/libs done - - echo "Copying JACK utility programs to $PACKAGE_DIR ..." - cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR + + if test x$WITH_JACK != x; then + echo "Copying JACK utility programs to $PACKAGE_DIR ..." + cp $MINGW_ROOT/bin/jack_*.exe $PACKAGE_DIR + fi #echo "Copying any debug files to $PACKAGE_DIR ..." #cp $MINGW_ROOT/bin/*.debug $PACKAGE_DIR -- cgit v1.2.3