From 2c1b0be7a631846e069c9271ba58a1c40ff6fb74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 22:41:53 +0700 Subject: [PATCH 1/6] build-style/cmake: only depends on cmake for non-cmake package * In the next change, we will remove it from cmake template entirely --- common/environment/build-style/cmake.sh | 4 +++- srcpkgs/cmake/template | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/common/environment/build-style/cmake.sh b/common/environment/build-style/cmake.sh index c2c0c76c8efc..19b8f35a01da 100644 --- a/common/environment/build-style/cmake.sh +++ b/common/environment/build-style/cmake.sh @@ -1,5 +1,7 @@ if [ "$CHROOT_READY" ]; then - hostmakedepends+=" cmake" + if [ "$pkgname" != cmake ]; then + hostmakedepends+=" cmake" + fi if [ "${make_cmd:-ninja}" = ninja ]; then hostmakedepends+=" ninja" fi diff --git a/srcpkgs/cmake/template b/srcpkgs/cmake/template index 5d3308f93b5d..9da71ccd1a9f 100644 --- a/srcpkgs/cmake/template +++ b/srcpkgs/cmake/template @@ -20,6 +20,7 @@ replaces="cmake-bootstrap>=0" if [ "$CROSS_BUILD" ]; then build_style=cmake + hostmakedepends+=" cmake" configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1" fi From 9f8d6d7d3c004788c69597e1d6788b6818b93106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 22:57:44 +0700 Subject: [PATCH 2/6] cmake: always built with cmake build-style Less cursed template (changed build-style for cross-compiling). --- .../patches/no-run-cmake-bootstrap.patch | 13 +++++++ srcpkgs/cmake/template | 38 ++++++++++++++----- 2 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch diff --git a/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch b/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch new file mode 100644 index 000000000000..4b41aea2450b --- /dev/null +++ b/srcpkgs/cmake/patches/no-run-cmake-bootstrap.patch @@ -0,0 +1,13 @@ +We will run cmake ourselves with our flags +Index: cmake-3.20.3/bootstrap +=================================================================== +--- cmake-3.20.3.orig/bootstrap ++++ cmake-3.20.3/bootstrap +@@ -1968,6 +1968,7 @@ export CFLAGS + export CXXFLAGS + export LDFLAGS + ++exit 0 + # Run bootstrap CMake to configure real CMake + cmake_options="-DCMAKE_BOOTSTRAP=1" + if test -n "${cmake_verbose}"; then diff --git a/srcpkgs/cmake/template b/srcpkgs/cmake/template index 9da71ccd1a9f..87a1cde8048d 100644 --- a/srcpkgs/cmake/template +++ b/srcpkgs/cmake/template @@ -1,11 +1,12 @@ # Template file for 'cmake' +# FIXME: cmake is being rebuilt on do_install pkgname=cmake version=3.20.3 revision=1 -build_style=configure -configure_args="--prefix=/usr --mandir=/share/man --docdir=/share/doc/cmake - --system-libs ${XBPS_MAKEJOBS:+--parallel=$XBPS_MAKEJOBS}" -make_check_target=test +build_style=cmake +cmake_builddir=build +configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake + -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1" hostmakedepends="gcc-fortran" makedepends="expat-devel libarchive-devel libcurl-devel libuv-devel ncurses-devel rhash-devel jsoncpp-devel" @@ -18,12 +19,29 @@ distfiles="https://www.cmake.org/files/v${version%.*}/${pkgname}-${version}.tar. checksum=4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8 replaces="cmake-bootstrap>=0" -if [ "$CROSS_BUILD" ]; then - build_style=cmake - hostmakedepends+=" cmake" - configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake - -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1" -fi +# XXX: cmake is broken if cmake was built with -GNinja +# https://bugs.gentoo.org/596460 +export CMAKE_GENERATOR="Unix Makefiles" +make_cmd=make + +pre_configure() { + local f + mkdir -p $cmake_builddir + cd $cmake_builddir + CC="$CC_FOR_BUILD" CFLAGS="$CFLAGS_FOR_BUILD" \ + CXX="$CXX_FOR_BUILD" CXXFLAGS="$CXXFLAGS_FOR_BUILD" \ + LD="$LD_FOR_BUILD" LDFLAGS="$LDFLAGS_FOR_BUILD" \ + ../bootstrap --no-system-libs \ + ${XBPS_MAKEJOBS:+--parallel=$XBPS_MAKEJOBS} + # Make sure build directory is clean + for f in *; do + if [ "$f" != Bootstrap.cmk ]; then + return 1 + fi + done + cd ${wrksrc} + PATH="${wrksrc}/$cmake_builddir/Bootstrap.cmk:$PATH" +} post_install() { rm -rf ${DESTDIR}/usr/share/doc/cmake From 4c0a8044511ead3cc6b1b806b598409d845e1da4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 23:15:07 +0700 Subject: [PATCH 3/6] cmake: build man-pages --- srcpkgs/cmake/template | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/srcpkgs/cmake/template b/srcpkgs/cmake/template index 87a1cde8048d..7f346c952257 100644 --- a/srcpkgs/cmake/template +++ b/srcpkgs/cmake/template @@ -2,12 +2,14 @@ # FIXME: cmake is being rebuilt on do_install pkgname=cmake version=3.20.3 -revision=1 +revision=2 build_style=cmake cmake_builddir=build configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake + -DSPHINX_MAN=1 -DCMAKE_MAN_DIR=/share/man + -DCMAKE_SKIP_BOOTSTRAP_TEST=1 -DCMAKE_SKIP_RPATH=1 -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1" -hostmakedepends="gcc-fortran" +hostmakedepends="gcc-fortran python3-Sphinx" makedepends="expat-devel libarchive-devel libcurl-devel libuv-devel ncurses-devel rhash-devel jsoncpp-devel" checkdepends="pax pkg-config git" From 0314f5692647b8b28607086c4350b8eaa806a993 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 23:19:40 +0700 Subject: [PATCH 4/6] cmake-gui: build with Qt6 --- srcpkgs/cmake-gui/template | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/srcpkgs/cmake-gui/template b/srcpkgs/cmake-gui/template index a3c6dbf3cb02..13a660baefd6 100644 --- a/srcpkgs/cmake-gui/template +++ b/srcpkgs/cmake-gui/template @@ -1,15 +1,15 @@ # Template file for 'cmake-gui' pkgname=cmake-gui version=3.20.3 -revision=1 +revision=2 wrksrc="cmake-${version}" build_style=cmake configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake - -DBUILD_QtDialog=ON -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1 - -DCMake_GUI_DISTRIBUTE_WITH_Qt_LGPL=3" -hostmakedepends="qt5-devel" + -DSPHINX_MAN=1 -DCMAKE_MAN_DIR=/share/man -DQT_HOST_PATH=/usr + -DBUILD_QtDialog=ON -DCMAKE_USE_SYSTEM_LIBRARIES=ON -DKWSYS_LFS_WORKS=1" +hostmakedepends="qt6-base-devel python3-Sphinx" makedepends="jsoncpp-devel libarchive-devel libcurl-devel libuv-devel - ncurses-devel qt5-devel rhash-devel" + ncurses-devel qt6-base-devel rhash-devel" depends="desktop-file-utils shared-mime-info cmake>=${version}" checkdepends="pax pkg-config" short_desc="Cross-platform, open-source build system - Qt GUI" @@ -27,6 +27,7 @@ make_cmd=make do_install() { # We are only interested in cmake-gui. vbin build/bin/cmake-gui + vman build/Utilities/Sphinx/man/cmake-gui.1 for res in 32 64 128 ; do vinstall Source/QtDialog/CMakeSetup${res}.png 0644 \ From c448ea9fb248a7f6d3a70b53f9786d9352def10e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 23:25:53 +0700 Subject: [PATCH 5/6] cmake: update to 3.20.5. --- srcpkgs/cmake/template | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/srcpkgs/cmake/template b/srcpkgs/cmake/template index 7f346c952257..7ec873cb2afd 100644 --- a/srcpkgs/cmake/template +++ b/srcpkgs/cmake/template @@ -1,10 +1,9 @@ # Template file for 'cmake' # FIXME: cmake is being rebuilt on do_install pkgname=cmake -version=3.20.3 -revision=2 +version=3.20.5 +revision=1 build_style=cmake -cmake_builddir=build configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake -DSPHINX_MAN=1 -DCMAKE_MAN_DIR=/share/man -DCMAKE_SKIP_BOOTSTRAP_TEST=1 -DCMAKE_SKIP_RPATH=1 @@ -18,7 +17,7 @@ maintainer="Đoàn Trần Công Danh " license="BSD-3-Clause, ICU" homepage="https://www.cmake.org" distfiles="https://www.cmake.org/files/v${version%.*}/${pkgname}-${version}.tar.gz" -checksum=4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8 +checksum=12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0 replaces="cmake-bootstrap>=0" # XXX: cmake is broken if cmake was built with -GNinja @@ -26,13 +25,15 @@ replaces="cmake-bootstrap>=0" export CMAKE_GENERATOR="Unix Makefiles" make_cmd=make +if [ "$CROSS_BUILD" ]; then + hostmakedepends+=" cmake" +fi + pre_configure() { local f - mkdir -p $cmake_builddir - cd $cmake_builddir - CC="$CC_FOR_BUILD" CFLAGS="$CFLAGS_FOR_BUILD" \ - CXX="$CXX_FOR_BUILD" CXXFLAGS="$CXXFLAGS_FOR_BUILD" \ - LD="$LD_FOR_BUILD" LDFLAGS="$LDFLAGS_FOR_BUILD" \ + [ ! "$CROSS_BUILD" ] || return 0 + mkdir -p build + cd build ../bootstrap --no-system-libs \ ${XBPS_MAKEJOBS:+--parallel=$XBPS_MAKEJOBS} # Make sure build directory is clean @@ -42,7 +43,7 @@ pre_configure() { fi done cd ${wrksrc} - PATH="${wrksrc}/$cmake_builddir/Bootstrap.cmk:$PATH" + PATH="${wrksrc}/build/Bootstrap.cmk:$PATH" } post_install() { From 982bb23d2b80649851cf282888ade7b51219ac28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Tue, 22 Jun 2021 23:28:01 +0700 Subject: [PATCH 6/6] cmake-gui: update to 3.20.5. --- srcpkgs/cmake-gui/template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/srcpkgs/cmake-gui/template b/srcpkgs/cmake-gui/template index 13a660baefd6..11e2fa7b809d 100644 --- a/srcpkgs/cmake-gui/template +++ b/srcpkgs/cmake-gui/template @@ -1,7 +1,7 @@ # Template file for 'cmake-gui' pkgname=cmake-gui -version=3.20.3 -revision=2 +version=3.20.5 +revision=1 wrksrc="cmake-${version}" build_style=cmake configure_args="-DCMAKE_DOC_DIR=/share/doc/cmake @@ -17,7 +17,7 @@ maintainer="Đoàn Trần Công Danh " license="BSD-3-Clause" homepage="https://www.cmake.org" distfiles="https://www.cmake.org/files/v${version%.*}/cmake-${version}.tar.gz" -checksum=4d008ac3461e271fcfac26a05936f77fc7ab64402156fb371d41284851a651b8 +checksum=12c8040ef5c6f1bc5b8868cede16bb7926c18980f59779e299ab52cbc6f15bb0 # XXX: cmake is broken if cmake was built with -GNinja # https://bugs.gentoo.org/596460