Blob Blame History Raw
#
# spec file for package fixmath
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           fixmath
Version:        2022.07.20
Release:        0
Summary:        Fixed-point math operations library
License:        MIT
URL:            https://github.com/PetteriAimonen/libfixmath
Group:          Development/Libraries/C and C++
Source0:        %{url}/archive/refs/heads/master.tar.gz#:/%{name}-%{version}.tar.gz
# PATCH-FIX-SUSE build shared lib instead of static one
Patch0:         build-shared-library.patch
# PATCH-FIX-SUSE use cmake for installation
Patch1:         cmake-install.patch
BuildRequires:  gcc-c++
# Use cmake3 package on SLE12 because cmake is too old (version 3.5)
%if !0%{?is_opensuse} && 0%{?sle_version} < 150000
BuildRequires:  cmake3-full >= 3.13
# Requires C++17
%else
BuildRequires:  cmake >= 3.13
%endif

%description
fixmath is a fixed-point math operations library written in C and
implementing the Q16.16 format.

%package devel
Summary:        Header files for fixmath, a fixed-point math library
Requires:       %name = %version
Conflicts:      %name < %version-%release
BuildArch:      noarch

%description devel
fixmath is a fixed-point math operations library written in C and
implementing the Q16.16 format.

This package contains the headers.

%prep
%autosetup -n lib%{name}-master -p1

%build
# Fix lto-no-text-in-archive rpmlint error
export CFLAGS="%{optflags} -ffat-lto-objects"
export CXXFLAGS="%{optflags} -ffat-lto-objects"
%if !0%{?is_opensuse} && 0%{?sle_version} < 150000
# Remove -fsanitize=undefined opts in SLE-12-SP5
sed -e '/set(sanitizer_opts/d' -i tests/tests.cmake
%endif
sv="$PWD/fixmath.sym"
echo "FIXMATH_%version { global: *; };" >"$sv"
%cmake -DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,--version-script=$sv"
%cmake_build

%install
%cmake_install

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

%files
%{_libdir}/lib%{name}.so

%files devel
%doc README.md
%license LICENSE
%{_includedir}/libfixmath

%changelog