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