diff options
Diffstat (limited to 'sci-libs/rocSOLVER/rocSOLVER-5.1.3.ebuild')
-rw-r--r-- | sci-libs/rocSOLVER/rocSOLVER-5.1.3.ebuild | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/sci-libs/rocSOLVER/rocSOLVER-5.1.3.ebuild b/sci-libs/rocSOLVER/rocSOLVER-5.1.3.ebuild new file mode 100644 index 000000000000..77092f820467 --- /dev/null +++ b/sci-libs/rocSOLVER/rocSOLVER-5.1.3.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ROCM_VERSION=${PV} + +inherit cmake edo rocm + +DESCRIPTION="Implementation of a subset of LAPACK functionality on the ROCm platform" +HOMEPAGE="https://github.com/ROCmSoftwarePlatform/rocSOLVER" +SRC_URI="https://github.com/ROCmSoftwarePlatform/rocSOLVER/archive/rocm-${PV}.tar.gz -> rocSOLVER-${PV}.tar.gz" + +LICENSE="BSD" +KEYWORDS="~amd64" +SLOT="0/$(ver_cut 1-2)" + +IUSE="test benchmark" +REQUIRED_USE="${ROCM_REQUIRED_USE}" + +RDEPEND="dev-util/hip + sci-libs/rocBLAS:${SLOT}[${ROCM_USEDEP}] + =dev-libs/libfmt-8* + benchmark? ( virtual/blas )" +DEPEND="${RDEPEND}" +BDEPEND="test? ( dev-cpp/gtest + >=dev-util/cmake-3.22 + virtual/blas )" + +PATCHES=( + "${FILESDIR}/${PN}-4.2.0-add-stdint-header.patch" + "${FILESDIR}/${P}-libfmt8.patch" +) + +RESTRICT="!test? ( test )" + +S=${WORKDIR}/${PN}-rocm-${PV} + +src_prepare() { + sed -e "s: PREFIX rocsolver:# PREFIX rocsolver:" -i library/src/CMakeLists.txt + sed -e "s:\$<INSTALL_INTERFACE\:include>:\$<INSTALL_INTERFACE\:include/rocsolver>:" -i library/src/CMakeLists.txt + sed -e "s:rocm_install_symlink_subdir( rocsolver ):#rocm_install_symlink_subdir( rocsolver ):" -i library/src/CMakeLists.txt + + cmake_src_prepare +} + +src_configure() { + # avoid sandbox violation + addpredict /dev/kfd + addpredict /dev/dri/ + + local mycmakeargs=( + -DCMAKE_SKIP_RPATH=On + -DAMDGPU_TARGETS="$(get_amdgpu_flags)" + -Wno-dev + -DCMAKE_INSTALL_INCLUDEDIR="${EPREFIX}/usr/include/rocsolver" + -DBUILD_CLIENTS_SAMPLES=NO + -DBUILD_CLIENTS_TESTS=$(usex test ON OFF) + -DBUILD_CLIENTS_BENCHMARKS=$(usex benchmark ON OFF) + ) + + CXX=hipcc cmake_src_configure +} + +src_test() { + check_amdgpu + cd "${BUILD_DIR}"/clients/staging || die + LD_LIBRARY_PATH="${BUILD_DIR}/library/src" edob ./rocsolver-test +} + +src_install() { + cmake_src_install + + if use benchmark; then + cd "${BUILD_DIR}" || die + dobin clients/staging/rocsolver-bench + fi +} |