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