blob: 812ad63e6d80814686b3f758a4c6fee5c07c5862 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
|
%define debug_package %{nil}
%bcond_without ncurses
%bcond_without X11_test
%ifarch aarch64_ilp32
%bcond_with cmake_gui
%bcond_with emacs
%bcond_without bootstrap
%bcond_with sphinx
%else
%bcond_without cmake_gui
%bcond_without emacs
%bcond_with bootstrap
%bcond_without sphinx
%endif
# Do not build non-lto objects to reduce build time significantly.
%global build_cflags %(echo '%{build_cflags}' | sed -e 's!-ffat-lto-objects!-fno-fat-lto-objects!g')
%global build_cxxflags %(echo '%{build_cxxflags}' | sed -e 's!-ffat-lto-objects!-fno-fat-lto-objects!g')
%global build_fflags %(echo '%{build_fflags}' | sed -e 's!-ffat-lto-objects!-fno-fat-lto-objects!g')
%global build_fcflags %(echo '%{build_fflags}' | sed -e 's!-ffat-lto-objects!-fno-fat-lto-objects!g')
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
%{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/cmake-%{version}}
%{?rcsuf:%global relsuf .%{rcsuf}}
%{?rcsuf:%global versuf -%{rcsuf}}
Name: cmake
Version: 3.27.9
%global major_version %(echo %{version} | awk -F. '{print $1}')
Release: 7
Summary: Cross-platform make system
License: BSD-3-Clause AND MIT-open-group AND Zlib
URL: http://www.cmake.org
Source0: https://www.cmake.org/files/v3.27/cmake-%{version}.tar.gz
Source1: cmake-init.el
Source2: macros.cmake.in
Source3: cmake.attr
Source4: cmake.prov
Source5: cmake.req
Patch0: cmake-findruby.patch
%ifarch sw_64
Patch1: cmake-3.22.0-sw.patch
%endif
Patch2: cmake-3.27.9-fix-cxx-standard-check-issue.patch
%ifarch aarch64_ilp32
Patch6000: backport-cmake-aarch64-ilp32-support.patch
%endif
BuildRequires: coreutils findutils gcc-c++ gcc-gfortran sed
%if %{with cmake_gui}
BuildRequires: pkgconfig(Qt5Widgets) desktop-file-utils
%endif
%if %{with emacs}
BuildRequires: emacs
%endif
BuildRequires: python3-devel
%if %{with X11_test}
BuildRequires: libX11-devel
%endif
%if %{with ncurses}
BuildRequires: ncurses-devel
%endif
%if %{with sphinx}
BuildRequires: python3-sphinx
%endif
%if %{without bootstrap}
BuildRequires: bzip2-devel curl-devel expat-devel jsoncpp-devel libarchive-devel
BuildRequires: libuv-devel xz-devel zlib-devel cmake-rpm-macros
%endif
BuildRequires: pkgconfig(bash-completion)
%global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '%{_datadir}/bash-completion/completions')
Requires: cmake-data = %{version}-%{release} cmake-rpm-macros = %{version}-%{release}
Requires: cmake-filesystem = %{version}-%{release}
Provides: cmake3 = %{version}-%{release} bundled(md5-deutsch) bundled(kwsys) bundled(cppdap)
%description
CMake is used to control the software compilation process using simple
platform and compiler independent configuration files. CMake generates
native makefiles and workspaces that can be used in the compiler
environment of your choice. CMake is quite sophisticated: it is possible
to support complex environments requiring system configuration, preprocessor
generation, code generation, and template instantiation.
%package data
Summary: Common data-files for cmake
Requires: cmake = %{version}-%{release} cmake-filesystem = %{version}-%{release}
Requires: cmake-rpm-macros = %{version}-%{release}
%if %{with emacs}
Requires: emacs-filesystem%{?_emacs_version: >= %{_emacs_version}}
%endif
BuildArch: noarch
%description data
This package contains common data-files for cmake.
%package filesystem
Summary: Directories used by CMake modules
%description filesystem
This package owns all directories used by CMake modules.
%if %{with cmake_gui}
%package gui
Summary: Qt GUI for cmake
Requires: cmake = %{version}-%{release}
Requires: hicolor-icon-theme
Requires: shared-mime-info
%description gui
The cmake-gui package contains the Qt based GUI for cmake.
%endif
%package rpm-macros
Summary: Common RPM macros for cmake
Requires: rpm
Conflicts: cmake-data < 3.10.1-2
BuildArch: noarch
%description rpm-macros
This package contains common RPM macros for cmake.
%package help
Summary: Documentation for cmake
Provides: %{name}-doc = %{version}-%{release}
Obsoletes: %{name}-doc < %{version}-%{release}
BuildArch: noarch
%description help
Documentation for cmake.
%prep
%autosetup -n cmake-%{version}%{?versuf} -p 1
echo '#!%{__python3}' > %{name}.prov
echo '#!%{__python3}' > %{name}.req
tail -n +2 %{SOURCE4} >> %{name}.prov
tail -n +2 %{SOURCE5} >> %{name}.req
%build
export CFLAGS=`echo %{optflags} | sed 's/-g\b/-s/g'`
export CXXFLAGS=`echo %{optflags} | sed 's/-g\b/-s/g'`
export LDFLAGS="%{?__global_ldflags}"
mkdir %{_vpath_builddir}
pushd %{_vpath_builddir}
../bootstrap --prefix=%{_prefix} --datadir=/share/cmake \
--docdir=/share/doc/cmake --mandir=/share/man \
--%{?with_bootstrap:no-}system-libs \
--parallel=`/usr/bin/getconf _NPROCESSORS_ONLN` \
--no-system-cppdap \
--no-system-librhash \
%if %{with sphinx}
--sphinx-man --sphinx-html \
%else
--sphinx-build=%{_bindir}/false \
%endif
%if %{with cmake_gui}
%if 0%{?build_cross} == 0
--qt-gui \
%endif
%endif
;
popd
%make_build -C %{_vpath_builddir}
%install
install -d %{buildroot}%{_pkgdocdir}
%make_install -C %{_vpath_builddir} CMAKE_DOC_DIR=%{buildroot}%{_pkgdocdir}
find %{buildroot}%{_datadir}/cmake/Modules -type f | xargs chmod -x
for f in ccmake cmake cpack ctest;
do
ln -s $f %{buildroot}%{_bindir}/${f}3;
done
%if %{with emacs}
install -d %{buildroot}%{_emacs_sitelispdir}/cmake
install -p -m 0644 Auxiliary/cmake-mode.el %{buildroot}%{_emacs_sitelispdir}/cmake/cmake-mode.el
%{_emacs_bytecompile} %{buildroot}%{_emacs_sitelispdir}/cmake/cmake-mode.el
install -d %{buildroot}%{_emacs_sitestartdir}
install -p -m 0644 %SOURCE1 %{buildroot}%{_emacs_sitestartdir}
%else
rm -f %{buildroot}%{_emacs_sitelispdir}
%endif
install -p -m0644 -D %{S:2} %{buildroot}%{rpm_macros_dir}/macros.%{name}
sed -i -e "s|@@CMAKE_VERSION@@|%{version}|" -e "s|@@CMAKE_MAJOR_VERSION@@|%{major_version}|" %{buildroot}%{rpm_macros_dir}/macros.%{name}
touch -r %{S:2} %{buildroot}%{rpm_macros_dir}/macros.%{name}
install -p -m0644 -D %{S:3} %{buildroot}%{_prefix}/lib/rpm/fileattrs/cmake.attr
install -p -m0755 -D cmake.prov %{buildroot}%{_prefix}/lib/rpm/cmake.prov
install -p -m0755 -D cmake.req %{buildroot}%{_prefix}/lib/rpm/cmake.req
install -d %{buildroot}%{_libdir}/cmake
find Source Utilities -type f -iname copy\*
cp -p Source/kwsys/Copyright.txt ./Copyright_kwsys
cp -p Utilities/KWIML/Copyright.txt ./Copyright_KWIML
cp -p Utilities/cmlibarchive/COPYING ./COPYING_cmlibarchive
cp -p Utilities/cmliblzma/COPYING ./COPYING_cmliblzma
cp -p Utilities/cmcurl/COPYING ./COPYING_cmcurl
cp -p Utilities/cmlibrhash/COPYING ./COPYING_cmlibrhash
cp -p Utilities/cmzlib/Copyright.txt ./Copyright_cmzlib
cp -p Utilities/cmexpat/COPYING ./COPYING_cmexpat
install -d %{buildroot}%{_pkgdocdir}
cp -pr %{buildroot}%{_datadir}/cmake/Help %{buildroot}%{_pkgdocdir}
cp -p Utilities/cmcppdap/LICENSE LICENSE.cppdap
cp -p Utilities/cmcppdap/NOTICE NOTICE.cppdap
%if %{with cmake_gui}
%if 0%{?build_cross} == 0
desktop-file-install --delete-original \
--dir=%{buildroot}%{_datadir}/applications \
%{buildroot}%{_datadir}/applications/cmake-gui.desktop
%endif
install -d %{buildroot}%{_metainfodir}
%endif
find %{buildroot}%{_datadir}/cmake -type d | sed -e 's!^%{buildroot}!%%dir "!g' -e 's!$!"!g' > data_dirs.mf
find %{buildroot}%{_datadir}/cmake -type f | sed -e 's!^%{buildroot}!"!g' -e 's!$!"!g' > data_files.mf
find %{buildroot}%{_libdir}/cmake -type d | sed -e 's!^%{buildroot}!%%dir "!g' -e 's!$!"!g' > lib_dirs.mf
find %{buildroot}%{_libdir}/cmake -type f | sed -e 's!^%{buildroot}!"!g' -e 's!$!"!g' > lib_files.mf
find %{buildroot}%{_bindir} -type f -or -type l -or -xtype l | \
sed -e '/.*-gui$/d' -e '/^$/d' -e 's!^%{buildroot}!"!g' -e 's!$!"!g' >> lib_files.mf
%check
pushd %{_vpath_builddir}
# CTestTestUpload requires internet access.
NO_TEST="CTestTestUpload"
# Likely failing for hardening flags from system.
NO_TEST="$NO_TEST|CustomCommand|RunCMake.PositionIndependentCode"
%ifarch riscv64
# These three tests timeout on riscv64, skip them.
NO_TEST="$NO_TEST|Qt5Autogen.ManySources|Qt5Autogen.MocInclude|Qt5Autogen.MocIncludeSymlink|Qt6Autogen.MocIncludeSymlink"
%endif
bin/ctest%{?name_suffix} %{?_smp_mflags} -V -E "$NO_TEST" --output-on-failure
popd
%if %{with cmake_gui}
%post gui
update-desktop-database &> /dev/null || :
touch --no-create %{_datadir}/mime || :
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
%postun gui
update-desktop-database &> /dev/null || :
if [ $1 -eq 0 ] ; then
touch --no-create %{_datadir}/mime || :
update-mime-database %{_datadir}/mime &> /dev/null || :
touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
fi
%posttrans gui
update-mime-database %{_datadir}/mime &> /dev/null || :
gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%endif
%files -f lib_files.mf
%doc %dir %{_pkgdocdir}
%license Copyright_* COPYING* Copyright.txt
%license LICENSE.cppdap NOTICE.cppdap
%files data -f data_files.mf
%{_datadir}/aclocal/cmake.m4
%{_datadir}/bash-completion
%if %{with emacs}
%{_emacs_sitelispdir}/cmake
%{_emacs_sitelispdir}/cmake-mode.el
%{_emacs_sitestartdir}/cmake-init.el
%endif
%{_datadir}/vim/vimfiles/indent/%{name}.vim
%{_datadir}/vim/vimfiles/syntax/%{name}.vim
%exclude %{_datadir}/cmake/Templates/Windows/Windows_TemporaryKey.pfx
%files filesystem -f data_dirs.mf -f lib_dirs.mf
%if %{with cmake_gui}
%files gui
%if 0%{?build_cross} == 0
%{_bindir}/cmake-gui
%{_datadir}/applications/cmake-gui.desktop
%{_datadir}/mime/packages
%{_datadir}/icons/hicolor/*/apps/CMake%{?name_suffix}Setup.png
%endif
%endif
%files rpm-macros
%{rpm_macros_dir}/macros.cmake
%{_rpmconfigdir}/fileattrs/cmake.attr
%{_rpmconfigdir}/cmake.prov
%{_rpmconfigdir}/cmake.req
%files help
%if %{with sphinx}
%{_mandir}/man1/ccmake.1.*
%{_mandir}/man1/cmake.1.*
%{_mandir}/man1/cpack.1.*
%{_mandir}/man1/ctest.1.*
%{_mandir}/man7/*.7.*
%if %{with cmake_gui}
%if 0%{?build_cross} == 0
%{_mandir}/man1/cmake-gui.1.*
%endif
%endif
%endif
%doc %{_pkgdocdir}
%exclude %{_pkgdocdir}/Copyright.txt
%changelog
* Tue Nov 05 2024 Funda Wang <fundawang@yeah.net> - 3.27.9-7
- change __cmake_builddir definition based on numeric comparision
- force define source and binary directory
* Mon Sep 02 2024 Funda Wang <fundawang@yeah.net> - 3.27.9-6
- make use of _vpath_builddir, but default to in source build for backward compatibility
- enable check section
* Thu Aug 22 2024 Dongxing Wang <dongxing.wang_a@thundersoft.com> - 3.27.9-5
- Support %cmake_build and %cmake_install.
* Wed Jul 10 2024 fuanan <fuanan3@h-partners.com> - 3.27.9-4
- Add compilation options for i686.
- Support arrch64-ilp32 compilation.
* Fri Apr 5 2024 tiberium <jinzhe.oerv@isrc.iscas.ac.cn> 3.27.9-3
- fix cmake compile issue due to cxx standard check failed
* Fri Feb 2 2024 liyanan <liyanan61@h-partners.com> - 3.27.9-2
- Remove Windows_TemporaryKey.pfx
* Fri Jan 5 2024 liyanan <liyanan61@h-partners.com> - 3.27.9-1
- Update to 3.27.9
* Thu Dec 14 2023 liyanan <liyanan61@h-partners.com> - 3.24.3-2
- Fix abnormal empty link in cmake-data package
* Mon Nov 14 2022 jchzhou <zhoujiacheng@iscas.ac.cn> - 3.24.3-1
- Update to 3.24.3
* Wed Oct 19 2022 wuzx<wuzx1226@qq.com> - 3.22.0-3
- add sw64 patch
* Wed Mar 2 2022 wangchen <wangchen137@h-partners.com> - 3.22.0-2
- Remove rhash-devel from BuildRequires
* Sat Feb 12 2022 wangchen <wangchen137@h-partners.com> - 3.22.0-1
- Update to 3.22.0
* Tue Jul 20 2021 wangchen <wangchen137@huawei.com> - 3.19.2-3
- Delete unnecessary gdb from BuildRequires
* Mon Mar 22 2021 lirui <lirui130@huawei.com> - 3.19.2-2
- Remove the -g option and the debug package
- add the -s option
* Mon Jan 25 2021 wangchen <wangchen137@huawei.com> - 3.19.2-1
- Update to 3.19.2
* Sat Aug 29 2020 wangchen <wangchen137@huawei.com> - 3.18.0-3
- Revert macros.cmake
* Tue Aug 25 2020 wangchen <wangchen137@huawei.com> - 3.18.0-2
- Modify macros.cmake
* Thu Jul 30 2020 wangchen <wangchen137@huawei.com> - 3.18.0-1
- Update to cmake-3.18.0
* Mon May 25 2020 licihua <licihua@huawei.com> - 3.17.2-1
- Update to cmake-3.17.2
* Fri Apr 03 2020 zhouyihang <zhouyihang1@huawei.com> - 3.12.1-6
- Remove useless scriptlet
* Mon Mar 23 2020 Xiangyang Yu <yuxiangyang4@huawei.com> -3.12.1-5
- add BuildRequires:gdb to fix src.rpm build error
* Thu Feb 20 2020 lijin Yang <yanglijin@huawei.com> -3.12.1-4
- make sphinx-build enable
* Wed Jan 22 2020 Yiru Wang <wangyiru1@huawei.com> - 3.12.1-3
- Disable test
* Fri Nov 29 2019 lijin Yang <yanglijin@huawei.com> - 3.12.1-2
- init package
|