[mingw-gtk2] Added win64 support

epienbro epienbro at fedoraproject.org
Sun Mar 18 17:34:27 UTC 2012


commit f1736f3d47126c22103a5bb4c985954ad3f3ced5
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sun Mar 18 18:34:21 2012 +0100

    Added win64 support

 gtk-fix-out-of-source-build.patch |   29 +++++++
 mingw-gtk2.spec                   |  155 ++++++++++++++++++++++++++++++------
 2 files changed, 158 insertions(+), 26 deletions(-)
---
diff --git a/gtk-fix-out-of-source-build.patch b/gtk-fix-out-of-source-build.patch
new file mode 100644
index 0000000..4eb49de
--- /dev/null
+++ b/gtk-fix-out-of-source-build.patch
@@ -0,0 +1,29 @@
+--- gtk/Makefile.in.orig	2010-10-07 22:23:43.704849909 +0200
++++ gtk/Makefile.in	2010-10-07 22:24:28.520162564 +0200
+@@ -977,7 +977,7 @@
+ gtarget = $(gdktarget)
+ @PLATFORM_WIN32_TRUE at no_undefined = -no-undefined
+ @OS_WIN32_TRUE at gtk_def = gtk.def
+- at OS_WIN32_TRUE@gtk_win32_symbols = -export-symbols $(srcdir)/gtk.def
++ at OS_WIN32_TRUE@gtk_win32_symbols = -export-symbols gtk.def
+ @OS_WIN32_TRUE at gtk_win32_res = gtk-win32-res.o
+ @OS_WIN32_TRUE at gtk_win32_res_ldflag = -Wl,gtk-win32-res.o
+ @MS_LIB_AVAILABLE_TRUE at noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
+@@ -2657,7 +2657,7 @@
+ @OS_WIN32_TRUE@	$(WINDRES) gtk-win32.rc $@
+ 
+ @OS_WIN32_TRUE at install-def-file: gtk.def
+- at OS_WIN32_TRUE@	$(INSTALL) $(srcdir)/gtk.def $(DESTDIR)$(libdir)/gtk-win32-2.0.def
++ at OS_WIN32_TRUE@	$(INSTALL) gtk.def $(DESTDIR)$(libdir)/gtk-win32-2.0.def
+ @OS_WIN32_TRUE at uninstall-def-file:
+ @OS_WIN32_TRUE@	-rm $(DESTDIR)$(libdir)/gtk-win32-2.0.def
+ @OS_WIN32_FALSE at install-def-file:
+@@ -2677,7 +2677,7 @@
+ # This places the generated .def file in srcdir, since it is expected to be there.
+ # (The one from a tarball is)
+ gtk.def: gtk.symbols
+-	(echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gtk.symbols | sed -e '/^$$/d' -e 's/^/	/' -e 's/G_GNUC_[^ ]*//g') > $(srcdir)/gtk.def
++	(echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gtk.symbols | sed -e '/^$$/d' -e 's/^/	/' -e 's/G_GNUC_[^ ]*//g') > gtk.def
+ 
+ gtkalias.h: gtk.symbols
+ 	  $(PERL) $(srcdir)/makegtkalias.pl < $(srcdir)/gtk.symbols > gtkalias.h
diff --git a/mingw-gtk2.spec b/mingw-gtk2.spec
index fe376ed..f2ab363 100644
--- a/mingw-gtk2.spec
+++ b/mingw-gtk2.spec
@@ -1,10 +1,8 @@
-%global __strip %{mingw32_strip}
-%global __objdump %{mingw32_objdump}
-%define __debug_install_post %{mingw32_debug_install_post}
+%?mingw_package_header
 
 Name:           mingw-gtk2
 Version:        2.24.10
-Release:        4%{?dist}
+Release:        5%{?dist}
 Summary:        MinGW Windows Gtk2 library
 
 License:        LGPLv2+
@@ -24,27 +22,37 @@ Patch1001:      mingw32-gtk2-enable_static_build.patch
 # Fix linking against modern glib2
 Patch1002:      gtk2-fix-gmodule-linking.patch
 
+# GTK doesn't support out-of-source builds
+Patch1003:      gtk-fix-out-of-source-build.patch
+
 BuildArch:      noarch
 
-BuildRequires:  mingw32-filesystem >= 68
+BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
-
-BuildRequires:  mingw32-atk >= 1.13.0
-BuildRequires:  mingw32-cairo >= 1.8.0
-BuildRequires:  mingw32-dlfcn
+BuildRequires:  mingw32-atk
+BuildRequires:  mingw32-cairo
 BuildRequires:  mingw32-gettext
-BuildRequires:  mingw32-glib2 >= 2.17.7
-%if 0%{?fedora} >= 16
+BuildRequires:  mingw32-glib2
 BuildRequires:  mingw32-win-iconv
-%else
-BuildRequires:  mingw32-iconv
-%endif
-BuildRequires:  mingw32-pango >= 1.20.0
+BuildRequires:  mingw32-pango
 BuildRequires:  mingw32-gdk-pixbuf
 BuildRequires:  mingw32-pixman
 BuildRequires:  mingw32-zlib
 
+BuildRequires:  mingw64-filesystem >= 95
+BuildRequires:  mingw64-gcc
+BuildRequires:  mingw64-binutils
+BuildRequires:  mingw64-atk
+BuildRequires:  mingw64-cairo
+BuildRequires:  mingw64-gettext
+BuildRequires:  mingw64-glib2
+BuildRequires:  mingw64-win-iconv
+BuildRequires:  mingw64-pango
+BuildRequires:  mingw64-gdk-pixbuf
+BuildRequires:  mingw64-pixman
+BuildRequires:  mingw64-zlib
+
 BuildRequires:  pkgconfig
 
 # Native one for msgfmt
@@ -66,6 +74,7 @@ BuildRequires:  autoconf automake libtool
 MinGW Windows Gtk2 library.
 
 
+# Win32
 %package -n mingw32-gtk2
 Summary:        MinGW Windows Gtk2 library
 Requires:       pkgconfig
@@ -81,8 +90,24 @@ Group:          Development/Libraries
 %description -n mingw32-gtk2-static
 Static version of the MinGW Windows Gtk2 library.
 
+# Win64
+%package -n mingw64-gtk2
+Summary:        MinGW Windows Gtk2 library
+Requires:       pkgconfig
 
-%{?mingw32_debug_package}
+%description -n mingw64-gtk2
+MinGW Windows Gtk2 library.
+
+%package -n mingw64-gtk2-static
+Summary:        Static version of the MinGW Windows Gtk2 library
+Requires:       mingw64-gtk2 = %{version}-%{release}
+Group:          Development/Libraries
+
+%description -n mingw64-gtk2-static
+Static version of the MinGW Windows Gtk2 library.
+
+
+%?mingw_debug_package
 
 
 %prep
@@ -93,37 +118,44 @@ Static version of the MinGW Windows Gtk2 library.
 autoreconf -i --force
 
 %patch1001 -p0
+%patch1003 -p0
 
 
 %build
-# Need to run the correct version of glib-mkenums.
-PATH=%{mingw32_bindir}:$PATH
+%mingw_configure --disable-cups --enable-static
 
-%{mingw32_configure} --disable-cups --enable-static
-make %{?_smp_mflags}
+# The pre-generated gtk.def file can't be used for MinGW-W64
+# Force a regeneration of this file by removing the bundled copy
+rm -f gtk/gtk.def
+
+%mingw_make %{?_smp_mflags}
 
 
 %install
-make DESTDIR=$RPM_BUILD_ROOT install
+%mingw_make DESTDIR=$RPM_BUILD_ROOT install
 
 rm -f $RPM_BUILD_ROOT/%{mingw32_libdir}/charset.alias
+rm -f $RPM_BUILD_ROOT/%{mingw64_libdir}/charset.alias
 
 # Remove manpages which duplicate those in Fedora native.
 rm -rf $RPM_BUILD_ROOT%{mingw32_mandir}
+rm -rf $RPM_BUILD_ROOT%{mingw64_mandir}
 
 # Remove documentation too.
 rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc
 
 # The .def files are only used while compiling the libraries themselves
 # (they contain a list of functions which need to be exported by the linker)
 # so they serve no purpose for other libraries and applications
-rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gdk-win32-2.0.def
-rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gtk-win32-2.0.def
-rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gailutil.def
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/*.def
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/*.def
 
 # Install the gtk.immodules file
 mkdir -p $RPM_BUILD_ROOT%{mingw32_sysconfdir}/gtk-2.0/
+mkdir -p $RPM_BUILD_ROOT%{mingw64_sysconfdir}/gtk-2.0/
 install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{mingw32_sysconfdir}/gtk-2.0/
+install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT%{mingw64_sysconfdir}/gtk-2.0/
 
 # Drop all .la files
 find $RPM_BUILD_ROOT -name "*.la" -delete
@@ -131,12 +163,15 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 # Drop the .dll.a files for all modules as nothing is supposed
 # to link directly to these modules
 rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gtk-2.0/2.10.0/*/*.dll.a
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/gtk-2.0/2.10.0/*/*.dll.a
 rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gtk-2.0/modules/*.dll.a
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/gtk-2.0/modules/*.dll.a
 
-%find_lang %{name} --all-name
+%mingw_find_lang gtk2 --all-name
 
 
-%files -n mingw32-gtk2 -f %{name}.lang
+# Win32
+%files -n mingw32-gtk2 -f mingw32-gtk2.lang
 %doc COPYING
 %{mingw32_datadir}/themes/*
 %{mingw32_bindir}/gtk-builder-convert
@@ -200,8 +235,76 @@ rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/gtk-2.0/modules/*.dll.a
 %{mingw32_libdir}/gtk-2.0/2.10.0/immodules/im-viqr.a
 %{mingw32_libdir}/gtk-2.0/modules/libgail.a
 
+# Win64
+%files -n mingw64-gtk2 -f mingw64-gtk2.lang
+%doc COPYING
+%{mingw64_datadir}/themes/*
+%{mingw64_bindir}/gtk-builder-convert
+%{mingw64_bindir}/gtk-demo.exe
+%{mingw64_bindir}/gtk-query-immodules-2.0.exe
+%{mingw64_bindir}/gtk-update-icon-cache.exe
+%{mingw64_bindir}/gtk-update-icon-cache.exe.manifest
+%{mingw64_bindir}/libgailutil-18.dll
+%{mingw64_bindir}/libgdk-win32-2.0-0.dll
+%{mingw64_bindir}/libgtk-win32-2.0-0.dll
+%dir %{mingw64_libdir}/gtk-2.0
+%dir %{mingw64_libdir}/gtk-2.0/2.10.0
+%dir %{mingw64_libdir}/gtk-2.0/2.10.0/engines
+%{mingw64_libdir}/gtk-2.0/2.10.0/engines/libpixmap.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/engines/libwimp.dll
+%dir %{mingw64_libdir}/gtk-2.0/2.10.0/immodules
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-am-et.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-cedilla.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-cyrillic-translit.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ime.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-inuktitut.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ipa.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-multipress.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-thai.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ti-er.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ti-et.dll
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-viqr.dll
+%{mingw64_libdir}/gtk-2.0/include/
+%dir %{mingw64_libdir}/gtk-2.0/modules
+%{mingw64_libdir}/gtk-2.0/modules/libgail.dll
+%{mingw64_libdir}/libgailutil.dll.a
+%{mingw64_libdir}/libgdk-win32-2.0.dll.a
+%{mingw64_libdir}/libgtk-win32-2.0.dll.a
+%{mingw64_libdir}/pkgconfig/gail.pc
+%{mingw64_libdir}/pkgconfig/gdk-2.0.pc
+%{mingw64_libdir}/pkgconfig/gdk-win32-2.0.pc
+%{mingw64_libdir}/pkgconfig/gtk+-2.0.pc
+%{mingw64_libdir}/pkgconfig/gtk+-win32-2.0.pc
+%{mingw64_includedir}/gtk-2.0/
+%{mingw64_includedir}/gail-1.0/
+%{mingw64_sysconfdir}/gtk-2.0/
+%{mingw64_datadir}/aclocal/gtk-2.0.m4
+%{mingw64_datadir}/gtk-2.0/
+
+%files -n mingw64-gtk2-static
+%{mingw64_libdir}/libgailutil.a
+%{mingw64_libdir}/libgdk-win32-2.0.a
+%{mingw64_libdir}/libgtk-win32-2.0.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/engines/libpixmap.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/engines/libwimp.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-am-et.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-cedilla.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-cyrillic-translit.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ime.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-inuktitut.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ipa.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-multipress.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-thai.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ti-er.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-ti-et.a
+%{mingw64_libdir}/gtk-2.0/2.10.0/immodules/im-viqr.a
+%{mingw64_libdir}/gtk-2.0/modules/libgail.a
+
 
 %changelog
+* Sun Mar 18 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.24.10-5
+- Added win64 support
+
 * Fri Mar 09 2012 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.24.10-4
 - Fix linking against modern glib2
 


More information about the scm-commits mailing list