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
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
17 Summary: Cross-platform, open-source make system
18 Summary(pl.UTF-8): Wieloplatformowy system make o otwartych źródłach
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
34 BuildRequires: Qt5Core-devel >= 5.0
35 BuildRequires: Qt5Gui-devel >= 5.0
36 BuildRequires: Qt5Widgets-devel >= 5.0
38 BuildRequires: curl-devel
39 BuildRequires: expat-devel
40 BuildRequires: jsoncpp-devel >= 1.6.2-2
41 BuildRequires: libarchive-devel >= 3.3.3
42 BuildRequires: libstdc++-devel
43 BuildRequires: libuv-devel >= 1.10.0
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: rpm-build >= 4.6
50 BuildRequires: rpmbuild(macros) >= 1.167
51 %{?with_doc:BuildRequires: sphinx-pdg}
52 BuildRequires: zlib-devel
53 Requires: filesystem >= 3.0-52
54 Requires: libarchive >= 3.3.3
55 Requires: libuv >= 1.10.0
56 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
59 CMake is used to control the software compilation process using simple
60 platform and compiler independent configuration files. CMake generates
61 native makefiles and workspaces that can be used in the compiler
62 environment of your choice. CMake is quite sophisticated: it is
63 possible to support complex environments requiring system
64 configuration, pre-processor generation, code generation, and template
67 %description -l pl.UTF-8
68 CMake służy do sterowania procesem kompilacji oprogramowania przy
69 użyciu prostych plików konfiguracyjnych niezależnych od platformy i
70 kompilatora. CMake generuje natywne pliki makefile i workspace,
71 których można używać w wybranym środowisku kompilatora. CMake jest
72 dość wyrafinowany: może obsłużyć złożone środowiska wymagające
73 konfiguracji systemu, generowanie preprocesora, generowanie kodu i
74 dziedziczenie szablonów.
77 Summary: CMake documentation in HTML format
78 Summary(pl.UTF-8): Dokumentacja do pakietu CMake w formacie HTML
82 CMake documentation in HTML format.
84 %description doc-html -l pl.UTF-8
85 Dokumentacja do pakietu CMake w formacie HTML.
88 Summary: Qt GUI for CMake
89 Summary(pl.UTF-8): Graficzny interfejs użytkownika Qt dla CMake
90 Group: Development/Tools
91 Requires: %{name} = %{version}-%{release}
94 This package contains the Qt based GUI for CMake.
96 %description gui -l pl.UTF-8
97 Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
101 Summary: Emacs mode for cmake files
102 Summary(pl.UTF-8): Tryb Emacsa dla plików cmake'a
103 Group: Development/Tools
106 Emacs mode for cmake files.
108 %description emacs -l pl.UTF-8
109 Tryb Emacsa dla plików cmake'a.
111 %package -n bash-completion-%{name}
112 Summary: bash-completion for cmake
113 Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla cmake'a
114 Group: Applications/Shells
115 Requires: %{name} = %{version}-%{release}
116 Requires: bash-completion >= 2.0
119 %description -n bash-completion-%{name}
120 bash-completion for cmake.
122 %description -n bash-completion-%{name} -l pl.UTF-8
123 Bashowe dopełnianie parametrów dla cmake'a.
127 %if "%{_lib}" == "lib64"
130 %if "%{_lib}" == "libx32"
137 %{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
138 Modules/Compiler/XL-Fortran/cpp
140 cat > "init.cmake" <<EOF
141 SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
142 SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
143 SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
146 # cleanup backups after patching, modules are copied as-is
147 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
151 export CXX="%{__cxx}"
152 export CFLAGS="%{rpmcflags}"
153 export CXXFLAGS="%{rpmcxxflags}"
154 export LDFLAGS="%{rpmldflags}"
156 --prefix=%{_prefix} \
157 --mandir=/share/man \
158 --datadir=/share/cmake \
160 %{!?with_bootstrap:--system-libs} \
161 %{?with_gui:--qt-gui} \
162 --qt-qmake=%{_bindir}/qmake-qt5 \
163 %{?with_doc:--sphinx-html} \
164 %{?with_doc:--sphinx-man} \
165 %{?__jobs:--parallel=%{__jobs}} \
171 %{?with_tests:%{__make} test}
174 rm -rf $RPM_BUILD_ROOT
177 DESTDIR=$RPM_BUILD_ROOT
179 # just a bit more recent than packaged in vim.spec
180 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/vim
182 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
185 rm -rf $RPM_BUILD_ROOT
188 %defattr(644,root,root,755)
189 %doc Copyright.txt README.rst *.gif
190 %attr(755,root,root) %{_bindir}/ccmake
191 %attr(755,root,root) %{_bindir}/cmake
192 %attr(755,root,root) %{_bindir}/cpack
193 %attr(755,root,root) %{_bindir}/ctest
195 %{_mandir}/man1/ccmake.1*
196 %{_mandir}/man1/cmake.1*
197 %{_mandir}/man1/cpack.1*
198 %{_mandir}/man1/ctest.1*
199 %{_mandir}/man7/cpack-generators.7*
200 %{_mandir}/man7/cmake-buildsystem.7*
201 %{_mandir}/man7/cmake-commands.7*
202 %{_mandir}/man7/cmake-compile-features.7*
203 %{_mandir}/man7/cmake-developer.7*
204 %{_mandir}/man7/cmake-env-variables.7*
205 %{_mandir}/man7/cmake-file-api.7*
206 %{_mandir}/man7/cmake-generator-expressions.7*
207 %{_mandir}/man7/cmake-generators.7*
208 %{_mandir}/man7/cmake-language.7*
209 %{_mandir}/man7/cmake-modules.7*
210 %{_mandir}/man7/cmake-packages.7*
211 %{_mandir}/man7/cmake-policies.7*
212 %{_mandir}/man7/cmake-presets.7*
213 %{_mandir}/man7/cmake-properties.7*
214 %{_mandir}/man7/cmake-qt.7*
215 %{_mandir}/man7/cmake-server.7*
216 %{_mandir}/man7/cmake-toolchains.7*
217 %{_mandir}/man7/cmake-variables.7*
218 %{_datadir}/cmake/Help
220 # top cmake/Modules dirs belong to filesystem
221 %{_datadir}/cmake/Modules/.NoDartCoverage
222 %{_datadir}/cmake/Modules/*
223 %{_datadir}/cmake/Templates
224 %{_datadir}/cmake/include
225 %{_aclocaldir}/cmake.m4
229 %defattr(644,root,root,755)
230 %doc Utilities/Sphinx/html/*
235 %defattr(644,root,root,755)
236 %attr(755,root,root) %{_bindir}/cmake-gui
237 %{_datadir}/mime/packages/cmakecache.xml
238 %{_desktopdir}/cmake-gui.desktop
239 %{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
240 %{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
242 %{_mandir}/man1/cmake-gui.1*
247 %defattr(644,root,root,755)
248 %{_datadir}/emacs/site-lisp/cmake-mode.el
250 %files -n bash-completion-%{name}
251 %defattr(644,root,root,755)
252 %{bash_compdir}/cmake
253 %{bash_compdir}/cpack
254 %{bash_compdir}/ctest