#
# spec file for package Bear
#
# Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
# This file is under the GNU GENERAL PUBLIC LICENSE Version 3.
#

%bcond_with tests
Name:           Bear
Version:        3.0.20
Release:        2
Summary:        Tool to generate compilation database for clang tooling
License:        GPL-3.0-or-later
URL:            https://github.com/rizsotto/Bear
Source:         %{name}-%{version}.tar.gz
BuildRequires:  bash-completion
BuildRequires:  gcc, gcc-c++, make
BuildRequires:  protobuf-devel, grpc-devel, grpc-plugins
BuildRequires:  c-ares-devel
BuildRequires:  glibc-devel, glibc-debuginfo
BuildRequires:  cmake
BuildRequires:  pkgconfig(absl_synchronization)
BuildRequires:  pkgconfig(grpc)
BuildRequires:  pkgconfig(grpc++) >= 1.26
BuildRequires:  pkgconfig(protobuf) >= 3.11
%if %{with tests}
BuildRequires:  python
BuildRequires:  python3-lit
BuildRequires:  python3-setuptools
# one of the tests requires /usr/bin/more
BuildRequires:  util-linux
# additional binaries for specific tests
BuildRequires:  gcc-fortran
BuildRequires:  fakeroot
BuildRequires:  valgrind
# the fakeroot test requires xargs
BuildRequires:  findutils
%endif

Patch1: 0001-change-external-project-to-local-package.patch
Patch2: 0002-Rebuild-when-add-option-failed.patch


%description
Bear is a tool to generate compilation database for clang tooling.

One way to get compilation database is to use cmake as build tool. When the
project compiles with no cmake, but another build system, there is no free json
file. Bear is a tool to generate such file during the build process.

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

%build
BEAR_MFLAGS_JOBS="%{?_smp_mflags}"

mkdir build
cd build

%cmake .. \
  -DDEPEND_PATH=%{_sourcedir} \
  -DCMAKE_INSTALL_PREFIX=%{_prefix} \
%if %{with tests}
  -DENABLE_UNIT_TESTS=ON \
  -DENABLE_FUNC_TESTS=ON
%else
  -DENABLE_UNIT_TESTS=OFF \
  -DENABLE_FUNC_TESTS=OFF
%endif

make $BEAR_MFLAGS_JOBS

%install
pushd build
make DESTDIR=%{buildroot} install
# Let RPM install it correctly
rm -rf %{buildroot}%{_datadir}/doc
popd

%files
%license COPYING
%doc README.md
%{_bindir}/bear
%{_bindir}/citnames
%{_bindir}/intercept
%{_mandir}/man1/bear.1*
%{_mandir}/man1/citnames.1*
%{_mandir}/man1/intercept.1*
%{_libdir}/bear/

%changelog
* Thu Dec 01 2022 zhaowenyu <804544223@qq.com> - 3.0.20-2
- Type:SPEC
- ID:NA
- SUG:NA
- DESC:Rebuild when add option failed

* Wed Nov 16 2022 zhaowenyu <804544223@qq.com> - 3.0.20-1
- Type:Init
- ID:NA
- SUG:NA
- DESC:Init Bear 3.0.20 repository
