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