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