summaryrefslogtreecommitdiff
path: root/ninja.spec
blob: be8d041675eeff227964ac46b87bcca4eaa7f023 (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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#
# Conditional build:
%bcond_with	bootstrap	# do bootstrap build
%bcond_without	doc		# HTML documentation

Summary:	A small build system with a focus on speed
Summary(pl.UTF-8):	Mały system budowania ukierunkowany na szybkość
Name:		ninja
Version:	1.10.0
Release:	1
License:	Apache v2.0
Group:		Development/Tools
#Source0Download: https://github.com/ninja-build/ninja/releases
Source0:	https://github.com/ninja-build/ninja/archive/v%{version}/%{name}-%{version}.tar.gz
# Source0-md5:	cf1d964113a171da42a8940e7607e71a
URL:		http://ninja-build.org/
%{?with_doc:BuildRequires:	asciidoc}
BuildRequires:	libstdc++-devel
%{!?with_bootstrap:BuildRequires:	ninja >= 1.3}
BuildRequires:	python >= 2.0
BuildRequires:	rpmbuild(macros) >= 1.673
Obsoletes:	ninja-build < 1.0.0-2
BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)

%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.

%description -l pl.UTF-8
Ninja to mały system budowania ukierunkowany na szybkość. Różni się od
innych systemów budowania pod dwoma głównymi względami: jest
zaprojektowany, aby przyjmować pliki wejściowe wygenerowane przez
system budowania wyższego poziomu oraz tak, aby budowanie przebiegało
jak najszybciej.

%package doc
Summary:	Manual for Ninja build system
Summary(pl.UTF-8):	Podręcznik do systemu budowania Ninja
Group:		Documentation
BuildArch:	noarch

%description doc
Manual for Ninja build system.

%description doc -l pl.UTF-8
Podręcznik do systemu budowania Ninja.

%package -n bash-completion-%{name}
Summary:	Bash completion for ninja command
Summary(pl.UTF-8):	Bashowe dopełnianie parametrów polecenia ninja
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
Requires:	bash-completion >= 2.0
BuildArch:	noarch

%description -n bash-completion-%{name}
Bash completion for ninja command.

%description -n bash-completion-%{name} -l pl.UTF-8
Bashowe dopełnianie parametrów polecenia ninja.

%package -n zsh-completion-%{name}
Summary:	zsh completion for ninja command
Summary(pl.UTF-8):	Dopełnianie parametrów polecenia ninja dla powłoki zsh
Group:		Applications/Shells
Requires:	%{name} = %{version}-%{release}
Requires:	zsh
BuildArch:	noarch

%description -n zsh-completion-%{name}
zsh completion for ninja command.

%description -n zsh-completion-%{name} -l pl.UTF-8
Dopełnianie parametrów polecenia ninja dla powłoki zsh.

%package -n emacs-ninja-mode
Summary:	Ninja mode for Emacs
Summary(pl.UTF-8):	Tryb Ninja dla Emacsa
Group:		Applications/Editors
Requires:	%{name} = %{version}-%{release}
Requires:	emacs
BuildArch:	noarch

%description -n emacs-ninja-mode
Ninja mode for Emacs.

%description -n emacs-ninja-mode -l pl.UTF-8
Tryb Ninja dla Emacsa.

%prep
%setup -q

%build
export CXX="%{__cxx}"
export CFLAGS="%{rpmcxxflags} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"

./configure.py \
	%{?with_bootstrap:--bootstrap} \
	--verbose

%if %{without bootstrap}
ninja -v
%endif

# build manual
%{?with_doc:./ninja -v manual}

%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_bindir}

install -p %{name} $RPM_BUILD_ROOT%{_bindir}
# TODO: Install ninja_syntax.py as python module?

install -d $RPM_BUILD_ROOT%{bash_compdir}
cp -p misc/bash-completion $RPM_BUILD_ROOT%{bash_compdir}/%{name}

install -d $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
install -p misc/ninja-mode.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp/ninja-mode.el

install -d $RPM_BUILD_ROOT%{_datadir}/zsh/site-functions
install -p misc/zsh-completion $RPM_BUILD_ROOT%{_datadir}/zsh/site-functions/_ninja

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(644,root,root,755)
%doc README.md
%attr(755,root,root) %{_bindir}/ninja

%if %{with doc}
%files doc
%defattr(644,root,root,755)
%doc doc/manual.html
%endif

%files -n bash-completion-%{name}
%defattr(644,root,root,755)
%{bash_compdir}/ninja

%files -n zsh-completion-%{name}
%defattr(644,root,root,755)
%{_datadir}/zsh/site-functions/_ninja

%files -n emacs-ninja-mode
%defattr(644,root,root,755)
%{_datadir}/emacs/site-lisp/ninja-mode.el