[mingw-glib2] Added win64 support

epienbro epienbro at fedoraproject.org
Sat Mar 10 20:29:25 UTC 2012


commit f669db9bcd3550816a859a9eb5ac166f02819d6d
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sat Mar 10 21:29:22 2012 +0100

    Added win64 support

 mingw-glib2.spec |  140 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 108 insertions(+), 32 deletions(-)
---
diff --git a/mingw-glib2.spec b/mingw-glib2.spec
index 3277485..568699f 100644
--- a/mingw-glib2.spec
+++ b/mingw-glib2.spec
@@ -1,10 +1,11 @@
-%global __strip %{mingw32_strip}
-%global __objdump %{mingw32_objdump}
-%define __debug_install_post %{mingw32_debug_install_post}
+%?mingw_package_header
+
+%global mingw_build_win32 1
+%global mingw_build_win64 1
 
 Name:           mingw-glib2
 Version:        2.31.20
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        MinGW Windows GLib2 library
 
 License:        LGPLv2+
@@ -19,7 +20,7 @@ Patch0:         glib-use-correct-glib-genmarshal-when-cross-compiling.patch
 
 BuildArch:      noarch
 
-BuildRequires:  mingw32-filesystem >= 68
+BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
 BuildRequires:  mingw32-win-iconv
@@ -27,10 +28,18 @@ BuildRequires:  mingw32-gettext
 BuildRequires:  mingw32-libffi
 BuildRequires:  mingw32-zlib
 
+BuildRequires:  mingw64-filesystem >= 95
+BuildRequires:  mingw64-gcc
+BuildRequires:  mingw64-binutils
+BuildRequires:  mingw64-win-iconv
+BuildRequires:  mingw64-gettext
+BuildRequires:  mingw64-libffi
+BuildRequires:  mingw64-zlib
+
 # Native version required for msgfmt use in build
 BuildRequires:  gettext
 # Native version required for glib-genmarshal
-BuildRequires:  glib2-devel >= 2.31.14
+BuildRequires:  glib2-devel >= 2.31.20
 
 # Needed for the patch
 BuildRequires:  autoconf automake libtool
@@ -38,6 +47,7 @@ BuildRequires:  autoconf automake libtool
 %description
 MinGW Windows Glib2 library.
 
+# Win32
 %package -n mingw32-glib2
 Summary:         MinGW Windows zlib compression library for the win32 target
 
@@ -52,8 +62,23 @@ Group:          Development/Libraries
 %description -n mingw32-glib2-static
 Static version of the MinGW Windows GLib2 library.
 
+# Win64
+%package -n mingw64-glib2
+Summary:         MinGW Windows zlib compression library for the win32 target
+
+%description -n mingw64-glib2
+MinGW Windows Glib2 library.
+
+%package -n mingw64-glib2-static
+Summary:        Static version of the MinGW Windows GLib2 library
+Requires:       mingw64-glib2 = %{version}-%{release}
+Group:          Development/Libraries
+
+%description -n mingw64-glib2-static
+Static version of the MinGW Windows GLib2 library.
+
 
-%{?mingw32_debug_package}
+%?mingw_debug_package
 
 
 %prep
@@ -63,33 +88,21 @@ autoreconf -i --force
 
 
 %build
-# GLib can't build static and shared libraries in one go, so we
-# build GLib twice here
-mkdir build_static
-pushd build_static
-        %{mingw32_configure} --disable-shared --enable-static
-        # HACK
-        cp glib/glibconfig.h ../glib
-        make %{?_smp_mflags}
-popd
-
-mkdir build_shared
-pushd build_shared
-        %{mingw32_configure} --disable-static
-        # HACK
-        cp glib/glibconfig.h ../glib
-        make %{?_smp_mflags}
-popd
+#GLib can't build static and shared libraries in one go, so we build GLib twice
+MINGW_BUILDDIR_SUFFIX=static %mingw_configure --disable-shared --enable-static
+MINGW_BUILDDIR_SUFFIX=shared %mingw_configure --disable-static
+
+MINGW_BUILDDIR_SUFFIX=static %mingw_make %{?_smp_mflags}
+MINGW_BUILDDIR_SUFFIX=shared %mingw_make %{?_smp_mflags}
 
 
 %install
-# First install all the files belonging to the shared build
-make -C build_shared DESTDIR=$RPM_BUILD_ROOT install
+MINGW_BUILDDIR_SUFFIX=static %mingw_make_install DESTDIR=$RPM_BUILD_ROOT/build_static
+MINGW_BUILDDIR_SUFFIX=shared %mingw_make_install DESTDIR=$RPM_BUILD_ROOT
 
-# Install all the files from the static build in a seperate folder
-# and move the static libraries to the right location
-make -C build_static DESTDIR=$RPM_BUILD_ROOT/build_static install
+# Move the static libraries to the right location
 mv $RPM_BUILD_ROOT/build_static%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw32_libdir}
+mv $RPM_BUILD_ROOT/build_static%{mingw64_libdir}/*.a $RPM_BUILD_ROOT%{mingw64_libdir}
 
 # There's a small difference in the file glibconfig.h between the
 # shared and the static build:
@@ -116,31 +129,42 @@ mv $RPM_BUILD_ROOT/build_static%{mingw32_libdir}/*.a $RPM_BUILD_ROOT%{mingw32_li
 rm -rf $RPM_BUILD_ROOT/build_static
 
 rm -f $RPM_BUILD_ROOT/%{mingw32_libdir}/charset.alias
+rm -f $RPM_BUILD_ROOT/%{mingw64_libdir}/charset.alias
 
 # Drop the GDB helper files as we can't use the native Fedora GDB to debug Win32 programs
 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gdb
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gdb
 
 # Remove the gtk-doc documentation and manpages which duplicate Fedora native
 rm -rf $RPM_BUILD_ROOT%{mingw32_mandir}
 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc
 
-# Bash-completion files aren't interesting for mingw32
+rm -rf $RPM_BUILD_ROOT%{mingw64_mandir}
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc
+
+# Bash-completion files aren't interesting for mingw
 rm -rf $RPM_BUILD_ROOT%{mingw32_sysconfdir}/bash_completion.d
+rm -rf $RPM_BUILD_ROOT%{mingw64_sysconfdir}/bash_completion.d
 
 # The .def files are also of no use to other binaries
 rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.def
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.def
 
 # The gdbus-codegen pieces are already in the native glib2 package
 rm -f $RPM_BUILD_ROOT%{mingw32_bindir}/gdbus-codegen
 rm -rf $RPM_BUILD_ROOT%{mingw32_libdir}/gdbus-2.0
 
+rm -f $RPM_BUILD_ROOT%{mingw64_bindir}/gdbus-codegen
+rm -rf $RPM_BUILD_ROOT%{mingw64_libdir}/gdbus-2.0
+
 # Drop all .la files
 find $RPM_BUILD_ROOT -name "*.la" -delete
 
-%find_lang glib20
+%mingw_find_lang glib20
 
 
-%files -n mingw32-glib2 -f glib20.lang
+# Win32
+%files -n mingw32-glib2 -f mingw32-glib20.lang
 %{mingw32_bindir}/gdbus.exe
 %{mingw32_bindir}/gio-querymodules.exe
 %{mingw32_bindir}/glib-compile-resources.exe
@@ -188,8 +212,60 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 %{mingw32_libdir}/libgobject-2.0.a
 %{mingw32_libdir}/libgthread-2.0.a
 
+# Win64
+%files -n mingw64-glib2 -f mingw64-glib20.lang
+%{mingw64_bindir}/gdbus.exe
+%{mingw64_bindir}/gio-querymodules.exe
+%{mingw64_bindir}/glib-compile-resources.exe
+%{mingw64_bindir}/glib-compile-schemas.exe
+%{mingw64_bindir}/glib-genmarshal.exe
+%{mingw64_bindir}/glib-gettextize
+%{mingw64_bindir}/glib-mkenums
+%{mingw64_bindir}/gobject-query.exe
+%{mingw64_bindir}/gresource.exe
+%{mingw64_bindir}/gsettings.exe
+%{mingw64_bindir}/gspawn-win64-helper-console.exe
+%{mingw64_bindir}/gspawn-win64-helper.exe
+%{mingw64_bindir}/libgio-2.0-0.dll
+%{mingw64_bindir}/libglib-2.0-0.dll
+%{mingw64_bindir}/libgmodule-2.0-0.dll
+%{mingw64_bindir}/libgobject-2.0-0.dll
+%{mingw64_bindir}/libgthread-2.0-0.dll
+%{mingw64_includedir}/glib-2.0/
+%{mingw64_includedir}/gio-win32-2.0/
+%{mingw64_libdir}/glib-2.0/
+%dir %{mingw64_libdir}/gio/
+%dir %{mingw64_libdir}/gio/modules/
+%{mingw64_libdir}/libgio-2.0.dll.a
+%{mingw64_libdir}/libglib-2.0.dll.a
+%{mingw64_libdir}/libgmodule-2.0.dll.a
+%{mingw64_libdir}/libgobject-2.0.dll.a
+%{mingw64_libdir}/libgthread-2.0.dll.a
+%{mingw64_libdir}/pkgconfig/gio-2.0.pc
+%{mingw64_libdir}/pkgconfig/gio-windows-2.0.pc
+%{mingw64_libdir}/pkgconfig/glib-2.0.pc
+%{mingw64_libdir}/pkgconfig/gmodule-2.0.pc
+%{mingw64_libdir}/pkgconfig/gmodule-export-2.0.pc
+%{mingw64_libdir}/pkgconfig/gmodule-no-export-2.0.pc
+%{mingw64_libdir}/pkgconfig/gobject-2.0.pc
+%{mingw64_libdir}/pkgconfig/gthread-2.0.pc
+%{mingw64_datadir}/aclocal/glib-2.0.m4
+%{mingw64_datadir}/aclocal/glib-gettext.m4
+%{mingw64_datadir}/aclocal/gsettings.m4
+%{mingw64_datadir}/glib-2.0/
+
+%files -n mingw64-glib2-static
+%{mingw64_libdir}/libgio-2.0.a
+%{mingw64_libdir}/libglib-2.0.a
+%{mingw64_libdir}/libgmodule-2.0.a
+%{mingw64_libdir}/libgobject-2.0.a
+%{mingw64_libdir}/libgthread-2.0.a
+
 
 %changelog
+* Sat Mar 10 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.31.20-2
+- Added win64 support
+
 * Thu Mar 08 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.31.20-1
 - Update to 2.31.20
 - Dropped unneeded BR: mingw32-dlfcn


More information about the scm-commits mailing list