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