Added win64 support

This commit is contained in:
Erik van Pienbroek 2012-03-10 21:29:22 +01:00
parent d88004b607
commit f669db9bcd

View File

@ -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
%{?mingw32_debug_package}
%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.
%?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
#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
mkdir build_shared
pushd build_shared
%{mingw32_configure} --disable-static
# HACK
cp glib/glibconfig.h ../glib
make %{?_smp_mflags}
popd
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@fedoraproject.org> - 2.31.20-2
- Added win64 support
* Thu Mar 08 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 2.31.20-1
- Update to 2.31.20
- Dropped unneeded BR: mingw32-dlfcn