summaryrefslogtreecommitdiff
path: root/ninja-build.spec
blob: c650c85afd6c7c776e3516d052e108b55c89c6ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Name:           ninja-build
Version:        1.12.1
Release:        1
Summary:        A small build system with a focus on speed
License:        Apache-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++ python3-devel asciidoc gtest-devel cmake
Requires:       emacs-filesystem vim-filesystem

%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 python3-ninja
Summary:        Python metadata for packages depending on ninja
Requires:       %{name} = %{version}-%{release}
BuildArch:      noarch

%description -n python3-ninja
Package provides metadata only for Python packages depending on ninja.
This is to make automatic dependency resolution work. The package is NOT
using anything from the PyPI package called ninja.

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

%build
%set_build_flags
%{__python3} configure.py --bootstrap --verbose

./ninja -v all
./ninja -v manual

# For testing with the ninja we just built, we need to add current
# directory to PATH, otherwise CMake fails to find the ninja binary.
PATH=$(pwd):"$PATH" %cmake \
  -G Ninja \
  -B cmake-build \
  -DCMAKE_BUILD_TYPE=Release
./ninja -C cmake-build ninja_test

# Provide Python metadata
%global ninja_distinfo ninja-%{version}.dist-info
mkdir %{ninja_distinfo}
cat > %{ninja_distinfo}/METADATA << EOF
Metadata-Version: 2.1
Name: ninja
Version: %{version}
Summary: %{summary}
Description-Content-Type: text/plain

Metadata only package for automatic dependency resolution in the RPM
ecosystem. This package is separate from the PyPI package called ninja.
EOF
echo rpm > %{ninja_distinfo}/INSTALLER

%install
install -Dpm0755 ninja -t %{buildroot}%{_bindir}/
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
install -Dpm0644 %{S:2} %{buildroot}%{rpmmacrodir}/macros.ninja

sed -i -e "/^%%__ninja /s| .*$| %{_bindir}/ninja|" %{buildroot}%{rpmmacrodir}/macros.ninja

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

# Install Python metadata
cp -a %{ninja_distinfo} %{buildroot}%{python3_sitelib}

%check
./cmake-build/ninja_test

%files
%license COPYING
%doc README.md doc/manual.html
%{_bindir}/ninja
%{_bindir}/ninja-build
%{_datadir}/bash-completion/completions/ninja
%{_datadir}/emacs/site-lisp/ninja-mode.el
%{_datadir}/vim/vimfiles/syntax/ninja.vim
%{_datadir}/vim/vimfiles/ftdetect/ninja.vim
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/site-functions
%{_datadir}/zsh/site-functions/_ninja
%{python3_sitelib}/ninja_syntax.py
%{python3_sitelib}/__pycache__/ninja_syntax*.pyc
%{rpmmacrodir}/macros.ninja

%files -n python3-ninja
%{python3_sitelib}/%{ninja_distinfo}

%changelog
* Thu Jul 11 2024 Funda Wang <fundawang@yeah.net> - 1.12.1-1
- upgrade version to 1.12.1
- Add python3-ninja sub package providing metadata for Python packages
  depending on ninja to facilitate automatic dependency resolution.

* Wed Nov 23 2022 hua <dchang@zhixundn.com> - 1.11.1-1
- upgrade version to 1.11.1

* Wed Jun 15 2022 duyiwei <duyiwei@kylinos.cn> - 1.10.2-1
- upgrade version to 1.10.2

* Tue Oct 27 2020 Ge Wang <wangge20@huawei.com> - 1.8.2-9
- remove useless buildrequires of python2-devel

* Fri Jan 17 2020 zhouyihang <zhouyihang1@huawei.com> - 1.8.2-8
- remove useless file and update invalid source address

* Sun Jan 12 2020 chengquan <chengquan3@huawei.com> - 1.8.2-7
- remove useless buildrequires of software

* Mon Nov 04 2019 huzhiyu <huzhiyu1@huawei.com> - 1.8.2-6
- Package init