[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