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