commit:     b8908ee8a65cb1876409ba6896abe6fac04a55b0
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 11 13:25:44 2022 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Tue Jan 11 13:26:20 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8908ee8

dev-util/nvidia-cuda-sdk: add version 11.5.1

Closes: https://bugs.gentoo.org/760522
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 dev-util/nvidia-cuda-sdk/Manifest                  |   1 +
 .../nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild  | 140 +++++++++++++++++++++
 2 files changed, 141 insertions(+)

diff --git a/dev-util/nvidia-cuda-sdk/Manifest 
b/dev-util/nvidia-cuda-sdk/Manifest
index e80c872ce2fa..0ec3c2e9bff3 100644
--- a/dev-util/nvidia-cuda-sdk/Manifest
+++ b/dev-util/nvidia-cuda-sdk/Manifest
@@ -1 +1,2 @@
 DIST cuda_10.2.89_440.33.01_linux.run 2645419389 BLAKE2B 
236aa70a7b45e3636c2c229fffa7d1ca0699ab4365865a73edab607a209c42c2899133dd6a83c61c5929fa754668ad15aec4d847639af1c00a8e6657c8487c77
 SHA512 
ad8da539ff5df7caf411d1e497ff3d6978cfa8a1fd9150fa4846089e92a604ea56be8631f3efdfe7229a655b8d2d28e6edb32f5731530a77d6f00241cc7aab6e
+DIST cuda_11.5.1_495.29.05_linux.run 3420998120 BLAKE2B 
0d3f9626f97c60291397ebd0edc04e2c84942473d943d95af6fae244e5809721335bb90eaa6c019c9391de516d20599ca5631e99764616b6d25eacf1899d99d9
 SHA512 
71fb354714cac09265b5102223f919e34e3a8503593dd4f2e7b9542ae7787de96d64c490276b36b685da9e691cc2704419b67cfa376dcd3647e4d0f93b02db9b

diff --git a/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild 
b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild
new file mode 100644
index 000000000000..f919d837304d
--- /dev/null
+++ b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cuda flag-o-matic portability toolchain-funcs unpacker
+
+DRIVER_PV="495.29.05"
+
+DESCRIPTION="NVIDIA CUDA Software Development Kit"
+HOMEPAGE="https://developer.nvidia.com/cuda-zone";
+SRC_URI="https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux.run";
+S="${WORKDIR}/builds/cuda_samples"
+
+LICENSE="CUDPP"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~amd64-linux"
+IUSE="+cuda debug +doc +examples opencl mpi"
+
+RDEPEND="
+       ~dev-util/nvidia-cuda-toolkit-${PV}
+       media-libs/freeglut
+       examples? (
+               media-libs/freeimage
+               media-libs/glew:0=
+               !prefix? ( >=x11-drivers/nvidia-drivers-${DRIVER_PV}[uvm(+)] )
+               mpi? ( virtual/mpi )
+       )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+RESTRICT="test"
+
+QA_EXECSTACK=(
+       opt/cuda/sdk/0_Simple/cdpSimplePrint/cdpSimplePrint
+       opt/cuda/sdk/0_Simple/cdpSimpleQuicksort/cdpSimpleQuicksort
+       opt/cuda/sdk/bin/x86_64/linux/release/cdpSimplePrint
+       opt/cuda/sdk/bin/x86_64/linux/release/cdpSimpleQuicksort
+       )
+
+src_prepare() {
+       cuda_src_prepare
+
+       export RAWLDFLAGS="$(raw-ldflags)"
+
+       local file
+       while IFS="" read -d $'\0' -r file; do
+               sed \
+                       -e 's:-O[23]::g' \
+                       -e "/LINK/s:gcc:$(tc-getCC) ${LDFLAGS}:g" \
+                       -e "/LINK/s:g++:$(tc-getCXX) ${LDFLAGS}:g" \
+                       -e "/CC/s:gcc:$(tc-getCC):g" \
+                       -e "/GCC/s:g++:$(tc-getCXX):g" \
+                       -e "/NVCC /s|\(:=\).*|:= 
${EPREFIX}/opt/cuda/bin/nvcc|g" \
+                       -e "/ CFLAGS/s|\(:=\)|\1 ${CFLAGS}|g" \
+                       -e "/ CXXFLAGS/s|\(:=\)|\1 ${CXXFLAGS}|g" \
+                       -e "/NVCCFLAGS/s|\(:=\)|\1 ${NVCCFLAGS} |g" \
+                       -e 's:-Wimplicit::g' \
+                       -e 
"s|../../common/lib/linux/\$(OS_ARCH)/libGLEW.a|$($(tc-getPKG_CONFIG) --libs 
glew)|g" \
+                       -e 
"s|../../common/lib/\$(OSLOWER)/libGLEW.a|$($(tc-getPKG_CONFIG) --libs glew)|g" 
\
+                       -e 
"s|../../common/lib/\$(OSLOWER)/\$(OS_ARCH)/libGLEW.a|$($(tc-getPKG_CONFIG) 
--libs glew)|g" \
+                       -i "${file}" || die
+       done < <(find . -type f -name 'Makefile' -print0)
+
+       # Upstream suggested us skip cudaNvSci 
https://github.com/NVIDIA/cuda-samples/issues/22
+       rm -rf 0_Simple/cudaNvSci || die
+       rm -rf common/inc/GL || die
+       find . -type f -name '*.a' -delete || die
+
+       eapply_user
+}
+
+src_compile() {
+       use examples || return
+       local myopts=("verbose=1")
+       use debug && myopts+=("dbg=1")
+       export FAKEROOTKEY=1 # Workaround sandbox issue in #462602
+       emake \
+               cuda-install="${EPREFIX}/opt/cuda" \
+               CUDA_PATH="${EPREFIX}/opt/cuda/" \
+               MPI_GCC=10 \
+               "${myopts[@]}"
+}
+
+src_test() {
+       addwrite /dev/nvidiactl
+       addwrite /dev/nvidia0
+
+       local i
+       for i in {0..9}*/*; do
+               emake -C "${i}" run
+       done
+}
+
+src_install() {
+       local f t crap=( *.txt Samples.htm* )
+
+       if use doc; then
+               ebegin "Installing docs ..."
+                       while IFS="" read -d $'\0' -r f; do
+                               treecopy "${f}" "${ED}"/usr/share/doc/${PF}/
+                       done < <(find -type f \( -name 'readme.txt' -o -name 
'*.pdf' \) -print0)
+
+                       while IFS="" read -d $'\0' -r f; do
+                               docompress -x "${f#${ED}}"
+                       done < <(find "${ED}"/usr/share/doc/${PF}/ -type f 
-name 'readme.txt' -print0)
+               eend "Done"
+       fi
+
+       ebegin "Cleaning before installation..."
+               for f in "${crap[@]}"; do
+                       rm -f "${f}" || die
+               done
+               find -type f \( -name '*.o' -o -name '*.pdf' -o -name 
'readme.txt' \) -delete || die
+       eend "Done"
+
+       ebegin "Moving files..."
+               while IFS="" read -d $'\0' -r f; do
+                       t="$(dirname ${f})"
+                       if [[ ${t/obj\/} != ${t} || ${t##*.} == a ]]; then
+                               continue
+                       fi
+                       if [[ -x ${f} ]]; then
+                               exeinto /opt/cuda/sdk/"${t}"
+                               doexe "${f}"
+                       else
+                               insinto /opt/cuda/sdk/"${t}"
+                               doins "${f}"
+                       fi
+               done < <(find . -type f -print0)
+       eend "Done"
+}
+
+pkg_postinst() {
+       if use examples && use prefix; then
+               ewarn "Gentoo Prefix does not manage kernel modules.  You need 
to make certain"
+               ewarn "the function counterpart to 
>=x11-drivers/nvidia-drivers-${DRIVER_PV}"
+               ewarn "is available from the host"
+       fi
+}

Reply via email to