mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-23 06:31:18 +02:00
dev-build/cmake: Sync with Gentoo
It's from Gentoo commit 768d226ab82ba7adbc3d643b979f745f4062671e.
This commit is contained in:
parent
4c01cb0b53
commit
90deeb320d
@ -12,3 +12,9 @@ DIST cmake-3.27.9.tar.gz 10984490 BLAKE2B 66f8fb6e301ed19f993fde6c4f9e336124be63
|
|||||||
DIST cmake-3.28.1-SHA-256.txt 1646 BLAKE2B 9d892ede24c29168a0ee623007051a78ab263f54c4a9313159a0d9fa3301cebeef8f01c5bc47f32be22fc7f31312363ae4abeea522d39d060827dd05dc916220 SHA512 d23085b03c33c9ca205b55d8049eb2dd331e1ef4b393d2cd707759ec7b162f79e3a7a84add6231d0ddd144c410fc3e013664946088e809ce7a508bfdb1909392
|
DIST cmake-3.28.1-SHA-256.txt 1646 BLAKE2B 9d892ede24c29168a0ee623007051a78ab263f54c4a9313159a0d9fa3301cebeef8f01c5bc47f32be22fc7f31312363ae4abeea522d39d060827dd05dc916220 SHA512 d23085b03c33c9ca205b55d8049eb2dd331e1ef4b393d2cd707759ec7b162f79e3a7a84add6231d0ddd144c410fc3e013664946088e809ce7a508bfdb1909392
|
||||||
DIST cmake-3.28.1-SHA-256.txt.asc 833 BLAKE2B 43dc31958ef0ff848d582652e7988a343e12b4d99b63af6502656193bcc74651ee9d1fe7eae7ac5a75871f03cda8de6ef9c72cbab296f4f11dd6eea5466174f2 SHA512 427771fac16b4d3891f67285ff616f3a8e5069194ce050c8ad1a9295d26c8bf8b60966d1ac858a38a3809008d71bdc8412dfcbc708c301044272c857e9486590
|
DIST cmake-3.28.1-SHA-256.txt.asc 833 BLAKE2B 43dc31958ef0ff848d582652e7988a343e12b4d99b63af6502656193bcc74651ee9d1fe7eae7ac5a75871f03cda8de6ef9c72cbab296f4f11dd6eea5466174f2 SHA512 427771fac16b4d3891f67285ff616f3a8e5069194ce050c8ad1a9295d26c8bf8b60966d1ac858a38a3809008d71bdc8412dfcbc708c301044272c857e9486590
|
||||||
DIST cmake-3.28.1.tar.gz 11065923 BLAKE2B 7c6d3876633024b8a22dd6aca078e4bd7649c18a810ada68378435e9cfc30878b89529dc69e6e2dcecd114c9686fe6ce937fa5587e47f00128504349cecb967b SHA512 62693c423dd46d252d046662ac34cf9c927b7ec23c213c6b5cd1683636b8bbb5326698af1e7f851f3c01fe3f14dd769b9a8bd405f8f9e73e6d8defae7517cbcb
|
DIST cmake-3.28.1.tar.gz 11065923 BLAKE2B 7c6d3876633024b8a22dd6aca078e4bd7649c18a810ada68378435e9cfc30878b89529dc69e6e2dcecd114c9686fe6ce937fa5587e47f00128504349cecb967b SHA512 62693c423dd46d252d046662ac34cf9c927b7ec23c213c6b5cd1683636b8bbb5326698af1e7f851f3c01fe3f14dd769b9a8bd405f8f9e73e6d8defae7517cbcb
|
||||||
|
DIST cmake-3.28.2-SHA-256.txt 1646 BLAKE2B 5e0e340fb8bed8c26d75d97921da00191f84694381ec7f1e90f96d3d44bdcc3613c5022bda1dff502dfbb40058602b4787675b6e81e97639141e8e3d1b03788c SHA512 7337877f928b22e227e27c7ceff10b953c008ad35ee532d83290db3844f46607f79d48931676ad5203147bae4b2caec0520b146c4a2949db94da0b2ed85a0990
|
||||||
|
DIST cmake-3.28.2-SHA-256.txt.asc 833 BLAKE2B 9f93e28aff382526a9f5146c7a0b5c4abb1799b7a75232232f08fb26d1702d665ad0abb5add05c045b9e642ca528afa5ce0ca802cc3ad55813e8fe3955d3f65f SHA512 8e775534952641acfb2493646bc4e14123ebaee7390fd7a42e60a8f8925066f613ee2f678202c53c62f6209fae1b1dc21e75e8e4dde0a2b56ec71ed22a0e7d6e
|
||||||
|
DIST cmake-3.28.2.tar.gz 11067468 BLAKE2B 59941152814af141cdbea5a649d809cb86edaf2f460a493278872cb0dcff45ea2c68d7e783cd4bc4b369bf4d41175aee6d49a4e2b983877700be933340f6596b SHA512 225f6d3eb56d41c449a32f7c3e0f8f3ffafbbf45474e29ad86e965a87f8d95e55e87affc62ef0a7b25c9fb070c6fca08e9838539e5f7011dc3ee83787025151b
|
||||||
|
DIST cmake-3.28.3-SHA-256.txt 1646 BLAKE2B 1ed1c47e62bc2969c72efbdf5f9dc8853e642b0cfb8d4c0423eff897d731e76407606a05cfb481849bc80cc54119b413cec715c0fde08825e8dc48e7a37c6400 SHA512 e596cf9290ebf3ffe88bc4715db9d2db4f013a5da3b0d433b71e1927e9386e06cb2d2d7f025195b183ab07c8dc263ce0b318f1ad38a43f01d646016ad60fd611
|
||||||
|
DIST cmake-3.28.3-SHA-256.txt.asc 833 BLAKE2B 63dd7e69c7003d183e65c15391177bf84fb77b54a44807ddcccbd2b34a5e06275a7be9308cba4df75cf27974f3dbdbc9bc18cd646714a58d0a8d4bdaf6eb929d SHA512 0c987d2aa6f464a44b97a8f1ef00c6e80b5e5277b0885f34f01c17318bcd4345905e8ee06b63dc8aea367364f7c063d0cc2eab63b94a13b813bae53ad4a1b623
|
||||||
|
DIST cmake-3.28.3.tar.gz 11067653 BLAKE2B a329c7cd80e8e74d11ec2a8b377857b1ae8c4c50a792f982803fcc6a00f531ecb7ac2dd7ccad34968b3e3efc14933085b51425974fc5ee29b6c49c2da5ceeaf4 SHA512 66e923925b764e1fe3d150c69dab3e0abd9e0c90d8e30cab63c3a1f70c3e37df0a5e3ff12b378eeae3bdc6608495f41399e6f81602e26b513b19fa19ff6c48fc
|
||||||
|
278
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.2.ebuild
vendored
Normal file
278
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.2.ebuild
vendored
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
|
||||||
|
# Set to 1 if prebuilt, 0 if not
|
||||||
|
# (the construct below is to allow overriding from env for script)
|
||||||
|
: ${CMAKE_DOCS_PREBUILT:=1}
|
||||||
|
|
||||||
|
CMAKE_DOCS_PREBUILT_DEV=sam
|
||||||
|
#CMAKE_DOCS_VERSION=$(ver_cut 1-3)
|
||||||
|
CMAKE_DOCS_VERSION=3.27.0
|
||||||
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
|
# See bug #784815
|
||||||
|
CMAKE_DOCS_USEFLAG="+doc"
|
||||||
|
|
||||||
|
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
|
||||||
|
# ... but seems fine as of 3.22.3?
|
||||||
|
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||||
|
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||||
|
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||||
|
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
|
||||||
|
toolchain-funcs virtualx xdg-utils
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
|
DESCRIPTION="Cross platform Make"
|
||||||
|
HOMEPAGE="https://cmake.org/"
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
CMAKE_DOCS_PREBUILT=0
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]] ; then
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
SRC_URI+=" verify-sig? (
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
|
)"
|
||||||
|
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-arch/libarchive-3.3.3:=
|
||||||
|
app-crypt/rhash:0=
|
||||||
|
>=dev-libs/expat-2.0.1
|
||||||
|
>=dev-libs/jsoncpp-1.9.2-r2:0=
|
||||||
|
>=dev-libs/libuv-1.10.0:=
|
||||||
|
>=net-misc/curl-7.21.5[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/pkgconfig
|
||||||
|
dap? ( dev-cpp/cppdap )
|
||||||
|
gui? (
|
||||||
|
!qt6? (
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
)
|
||||||
|
qt6? ( dev-qt/qtbase:6[gui,widgets] )
|
||||||
|
)
|
||||||
|
ncurses? ( sys-libs/ncurses:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND+="
|
||||||
|
doc? (
|
||||||
|
dev-python/requests
|
||||||
|
dev-python/sphinx
|
||||||
|
)
|
||||||
|
test? ( app-arch/libarchive[zstd] )
|
||||||
|
"
|
||||||
|
|
||||||
|
SITEFILE="50${PN}-gentoo.el"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# Prefix
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||||
|
# Misc
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
||||||
|
|
||||||
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_bootstrap() {
|
||||||
|
# disable running of cmake in bootstrap command
|
||||||
|
sed -i \
|
||||||
|
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
|
||||||
|
bootstrap || die "sed failed"
|
||||||
|
|
||||||
|
# execinfo.h on Solaris isn't quite what it is on Darwin
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
sed -i -e 's/execinfo\.h/blablabla.h/' \
|
||||||
|
Source/kwsys/CMakeLists.txt || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bootstrap script isn't exactly /bin/sh compatible
|
||||||
|
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
|
||||||
|
--prefix="${T}/cmakestrap/" \
|
||||||
|
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|
||||||
|
|| die "Bootstrap failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
cd "${DISTDIR}" || die
|
||||||
|
|
||||||
|
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
|
||||||
|
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
|
||||||
|
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# Disable Xcode hooks, bug #652134
|
||||||
|
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
|
||||||
|
Source/CMakeLists.txt || die
|
||||||
|
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||||
|
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||||
|
Source/cmake.cxx || die
|
||||||
|
|
||||||
|
# Disable isysroot usage with GCC, we've properly instructed
|
||||||
|
# where things are via GCC configuration and ldwrapper
|
||||||
|
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
|
||||||
|
Modules/Platform/Apple-GNU-*.cmake || die
|
||||||
|
# Disable isysroot usage with clang as well
|
||||||
|
sed -i -e '/_SYSROOT_FLAG/d' \
|
||||||
|
Modules/Platform/Apple-Clang.cmake || die
|
||||||
|
# Don't set a POSIX standard, system headers don't like that, #757426
|
||||||
|
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmLoadCommandCommand.cxx \
|
||||||
|
Source/cmStandardLexer.h \
|
||||||
|
Source/cmSystemTools.cxx \
|
||||||
|
Source/cmTimestamp.cxx
|
||||||
|
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmStandardLexer.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add gcc libs to the default link paths
|
||||||
|
sed -i \
|
||||||
|
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
|
||||||
|
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
|
||||||
|
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||||
|
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||||
|
|
||||||
|
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
||||||
|
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
||||||
|
cmake_src_bootstrap
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Fix linking on Solaris
|
||||||
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||||
|
|
||||||
|
# ODR warnings, bug #858335
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
|
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||||
|
-DCMAKE_MAN_DIR=/share/man
|
||||||
|
-DCMAKE_DATA_DIR=/share/${PN}
|
||||||
|
-DSPHINX_MAN=$(usex doc)
|
||||||
|
-DSPHINX_HTML=$(usex doc)
|
||||||
|
-DBUILD_CursesDialog="$(usex ncurses)"
|
||||||
|
-DBUILD_TESTING=$(usex test)
|
||||||
|
-DBUILD_QtDialog=$(usex gui)
|
||||||
|
)
|
||||||
|
|
||||||
|
use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) )
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Fix OutDir and SelectLibraryConfigurations tests
|
||||||
|
# these are altered thanks to our eclass
|
||||||
|
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
|
||||||
|
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
pushd "${BUILD_DIR}" > /dev/null || die
|
||||||
|
|
||||||
|
# Excluded tests:
|
||||||
|
# BootstrapTest: we actualy bootstrap it every time so why test it.
|
||||||
|
# BundleUtilities: bundle creation broken
|
||||||
|
# CMakeOnly.AllFindModules: pthread issues
|
||||||
|
# CTest.updatecvs: which fails to commit as root
|
||||||
|
# Fortran: requires fortran
|
||||||
|
# RunCMake.CompilerLauncher: also requires fortran
|
||||||
|
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
|
||||||
|
# debugedit binary is not in the expected location
|
||||||
|
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
|
||||||
|
# it can't find a deb package that owns libc
|
||||||
|
# TestUpload, which requires network access
|
||||||
|
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
|
||||||
|
local myctestargs=(
|
||||||
|
--output-on-failure
|
||||||
|
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||||
|
)
|
||||||
|
|
||||||
|
virtx cmake_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||||
|
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins Auxiliary/vim/syntax/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/indent
|
||||||
|
doins Auxiliary/vim/indent/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/${PN}.vim"
|
||||||
|
|
||||||
|
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if use gui; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
if use gui; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
278
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.3.ebuild
vendored
Normal file
278
sdk_container/src/third_party/portage-stable/dev-build/cmake/cmake-3.28.3.ebuild
vendored
Normal file
@ -0,0 +1,278 @@
|
|||||||
|
# Copyright 1999-2024 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
|
||||||
|
# Set to 1 if prebuilt, 0 if not
|
||||||
|
# (the construct below is to allow overriding from env for script)
|
||||||
|
: ${CMAKE_DOCS_PREBUILT:=1}
|
||||||
|
|
||||||
|
CMAKE_DOCS_PREBUILT_DEV=sam
|
||||||
|
#CMAKE_DOCS_VERSION=$(ver_cut 1-3)
|
||||||
|
CMAKE_DOCS_VERSION=3.27.0
|
||||||
|
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||||
|
# See bug #784815
|
||||||
|
CMAKE_DOCS_USEFLAG="+doc"
|
||||||
|
|
||||||
|
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
|
||||||
|
# ... but seems fine as of 3.22.3?
|
||||||
|
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
|
||||||
|
CMAKE_MAKEFILE_GENERATOR="emake"
|
||||||
|
CMAKE_REMOVE_MODULES_LIST=( none )
|
||||||
|
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
|
||||||
|
toolchain-funcs virtualx xdg-utils
|
||||||
|
|
||||||
|
MY_P="${P/_/-}"
|
||||||
|
|
||||||
|
DESCRIPTION="Cross platform Make"
|
||||||
|
HOMEPAGE="https://cmake.org/"
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
CMAKE_DOCS_PREBUILT=0
|
||||||
|
|
||||||
|
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
|
||||||
|
inherit git-r3
|
||||||
|
else
|
||||||
|
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
|
||||||
|
|
||||||
|
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ${PV} != *_rc* ]] ; then
|
||||||
|
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
|
||||||
|
inherit verify-sig
|
||||||
|
|
||||||
|
SRC_URI+=" verify-sig? (
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
|
||||||
|
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
|
||||||
|
)"
|
||||||
|
|
||||||
|
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
|
||||||
|
|
||||||
|
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
|
||||||
|
|
||||||
|
S="${WORKDIR}/${MY_P}"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0"
|
||||||
|
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
>=app-arch/libarchive-3.3.3:=
|
||||||
|
app-crypt/rhash:0=
|
||||||
|
>=dev-libs/expat-2.0.1
|
||||||
|
>=dev-libs/jsoncpp-1.9.2-r2:0=
|
||||||
|
>=dev-libs/libuv-1.10.0:=
|
||||||
|
>=net-misc/curl-7.21.5[ssl]
|
||||||
|
sys-libs/zlib
|
||||||
|
virtual/pkgconfig
|
||||||
|
dap? ( dev-cpp/cppdap )
|
||||||
|
gui? (
|
||||||
|
!qt6? (
|
||||||
|
dev-qt/qtcore:5
|
||||||
|
dev-qt/qtgui:5
|
||||||
|
dev-qt/qtwidgets:5
|
||||||
|
)
|
||||||
|
qt6? ( dev-qt/qtbase:6[gui,widgets] )
|
||||||
|
)
|
||||||
|
ncurses? ( sys-libs/ncurses:= )
|
||||||
|
"
|
||||||
|
DEPEND="${RDEPEND}"
|
||||||
|
BDEPEND+="
|
||||||
|
doc? (
|
||||||
|
dev-python/requests
|
||||||
|
dev-python/sphinx
|
||||||
|
)
|
||||||
|
test? ( app-arch/libarchive[zstd] )
|
||||||
|
"
|
||||||
|
|
||||||
|
SITEFILE="50${PN}-gentoo.el"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
# Prefix
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
|
||||||
|
# Misc
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
|
||||||
|
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
|
||||||
|
|
||||||
|
# Upstream fixes (can usually be removed with a version bump)
|
||||||
|
)
|
||||||
|
|
||||||
|
cmake_src_bootstrap() {
|
||||||
|
# disable running of cmake in bootstrap command
|
||||||
|
sed -i \
|
||||||
|
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
|
||||||
|
bootstrap || die "sed failed"
|
||||||
|
|
||||||
|
# execinfo.h on Solaris isn't quite what it is on Darwin
|
||||||
|
if [[ ${CHOST} == *-solaris* ]] ; then
|
||||||
|
sed -i -e 's/execinfo\.h/blablabla.h/' \
|
||||||
|
Source/kwsys/CMakeLists.txt || die
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bootstrap script isn't exactly /bin/sh compatible
|
||||||
|
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
|
||||||
|
--prefix="${T}/cmakestrap/" \
|
||||||
|
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|
||||||
|
|| die "Bootstrap failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
if [[ ${PV} == 9999 ]] ; then
|
||||||
|
git-r3_src_unpack
|
||||||
|
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
|
||||||
|
default
|
||||||
|
else
|
||||||
|
cd "${DISTDIR}" || die
|
||||||
|
|
||||||
|
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
|
||||||
|
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
|
||||||
|
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
|
||||||
|
|
||||||
|
cd "${WORKDIR}" || die
|
||||||
|
|
||||||
|
default
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
cmake_src_prepare
|
||||||
|
|
||||||
|
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||||
|
# Disable Xcode hooks, bug #652134
|
||||||
|
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
|
||||||
|
Source/CMakeLists.txt || die
|
||||||
|
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
|
||||||
|
-e '/cmGlobalXCodeGenerator.h/d' \
|
||||||
|
Source/cmake.cxx || die
|
||||||
|
|
||||||
|
# Disable isysroot usage with GCC, we've properly instructed
|
||||||
|
# where things are via GCC configuration and ldwrapper
|
||||||
|
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
|
||||||
|
Modules/Platform/Apple-GNU-*.cmake || die
|
||||||
|
# Disable isysroot usage with clang as well
|
||||||
|
sed -i -e '/_SYSROOT_FLAG/d' \
|
||||||
|
Modules/Platform/Apple-Clang.cmake || die
|
||||||
|
# Don't set a POSIX standard, system headers don't like that, #757426
|
||||||
|
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmLoadCommandCommand.cxx \
|
||||||
|
Source/cmStandardLexer.h \
|
||||||
|
Source/cmSystemTools.cxx \
|
||||||
|
Source/cmTimestamp.cxx
|
||||||
|
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
|
||||||
|
Source/cmStandardLexer.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add gcc libs to the default link paths
|
||||||
|
sed -i \
|
||||||
|
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
|
||||||
|
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
|
||||||
|
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
|
||||||
|
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
|
||||||
|
|
||||||
|
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
|
||||||
|
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
|
||||||
|
cmake_src_bootstrap
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_configure() {
|
||||||
|
# Fix linking on Solaris
|
||||||
|
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
|
||||||
|
|
||||||
|
# ODR warnings, bug #858335
|
||||||
|
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
|
||||||
|
filter-lto
|
||||||
|
|
||||||
|
local mycmakeargs=(
|
||||||
|
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
|
||||||
|
-DCMake_ENABLE_DEBUGGER=$(usex dap)
|
||||||
|
-DCMAKE_DOC_DIR=/share/doc/${PF}
|
||||||
|
-DCMAKE_MAN_DIR=/share/man
|
||||||
|
-DCMAKE_DATA_DIR=/share/${PN}
|
||||||
|
-DSPHINX_MAN=$(usex doc)
|
||||||
|
-DSPHINX_HTML=$(usex doc)
|
||||||
|
-DBUILD_CursesDialog="$(usex ncurses)"
|
||||||
|
-DBUILD_TESTING=$(usex test)
|
||||||
|
-DBUILD_QtDialog=$(usex gui)
|
||||||
|
)
|
||||||
|
|
||||||
|
use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) )
|
||||||
|
|
||||||
|
cmake_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
# Fix OutDir and SelectLibraryConfigurations tests
|
||||||
|
# these are altered thanks to our eclass
|
||||||
|
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
|
||||||
|
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|
||||||
|
|| die
|
||||||
|
|
||||||
|
pushd "${BUILD_DIR}" > /dev/null || die
|
||||||
|
|
||||||
|
# Excluded tests:
|
||||||
|
# BootstrapTest: we actualy bootstrap it every time so why test it.
|
||||||
|
# BundleUtilities: bundle creation broken
|
||||||
|
# CMakeOnly.AllFindModules: pthread issues
|
||||||
|
# CTest.updatecvs: which fails to commit as root
|
||||||
|
# Fortran: requires fortran
|
||||||
|
# RunCMake.CompilerLauncher: also requires fortran
|
||||||
|
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
|
||||||
|
# debugedit binary is not in the expected location
|
||||||
|
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
|
||||||
|
# it can't find a deb package that owns libc
|
||||||
|
# TestUpload, which requires network access
|
||||||
|
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
|
||||||
|
local myctestargs=(
|
||||||
|
--output-on-failure
|
||||||
|
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
|
||||||
|
)
|
||||||
|
|
||||||
|
virtx cmake_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
cmake_src_install
|
||||||
|
|
||||||
|
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||||
|
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
|
||||||
|
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
|
||||||
|
fi
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/syntax
|
||||||
|
doins Auxiliary/vim/syntax/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/indent
|
||||||
|
doins Auxiliary/vim/indent/cmake.vim
|
||||||
|
|
||||||
|
insinto /usr/share/vim/vimfiles/ftdetect
|
||||||
|
doins "${FILESDIR}/${PN}.vim"
|
||||||
|
|
||||||
|
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
if use gui; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postrm() {
|
||||||
|
if use gui; then
|
||||||
|
xdg_icon_cache_update
|
||||||
|
xdg_desktop_database_update
|
||||||
|
xdg_mimeinfo_database_update
|
||||||
|
fi
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user