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.17/%{name}-%{version}.tar.gz
25 # Source0-md5: fa62a3e1a736213f1d38dbe723550484
26 Patch0: %{name}-lib64.patch
27 Patch1: %{name}-libx32.patch
28 Patch2: %{name}-helpers.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
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)
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
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.
74 Summary: CMake documentation in HTML format
75 Summary(pl.UTF-8): Dokumentacja do pakietu CMake w formacie HTML
79 CMake documentation in HTML format.
81 %description doc-html -l pl.UTF-8
82 Dokumentacja do pakietu CMake w formacie HTML.
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}
91 This package contains the Qt based GUI for CMake.
93 %description gui -l pl.UTF-8
94 Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
98 Summary: Emacs mode for cmake files
99 Summary(pl.UTF-8): Tryb Emacsa dla plików cmake'a
100 Group: Development/Tools
103 Emacs mode for cmake files.
105 %description emacs -l pl.UTF-8
106 Tryb Emacsa dla plików cmake'a.
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
116 %description -n bash-completion-%{name}
117 bash-completion for cmake.
119 %description -n bash-completion-%{name} -l pl.UTF-8
120 Bashowe dopełnianie parametrów dla cmake'a.
124 %if "%{_lib}" == "lib64"
127 %if "%{_lib}" == "libx32"
134 cat > "init.cmake" <<EOF
135 SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
136 SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
137 SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
140 # cleanup backups after patching, modules are copied as-is
141 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
145 export CXX="%{__cxx}"
146 export CFLAGS="%{rpmcflags}"
147 export CXXFLAGS="%{rpmcxxflags}"
148 export LDFLAGS="%{rpmldflags}"
150 --prefix=%{_prefix} \
151 --mandir=/share/man \
152 --datadir=/share/cmake \
154 %{!?with_bootstrap:--system-libs} \
155 %{?with_gui:--qt-gui} \
156 --qt-qmake=%{_bindir}/qmake-qt5 \
157 %{?with_doc:--sphinx-html} \
158 %{?with_doc:--sphinx-man} \
164 %{?with_tests:%{__make} test}
167 rm -rf $RPM_BUILD_ROOT
169 DESTDIR=$RPM_BUILD_ROOT
171 %{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
174 rm -rf $RPM_BUILD_ROOT
177 %defattr(644,root,root,755)
178 %doc Copyright.txt README.rst *.gif
179 %attr(755,root,root) %{_bindir}/ccmake
180 %attr(755,root,root) %{_bindir}/cmake
181 %attr(755,root,root) %{_bindir}/cpack
182 %attr(755,root,root) %{_bindir}/ctest
184 %{_mandir}/man1/ccmake.1*
185 %{_mandir}/man1/cmake.1*
186 %{_mandir}/man1/cpack.1*
187 %{_mandir}/man1/ctest.1*
188 %{_mandir}/man7/cpack-generators.7*
189 %{_mandir}/man7/cmake-buildsystem.7*
190 %{_mandir}/man7/cmake-commands.7*
191 %{_mandir}/man7/cmake-compile-features.7*
192 %{_mandir}/man7/cmake-developer.7*
193 %{_mandir}/man7/cmake-env-variables.7*
194 %{_mandir}/man7/cmake-file-api.7*
195 %{_mandir}/man7/cmake-generator-expressions.7*
196 %{_mandir}/man7/cmake-generators.7*
197 %{_mandir}/man7/cmake-language.7*
198 %{_mandir}/man7/cmake-modules.7*
199 %{_mandir}/man7/cmake-packages.7*
200 %{_mandir}/man7/cmake-policies.7*
201 %{_mandir}/man7/cmake-properties.7*
202 %{_mandir}/man7/cmake-qt.7*
203 %{_mandir}/man7/cmake-server.7*
204 %{_mandir}/man7/cmake-toolchains.7*
205 %{_mandir}/man7/cmake-variables.7*
206 %{_datadir}/cmake/Help
208 # top cmake/Modules dirs belong to filesystem
209 %{_datadir}/cmake/Modules/.NoDartCoverage
210 %{_datadir}/cmake/Modules/*
211 %{_datadir}/cmake/Templates
212 %{_datadir}/cmake/editors
213 %{_datadir}/cmake/include
214 %{_aclocaldir}/cmake.m4
218 %defattr(644,root,root,755)
219 %doc Utilities/Sphinx/html/*
224 %defattr(644,root,root,755)
225 %attr(755,root,root) %{_bindir}/cmake-gui
226 %{_datadir}/mime/packages/cmakecache.xml
227 %{_desktopdir}/cmake-gui.desktop
228 %{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
229 %{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
231 %{_mandir}/man1/cmake-gui.1*
236 %defattr(644,root,root,755)
237 %{_datadir}/emacs/site-lisp/cmake-mode.el
239 %files -n bash-completion-%{name}
240 %defattr(644,root,root,755)
241 %{bash_compdir}/cmake
242 %{bash_compdir}/cpack
243 %{bash_compdir}/ctest