%define debug_package %{nil} %bcond_with bootstrap %bcond_without ncurses %bcond_without sphinx %bcond_without X11_test %global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) %{!?_pkgdocdir:%global _pkgdocdir %{_docdir}/cmake-%{version}} %{?rcsuf:%global relsuf .%{rcsuf}} %{?rcsuf:%global versuf -%{rcsuf}} Name: cmake Version: 3.27.9 Release: 3 Summary: Cross-platform make system License: BSD and MIT and zlib URL: http://www.cmake.org Source0: https://www.cmake.org/files/v3.27/cmake-%{version}.tar.gz Source1: cmake-init.el Source2: macros.cmake Source3: cmake.attr Source4: cmake.prov Source5: cmake.req Patch0: cmake-findruby.patch %ifarch sw_64 Patch1: cmake-3.22.0-sw.patch %endif Patch2: cmake-3.27.9-fix-cxx-standard-check-issue.patch BuildRequires: coreutils findutils gcc-c++ gcc-gfortran sed BuildRequires: emacs python3-devel pkgconfig(Qt5Widgets) desktop-file-utils %if %{with X11_test} BuildRequires: libX11-devel %endif %if %{with ncurses} BuildRequires: ncurses-devel %endif %if %{with sphinx} BuildRequires: python3-sphinx %endif %if %{without bootstrap} BuildRequires: bzip2-devel curl-devel expat-devel jsoncpp-devel libarchive-devel BuildRequires: libuv-devel xz-devel zlib-devel cmake-rpm-macros %endif BuildRequires: pkgconfig(bash-completion) %global bash_completionsdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null || echo '%{_datadir}/bash-completion/completions') Requires: cmake-data = %{version}-%{release} cmake-rpm-macros = %{version}-%{release} Requires: cmake-filesystem = %{version}-%{release} Provides: cmake3 = %{version}-%{release} bundled(md5-deutsch) bundled(kwsys) bundled(cppdap) %description CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. CMake is quite sophisticated: it is possible to support complex environments requiring system configuration, preprocessor generation, code generation, and template instantiation. %package data Summary: Common data-files for cmake Requires: cmake = %{version}-%{release} cmake-filesystem = %{version}-%{release} Requires: cmake-rpm-macros = %{version}-%{release} Requires: emacs-filesystem%{?_emacs_version: >= %{_emacs_version}} BuildArch: noarch %description data This package contains common data-files for cmake. %package filesystem Summary: Directories used by CMake modules %description filesystem This package owns all directories used by CMake modules. %package gui Summary: Qt GUI for cmake Requires: cmake = %{version}-%{release} Requires: hicolor-icon-theme Requires: shared-mime-info %description gui The cmake-gui package contains the Qt based GUI for cmake. %package rpm-macros Summary: Common RPM macros for cmake Requires: rpm Conflicts: cmake-data < 3.10.1-2 BuildArch: noarch %description rpm-macros This package contains common RPM macros for cmake. %package help Summary: Documentation for cmake Provides: %{name}-doc = %{version}-%{release} Obsoletes: %{name}-doc < %{version}-%{release} BuildArch: noarch %description help Documentation for cmake. %prep %autosetup -n cmake-%{version}%{?versuf} -p 1 echo '#!%{__python3}' > %{name}.prov echo '#!%{__python3}' > %{name}.req tail -n +2 %{SOURCE4} >> %{name}.prov tail -n +2 %{SOURCE5} >> %{name}.req %build export CFLAGS=`echo %{optflags} | sed 's/-g\b/-s/g'` export CXXFLAGS=`echo %{optflags} | sed 's/-g\b/-s/g'` export LDFLAGS="%{?__global_ldflags}" mkdir build pushd build ../bootstrap --prefix=%{_prefix} --datadir=/share/cmake \ --docdir=/share/doc/cmake --mandir=/share/man \ --%{?with_bootstrap:no-}system-libs \ --parallel=`/usr/bin/getconf _NPROCESSORS_ONLN` \ --no-system-cppdap \ --no-system-librhash \ %if %{with sphinx} --sphinx-man --sphinx-html \ %else --sphinx-build=%{_bindir}/false \ %endif --qt-gui \ ; %make_build VERBOSE=1 %install install -d %{buildroot}%{_pkgdocdir} %make_install -C build CMAKE_DOC_DIR=%{buildroot}%{_pkgdocdir} find %{buildroot}%{_datadir}/cmake/Modules -type f | xargs chmod -x for f in ccmake cmake cpack ctest; do ln -s $f %{buildroot}%{_bindir}/${f}3; done install -d %{buildroot}%{_emacs_sitelispdir}/cmake install -p -m 0644 Auxiliary/cmake-mode.el %{buildroot}%{_emacs_sitelispdir}/cmake/cmake-mode.el %{_emacs_bytecompile} %{buildroot}%{_emacs_sitelispdir}/cmake/cmake-mode.el install -d %{buildroot}%{_emacs_sitestartdir} install -p -m 0644 %SOURCE1 %{buildroot}%{_emacs_sitestartdir} install -p -m0644 -D %{SOURCE2} %{buildroot}%{rpm_macros_dir}/macros.cmake sed -i -e "s|@@CMAKE_VERSION@@|%{version}|" -e "s|@@CMAKE_MAJOR_VERSION@@|3|" %{buildroot}%{rpm_macros_dir}/macros.cmake touch -r %{SOURCE2} %{buildroot}%{rpm_macros_dir}/macros.cmake install -p -m0644 -D %{SOURCE3} %{buildroot}%{_prefix}/lib/rpm/fileattrs/cmake.attr install -p -m0755 -D cmake.prov %{buildroot}%{_prefix}/lib/rpm/cmake.prov install -p -m0755 -D cmake.req %{buildroot}%{_prefix}/lib/rpm/cmake.req install -d %{buildroot}%{_libdir}/cmake find Source Utilities -type f -iname copy\* cp -p Source/kwsys/Copyright.txt ./Copyright_kwsys cp -p Utilities/KWIML/Copyright.txt ./Copyright_KWIML cp -p Utilities/cmlibarchive/COPYING ./COPYING_cmlibarchive cp -p Utilities/cmliblzma/COPYING ./COPYING_cmliblzma cp -p Utilities/cmcurl/COPYING ./COPYING_cmcurl cp -p Utilities/cmlibrhash/COPYING ./COPYING_cmlibrhash cp -p Utilities/cmzlib/Copyright.txt ./Copyright_cmzlib cp -p Utilities/cmexpat/COPYING ./COPYING_cmexpat install -d %{buildroot}%{_pkgdocdir} cp -pr %{buildroot}%{_datadir}/cmake/Help %{buildroot}%{_pkgdocdir} cp -p Utilities/cmcppdap/LICENSE LICENSE.cppdap cp -p Utilities/cmcppdap/NOTICE NOTICE.cppdap desktop-file-install --delete-original \ --dir=%{buildroot}%{_datadir}/applications \ %{buildroot}%{_datadir}/applications/cmake-gui.desktop install -d %{buildroot}%{_metainfodir} find %{buildroot}%{_datadir}/cmake -type d | sed -e 's!^%{buildroot}!%%dir "!g' -e 's!$!"!g' > data_dirs.mf find %{buildroot}%{_datadir}/cmake -type f | sed -e 's!^%{buildroot}!"!g' -e 's!$!"!g' > data_files.mf find %{buildroot}%{_libdir}/cmake -type d | sed -e 's!^%{buildroot}!%%dir "!g' -e 's!$!"!g' > lib_dirs.mf find %{buildroot}%{_libdir}/cmake -type f | sed -e 's!^%{buildroot}!"!g' -e 's!$!"!g' > lib_files.mf find %{buildroot}%{_bindir} -type f -or -type l -or -xtype l | \ sed -e '/.*-gui$/d' -e '/^$/d' -e 's!^%{buildroot}!"!g' -e 's!$!"!g' >> lib_files.mf %check #cd build #export NO_TEST="CMake.FileDownload|CTestTestUpload|curl|RunCMake.CPack_RPM" #bin/ctest -V -E "$NO_TEST" %{?_smp_mflags} %post gui update-desktop-database &> /dev/null || : touch --no-create %{_datadir}/mime || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : %postun gui update-desktop-database &> /dev/null || : if [ $1 -eq 0 ] ; then touch --no-create %{_datadir}/mime || : update-mime-database %{_datadir}/mime &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : fi %posttrans gui update-mime-database %{_datadir}/mime &> /dev/null || : gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %files -f lib_files.mf %doc %dir %{_pkgdocdir} %license Copyright_* COPYING* Copyright.txt %license LICENSE.cppdap NOTICE.cppdap %files data -f data_files.mf %{_datadir}/aclocal/cmake.m4 %{_datadir}/bash-completion %{_emacs_sitelispdir}/cmake %{_emacs_sitelispdir}/cmake-mode.el %{_emacs_sitestartdir}/cmake-init.el %{_datadir}/vim/vimfiles/indent/%{name}.vim %{_datadir}/vim/vimfiles//syntax/%{name}.vim %exclude %{_datadir}/cmake/Templates/Windows/Windows_TemporaryKey.pfx %files filesystem -f data_dirs.mf -f lib_dirs.mf %files gui %{_bindir}/cmake-gui %{_datadir}/applications/cmake-gui.desktop %{_datadir}/mime/packages %{_datadir}/icons/hicolor/*/apps/CMake%{?name_suffix}Setup.png %files rpm-macros %{rpm_macros_dir}/macros.cmake %{_rpmconfigdir}/fileattrs/cmake.attr %{_rpmconfigdir}/cmake.prov %{_rpmconfigdir}/cmake.req %files help %if %{with sphinx} %{_mandir}/man1/ccmake.1.* %{_mandir}/man1/cmake.1.* %{_mandir}/man1/cpack.1.* %{_mandir}/man1/ctest.1.* %{_mandir}/man7/*.7.* %{_mandir}/man1/cmake-gui.1.* %endif %doc %{_pkgdocdir} %exclude %{_pkgdocdir}/Copyright.txt %changelog * Fri Apr 5 2024 tiberium 3.27.9-3 - fix cmake compile issue due to cxx standard check failed * Fri Feb 2 2024 liyanan - 3.27.9-2 - Remove Windows_TemporaryKey.pfx * Fri Jan 5 2024 liyanan - 3.27.9-1 - Update to 3.27.9 * Thu Dec 14 2023 liyanan - 3.24.3-2 - Fix abnormal empty link in cmake-data package * Mon Nov 14 2022 jchzhou - 3.24.3-1 - Update to 3.24.3 * Wed Oct 19 2022 wuzx - 3.22.0-3 - add sw64 patch * Wed Mar 2 2022 wangchen - 3.22.0-2 - Remove rhash-devel from BuildRequires * Sat Feb 12 2022 wangchen - 3.22.0-1 - Update to 3.22.0 * Tue Jul 20 2021 wangchen - 3.19.2-3 - Delete unnecessary gdb from BuildRequires * Mon Mar 22 2021 lirui - 3.19.2-2 - Remove the -g option and the debug package - add the -s option * Mon Jan 25 2021 wangchen - 3.19.2-1 - Update to 3.19.2 * Sat Aug 29 2020 wangchen - 3.18.0-3 - Revert macros.cmake * Tue Aug 25 2020 wangchen - 3.18.0-2 - Modify macros.cmake * Thu Jul 30 2020 wangchen - 3.18.0-1 - Update to cmake-3.18.0 * Mon May 25 2020 licihua - 3.17.2-1 - Update to cmake-3.17.2 * Fri Apr 03 2020 zhouyihang - 3.12.1-6 - Remove useless scriptlet * Mon Mar 23 2020 Xiangyang Yu -3.12.1-5 - add BuildRequires:gdb to fix src.rpm build error * Thu Feb 20 2020 lijin Yang -3.12.1-4 - make sphinx-build enable * Wed Jan 22 2020 Yiru Wang - 3.12.1-3 - Disable test * Fri Nov 29 2019 lijin Yang - 3.12.1-2 - init package