]> git.pld-linux.org Git - packages/cmake.git/blame - cmake.spec
enable parallel build in bootstrap
[packages/cmake.git] / cmake.spec
CommitLineData
d1b2e54c 1# TODO:
4211e02d 2# - system kwiml?
bdbf72c3 3# - make lib64/libx32 patch changes applicable everywhere
d1b2e54c
JB
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???)
02d8d7ee
JR
8# - FindJNI.cmake module is a PoS full of random incorrect paths,
9# needs lib64/libx32 awareness
ccca321d
KK
10#
11# Conditional build:
b563f9dc
JB
12%bcond_with bootstrap # use internal versions of some libraries
13%bcond_without gui # don't build gui package
63b5fdd8 14%bcond_with tests # perform "make test"
90b41c6c 15%bcond_without doc # don't build documentation
77f8acdd 16
efafbc62 17Summary: Cross-platform, open-source make system
ac3ea35a 18Summary(pl.UTF-8): Wieloplatformowy system make o otwartych źródłach
72a696fa 19Name: cmake
70541a8c 20Version: 3.22.2
15d3b66d 21Release: 1
efafbc62 22License: BSD
72a696fa 23Group: Development/Building
70541a8c
JR
24Source0: https://cmake.org/files/v3.22/%{name}-%{version}.tar.gz
25# Source0-md5: f96b91224aa14b09565325b51d60af43
6342daf8 26Patch0: %{name}-lib64.patch
834c9659 27Patch1: %{name}-libx32.patch
3d8172a7 28Patch2: %{name}-jni.patch
834c9659
JR
29Patch3: %{name}-findruby.patch
30Patch4: %{name}-findruby2.patch
22b75947 31URL: https://cmake.org/
17d1eb52 32# system zlib,bzip2,xz,zstd used only when without system libarchive
22b75947
JB
33%if %{with gui}
34BuildRequires: Qt5Core-devel >= 5.0
35BuildRequires: Qt5Gui-devel >= 5.0
36BuildRequires: Qt5Widgets-devel >= 5.0
37%endif
a48136e8 38BuildRequires: curl-devel
a3907799 39BuildRequires: expat-devel
466fdfa1 40BuildRequires: jsoncpp-devel >= 1.6.2-2
fef12180 41BuildRequires: libarchive-devel
ece9e155 42BuildRequires: libstdc++-devel
da1ef5d3 43BuildRequires: libuv-devel
59917d1a 44BuildRequires: ncurses-devel > 5.9-3
17d1eb52 45BuildRequires: ncurses-ext-devel > 5.9-3
22b75947
JB
46%{?with_gui:BuildRequires: qt5-build >= 5.0}
47%{?with_gui:BuildRequires: qt5-qmake >= 5.0}
4211e02d 48BuildRequires: rhash-devel
ece9e155 49BuildRequires: rpmbuild(macros) >= 1.167
90b41c6c 50%{?with_doc:BuildRequires: sphinx-pdg}
a48136e8 51BuildRequires: zlib-devel
75cb386f 52Requires: filesystem >= 3.0-52
efafbc62 53BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
3fcbc09a
AG
54
55%description
efafbc62
AG
56CMake is used to control the software compilation process using simple
57platform and compiler independent configuration files. CMake generates
58native makefiles and workspaces that can be used in the compiler
59environment of your choice. CMake is quite sophisticated: it is
60possible to support complex environments requiring system
61configuration, pre-processor generation, code generation, and template
62instantiation.
3fcbc09a 63
520c9eb8
JR
64%description -l pl.UTF-8
65CMake służy do sterowania procesem kompilacji oprogramowania przy
ca760f29 66użyciu prostych plików konfiguracyjnych niezależnych od platformy i
67kompilatora. CMake generuje natywne pliki makefile i workspace,
485d9a7a 68których można używać w wybranym środowisku kompilatora. CMake jest
59787775 69dość wyrafinowany: może obsłużyć złożone środowiska wymagające
ca760f29 70konfiguracji systemu, generowanie preprocesora, generowanie kodu i
71dziedziczenie szablonów.
33042d59 72
fe46a853
JB
73%package doc-html
74Summary: CMake documentation in HTML format
75Summary(pl.UTF-8): Dokumentacja do pakietu CMake w formacie HTML
76Group: Documentation
77
78%description doc-html
79CMake documentation in HTML format.
80
81%description doc-html -l pl.UTF-8
82Dokumentacja do pakietu CMake w formacie HTML.
83
33042d59 84%package gui
b563f9dc
JB
85Summary: Qt GUI for CMake
86Summary(pl.UTF-8): Graficzny interfejs użytkownika Qt dla CMake
33042d59
KK
87Group: Development/Tools
88Requires: %{name} = %{version}-%{release}
89
b563f9dc
JB
90%description gui
91This package contains the Qt based GUI for CMake.
92
93%description gui -l pl.UTF-8
94Ten pakiet zawiera oparty na Qt graficzny interfejs użytkownika dla
95CMake.
72a696fa 96
9ec4f08d 97%package emacs
69d19c08
JB
98Summary: Emacs mode for cmake files
99Summary(pl.UTF-8): Tryb Emacsa dla plików cmake'a
9ec4f08d
KK
100Group: Development/Tools
101
102%description emacs
69d19c08
JB
103Emacs mode for cmake files.
104
105%description emacs -l pl.UTF-8
106Tryb Emacsa dla plików cmake'a.
9ec4f08d
KK
107
108%package -n bash-completion-%{name}
109Summary: bash-completion for cmake
69d19c08 110Summary(pl.UTF-8): Bashowe dopełnianie parametrów dla cmake'a
9ec4f08d 111Group: Applications/Shells
69d19c08 112Requires: %{name} = %{version}-%{release}
a9b1845f 113Requires: bash-completion >= 2.0
6465d90a 114BuildArch: noarch
9ec4f08d
KK
115
116%description -n bash-completion-%{name}
69d19c08
JB
117bash-completion for cmake.
118
119%description -n bash-completion-%{name} -l pl.UTF-8
120Bashowe dopełnianie parametrów dla cmake'a.
9ec4f08d 121
3fcbc09a 122%prep
923851a2 123%setup -q
286b1479 124%if "%{_lib}" == "lib64"
6342daf8 125%patch0 -p1
286b1479 126%endif
834c9659 127%if "%{_lib}" == "libx32"
9ec4f08d 128%patch1 -p1
834c9659 129%endif
3d8172a7 130%patch2 -p1
04706b61 131%patch3 -p1
834c9659 132%patch4 -p1
3fcbc09a 133
4b266473
JR
134%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\1,' \
135 Modules/Compiler/XL-Fortran/cpp
136
ece9e155 137cat > "init.cmake" <<EOF
286b1479 138SET (CURSES_INCLUDE_PATH "/usr/include/ncurses" CACHE PATH " " FORCE)
9ec4f08d
KK
139SET (CMAKE_INSTALL_SYSCONFDIR "%{_sysconfdir}" CACHE PATH " " FORCE)
140SET (CMAKE_INSTALL_DATADIR "%{_datadir}" CACHE PATH " " FORCE)
ece9e155
KK
141EOF
142
b343cdb1
JR
143# cleanup backups after patching, modules are copied as-is
144find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
145
3fcbc09a 146%build
ece9e155
KK
147export CC="%{__cc}"
148export CXX="%{__cxx}"
149export CFLAGS="%{rpmcflags}"
150export CXXFLAGS="%{rpmcxxflags}"
ccca321d 151export LDFLAGS="%{rpmldflags}"
923851a2
AG
152./bootstrap \
153 --prefix=%{_prefix} \
154 --mandir=/share/man \
155 --datadir=/share/cmake \
ece9e155 156 --init=init.cmake \
c342f103 157 %{!?with_bootstrap:--system-libs} \
33042d59 158 %{?with_gui:--qt-gui} \
22b75947 159 --qt-qmake=%{_bindir}/qmake-qt5 \
90b41c6c
JR
160 %{?with_doc:--sphinx-html} \
161 %{?with_doc:--sphinx-man} \
c749d7d4 162 %{?__jobs:--parallel=%{__jobs}} \
a48136e8 163 --verbose
923851a2 164
a48136e8
JB
165%{__make} \
166 VERBOSE=1
3fcbc09a 167
1fbe3ed6
AM
168%{?with_tests:%{__make} test}
169
3fcbc09a 170%install
efafbc62 171rm -rf $RPM_BUILD_ROOT
3d8172a7 172
72a696fa
JB
173%{__make} install \
174 DESTDIR=$RPM_BUILD_ROOT
175
3d8172a7
JB
176# just a bit more recent than packaged in vim.spec
177%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/vim
178# packaged as %doc
75cb386f 179%{__rm} -r $RPM_BUILD_ROOT%{_prefix}/doc
3fcbc09a
AG
180
181%clean
182rm -rf $RPM_BUILD_ROOT
183
184%files
efafbc62 185%defattr(644,root,root,755)
fe46a853 186%doc Copyright.txt README.rst *.gif
72a696fa
JB
187%attr(755,root,root) %{_bindir}/ccmake
188%attr(755,root,root) %{_bindir}/cmake
08b6790a 189%attr(755,root,root) %{_bindir}/cpack
72a696fa 190%attr(755,root,root) %{_bindir}/ctest
90b41c6c 191%if %{with doc}
08bb5e07
JB
192%{_mandir}/man1/ccmake.1*
193%{_mandir}/man1/cmake.1*
08bb5e07
JB
194%{_mandir}/man1/cpack.1*
195%{_mandir}/man1/ctest.1*
a8099d1a 196%{_mandir}/man7/cpack-generators.7*
fe46a853
JB
197%{_mandir}/man7/cmake-buildsystem.7*
198%{_mandir}/man7/cmake-commands.7*
cda7a827 199%{_mandir}/man7/cmake-compile-features.7*
fe46a853 200%{_mandir}/man7/cmake-developer.7*
bac58766 201%{_mandir}/man7/cmake-env-variables.7*
b094c172 202%{_mandir}/man7/cmake-file-api.7*
fe46a853
JB
203%{_mandir}/man7/cmake-generator-expressions.7*
204%{_mandir}/man7/cmake-generators.7*
205%{_mandir}/man7/cmake-language.7*
206%{_mandir}/man7/cmake-modules.7*
207%{_mandir}/man7/cmake-packages.7*
208%{_mandir}/man7/cmake-policies.7*
4b266473 209%{_mandir}/man7/cmake-presets.7*
fe46a853
JB
210%{_mandir}/man7/cmake-properties.7*
211%{_mandir}/man7/cmake-qt.7*
da1ef5d3 212%{_mandir}/man7/cmake-server.7*
fe46a853
JB
213%{_mandir}/man7/cmake-toolchains.7*
214%{_mandir}/man7/cmake-variables.7*
0278e558 215%{_datadir}/cmake/Help
90b41c6c 216%endif
b24a2e64
JB
217# top cmake/Modules dirs belong to filesystem
218%{_datadir}/cmake/Modules/.NoDartCoverage
219%{_datadir}/cmake/Modules/*
220%{_datadir}/cmake/Templates
221%{_datadir}/cmake/include
09f5d631 222%{_aclocaldir}/cmake.m4
33042d59 223
90b41c6c 224%if %{with doc}
fe46a853
JB
225%files doc-html
226%defattr(644,root,root,755)
227%doc Utilities/Sphinx/html/*
90b41c6c 228%endif
fe46a853 229
1a3a9dcd 230%if %{with gui}
33042d59
KK
231%files gui
232%defattr(644,root,root,755)
233%attr(755,root,root) %{_bindir}/cmake-gui
234%{_datadir}/mime/packages/cmakecache.xml
af122c88 235%{_desktopdir}/cmake-gui.desktop
466fdfa1
AM
236%{_iconsdir}/hicolor/128x128/apps/CMakeSetup.png
237%{_iconsdir}/hicolor/32x32/apps/CMakeSetup.png
49e2a1c9 238%if %{with doc}
08bb5e07 239%{_mandir}/man1/cmake-gui.1*
1a3a9dcd 240%endif
49e2a1c9 241%endif
9ec4f08d
KK
242
243%files emacs
244%defattr(644,root,root,755)
245%{_datadir}/emacs/site-lisp/cmake-mode.el
246
247%files -n bash-completion-%{name}
248%defattr(644,root,root,755)
466fdfa1
AM
249%{bash_compdir}/cmake
250%{bash_compdir}/cpack
251%{bash_compdir}/ctest
This page took 0.097769 seconds and 4 git commands to generate.