Blob Blame History Raw
# Set to bcond_without or use --with bootstrap,
# when bootstrapping a new architecture.
%bcond_with bootstrap

Name:           ninja-build
Version:        1.10.2
Release:        3.1%{?dist}
Summary:        Small build system with a focus on speed
License:        ASL 2.0
URL:            https://ninja-build.org/
Source0:        https://github.com/ninja-build/ninja/archive/v%{version}/ninja-%{version}.tar.gz
Source1:        ninja.vim
Source2:        macros.ninja
BuildRequires:  gcc-c++
BuildRequires:  python3-devel
%if %{without bootstrap}
BuildRequires:  asciidoc
BuildRequires:  gtest-devel
%endif
BuildRequires:  re2c >= 0.11.3
%if %{without bootstrap}
Requires:       emacs-filesystem
Requires:       vim-filesystem
%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.

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

%build
%set_build_flags
%python3 configure.py --bootstrap --verbose
./ninja -v all
%if %{without bootstrap}
./ninja -v manual
%endif

%install
install -Dpm0755 ninja -t %{buildroot}%{_bindir}/
%if %{without bootstrap}
install -Dpm0644 misc/bash-completion %{buildroot}%{_datadir}/bash-completion/completions/ninja
install -Dpm0644 misc/ninja-mode.el %{buildroot}%{_datadir}/emacs/site-lisp/ninja-mode.el
install -Dpm0644 misc/ninja.vim %{buildroot}%{_datadir}/vim/vimfiles/syntax/ninja.vim
install -Dpm0644 %{S:1} %{buildroot}%{_datadir}/vim/vimfiles/ftdetect/ninja.vim
install -Dpm0644 misc/zsh-completion %{buildroot}%{_datadir}/zsh/site-functions/_ninja
install -Dpm0644 misc/ninja_syntax.py %{buildroot}%{python3_sitelib}/ninja_syntax.py
%endif
install -Dpm0644 %{S:2} %{buildroot}%{_rpmmacrodir}/macros.ninja

# Macro should not change when we are redefining bindir
sed -i -e "/^%%__ninja /s| .*$| %{_bindir}/ninja|" %{buildroot}%{_rpmmacrodir}/macros.ninja

ln -s ninja %{buildroot}%{_bindir}/ninja-build

%if %{without bootstrap}
%check
./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
%endif

%files
%license COPYING
%doc README.md
%if %{without bootstrap}
%doc doc/manual.html
%endif
%{_bindir}/ninja
%{_bindir}/ninja-build
%if %{without bootstrap}
%{_datadir}/bash-completion/completions/ninja
%{_datadir}/emacs/site-lisp/ninja-mode.el
%{_datadir}/vim/vimfiles/syntax/ninja.vim
%{_datadir}/vim/vimfiles/ftdetect/ninja.vim
# zsh does not have a -filesystem package
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_ninja
%pycached %{python3_sitelib}/ninja_syntax.py
%endif
%{_rpmmacrodir}/macros.ninja

%changelog
* Tue Oct 19 2021 Justin Vreeland <jvreeland@twitter.com> - 1.10.2-3.1
- Bump/Add extraver for aarch64 rebuild

* Fri Mar 05 2021 Igor Raits <ignatenkobrain@fedoraproject.org> - 1.10.2-3
- import ninja-build-1.10.2-3.fc35