File cmake.spec of Package cmake

%define realname cmake
%define realver  3.27.0
%define srcext   tar.gz

%bcond_with ninja

%define vermajor %(awk -F. '{printf "%i.%i", $1, $2}' <<< %{realver})

# Vim data directory
%if 0%{?suse_version}
%define vimdir %{_datadir}/vim/site
%else
%define vimdir %{_datadir}/vim/vimfiles
%endif

# turn off the generation of debuginfo rpm  (RH9) ??
%global debug_package %{nil}

# Common info
Name:          %{realname}
Version:       %{realver}
Release:       wiz%{?extraver:0.}1%{?dist}
License:       BSD-3-Clause
Group:         Development/Tools/Building
URL:           http://www.cmake.org/
Summary:       Cross-Platform Makefile Generator

# Install-time parameters
Requires:      pkg-config
Provides:      cmake3 = %{version}-%{release}
Obsoletes:     cmake3 < %{version}-%{release}

# Build-time parameters
BuildRequires: gcc-c++
BuildRequires: pkg-config
%if %{with ninja}
BuildRequires: ninja
%endif
BuildRequires: zlib-devel xz-devel
BuildRequires: libjsoncpp-devel
BuildRequires: libuv-devel >= 1.10.0
BuildRequires: ncurses-devel
BuildRequires: curl-devel
BuildRequires: libarchive-devel >= 3.1.0
BuildRequires: pkgconfig(Qt5Core) pkgconfig(Qt5Widgets)
%if 0%{?suse_version}
BuildRequires: update-desktop-files fdupes
BuildRequires: libexpat-devel libbz2-devel
%else
BuildRequires: expat-devel bzip2-devel
%endif
BuildRoot:     %{_tmppath}/%{name}-root
Source0:       https://github.com/Kitware/CMake/releases/download/v%{realver}/%{realname}-%{realver}%{?extraver}.%{srcext}
Source1:       cmake.macros

%description
CMake provides developers with a means of building their project on
multiple platforms while writing only one build system configuration.
The developer writes a set of CMakeLists.txt files that are read by
CMake and used to generate a native build system for the current
environment.  On unix platforms, Makefiles are generated.

%package gui
Group:         Development/Tools/Building
Summary:       Qt4 GUI for cmake
Requires:      %{name} = %{version}-%{release}

%description gui
Qt4 GUI for cmake

# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-%{realver}%{?extraver}

%build
SRCDIR=%{_builddir}/%{realname}-%{realver}%{?extraver}
MANDIR="%{_mandir}"
DOCDIR="%{_defaultdocdir}/%{name}"
_CFLAGS='%{optflags} %{?gcc_lto}'
_LDFLAGS='-Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack %{?gcc_lto}'
export CFLAGS="$_CFLAGS"
export CXXFLAGS="$_CFLAGS"
export LDFLAGS="$_LDFLAGS"
./configure \
 --verbose \
 --parallel=$(getconf _NPROCESSORS_ONLN) \
%if %{with ninja}
 --generator=Ninja \
%endif
 --system-libs \
 --system-libarchive \
 --no-system-librhash \
 --qt-gui \
 --no-debugger \
 --prefix=%{_prefix} \
 --docdir=${DOCDIR#%{_prefix}} \
 --mandir=${MANDIR#%{_prefix}}
%if %{with ninja}
ninja -v %{?_smp_mflags}
%else
%{__make} %{?_smp_mflags}
%endif

%install
%if %{with ninja}
DESTDIR=%{buildroot} ninja -v install
%else
%{__make} install DESTDIR=%{buildroot}
%endif
%{__install} -m0644 %{S:1} -D %{buildroot}%{_rpmconfigdir}/macros.d/macros.cmake
%{__ln_s} cmake %{buildroot}%{_bindir}/cmake3
%{__install} -d -m755 %{buildroot}%{_libdir}/cmake
%{__install} -d -m755 %{buildroot}%{_datadir}/cmake
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}%{_datadir}/doc
%if 0%{?suse_version}
%suse_update_desktop_file -G "Cross-platform buildsystem" cmake-gui Building Qt
%fdupes %{buildroot}%{_datadir}
%endif
# Fix schebang
%{__sed} -ri '1 s|#!.+$|#!/bin/bash|' %{buildroot}%{_datadir}/%{name}-%{vermajor}/Modules/Compiler/XL-Fortran/cpp

# Some cleanup
find %{buildroot}%{_datadir} -name \*.orig -print -delete

%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}

%files
%defattr(-,root,root)
%license Copyright.txt
%doc README.rst
%{_rpmconfigdir}/macros.d/macros.cmake
%docdir %{_defaultdocdir}/%{name}/
%{_bindir}/ccmake
%{_bindir}/cmake
%{_bindir}/cmake3
%{_bindir}/cpack
%{_bindir}/ctest
%{_datadir}/%{name}-%{vermajor}/
%dir %{_datadir}/aclocal
%{_datadir}/aclocal/cmake.m4
%{_datadir}/mime/packages/cmakecache.xml
%dir %{_datadir}/bash-completion/completions
%dir %{_datadir}/bash-completion
%{_datadir}/bash-completion/completions/*
%dir %{_datadir}/emacs/site-lisp
%dir %{_datadir}/emacs
%{_datadir}/emacs/site-lisp/*
%dir %{_datadir}/vim/vimfiles/indent
%dir %{_datadir}/vim/vimfiles/syntax
%dir %{_datadir}/vim/vimfiles
%dir %{_datadir}/vim
%{_datadir}/vim/vimfiles/indent/*
%{_datadir}/vim/vimfiles/syntax/*
%dir %{_libdir}/cmake
%dir %{_datadir}/cmake
%exclude %{_datadir}/%{name}-%{vermajor}/Modules/.NoDartCoverage

%files gui
%defattr(-,root,root)
%{_bindir}/cmake-gui
%{_datadir}/applications/cmake-gui.desktop
%dir %{_datadir}/icons/hicolor/128x128/apps
%dir %{_datadir}/icons/hicolor/32x32/apps
%dir %{_datadir}/icons/hicolor/128x128
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor
%{_datadir}/icons/hicolor/128x128/apps/CMakeSetup.png
%{_datadir}/icons/hicolor/32x32/apps/CMakeSetup.png

%changelog
openSUSE Build Service is sponsored by