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