File miniupnpc.spec of Package miniupnpc

%define realname miniupnpc
%define realver  2_2_4
%define srcext   tar.gz

%define so_ver   17

# Common info
Name:          lib%{realname}%{?so_ver}
Version:       2.2.4
Release:       wiz%{?extraver:0.}1%{?dist}
License:       BSD-3-Clause
Group:         System/Libraries
URL:           https://github.com/miniupnp/miniupnp
Summary:       UPnP IGD control point

# Packages needed to define _unitdir
Provides:      lib%{realname} = %{version}-%{release}

# Build-time parameters
BuildRequires: cmake >= 3.12
%if %{with ninja}
BuildRequires: ninja
%endif
BuildRoot:     %{_tmppath}/%{name}-root
Source0:       https://codeload.github.com/miniupnp/miniupnp/%{srcext}/refs/tags/miniupnpc_%{realver}#/%{realname}-%{version}%{?extraver}.%{srcext}

%description
MiniUPnP client - an UPnP IGD control point

%package -n lib%{realname}-devel
Group:         Development/Languages/C and C++
Summary:       Development files for UPnP IGD control point

Provides:      %{name}-devel = %{version}-%{release}
Provides:      %{realname}-devel = %{version}-%{release}
Requires:      %{name} = %{version}-%{release}

%description -n lib%{realname}-devel
MiniUPnP client - an UPnP IGD control point

This package provides headers and libraries needed to build software
using %{name}.

# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n miniupnp-%{realname}_%{realver}%{?extraver}

%build
_CFLAGS='%{optflags} %{?gcc_lto}'
_CXXFLAGS='%{optflags} %{?gcc_lto}'
_LDFLAGS='-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro %{?gcc_lto}'
mkdir build
cd build
cmake ../miniupnpc \
%if %{with ninja}
 -G Ninja \
%endif
 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
 -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_C_FLAGS_RELEASE="$_CFLAGS" \
 -DCMAKE_CXX_FLAGS_RELEASE="$_CXXFLAGS" \
 -DCMAKE_EXE_LINKER_FLAGS_RELEASE="$_LDFLAGS" \
 -DCMAKE_MODULE_LINKER_FLAGS_RELEASE="$_LDFLAGS" \
 -DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$_LDFLAGS" \
 -DCMAKE_VERBOSE_MAKEFILE=YES \
 \
 -DUPNPC_BUILD_STATIC=OFF \
 -DUPNPC_BUILD_TESTS=OFF \
 -DUPNPC_BUILD_SAMPLE=OFF
%if %{with ninja}
ninja -v %{?_smp_mflags}
%else
%{__make} %{?_smp_mflags}
%endif

%install
%if %{with ninja}
DESTDIR=%{buildroot} ninja -v -C build install
%else
%{__make} -C build install DESTDIR=%{buildroot}
%endif

%clean
[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot}

%files
%defattr(-,root,root)
%license LICENSE
%{_libdir}/libminiupnpc.so.*

%files -n lib%{realname}-devel
%defattr(-,root,root)
%license LICENSE
%{_libdir}/libminiupnpc.so
%{_includedir}/%{realname}/
%{_libdir}/cmake/%{realname}/
%{_libdir}/pkgconfig/%{realname}.pc

%post   -p /sbin/ldconfig
%postun -p /sbin/ldconfig

%changelog
openSUSE Build Service is sponsored by