File gecode.spec of Package gecode

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


%define sonum 51

Name:           gecode
Version:        6.3.0~git20211208.6b09bea4
Release:        0
Group:          Productivity/Scientific/Math
Summary:        C++ toolkit for developing constraint-based systems
License:        MIT
URL:            https://www.gecode.org/
# Source:         https://github.com/Gecode/gecode/archive/release-%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source:         %{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM - https://github.com/Gecode/gecode/pull/147
Patch0:         0001-Extract-soversion-from-configure.ac-and-set-as-cmake.patch
# PATCH-FIX-UPSTREAM - https://github.com/Gecode/gecode/pull/150
Patch1:         0001-Send-DONE-message-before-disconnecting.patch
BuildRequires:  cmake
BuildRequires:  gcc-c++

%description
Gecode is an open source C++ toolkit for developing constraint-based
systems and applications. Gecode provides a constraint solver with
state-of-the-art performance while being modular and extensible.

%package -n libgecode%{sonum}
Summary:        C++ toolkit for developing constraint-based systems
Group:          System/Libraries

%description -n libgecode%{sonum}
Gecode is an open source C++ toolkit for developing constraint-based
systems and applications. Gecode provides a constraint solver with
state-of-the-art performance while being modular and extensible.

%package minizinc
Summary:        Gecode minizinc solver
Group:          Productivity/Scientific/Math
Requires:       minizinc
Provides:       minizinc-solver

%description minizinc
Minizinc solver using the Gecode toolkit.

%package devel
Summary:        C++ toolkit for developing constraint-based systems
Group:          Development/Libraries/C and C++
Requires:       libgecode%{sonum} = %{version}

%description devel
Gecode is an open source C++ toolkit for developing constraint-based
systems.

%prep
%autosetup -p1
chmod -x LICENSE

%build
%cmake
%cmake_build
%cmake_build gecode-test && ln -s ./bin/gecode-test ./

%install
%cmake_install
chmod +x %{buildroot}%{_bindir}/*

%check
%ctest

%post -n libgecode%{sonum} -p /sbin/ldconfig
%postun -n libgecode%{sonum} -p /sbin/ldconfig

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

%files -n libgecode%{sonum}
%license LICENSE
%{_libdir}/libgecode*.so.%{sonum}
%exclude %{_libdir}/libgecodeflatzinc.so.%{sonum}

%files minizinc
%{_bindir}/fzn-gecode
%{_bindir}/mzn-gecode
%{_libdir}/libgecodeflatzinc.so.%{sonum}
%{_datadir}/minizinc

%files devel
%{_includedir}/gecode
%{_libdir}/libgecode*.so

%changelog
openSUSE Build Service is sponsored by