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: Thu, 01 Dec 2022 01:39:43
Message-Id: 1669858770.e157412100daba24c088ce28693c64a701b6a7bb.sam@gentoo
1 commit: e157412100daba24c088ce28693c64a701b6a7bb
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 1 01:12:24 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 1 01:39:30 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e1574121
7
8 dev-util/cmake: add 3.25.1
9
10 Signed-off-by: Sam James <sam <AT> gentoo.org>
11
12 dev-util/cmake/Manifest | 4 +
13 dev-util/cmake/cmake-3.25.1.ebuild | 293 +++++++++++++++++++++++++++++++++++++
14 2 files changed, 297 insertions(+)
15
16 diff --git a/dev-util/cmake/Manifest b/dev-util/cmake/Manifest
17 index e8b0ff12b5d0..64712c8512ef 100644
18 --- a/dev-util/cmake/Manifest
19 +++ b/dev-util/cmake/Manifest
20 @@ -13,3 +13,7 @@ DIST cmake-3.25.0-SHA-256.txt 1646 BLAKE2B 0408c43f36777473c0df229059d6508990a01
21 DIST cmake-3.25.0-SHA-256.txt.asc 833 BLAKE2B 1424ff89c7ae68352daddbdb810e818020bdd0979fac32de98839cea510ffb8d30a517327f1853d59bf83f846ccde528d07ed624e55c1b1f185551e4f7bc47d6 SHA512 354f7fbb3597eed8f0d94a496cac13b8d9301576b23bf85fcd5d14b84f2848d96534e2c827f7311a00043da789b4160adad805717f110cfc4677d585691e7e55
22 DIST cmake-3.25.0-docs.tar.xz 499744 BLAKE2B d6bfb6f58bab66e0b444206c93a03c10e084f7326c9ecdc7a1a2c5ccd79e4d6403eff92989e05883e5985782dd93e9daea19e773a7fefdfb3808deda0546288b SHA512 7c382bd837f808fbfe3c665c2294ba935f20f62acf24c46c760d79f252b3e26f7ff70c75cdd802bfe9fc65ef73a560ce686caa53a4516c1071800f1ce2285285
23 DIST cmake-3.25.0.tar.gz 10560389 BLAKE2B 182983a7fc2eedcbd369fef1b1cd118044abcd1679870ca301f3aa8c0ddebd7cb509ae843d0f7a9847b2b54f79235c3407efd47b6a4684c010b6a3b030e1db4b SHA512 f6e527161b8501c72b71a95ff7a0cf304ae02a214086ff58dd686543243d939e83faf94780cda477b19e4d42e4b8f1ff96c52f98e8f7f717e102a5229f4dd44c
24 +DIST cmake-3.25.1-SHA-256.txt 1646 BLAKE2B b5ebf93e481b2bf63c5448875983f0b4d13f4e588eb226577969738f3b56c0ca14d9ab99ffc4dbcf8a2ab74a159de00368ce6ebf9667b90ef657083f351c4c01 SHA512 5e7618b27b0cdb674ee0ea7e1e6641ba31da6f4414ae1a08ed11691e105ebd89a39a307b53e04e2386785bcd2917e1b8d65755ef7c07a1d9f4f400dcb5385b44
25 +DIST cmake-3.25.1-SHA-256.txt.asc 833 BLAKE2B 3dce05d9ad5852165418726fc16de4fcc6c66aa379ce926a68c10515dcd87ed40b60ce345952fc2c83f342b5ebb0f02134af6c07b58e9dcf7e1757ad6294d8b5 SHA512 70ec7f1cef52d76ab6732556b663509de780648a2009608632a7df0de86c1d8b91fab874233413216a486fa97648d95de1556f89f48cea936408b609380c5aa4
26 +DIST cmake-3.25.1-docs.tar.xz 499680 BLAKE2B 0baac457fbde68046080a906093be96c6fe3d7a4b592125237258768eeb0f9c80d3e1e867e2850fe3ebd27a1284d2f47245ca73b8f5b6eb4c046f2afdab78e56 SHA512 02e1bf84be15a7c796a9a7535ee286ca3cddc478707daa1be076be44285f762a0c5eb620b34815e6713b7262a534d7c7fb48e53896c4706645792397f8da83e3
27 +DIST cmake-3.25.1.tar.gz 10561054 BLAKE2B 3aaf546ebc935caaaf6d15c61f99184964902a50004222ba29e17714488b219f8d8754008f2b2d701dd7befe8c0f4cd0edad92fcabb8ad37b981f31b2d1e37a2 SHA512 ec4203cac569e3c340bf6535d193d9ccff9c4e4d59a7a7ae5b9156172f647d9f9212bdc37b3c12cbd676b1351b9a64364c563aaa968a2f41e0f402410ed78d57
28
29 diff --git a/dev-util/cmake/cmake-3.25.1.ebuild b/dev-util/cmake/cmake-3.25.1.ebuild
30 new file mode 100644
31 index 000000000000..9491df325a39
32 --- /dev/null
33 +++ b/dev-util/cmake/cmake-3.25.1.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 +}