]> git.pld-linux.org Git - packages/cmake.git/blame - cmake.spec
up to 3.27.6
[packages/cmake.git] / cmake.spec
CommitLineData
d1b2e54c 1# TODO:
6453b6ac 2# - system kwiml >= 1.0?
bdbf72c3 3# - make lib64/libx32 patch changes applicable everywhere
d1b2e54c
JB
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???)
02d8d7ee
JR
8# - FindJNI.cmake module is a PoS full of random incorrect paths,
9# needs lib64/libx32 awareness
ccca321d
KK
10#
11# Conditional build:
b563f9dc 12%bcond_with bootstrap # use internal versions of some libraries
c5ca293a 13%bcond_without gui # gui package
63b5fdd8 14%bcond_with tests # perform "make test"
c5ca293a 15%bcond_without doc # documentation
77f8acdd 16
efafbc62 17Summary: Cross-platform, open-source make system
ac3ea35a 18Summary(pl.UTF-8): Wieloplatformowy system make o otwartych źródłach
72a696fa 19Name: cmake
40cfc926 20Version: 3.27.6
8df6345d 21Release: 1
efafbc62 22License: BSD
72a696fa 23Group: Development/Building
c5ca293a 24Source0: https://cmake.org/files/v3.27/%{name}-%{version}.tar.gz
40cfc926 25# Source0-md5: 900aad400c67bf40238e5c0119128549
6342daf8 26Patch0: %{name}-lib64.patch
834c9659 27Patch1: %{name}-libx32.patch
3d8172a7 28Patch2: %{name}-jni.patch
834c9659
JR
29Patch3: %{name}-findruby.patch
30Patch4: %{name}-findruby2.patch
8f9c22ed 31Patch5: disable-completness-check.patch
22b75947 32URL: https://cmake.org/
17d1eb52 33# system zlib,bzip2,xz,zstd used only when without system libarchive
22b75947
JB
34%if %{with gui}
35BuildRequires: Qt5Core-devel >= 5.0
36BuildRequires: Qt5Gui-devel >= 5.0
37BuildRequires: Qt5Widgets-devel >= 5.0
38%endif
334121bd 39BuildRequires: automake
c5ca293a 40BuildRequires: cppdap-devel
a48136e8 41BuildRequires: curl-devel
a3907799 42BuildRequires: expat-devel
466fdfa1 43BuildRequires: jsoncpp-devel >= 1.6.2-2
132e0ee5 44BuildRequires: libarchive-devel >= 3.3.3
f81aa116
JP
45%ifnarch %arch_with_atomics64
46BuildRequires: libatomic-devel
47%endif
6453b6ac
JB
48BuildRequires: libstdc++-devel >= 6:4.7
49BuildRequires: libuv-devel >= 1.28.0
59917d1a 50BuildRequires: ncurses-devel > 5.9-3
17d1eb52 51BuildRequires: ncurses-ext-devel > 5.9-3
6453b6ac 52BuildRequires: nghttp2-devel
22b75947
JB
53%{?with_gui:BuildRequires: qt5-build >= 5.0}
54%{?with_gui:BuildRequires: qt5-qmake >= 5.0}
4211e02d 55BuildRequires: rhash-devel
8960e23f 56BuildRequires: rpm-build >= 4.6
f81aa116 57BuildRequires: rpmbuild(macros) >= 2.025
90b41c6c 58%{?with_doc:BuildRequires: sphinx-pdg}
6453b6ac 59BuildRequires: xz-devel
a48136e8 60BuildRequires: zlib-devel
6453b6ac 61BuildRequires: zstd-devel
75cb386f 62Requires: filesystem >= 3.0-52
132e0ee5 63Requires: libarchive >= 3.3.3
6453b6ac 64Requires: libuv >= 1.28.0
efafbc62 65BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
3fcbc09a
AG
66
67%description
efafbc62
AG
68CMake is used to control the software compilation process using simple
69platform and compiler independent configuration files. CMake generates
70native makefiles and workspaces that can be used in the compiler
71environment of your choice. CMake is quite sophisticated: it is
72possible to support complex environments requiring system
73configuration, pre-processor generation, code generation, and template
74instantiation.
3fcbc09a 75
520c9eb8
JR
76%description -l pl.UTF-8
77CMake służy do sterowania procesem kompilacji oprogramowania przy
ca760f29 78użyciu prostych plików konfiguracyjnych niezależnych od platformy i
79kompilatora. CMake generuje natywne pliki makefile i workspace,
485d9a7a 80których można używać w wybranym środowisku kompilatora. CMake jest
59787775 81dość wyrafinowany: może obsłużyć złożone środowiska wymagające
ca760f29 82konfiguracji systemu, generowanie preprocesora, generowanie kodu i
83dziedziczenie szablonów.
33042d59 84
fe46a853
JB
85%package doc-html
86Summary: CMake documentation in HTML format
87Summary(pl.UTF-8): Dokumentacja do pakietu CMake w formacie HTML
88Group: Documentation
89
90%description doc-html
91CMake documentation in HTML format.
92
93%description doc-html -l pl.UTF-8
94Dokumentacja do pakietu CMake w formacie HTML.
95
33042d59 96%package gui
b563f9dc
JB
97Summary: Qt GUI for CMake
98Summary(pl.UTF-8): Graficzny interfejs użytkownika Qt dla CMake
33042d59 99Group: Development/Tools
3287d08c
JP
100Requires(post,postun): desktop-file-utils
101Requires(post,postun): gtk-update-icon-cache
33042d59 102Requires: %{name} = %{version}-%{release}
3287d08c 103Requires: hicolor-icon-theme
33042d59 104
b563f9dc
JB
105%description gui
106This package contains the Qt based GUI for CMake.
107
108%description gui -l pl.UTF-8
109Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
110CMake.
72a696fa 111
9ec4f08d 112%package emacs
69d19c08
JB
113Summary: Emacs mode for cmake files
114Summary(pl.UTF-8): Tryb Emacsa dla plików cmake'a
9ec4f08d
KK
115Group: Development/Tools
116
117%description emacs
69d19c08
JB
118Emacs mode for cmake files.
119
120%description emacs -l pl.UTF-8
121Tryb Emacsa dla plików cmake'a.
9ec4f08d
KK
122
123%package -n bash-completion-%{name}
124Summary: bash-completion for cmake
69d19c08 125Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla cmake'a
9ec4f08d 126Group: Applications/Shells
69d19c08 127Requires: %{name} = %{version}-%{release}
34fc3d72 128Requires: bash-completion >= 1:2.0
6465d90a 129BuildArch: noarch
9ec4f08d
KK
130
131%description -n bash-completion-%{name}
69d19c08
JB
132bash-completion for cmake.
133
134%description -n bash-completion-%{name} -l pl.UTF-8
135Bashowe dopełnianie parametrów dla cmake'a.
9ec4f08d 136
3fcbc09a 137%prep
923851a2 138%setup -q
286b1479 139%if "%{_lib}" == "lib64"
6342daf8 140%patch0 -p1
286b1479 141%endif
834c9659 142%if "%{_lib}" == "libx32"
9ec4f08d 143%patch1 -p1
834c9659 144%endif
3d8172a7 145%patch2 -p1
04706b61 146%patch3 -p1
834c9659 147%patch4 -p1
8f9c22ed 148%patch5 -p1
3fcbc09a 149
c5ca293a
JB
150%{__sed} -i -e '1s,/usr/bin/env bash,/bin/bash,' \
151 Modules/Compiler/XL-Fortran/cpp
4b266473 152
ece9e155 153cat > "init.cmake" <<EOF
286b1479 154SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
9ec4f08d
KK
155SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
156SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
37c4775b
JP
157SET (CMAKE_SYSTEM_NAME "Linux" CACHE STRING " " FORCE)
158SET (CMAKE_SYSTEM_VERSION "%(uname -r)" CACHE STRING " " FORCE)
159SET (CMAKE_CROSSCOMPILING FALSE CACHE BOOL " " FORCE)
160%ifarch x32
161SET (CMAKE_SYSTEM_PROCESSOR "x86_64" CACHE STRING " " FORCE)
162%else
163SET (CMAKE_SYSTEM_PROCESSOR "%{_target_cpu}" CACHE STRING " " FORCE)
164%endif
ece9e155
KK
165EOF
166
b343cdb1
JR
167# cleanup backups after patching, modules are copied as-is
168find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
169
3fcbc09a 170%build
ece9e155
KK
171export CC="%{__cc}"
172export CXX="%{__cxx}"
173export CFLAGS="%{rpmcflags}"
174export CXXFLAGS="%{rpmcxxflags}"
ccca321d 175export LDFLAGS="%{rpmldflags}"
923851a2
AG
176./bootstrap \
177 --prefix=%{_prefix} \
178 --mandir=/share/man \
179 --datadir=/share/cmake \
ece9e155 180 --init=init.cmake \
c342f103 181 %{!?with_bootstrap:--system-libs} \
33042d59 182 %{?with_gui:--qt-gui} \
22b75947 183 --qt-qmake=%{_bindir}/qmake-qt5 \
90b41c6c
JR
184 %{?with_doc:--sphinx-html} \
185 %{?with_doc:--sphinx-man} \
c749d7d4 186 %{?__jobs:--parallel=%{__jobs}} \
a48136e8 187 --verbose
923851a2 188
a48136e8
JB
189%{__make} \
190 VERBOSE=1
3fcbc09a 191
1fbe3ed6
AM
192%{?with_tests:%{__make} test}
193
3fcbc09a 194%install
efafbc62 195rm -rf $RPM_BUILD_ROOT
3d8172a7 196
72a696fa
JB
197%{__make} install \
198 DESTDIR=$RPM_BUILD_ROOT
199
3d8172a7
JB
200# just a bit more recent than packaged in vim.spec
201%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/vim
202# packaged as %doc
75cb386f 203%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
3fcbc09a
AG
204
205%clean
206rm -rf $RPM_BUILD_ROOT
207
3287d08c
JP
208%post gui
209%update_desktop_database_post
210%update_icon_cache hicolor
211
212%postun gui
213%update_desktop_database_postun
214%update_icon_cache hicolor
215
3fcbc09a 216%files
efafbc62 217%defattr(644,root,root,755)
fe46a853 218%doc Copyright.txt README.rst *.gif
72a696fa
JB
219%attr(755,root,root) %{_bindir}/ccmake
220%attr(755,root,root) %{_bindir}/cmake
08b6790a 221%attr(755,root,root) %{_bindir}/cpack
72a696fa 222%attr(755,root,root) %{_bindir}/ctest
90b41c6c 223%if %{with doc}
08bb5e07
JB
224%{_mandir}/man1/ccmake.1*
225%{_mandir}/man1/cmake.1*
08bb5e07
JB
226%{_mandir}/man1/cpack.1*
227%{_mandir}/man1/ctest.1*
a8099d1a 228%{_mandir}/man7/cpack-generators.7*
fe46a853
JB
229%{_mandir}/man7/cmake-buildsystem.7*
230%{_mandir}/man7/cmake-commands.7*
cda7a827 231%{_mandir}/man7/cmake-compile-features.7*
c5ca293a 232%{_mandir}/man7/cmake-configure-log.7*
fe46a853 233%{_mandir}/man7/cmake-developer.7*
bac58766 234%{_mandir}/man7/cmake-env-variables.7*
b094c172 235%{_mandir}/man7/cmake-file-api.7*
fe46a853
JB
236%{_mandir}/man7/cmake-generator-expressions.7*
237%{_mandir}/man7/cmake-generators.7*
238%{_mandir}/man7/cmake-language.7*
239%{_mandir}/man7/cmake-modules.7*
240%{_mandir}/man7/cmake-packages.7*
241%{_mandir}/man7/cmake-policies.7*
4b266473 242%{_mandir}/man7/cmake-presets.7*
fe46a853
JB
243%{_mandir}/man7/cmake-properties.7*
244%{_mandir}/man7/cmake-qt.7*
da1ef5d3 245%{_mandir}/man7/cmake-server.7*
fe46a853
JB
246%{_mandir}/man7/cmake-toolchains.7*
247%{_mandir}/man7/cmake-variables.7*
0278e558 248%{_datadir}/cmake/Help
90b41c6c 249%endif
b24a2e64
JB
250# top cmake/Modules dirs belong to filesystem
251%{_datadir}/cmake/Modules/.NoDartCoverage
252%{_datadir}/cmake/Modules/*
253%{_datadir}/cmake/Templates
254%{_datadir}/cmake/include
09f5d631 255%{_aclocaldir}/cmake.m4
33042d59 256
90b41c6c 257%if %{with doc}
fe46a853
JB
258%files doc-html
259%defattr(644,root,root,755)
260%doc Utilities/Sphinx/html/*
90b41c6c 261%endif
fe46a853 262
1a3a9dcd 263%if %{with gui}
33042d59
KK
264%files gui
265%defattr(644,root,root,755)
266%attr(755,root,root) %{_bindir}/cmake-gui
267%{_datadir}/mime/packages/cmakecache.xml
af122c88 268%{_desktopdir}/cmake-gui.desktop
466fdfa1
AM
269%{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
270%{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
49e2a1c9 271%if %{with doc}
08bb5e07 272%{_mandir}/man1/cmake-gui.1*
1a3a9dcd 273%endif
49e2a1c9 274%endif
9ec4f08d
KK
275
276%files emacs
277%defattr(644,root,root,755)
278%{_datadir}/emacs/site-lisp/cmake-mode.el
279
280%files -n bash-completion-%{name}
281%defattr(644,root,root,755)
466fdfa1
AM
282%{bash_compdir}/cmake
283%{bash_compdir}/cpack
284%{bash_compdir}/ctest
This page took 0.592814 seconds and 4 git commands to generate.