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
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
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.27/%{name}-%{version}.tar.gz
25 # Source0-md5: 7228f5fcc8a858fdeac27e29bda0c144
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 Patch5: disable-completness-check.patch
32 Patch6: %{name}-zlib.patch
34 URL: https://cmake.org/
35 # system zlib,bzip2,xz,zstd used only when without system libarchive
37 BuildRequires: Qt5Core-devel >= 5.0
38 BuildRequires: Qt5Gui-devel >= 5.0
39 BuildRequires: Qt5Widgets-devel >= 5.0
41 BuildRequires: automake
42 BuildRequires: cppdap-devel
43 BuildRequires: curl-devel
44 BuildRequires: expat-devel
45 BuildRequires: jsoncpp-devel >= 1.6.2-2
46 BuildRequires: libarchive-devel >= 3.3.3
47 %ifnarch %arch_with_atomics64
48 BuildRequires: libatomic-devel
50 BuildRequires: libstdc++-devel >= 6:4.7
51 BuildRequires: libuv-devel >= 1.28.0
52 BuildRequires: ncurses-devel > 5.9-3
53 BuildRequires: ncurses-ext-devel > 5.9-3
54 BuildRequires: nghttp2-devel
55 %{?with_gui:BuildRequires: qt5-build >= 5.0}
56 %{?with_gui:BuildRequires: qt5-qmake >= 5.0}
57 BuildRequires: rhash-devel
58 BuildRequires: rpm-build >= 4.6
59 BuildRequires: rpmbuild(macros) >= 2.025
60 %{?with_doc:BuildRequires: sphinx-pdg}
61 BuildRequires: xz-devel
62 BuildRequires: zlib-devel
63 BuildRequires: zstd-devel
64 Requires: filesystem >= 3.0-52
65 Requires: libarchive >= 3.3.3
66 Requires: libuv >= 1.28.0
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
70 CMake is used to control the software compilation process using simple
71 platform and compiler independent configuration files. CMake generates
72 native makefiles and workspaces that can be used in the compiler
73 environment of your choice. CMake is quite sophisticated: it is
74 possible to support complex environments requiring system
75 configuration, pre-processor generation, code generation, and template
78 %description -l pl.UTF-8
79 CMake służy do sterowania procesem kompilacji oprogramowania przy
80 użyciu prostych plików konfiguracyjnych niezależnych od platformy i
81 kompilatora. CMake generuje natywne pliki makefile i workspace,
82 których można używać w wybranym środowisku kompilatora. CMake jest
83 dość wyrafinowany: może obsłużyć złożone środowiska wymagające
84 konfiguracji systemu, generowanie preprocesora, generowanie kodu i
85 dziedziczenie szablonów.
88 Summary: CMake documentation in HTML format
89 Summary(pl.UTF-8): Dokumentacja do pakietu CMake w formacie HTML
93 CMake documentation in HTML format.
95 %description doc-html -l pl.UTF-8
96 Dokumentacja do pakietu CMake w formacie HTML.
99 Summary: Qt GUI for CMake
100 Summary(pl.UTF-8): Graficzny interfejs użytkownika Qt dla CMake
101 Group: Development/Tools
102 Requires(post,postun): desktop-file-utils
103 Requires(post,postun): gtk-update-icon-cache
104 Requires: %{name} = %{version}-%{release}
105 Requires: hicolor-icon-theme
108 This package contains the Qt based GUI for CMake.
110 %description gui -l pl.UTF-8
111 Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
115 Summary: Emacs mode for cmake files
116 Summary(pl.UTF-8): Tryb Emacsa dla plików cmake'a
117 Group: Development/Tools
120 Emacs mode for cmake files.
122 %description emacs -l pl.UTF-8
123 Tryb Emacsa dla plików cmake'a.
125 %package -n bash-completion-%{name}
126 Summary: bash-completion for cmake
127 Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla cmake'a
128 Group: Applications/Shells
129 Requires: %{name} = %{version}-%{release}
130 Requires: bash-completion >= 1:2.0
133 %description -n bash-completion-%{name}
134 bash-completion for cmake.
136 %description -n bash-completion-%{name} -l pl.UTF-8
137 Bashowe dopełnianie parametrów dla cmake'a.
141 %if "%{_lib}" == "lib64"
144 %if "%{_lib}" == "libx32"
154 %{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' \
155 Modules/Compiler/XL-Fortran/cpp
157 cat > "init.cmake" <<EOF
158 SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
159 SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
160 SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
163 # cleanup backups after patching, modules are copied as-is
164 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
168 export CXX="%{__cxx}"
169 export CFLAGS="%{rpmcflags}"
170 export CXXFLAGS="%{rpmcxxflags}"
171 export LDFLAGS="%{rpmldflags}"
173 --prefix=%{_prefix} \
174 --mandir=/share/man \
175 --datadir=/share/cmake \
177 %{!?with_bootstrap:--system-libs} \
178 %{?with_gui:--qt-gui} \
179 --qt-qmake=%{_bindir}/qmake-qt5 \
180 %{?with_doc:--sphinx-html} \
181 %{?with_doc:--sphinx-man} \
182 %{?__jobs:--parallel=%{__jobs}} \
188 %{?with_tests:%{__make} test}
191 rm -rf $RPM_BUILD_ROOT
194 DESTDIR=$RPM_BUILD_ROOT
196 # just a bit more recent than packaged in vim.spec
197 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/vim
199 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
202 rm -rf $RPM_BUILD_ROOT
205 %update_desktop_database_post
206 %update_icon_cache hicolor
209 %update_desktop_database_postun
210 %update_icon_cache hicolor
213 %defattr(644,root,root,755)
214 %doc Copyright.txt README.rst *.gif
215 %attr(755,root,root) %{_bindir}/ccmake
216 %attr(755,root,root) %{_bindir}/cmake
217 %attr(755,root,root) %{_bindir}/cpack
218 %attr(755,root,root) %{_bindir}/ctest
220 %{_mandir}/man1/ccmake.1*
221 %{_mandir}/man1/cmake.1*
222 %{_mandir}/man1/cpack.1*
223 %{_mandir}/man1/ctest.1*
224 %{_mandir}/man7/cpack-generators.7*
225 %{_mandir}/man7/cmake-buildsystem.7*
226 %{_mandir}/man7/cmake-commands.7*
227 %{_mandir}/man7/cmake-compile-features.7*
228 %{_mandir}/man7/cmake-configure-log.7*
229 %{_mandir}/man7/cmake-developer.7*
230 %{_mandir}/man7/cmake-env-variables.7*
231 %{_mandir}/man7/cmake-file-api.7*
232 %{_mandir}/man7/cmake-generator-expressions.7*
233 %{_mandir}/man7/cmake-generators.7*
234 %{_mandir}/man7/cmake-language.7*
235 %{_mandir}/man7/cmake-modules.7*
236 %{_mandir}/man7/cmake-packages.7*
237 %{_mandir}/man7/cmake-policies.7*
238 %{_mandir}/man7/cmake-presets.7*
239 %{_mandir}/man7/cmake-properties.7*
240 %{_mandir}/man7/cmake-qt.7*
241 %{_mandir}/man7/cmake-server.7*
242 %{_mandir}/man7/cmake-toolchains.7*
243 %{_mandir}/man7/cmake-variables.7*
244 %{_datadir}/cmake/Help
246 # top cmake/Modules dirs belong to filesystem
247 %{_datadir}/cmake/Modules/.NoDartCoverage
248 %{_datadir}/cmake/Modules/*
249 %{_datadir}/cmake/Templates
250 %{_datadir}/cmake/include
251 %{_aclocaldir}/cmake.m4
255 %defattr(644,root,root,755)
256 %doc Utilities/Sphinx/html/*
261 %defattr(644,root,root,755)
262 %attr(755,root,root) %{_bindir}/cmake-gui
263 %{_datadir}/mime/packages/cmakecache.xml
264 %{_desktopdir}/cmake-gui.desktop
265 %{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
266 %{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
268 %{_mandir}/man1/cmake-gui.1*
273 %defattr(644,root,root,755)
274 %{_datadir}/emacs/site-lisp/cmake-mode.el
276 %files -n bash-completion-%{name}
277 %defattr(644,root,root,755)
278 %{bash_compdir}/cmake
279 %{bash_compdir}/cpack
280 %{bash_compdir}/ctest