Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/cmake/
Date: Tue, 01 Nov 2022 22:00:41
Message-Id: 1667339868.47d0075c6b7cf1e14bb1fa5486324f09453553de.sam@gentoo
1 commit: 47d0075c6b7cf1e14bb1fa5486324f09453553de
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Tue Nov 1 21:56:58 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Tue Nov 1 21:57:48 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47d0075c
7
8 dev-util/cmake: add 3.24.3
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 dev-util/cmake/Manifest | 4 +
13 dev-util/cmake/cmake-3.24.3.ebuild | 293 +++++++++++++++++++++++++++++++++++++
14 2 files changed, 297 insertions(+)
15
16 diff --git a/dev-util/cmake/Manifest b/dev-util/cmake/Manifest
17 index c78232995d72..5b53baffa715 100644
18 --- a/dev-util/cmake/Manifest
19 +++ b/dev-util/cmake/Manifest
20 @@ -5,3 +5,7 @@ DIST cmake-3.24.2-SHA-256.txt 1646 BLAKE2B 3c48226c96844c5ddd8567637a61eca697425
21 DIST cmake-3.24.2-SHA-256.txt.asc 833 BLAKE2B fe6a3caa3db7b6be186e49ee5d86706f2cda9a45858bc964be5407f577195d0af74c10e66ea30faa0a35280f1c9f927732f9cc7fcb9dae8e521882955b6ef617 SHA512 a0fa1a002f2f23e8b3b8fb2689905ac618ca423b96f904bee172d6a62e6fb0c0a46394ce57474be9c9810e1d09abf3b192f595cb0e92d5c62d11b60f0c572b82
22 DIST cmake-3.24.2-docs.tar.xz 492188 BLAKE2B 64e0d69ce8e739e6622b0cfde8956cb2bf67f9bf412b8d98afa1657bd30d8a2a1cf874e6422c78c222199616aac85d472ef398c83da29d5d64516384e9ed69aa SHA512 d0ef81dfe37ac2a225fe795fd3e6780e3b8fd5caa472a14ff8d036917172efd13126897c7a2a78d8269aa20e4f35c7b9be7bed14ecbfb24df332c332a4ff16c4
23 DIST cmake-3.24.2.tar.gz 10396126 BLAKE2B fcfdbbce94ce6cdb3fa478afe591bc63ba25104a32edc3dd9395d7b6bd16e222f41428ef4f9982061d6d1e69b10efbc2a33cc9df4573400612b4b756b80ec348 SHA512 6f0e8e29bf0336f555ba72c4d83f35d820f8a5159cc999d48795dc57a6627b4ee3966dda84ca97d39906e35dd476ea00cf80023672cc0fad862e2996194c0674
24 +DIST cmake-3.24.3-SHA-256.txt 1646 BLAKE2B 739503a16c2e333c9b05a3232e2dcc56105f6933414a4a2054a582b9cf53a12c2b1a37d2189077cbcd138b8cc2828ef1819ab0fc74ded926ef0df7c7ea8c79e1 SHA512 b670acc21b98d1da22b31743f83ba10d6dbfda60341457a02639ee6f15d50462ddcd90b5992eff275d77e7cce6f074aff72abd95c539d18f191682ad87d7884e
25 +DIST cmake-3.24.3-SHA-256.txt.asc 833 BLAKE2B f8797072c2d30facfbbebc972c68cd1a6510331e63c67e6b665bd97dd9013e354bab68e03d578698d2f9e50c173ff8e1cac40751c7a3645be294a717f4bfee3a SHA512 bc67eaf6dba935df85ae3d7c37600259b032579813b275087332d5cc4c72dd6bdf44762260729a15f237f69f772670291bb2f2dcc4b155fb17112e0e8fa01d6b
26 +DIST cmake-3.24.3-docs.tar.xz 492156 BLAKE2B 92edd031189673c46e8e13a5e1200917734b918651dc01d982c25602e48cd5d5f014fa8563bdc79b3d09d90ef07a52c9d5a570a5181c59c233ba5bf450cdd5df SHA512 75806743fca976098b9b7ee777c494478142ab5686dc8ccb18510b5938c7e88cf8b3bc47321022f55f33c04bb0a7f549d70be8c765d1ec143467e679c8863132
27 +DIST cmake-3.24.3.tar.gz 10399876 BLAKE2B 24e2ff8cf4f63ba182dd305c14367fa0163f6187da84f7ec10b1ad6241c7df5b48f329b67ba5f7b5d3b644cba89c7adb848a3ae7196bf5b4dbfaedf178dba250 SHA512 57edf2a8c1c9edeed7fd11271083f333d940b31e0e909d9c71671465961559c505e4e22f36e68bfe1a40a01eb05fe94bc8d37b062f9be613f959f864207e3764
28
29 diff --git a/dev-util/cmake/cmake-3.24.3.ebuild b/dev-util/cmake/cmake-3.24.3.ebuild
30 new file mode 100644
31 index 000000000000..9491df325a39
32 --- /dev/null
33 +++ b/dev-util/cmake/cmake-3.24.3.ebuild
34 @@ -0,0 +1,293 @@
35 +# Copyright 1999-2022 Gentoo Authors
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI=8
39 +
40 +# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
41 +# Set to 1 if prebuilt, 0 if not
42 +# (the construct below is to allow overriding from env for script)
43 +: ${CMAKE_DOCS_PREBUILT:=1}
44 +
45 +CMAKE_DOCS_PREBUILT_DEV=sam
46 +CMAKE_DOCS_VERSION=$(ver_cut 1-3)
47 +# Default to generating docs (inc. man pages) if no prebuilt; overridden later
48 +# See bug #784815
49 +CMAKE_DOCS_USEFLAG="+doc"
50 +
51 +# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
52 +# ... but seems fine as of 3.22.3?
53 +# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
54 +CMAKE_MAKEFILE_GENERATOR="emake"
55 +CMAKE_REMOVE_MODULES_LIST=( none )
56 +inherit bash-completion-r1 cmake elisp-common flag-o-matic multiprocessing \
57 + toolchain-funcs virtualx xdg-utils
58 +
59 +MY_P="${P/_/-}"
60 +
61 +DESCRIPTION="Cross platform Make"
62 +HOMEPAGE="https://cmake.org/"
63 +if [[ ${PV} == 9999 ]] ; then
64 + CMAKE_DOCS_PREBUILT=0
65 +
66 + EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
67 + inherit git-r3
68 +else
69 + SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
70 +
71 + if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
72 + SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
73 + fi
74 +
75 + if [[ ${PV} != *_rc* ]] ; then
76 + VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/bradking.asc
77 + inherit verify-sig
78 +
79 + SRC_URI+=" verify-sig? (
80 + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
81 + https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
82 + )"
83 +
84 + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
85 +
86 + BDEPEND="verify-sig? ( sec-keys/openpgp-keys-bradking )"
87 + fi
88 +fi
89 +
90 +[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
91 +
92 +S="${WORKDIR}/${MY_P}"
93 +
94 +LICENSE="CMake"
95 +SLOT="0"
96 +IUSE="${CMAKE_DOCS_USEFLAG} emacs ncurses qt5 test"
97 +RESTRICT="!test? ( test )"
98 +
99 +RDEPEND="
100 + >=app-arch/libarchive-3.3.3:=
101 + app-crypt/rhash
102 + >=dev-libs/expat-2.0.1
103 + >=dev-libs/jsoncpp-1.9.2-r2:0=
104 + >=dev-libs/libuv-1.10.0:=
105 + >=net-misc/curl-7.21.5[ssl]
106 + sys-libs/zlib
107 + virtual/pkgconfig
108 + emacs? ( >=app-editors/emacs-23.1:* )
109 + ncurses? ( sys-libs/ncurses:0= )
110 + qt5? (
111 + dev-qt/qtcore:5
112 + dev-qt/qtgui:5
113 + dev-qt/qtwidgets:5
114 + )
115 +"
116 +DEPEND="${RDEPEND}"
117 +BDEPEND+="
118 + doc? (
119 + dev-python/requests
120 + dev-python/sphinx
121 + )
122 + test? ( app-arch/libarchive[zstd] )
123 +"
124 +
125 +SITEFILE="50${PN}-gentoo.el"
126 +
127 +PATCHES=(
128 + # Prefix
129 + "${FILESDIR}"/${PN}-3.16.0_rc4-darwin-bundle.patch
130 + "${FILESDIR}"/${PN}-3.14.0_rc3-prefix-dirs.patch
131 + "${FILESDIR}"/${PN}-3.19.1-darwin-gcc.patch
132 +
133 + # Handle gentoo packaging in find modules
134 + "${FILESDIR}"/${PN}-3.17.0_rc1-FindBLAS.patch
135 + # Next patch needs to be reworked
136 + #"${FILESDIR}"/${PN}-3.17.0_rc1-FindLAPACK.patch
137 + "${FILESDIR}"/${PN}-3.5.2-FindQt4.patch
138 +
139 + # Respect python eclasses
140 + "${FILESDIR}"/${PN}-2.8.10.2-FindPythonLibs.patch
141 + "${FILESDIR}"/${PN}-3.9.0_rc2-FindPythonInterp.patch
142 +
143 + "${FILESDIR}"/${PN}-3.18.0-filter_distcc_warning.patch # bug 691544
144 +
145 + # upstream fixes (can usually be removed with a version bump)
146 +)
147 +
148 +cmake_src_bootstrap() {
149 + # disable running of cmake in bootstrap command
150 + sed -i \
151 + -e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
152 + bootstrap || die "sed failed"
153 +
154 + # execinfo.h on Solaris isn't quite what it is on Darwin
155 + if [[ ${CHOST} == *-solaris* ]] ; then
156 + sed -i -e 's/execinfo\.h/blablabla.h/' \
157 + Source/kwsys/CMakeLists.txt || die
158 + fi
159 +
160 + # bootstrap script isn't exactly /bin/sh compatible
161 + tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
162 + --prefix="${T}/cmakestrap/" \
163 + --parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
164 + || die "Bootstrap failed"
165 +}
166 +
167 +src_unpack() {
168 + if [[ ${PV} == 9999 ]] ; then
169 + git-r3_src_unpack
170 + elif ! use verify-sig || [[ ${PV} == *_rc* ]] ; then
171 + default
172 + else
173 + cd "${DISTDIR}" || die
174 +
175 + # See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
176 + verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
177 + verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
178 +
179 + cd "${WORKDIR}" || die
180 +
181 + default
182 + fi
183 +}
184 +
185 +src_prepare() {
186 + cmake_src_prepare
187 +
188 + if [[ ${CHOST} == *-darwin* ]] ; then
189 + # Disable Xcode hooks, bug #652134
190 + sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
191 + Source/CMakeLists.txt || die
192 + sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
193 + -e '/cmGlobalXCodeGenerator.h/d' \
194 + Source/cmake.cxx || die
195 +
196 + # Disable isysroot usage with GCC, we've properly instructed
197 + # where things are via GCC configuration and ldwrapper
198 + sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
199 + Modules/Platform/Apple-GNU-*.cmake || die
200 + # Disable isysroot usage with clang as well
201 + sed -i -e '/_SYSROOT_FLAG/d' \
202 + Modules/Platform/Apple-Clang.cmake || die
203 + # Don't set a POSIX standard, system headers don't like that, #757426
204 + sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
205 + Source/cmLoadCommandCommand.cxx \
206 + Source/cmStandardLexer.h \
207 + Source/cmSystemTools.cxx \
208 + Source/cmTimestamp.cxx
209 + sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
210 + Source/cmStandardLexer.h
211 + fi
212 +
213 + # Add gcc libs to the default link paths
214 + sed -i \
215 + -e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
216 + -e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
217 + -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
218 + Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
219 +
220 + if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
221 + CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
222 + cmake_src_bootstrap
223 + fi
224 +}
225 +
226 +src_configure() {
227 + # Fix linking on Solaris
228 + [[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
229 +
230 + # ODR warnings, bug #858335
231 + # https://gitlab.kitware.com/cmake/cmake/-/issues/20740
232 + filter-lto
233 +
234 + local mycmakeargs=(
235 + -DCMAKE_USE_SYSTEM_LIBRARIES=ON
236 + -DCMAKE_DOC_DIR=/share/doc/${PF}
237 + -DCMAKE_MAN_DIR=/share/man
238 + -DCMAKE_DATA_DIR=/share/${PN}
239 + -DSPHINX_MAN=$(usex doc)
240 + -DSPHINX_HTML=$(usex doc)
241 + -DBUILD_CursesDialog="$(usex ncurses)"
242 + -DBUILD_TESTING=$(usex test)
243 + )
244 + use qt5 && mycmakeargs+=( -DBUILD_QtDialog=ON )
245 +
246 + cmake_src_configure
247 +}
248 +
249 +src_compile() {
250 + cmake_src_compile
251 + use emacs && elisp-compile Auxiliary/cmake-mode.el
252 +}
253 +
254 +src_test() {
255 + # Fix OutDir and SelectLibraryConfigurations tests
256 + # these are altered thanks to our eclass
257 + sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
258 + "${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
259 + || die
260 +
261 + pushd "${BUILD_DIR}" > /dev/null || die
262 +
263 + # Excluded tests:
264 + # BootstrapTest: we actualy bootstrap it every time so why test it.
265 + # BundleUtilities: bundle creation broken
266 + # CMakeOnly.AllFindModules: pthread issues
267 + # CTest.updatecvs: which fails to commit as root
268 + # Fortran: requires fortran
269 + # RunCMake.CompilerLauncher: also requires fortran
270 + # RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
271 + # debugedit binary is not in the expected location
272 + # RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
273 + # it can't find a deb package that owns libc
274 + # TestUpload, which requires network access
275 + # RunCMake.CMP0125, known failure reported upstream (bug #829414)
276 + local myctestargs=(
277 + --output-on-failure
278 + -E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
279 + )
280 +
281 + virtx cmake_src_test
282 +}
283 +
284 +src_install() {
285 + cmake_src_install
286 +
287 + # If USE=doc, there'll be newly generated docs which we install instead.
288 + if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
289 + doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
290 + fi
291 +
292 + if use emacs; then
293 + elisp-install ${PN} Auxiliary/cmake-mode.el Auxiliary/cmake-mode.elc
294 + elisp-site-file-install "${FILESDIR}/${SITEFILE}"
295 + fi
296 +
297 + insinto /usr/share/vim/vimfiles/syntax
298 + doins Auxiliary/vim/syntax/cmake.vim
299 +
300 + insinto /usr/share/vim/vimfiles/indent
301 + doins Auxiliary/vim/indent/cmake.vim
302 +
303 + insinto /usr/share/vim/vimfiles/ftdetect
304 + doins "${FILESDIR}/${PN}.vim"
305 +
306 + dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
307 +}
308 +
309 +pkg_postinst() {
310 + use emacs && elisp-site-regen
311 +
312 + if use qt5; then
313 + xdg_icon_cache_update
314 + xdg_desktop_database_update
315 + xdg_mimeinfo_database_update
316 + fi
317 +}
318 +
319 +pkg_postrm() {
320 + use emacs && elisp-site-regen
321 +
322 + if use qt5; then
323 + xdg_icon_cache_update
324 + xdg_desktop_database_update
325 + xdg_mimeinfo_database_update
326 + fi
327 +}