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