File qcdloop.spec of Package qcdloop

#
# spec file for package qcdloop
#
# Copyright (c) 2025 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/
#


%global shlib libqcdloop2
Name:           qcdloop
Version:        2.1.0
Release:        0
Summary:        An object-oriented one-loop scalar Feynman integrals framework
License:        GPL-3.0-only
URL:            https://qcdloop.web.cern.ch/qcdloop/
Source:         https://github.com/scarrazza/qcdloop/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM qcdloop-soversion.patch badshah400@gmail.com -- Implement so versioning
Patch1:         qcdloop-soversion.patch
# PATCH-FIX-UPSTREAM qcdloop-fix-conflicting-types.patch badshah400@gmail.com -- Explicitly cast a variable type to ensure consistency across build archs; fixes build failures for i586
Patch2:         qcdloop-fix-conflicting-types.patch
BuildRequires:  cmake
BuildRequires:  gcc-c++
BuildRequires:  gcc-fortran
BuildRequires:  pkgconfig
ExcludeArch:    ppc %{power64}

%description
QCDLoop is a library of one-loop scalar Feynman integrals, evaluated close to
four dimensions. QCDLoop can compute one-loop integrals for tadpole, bubble,
triangle and box topologies. See  arXiv:0712.1851 and arXiv:1605.03181 for
references.

%package -n %{shlib}
Summary:        Shared library for QCDLoop - a one-loop scalar Feynman integrals framework

%description -n %{shlib}
QCDLoop is a library of one-loop scalar Feynman integrals, evaluated close to
four dimensions. This package provides the shared library for QCDLoop.

%package devel
Summary:        Development headers and sources for QCDLoop
Requires:       %{shlib} = %{version}

%description devel
QCDLoop is a library of one-loop scalar Feynman integrals, evaluated close to
four dimensions. This package provides headers and sources for QCDLoop needed
for developing software against QCDLoop.

%prep
%autosetup -p1
sed -i "1{s|#! %{_bindir}/env bash|#! /bin/bash|}"  src/qcdloop-config.in

%build
%cmake \
%ifarch %{ix86} x86_64
  -DQUADMATH_LIBRARY=quadmath \
  -DENABLE_EXAMPLES:BOOL=ON \
%endif
  -DENABLE_FORTRAN_WRAPPER:BOOL=ON \
  %{nil}
%cmake_build

%install
%cmake_install

%ifarch %{ix86} x86_64
%check
pushd %__builddir
for exe in ./cache_test ./cmass_test ./trigger_test;
do
  exec ${exe}
done
popd
%endif

%ldconfig_scriptlets -n %{shlib}

%files -n %{shlib}
%{_libdir}/libqcdloop.so.*

%files devel
%license LICENSE
%doc README.md
%{_bindir}/qcdloop-config
%{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/%{name}/

%changelog
openSUSE Build Service is sponsored by