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