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