Package ninja-build: Specfile

# Disable tests because we can not increase build limits
%def_without tests
%def_with docs

Name:           ninja-build
Version:        1.11.1
Release:        alt2

Summary:        A small build system with a focus on speed
Group:          Development/Tools
License:        Apache-2.0
URL:            https://ninja-build.org/

#VCS:           git://github.com/ninja-build/ninja.git
Source0:        %name-%version.tar
Source1:        ninja.vim
Source2:        ninja.1
Source3:        ninja.macros

BuildRequires(pre): rpm-build-python3
BuildRequires: gcc-c++
BuildRequires: re2c
%if_with docs
BuildRequires: asciidoc
BuildRequires: xsltproc
BuildRequires: docbook-style-xsl
%endif
%if_with tests
BuildRequires: libgtest-devel
%endif

%description
Ninja is a small build system with a focus on speed. It differs from
other build systems in two major respects: it is designed to have its
input files generated by a higher-level build system, and it is designed
to run builds as fast as possible.

%package -n rpm-macros-%name
Summary:   Helper macros for building RPM packages with %name
Group:     System/Configuration/Packaging
BuildArch: noarch

%description -n rpm-macros-%name
A set of RPM macros for packaging applications that use %name.

%package -n rpm-build-ninja
Summary:   Helper macros for building RPM packages using %name
Group:     System/Configuration/Packaging
Requires:  rpm-macros-%name = %EVR
Requires:  %name = %EVR
BuildArch: noarch

%description -n rpm-build-ninja
A set of RPM macros for packaging applications using %name.

%prep
%setup
# Set correct python3 executable in shebang
subst 's|#!.*python$|#!%__python3|' $(grep -Rl '#!.*python$' *)

%build
#CFLAGS="%optflags"
#export CFLAGS
./configure.py --bootstrap --verbose --debug
%if_with docs
./ninja -v manual
%endif
%if_with tests
./ninja -v ninja_test
%endif

%check
%if_with tests
# workaround possible too low default limits
ulimit -n 2048
ulimit -u 2048
./ninja_test
%endif

%install
# TODO: Install ninja_syntax.py?
install -Dpm 755 ninja %buildroot%_bindir/ninja
# Compat symlink
ln -s ninja %buildroot%_bindir/ninja-build
install -Dpm 644 misc/bash-completion %buildroot%_sysconfdir/bash_completion.d/ninja-bash-completion
install -Dpm 644 misc/zsh-completion %buildroot%_datadir/zsh/site-functions/_ninja
install -Dpm 644 misc/ninja-mode.el %buildroot%_datadir/emacs/site-lisp/ninja-mode.el
install -Dpm 644 misc/ninja.vim %buildroot%_datadir/vim/vimfiles/syntax/ninja.vim
install -Dpm 644 %SOURCE1 %buildroot%_datadir/vim/vimfiles/ftdetect/ninja.vim
install -Dpm 644 %SOURCE2 %buildroot%_man1dir/ninja.1
install -Dpm 644 %SOURCE3 %buildroot%_rpmmacrosdir/ninja-build

%files
%doc COPYING README.md %{?_with_docs:doc/manual.html}
%_bindir/ninja-build
%_bindir/ninja
%if_with docs
%_man1dir/*.1*
%endif
# bash-completion does not own this
%_sysconfdir/bash_completion.d/
# zsh does not have a -filesystem package
%_datadir/zsh/site-functions/_ninja
%_datadir/emacs/site-lisp/ninja-mode.el
%_datadir/vim/vimfiles/syntax/ninja.vim
%_datadir/vim/vimfiles/ftdetect/ninja.vim

%files -n rpm-macros-%name
%_rpmmacrosdir/%name

%files -n rpm-build-ninja

%changelog
* Fri May 12 2023 Alexey Sheplyakov <asheplyakov@altlinux.org> 1.11.1-alt2
- Simplified the bootstrap sequence.

* Wed Aug 31 2022 Andrey Cherepanov <cas@altlinux.org> 1.11.1-alt1
- New version.

* Sat May 28 2022 Andrey Cherepanov <cas@altlinux.org> 1.11.0-alt1
- New version.

* Sat Nov 28 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.2-alt1
- New version.

* Wed Aug 19 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.1-alt1
- New version.

* Mon Jun 01 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.0-alt5
- FTBFS: set correct python3 executable in shebang.

* Sun May 24 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.0-alt4
- New package rpm-build-ninja for build packages using ninja-build.

* Sat May 23 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.0-alt3
- Return rpm-macros-ninja-build as separate package.

* Tue May 12 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.0-alt2
- Package RPM macros to main package.
- Use less verbose output in %%ninja_build.
- Fix License tag according to SPDX.

* Tue Jan 28 2020 Andrey Cherepanov <cas@altlinux.org> 1.10.0-alt1
- New version.

* Fri Feb 01 2019 Andrey Cherepanov <cas@altlinux.org> 1.9.0-alt1
- New version.

* Wed Nov 15 2017 Arseny Maslennikov <arseny@altlinux.org> 1.8.2-alt2
- Add RPM macros for ninja-build.
- Add a manual page from Debian.
- Rename /usr/bin/ninja-build -> /usr/bin/ninja back.
- Clean up ninja-build.spec.
- Reflect new upstream location.

* Wed Sep 13 2017 Andrey Cherepanov <cas@altlinux.org> 1.8.2-alt1
- new version 1.8.2

* Thu Sep 07 2017 Andrey Cherepanov <cas@altlinux.org> 1.8.1-alt1
- New version

* Mon Sep 04 2017 Andrey Cherepanov <cas@altlinux.org> 1.8.0-alt1
- New version

* Mon Dec 19 2016 Andrey Cherepanov <cas@altlinux.org> 1.7.2-alt1
- new version 1.7.2

* Thu Jul 28 2016 Andrey Cherepanov <cas@altlinux.org> 1.7.1-alt1
- new version 1.7.1

* Mon Aug 03 2015 Andrey Cherepanov <cas@altlinux.org> 1.6.0-alt1
- New version

* Sat Dec 13 2014 Andrey Cherepanov <cas@altlinux.org> 1.5.3-alt1
- New version

* Sat Aug 09 2014 Andrey Cherepanov <cas@altlinux.org> 1.5.1-alt1
- New version

* Thu Apr 17 2014 Andrey Cherepanov <cas@altlinux.org> 1.4.0-alt1
- Initial build for ALT Linux (thanks Fedora for spec and vim rules)