]> git.pld-linux.org Git - packages/cmake.git/blob - cmake.spec
enable parallel build in bootstrap
[packages/cmake.git] / cmake.spec
1 # TODO:
2 # - system kwiml?
3 # - make lib64/libx32 patch changes applicable everywhere
4 # - any valid CMAKE_BUILD_TYPE causes overriding of our optflags
5 #   (and default non-verbose makefiles are hiding it!)
6 # - rpmldflags/rpmcppflags are not passed through %%cmake macro at all
7 #   (is there any standard way???)
8 # - FindJNI.cmake module is a PoS full of random incorrect paths,
9 #   needs lib64/libx32 awareness
10 #
11 # Conditional build:
12 %bcond_with     bootstrap       # use internal versions of some libraries
13 %bcond_without  gui             # don't build gui package
14 %bcond_with     tests           # perform "make test"
15 %bcond_without  doc             # don't build documentation
16
17 Summary:        Cross-platform, open-source make system
18 Summary(pl.UTF-8):      Wieloplatformowy system make o otwartych źródłach
19 Name:           cmake
20 Version:        3.22.2
21 Release:        1
22 License:        BSD
23 Group:          Development/Building
24 Source0:        https://cmake.org/files/v3.22/%{name}-%{version}.tar.gz
25 # Source0-md5:  f96b91224aa14b09565325b51d60af43
26 Patch0:         %{name}-lib64.patch
27 Patch1:         %{name}-libx32.patch
28 Patch2:         %{name}-jni.patch
29 Patch3:         %{name}-findruby.patch
30 Patch4:         %{name}-findruby2.patch
31 URL:            https://cmake.org/
32 # system zlib,bzip2,xz,zstd used only when without system libarchive
33 %if %{with gui}
34 BuildRequires:  Qt5Core-devel >= 5.0
35 BuildRequires:  Qt5Gui-devel >= 5.0
36 BuildRequires:  Qt5Widgets-devel >= 5.0
37 %endif
38 BuildRequires:  curl-devel
39 BuildRequires:  expat-devel
40 BuildRequires:  jsoncpp-devel >= 1.6.2-2
41 BuildRequires:  libarchive-devel
42 BuildRequires:  libstdc++-devel
43 BuildRequires:  libuv-devel
44 BuildRequires:  ncurses-devel > 5.9-3
45 BuildRequires:  ncurses-ext-devel > 5.9-3
46 %{?with_gui:BuildRequires:      qt5-build >= 5.0}
47 %{?with_gui:BuildRequires:      qt5-qmake >= 5.0}
48 BuildRequires:  rhash-devel
49 BuildRequires:  rpmbuild(macros) >= 1.167
50 %{?with_doc:BuildRequires:      sphinx-pdg}
51 BuildRequires:  zlib-devel
52 Requires:       filesystem >= 3.0-52
53 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
54
55 %description
56 CMake is used to control the software compilation process using simple
57 platform and compiler independent configuration files. CMake generates
58 native makefiles and workspaces that can be used in the compiler
59 environment of your choice. CMake is quite sophisticated: it is
60 possible to support complex environments requiring system
61 configuration, pre-processor generation, code generation, and template
62 instantiation.
63
64 %description -l pl.UTF-8
65 CMake służy do sterowania procesem kompilacji oprogramowania przy
66 użyciu prostych plików konfiguracyjnych niezależnych od platformy i
67 kompilatora. CMake generuje natywne pliki makefile i workspace,
68 których można używać w wybranym środowisku kompilatora. CMake jest
69 dość wyrafinowany: może obsłużyć złożone środowiska wymagające
70 konfiguracji systemu, generowanie preprocesora, generowanie kodu i
71 dziedziczenie szablonów.
72
73 %package doc-html
74 Summary:        CMake documentation in HTML format
75 Summary(pl.UTF-8):      Dokumentacja do pakietu CMake w formacie HTML
76 Group:          Documentation
77
78 %description doc-html
79 CMake documentation in HTML format.
80
81 %description doc-html -l pl.UTF-8
82 Dokumentacja do pakietu CMake w formacie HTML.
83
84 %package gui
85 Summary:        Qt GUI for CMake
86 Summary(pl.UTF-8):      Graficzny interfejs użytkownika Qt dla CMake
87 Group:          Development/Tools
88 Requires:       %{name} = %{version}-%{release}
89
90 %description gui
91 This package contains the Qt based GUI for CMake.
92
93 %description gui -l pl.UTF-8
94 Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
95 CMake.
96
97 %package emacs
98 Summary:        Emacs mode for cmake files
99 Summary(pl.UTF-8):      Tryb Emacsa dla plików cmake'a
100 Group:          Development/Tools
101
102 %description emacs
103 Emacs mode for cmake files.
104
105 %description emacs -l pl.UTF-8
106 Tryb Emacsa dla plików cmake'a.
107
108 %package -n bash-completion-%{name}
109 Summary:        bash-completion for cmake
110 Summary(pl.UTF-8):      Bashowe dopełnianie parametrów dla cmake'a
111 Group:          Applications/Shells
112 Requires:       %{name} = %{version}-%{release}
113 Requires:       bash-completion >= 2.0
114 BuildArch:      noarch
115
116 %description -n bash-completion-%{name}
117 bash-completion for cmake.
118
119 %description -n bash-completion-%{name} -l pl.UTF-8
120 Bashowe dopełnianie parametrów dla cmake'a.
121
122 %prep
123 %setup -q
124 %if "%{_lib}" == "lib64"
125 %patch0 -p1
126 %endif
127 %if "%{_lib}" == "libx32"
128 %patch1 -p1
129 %endif
130 %patch2 -p1
131 %patch3 -p1
132 %patch4 -p1
133
134 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
135       Modules/Compiler/XL-Fortran/cpp
136
137 cat > "init.cmake" <<EOF
138 SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
139 SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
140 SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
141 EOF
142
143 # cleanup backups after patching, modules are copied as-is
144 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
145
146 %build
147 export CC="%{__cc}"
148 export CXX="%{__cxx}"
149 export CFLAGS="%{rpmcflags}"
150 export CXXFLAGS="%{rpmcxxflags}"
151 export LDFLAGS="%{rpmldflags}"
152 ./bootstrap \
153         --prefix=%{_prefix} \
154         --mandir=/share/man \
155         --datadir=/share/cmake \
156         --init=init.cmake \
157         %{!?with_bootstrap:--system-libs} \
158         %{?with_gui:--qt-gui} \
159         --qt-qmake=%{_bindir}/qmake-qt5 \
160         %{?with_doc:--sphinx-html} \
161         %{?with_doc:--sphinx-man} \
162         %{?__jobs:--parallel=%{__jobs}} \
163         --verbose
164
165 %{__make} \
166         VERBOSE=1
167
168 %{?with_tests:%{__make} test}
169
170 %install
171 rm -rf $RPM_BUILD_ROOT
172
173 %{__make} install \
174         DESTDIR=$RPM_BUILD_ROOT
175
176 # just a bit more recent than packaged in vim.spec
177 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/vim
178 # packaged as %doc
179 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
180
181 %clean
182 rm -rf $RPM_BUILD_ROOT
183
184 %files
185 %defattr(644,root,root,755)
186 %doc Copyright.txt README.rst *.gif
187 %attr(755,root,root) %{_bindir}/ccmake
188 %attr(755,root,root) %{_bindir}/cmake
189 %attr(755,root,root) %{_bindir}/cpack
190 %attr(755,root,root) %{_bindir}/ctest
191 %if %{with doc}
192 %{_mandir}/man1/ccmake.1*
193 %{_mandir}/man1/cmake.1*
194 %{_mandir}/man1/cpack.1*
195 %{_mandir}/man1/ctest.1*
196 %{_mandir}/man7/cpack-generators.7*
197 %{_mandir}/man7/cmake-buildsystem.7*
198 %{_mandir}/man7/cmake-commands.7*
199 %{_mandir}/man7/cmake-compile-features.7*
200 %{_mandir}/man7/cmake-developer.7*
201 %{_mandir}/man7/cmake-env-variables.7*
202 %{_mandir}/man7/cmake-file-api.7*
203 %{_mandir}/man7/cmake-generator-expressions.7*
204 %{_mandir}/man7/cmake-generators.7*
205 %{_mandir}/man7/cmake-language.7*
206 %{_mandir}/man7/cmake-modules.7*
207 %{_mandir}/man7/cmake-packages.7*
208 %{_mandir}/man7/cmake-policies.7*
209 %{_mandir}/man7/cmake-presets.7*
210 %{_mandir}/man7/cmake-properties.7*
211 %{_mandir}/man7/cmake-qt.7*
212 %{_mandir}/man7/cmake-server.7*
213 %{_mandir}/man7/cmake-toolchains.7*
214 %{_mandir}/man7/cmake-variables.7*
215 %{_datadir}/cmake/Help
216 %endif
217 # top cmake/Modules dirs belong to filesystem
218 %{_datadir}/cmake/Modules/.NoDartCoverage
219 %{_datadir}/cmake/Modules/*
220 %{_datadir}/cmake/Templates
221 %{_datadir}/cmake/include
222 %{_aclocaldir}/cmake.m4
223
224 %if %{with doc}
225 %files doc-html
226 %defattr(644,root,root,755)
227 %doc Utilities/Sphinx/html/*
228 %endif
229
230 %if %{with gui}
231 %files gui
232 %defattr(644,root,root,755)
233 %attr(755,root,root) %{_bindir}/cmake-gui
234 %{_datadir}/mime/packages/cmakecache.xml
235 %{_desktopdir}/cmake-gui.desktop
236 %{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
237 %{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
238 %if %{with doc}
239 %{_mandir}/man1/cmake-gui.1*
240 %endif
241 %endif
242
243 %files emacs
244 %defattr(644,root,root,755)
245 %{_datadir}/emacs/site-lisp/cmake-mode.el
246
247 %files -n bash-completion-%{name}
248 %defattr(644,root,root,755)
249 %{bash_compdir}/cmake
250 %{bash_compdir}/cpack
251 %{bash_compdir}/ctest
This page took 0.053614 seconds and 4 git commands to generate.