%bcond_without static_libs # don't build static libraries

Summary:        Library providing binary-decimal and decimal-binary routines for IEEE doubles
Name:           double-conversion
Version:        3.1.5
Release:        3
License:        BSD
URL:            https://github.com/google/double-conversion
Source0:        https://github.com/google/double-conversion/archive/v%{version}/%{name}-%{version}.tar.gz
BuildRequires:  gcc gcc-c++ cmake
Patch1:         double-conversion-3.1.5-add-loongarch-support.patch
Patch2:         double-conversion-3.1.5-add-sw64-support.patch

%description
Provides binary-decimal and decimal-binary routines for IEEE doubles.
The library consists of efficient conversion routines that have been
extracted from the V8 JavaScript engine. The code has been re-factored
and improved so that it can be used more easily in other projects.

%package devel
Summary:    Library providing binary-decimal and decimal-binary routines for IEEE doubles
Requires:   %{name}%{?_isa} = %{version}-%{release}

%description devel
Contains header files for developing applications that use the %{name}
library.

There is extensive documentation in src/double-conversion.h. Other
examples can be found in test/cctest/test-conversions.cc.

%package static
Summary:    Library providing binary-decimal and decimal-binary routines for IEEE doubles
Requires:   %{name}-devel%{?_isa} = %{version}-%{release}

%description static
Static %{name} library.

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

%build
mkdir -p build-shared
pushd build-shared
  %cmake -DBUILD_TESTING=ON ..
  make %{_smp_mflags}
popd

%if %{with static_libs}
mkdir  -p build-static
pushd build-static
  CXXFLAGS="%{optflags} -fPIC" %cmake -DBUILD_SHARED_LIBS=NO ..
  make %{_smp_mflags}
popd
%endif

%install
%if %{with static_libs}
pushd build-static
  make install DESTDIR=%{buildroot}
popd
%endif

pushd build-shared
  make install DESTDIR=%{buildroot}
popd

%check
pushd build-shared
  ctest -V
popd

%ldconfig_scriptlets

%files
%doc LICENSE README.md AUTHORS Changelog
%{_libdir}/libdouble-conversion.so.3*

%files devel
%{_libdir}/libdouble-conversion.so
%{_libdir}/cmake/%{name}
%{_includedir}/%{name}

%if %{with static_libs}
%files static
%{_libdir}/libdouble-conversion.a
%endif

%changelog
* Wed Mar 12 2025 mahailiang <mahailiang@uniontech.com> - 3.1.5-3
- Add sw_64 support

* Tue Nov  8 2022 WenlongZhang <zhangwenlong@loongson.cn> - 3.1.5-2
- Add loongarch support.

* Thu Jul 23 2020 chengzihan <chengzihan2@huawei.com> - 3.1.5-1
- Package init
