Summary(zh_CN.UTF-8): 实用工具函数库
%define realname glib
Name: crossmingw32-glib2
-Version: 2.42.1
+Version: 2.60.2
Release: 1
License: LGPL v2+
Group: Development/Libraries
-Source0: http://ftp.gnome.org/pub/GNOME/sources/glib/2.42/glib-%{version}.tar.xz
-# Source0-md5: 89c4119e50e767d3532158605ee9121a
+Source0: http://ftp.gnome.org/pub/GNOME/sources/glib/2.60/glib-%{version}.tar.xz
+# Source0-md5: f28f2228e2b369cc866f18770baafe2b
Patch0: glib2-win32.patch
URL: http://www.gtk.org/
-BuildRequires: autoconf >= 2.62
-BuildRequires: automake >= 1:1.11
BuildRequires: crossmingw32-gcc
BuildRequires: crossmingw32-gettext
BuildRequires: crossmingw32-libffi >= 3.0.0
BuildRequires: crossmingw32-libiconv
-BuildRequires: crossmingw32-pcre >= 8.13
+BuildRequires: crossmingw32-pcre >= 8.31
# rand_s()
BuildRequires: crossmingw32-runtime >= 1:4.0.3-2
+# SetThreadErrorMode and more
+BuildRequires: crossmingw32-w32api >= 1:5.0.2-4
BuildRequires: crossmingw32-zlib
# host glib-genmarshall and glib-compile-schemas are needed for cross-compiling
BuildRequires: glib2 >= 1:2.32.0
BuildRequires: gtk-doc >= 1.20
-BuildRequires: libtool >= 2:2.2
+BuildRequires: meson >= 0.50.0-2
+BuildRequires: ninja
BuildRequires: pkgconfig >= 1:0.16
-BuildRequires: python >= 1:2.5
+BuildRequires: python3 >= 1:3.4
+BuildRequires: rpmbuild(macros) >= 1.736
BuildRequires: tar >= 1:1.22
BuildRequires: xz
Requires: crossmingw32-gettext
-Requires: crossmingw32-pcre >= 8.13
+Requires: crossmingw32-pcre >= 8.31
ExcludeArch: i386
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _libdir %{_prefix}/lib
%define _pkgconfigdir %{_prefix}/lib/pkgconfig
%define _dlldir /usr/share/wine/windows/system
-%define __cc %{target}-gcc
-%define __cxx %{target}-g++
%define __pkgconfig_provides %{nil}
%define __pkgconfig_requires %{nil}
+# for meson 0.50+, keep __cc/__cxx as host compiler and pass %{target}-* in meson-cross.txt
%ifnarch %{ix86}
# arch-specific flags (like alpha's -mieee) are not valid for i386 gcc.
Yararlı yordamlar kitaplığı. Geliştirme kitaplıkları ve başlık
dosyaları glib-devel paketinde yer almaktadır.
+%package static
+Summary: Static GLib 2 libraries (cross MinGW32 version)
+Summary(pl.UTF-8): Statyczne biblioteki GLib 2 (wersja skrośna MinGW32)
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description static
+Static GLib 2 libraries (cross MinGW32 version).
+
+%description static -l pl.UTF-8
+Statyczne biblioteki GLib 2 (wersja skrośna MinGW32).
+
%package dll
-Summary: DLL glib2 libraries for Windows
-Summary(pl.UTF-8): Biblioteki DLL glib2 dla Windows
+Summary: DLL GLib 2 libraries for Windows
+Summary(pl.UTF-8): Biblioteki DLL GLib 2 dla Windows
Group: Applications/Emulators
Requires: crossmingw32-gettext-dll
Requires: crossmingw32-libffi-dll >= 3.0.0
-Requires: crossmingw32-pcre-dll >= 8.13
+Requires: crossmingw32-pcre-dll >= 8.31
Requires: wine
%description dll
-DLL glib2 libraries for Windows.
+DLL GLib 2 libraries for Windows.
%description dll -l pl.UTF-8
-Biblioteki DLL glib2 dla Windows.
+Biblioteki DLL GLib 2 dla Windows.
%prep
%setup -q -n %{realname}-%{version}
%patch0 -p1
+cat > meson-cross.txt <<'EOF'
+[host_machine]
+system = 'windows'
+cpu_family = 'x86'
+cpu = 'i386'
+endian='little'
+[binaries]
+c = '%{target}-gcc'
+cpp = '%{target}-g++'
+ar = '%{target}-ar'
+windres = '%{target}-windres'
+pkgconfig = 'pkg-config'
+[properties]
+c_args = ['%(echo %{rpmcflags} | sed -e "s/ \+/ /g;s/ /', '/g")']
+EOF
+
%build
export PKG_CONFIG_LIBDIR=%{_prefix}/lib/pkgconfig
-%{__gtkdocize}
-%{__libtoolize}
-%{__aclocal} -I m4macros
-%{__autoconf}
-%{__autoheader}
-%{__automake}
-%configure \
- DBUS_DAEMON=no \
- --target=%{target} \
- --host=%{target} \
- --disable-dtrace \
- --disable-gtk-doc \
- --disable-silent-rules \
- --enable-shared \
- --with-pcre=system
-
-%{__make}
+%meson build \
+ --cross-file meson-cross.txt \
+ %{?debug:--debug} \
+ -Dselinux=disabled
+
+%ninja_build -C build
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
install -d $RPM_BUILD_ROOT%{_dlldir}
-mv -f $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
+%{__mv} $RPM_BUILD_ROOT%{_prefix}/bin/*.dll $RPM_BUILD_ROOT%{_dlldir}
%if 0%{!?debug:1}
%{target}-strip --strip-unneeded -R.comment -R.note $RPM_BUILD_ROOT%{_dlldir}/*.dll
%endif
# use system glib2-devel instead
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/{aclocal,bash-completion,gdb,glib-2.0,gtk-doc,man}
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/{gdbus-codegen,glib-genmarshal,glib-gettextize,glib-mkenums,gtester-report,*.exe}
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/{aclocal,bash-completion,gettext,glib-2.0}
# runtime
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/locale
%{_libdir}/libgmodule-2.0.dll.a
%{_libdir}/libgobject-2.0.dll.a
%{_libdir}/libgthread-2.0.dll.a
-%{_libdir}/libgio-2.0.la
-%{_libdir}/libglib-2.0.la
-%{_libdir}/libgmodule-2.0.la
-%{_libdir}/libgobject-2.0.la
-%{_libdir}/libgthread-2.0.la
-%{_libdir}/gthread-2.0.def
%{_includedir}/gio-win32-2.0
%{_includedir}/glib-2.0
%dir %{_libdir}/glib-2.0
%{_pkgconfigdir}/gobject-2.0.pc
%{_pkgconfigdir}/gthread-2.0.pc
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libgio-2.0.a
+%{_libdir}/libglib-2.0.a
+%{_libdir}/libgmodule-2.0.a
+%{_libdir}/libgobject-2.0.a
+%{_libdir}/libgthread-2.0.a
+
%files dll
%defattr(644,root,root,755)
-%{_dlldir}/libgio-2.0-*.dll
-%{_dlldir}/libglib-2.0-*.dll
-%{_dlldir}/libgmodule-2.0-*.dll
-%{_dlldir}/libgobject-2.0-*.dll
-%{_dlldir}/libgthread-2.0-*.dll
+%{_dlldir}/libgio-2.0-0.dll
+%{_dlldir}/libglib-2.0-0.dll
+%{_dlldir}/libgmodule-2.0-0.dll
+%{_dlldir}/libgobject-2.0-0.dll
+%{_dlldir}/libgthread-2.0-0.dll