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