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