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