File wxGTK3.spec of Package wxGTK3

%global srcname wxWidgets
%global wxgtkname wxGTK3
%global gtk3dir bld_gtk3

Name:           %{wxgtkname}
Version:        3.0.4
Release:        10%{?snapshottag}%{?dist}.1
Summary:        GTK port of the wxWidgets GUI library
License:        wxWidgets
URL:            https://www.wxwidgets.org/

Source0:        https://github.com/%{srcname}/%{srcname}/releases/download/v%{version}/%{srcname}-%{version}.tar.bz2
Source10:       wx-config
# https://bugzilla.redhat.com/show_bug.cgi?id=1225148
# remove abort when ABI check fails
# Backport from wxGTK
Patch0:         %{name}-3.0.3-abicheck.patch
Patch1:         fix-filename-test.patch
Patch2:         fix-vararg-test.patch
Patch3:         fix-glcanvas-crash-wayland.patch

BuildRequires:  gcc-c++
BuildRequires:  gtk3-devel
BuildRequires:  zlib-devel
BuildRequires:  libpng-devel
BuildRequires:  libjpeg-devel
BuildRequires:  libtiff-devel
BuildRequires:  expat-devel
BuildRequires:  libSM-devel
BuildRequires:  gstreamer1-plugins-base-devel
BuildRequires:  gettext
BuildRequires:  cppunit-devel
BuildRequires:  libmspack-devel
BuildRequires:  doxygen
BuildRequires:  graphviz

%if 0%{?rhel}
BuildRequires:  alternatives
%endif

Provides:       %{srcname} = %{version}-%{release}
Provides:       bundled(scintilla) = 3.2.1

%description
wxWidgets is the GTK port of the C++ cross-platform wxWidgets
GUI library, offering classes for all common GUI controls as well as a
comprehensive set of helper classes for most common application tasks,
ranging from networking to HTML display and image manipulation.


%package        devel
Summary:        Development files for the wxGTK3 library
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:       gtk3-devel
Provides:       %{srcname}-devel = %{version}-%{release}

%description devel
This package include files needed to link with the wxGTK3 library.
wxWidgets is the GTK port of the C++ cross-platform wxWidgets
GUI library, offering classes for all common GUI controls as well as a
comprehensive set of helper classes for most common application tasks,
ranging from networking to HTML display and image manipulation.

%prep
%autosetup -n %{srcname}-%{version} -p1

# patch some installed files to avoid conflicts with 2.8.*
sed -i -e 's|aclocal)|aclocal/wxwin3.m4)|' Makefile.in
sed -i -e 's|wxstd.mo|wxstd3.mo|' Makefile.in
sed -i -e 's|wxmsw.mo|wxmsw3.mo|' Makefile.in

# fix plugin dir for 64-bit
sed -i -e 's|/usr/lib\b|%{_libdir}|' wx-config.in configure
sed -i -e 's|/lib|/%{_lib}|' src/unix/stdpaths.cpp


%build
# likely still dereferences type-punned pointers
CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
# fix unused-direct-shlib-dependency error:
export LDFLAGS="-Wl,--as-needed"

%global _configure ../configure

mkdir %{gtk3dir}
pushd %{gtk3dir}
%configure \
  --with-gtk=3 \
  --without-opengl \
  --with-sdl \
  --with-gnomeprint \
  --with-libmspack \
  --enable-intl \
  --enable-no_deps \
  --disable-rpath \
  --enable-ipv6

%make_build
popd

%install

pushd %{gtk3dir}
%makeinstall
popd

# install our multilib-aware wrapper
##Remove installed
rm %{buildroot}%{_bindir}/wx-config
##Install new and symlink
install -p -D -m 755 %{SOURCE10} %{buildroot}%{_bindir}/wx-config-3.0
sed -i -e 's|=/usr|=%{_prefix}|' %{buildroot}%{_bindir}/wx-config-3.0
ln -s wx-config-3.0 %{buildroot}%{_bindir}/wx-config

# move bakefiles to avoid conflicts with 2.8.*
mkdir %{buildroot}%{_datadir}/bakefile/presets/wx3
mv %{buildroot}%{_datadir}/bakefile/presets/*.* %{buildroot}%{_datadir}/bakefile/presets/wx3

%find_lang wxstd3
%find_lang wxmsw3
cat wxmsw3.lang >> wxstd3.lang

%check

pushd %{gtk3dir}/tests
make %{?_smp_mflags}
LD_LIBRARY_PATH=%{buildroot}%{_libdir} ./test
popd

%files
%doc docs/changes.txt docs/gpl.txt docs/lgpl.txt docs/licence.txt
%doc docs/licendoc.txt docs/preamble.txt docs/readme.txt
%{_libdir}/libwx_gtk3u_adv-*.so.*
%{_libdir}/libwx_gtk3u_aui-*.so.*
%{_libdir}/libwx_gtk3u_core-*.so.*
%{_libdir}/libwx_gtk3u_html-*.so.*
%{_libdir}/libwx_gtk3u_propgrid-*.so.*
%{_libdir}/libwx_gtk3u_qa-*.so.*
%{_libdir}/libwx_gtk3u_ribbon-*.so.*
%{_libdir}/libwx_gtk3u_richtext-*.so.*
%{_libdir}/libwx_gtk3u_stc-*.so.*
%{_libdir}/libwx_gtk3u_xrc-*.so.*
%{_libdir}/libwx_baseu-*.so.*
%{_libdir}/libwx_baseu_net-*.so.*
%{_libdir}/libwx_baseu_xml-*.so.*
%{_libdir}/libwx_gtk3u_media-*.so.*
%{_datadir}/locale/*

%files devel
%{_bindir}/wx-config
%{_bindir}/wx-config-3.0
%{_bindir}/wxrc
%{_bindir}/wxrc-3.0
%{_includedir}/wx-3.0
%{_libdir}/libwx_baseu*.so
%dir %{_libdir}/wx
%dir %{_libdir}/wx/config
%dir %{_libdir}/wx/include
%{_datadir}/aclocal/wxwin3.m4
%{_datadir}/bakefile/presets/wx3
%{_libdir}/libwx_gtk3u_*.so
%{_libdir}/wx/config/gtk3-unicode-3.0
%{_libdir}/wx/include/gtk3-unicode-3.0

%changelog
* Sat Aug 17 2019 Scott Talbert <swt@techie.net> - 3.0.4-10.1
- Avoid building webview on aarch64 and s390x on epel8
openSUSE Build Service is sponsored by