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