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