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