diff --git a/sci-libs/cxsparse/Manifest b/sci-libs/cxsparse/Manifest index ecf6350145138..2684cf415d0e0 100644 --- a/sci-libs/cxsparse/Manifest +++ b/sci-libs/cxsparse/Manifest @@ -1,2 +1,3 @@ DIST SuiteSparse-7.0.0.gh.tar.gz 64884962 BLAKE2B 06c6cf54ffae188f5179e0cd45523700448d8999b44d6b1aeb3dfb99ccf34a570f6aff600988a144c68a4a2d8f41e32f7145e09349aed3bd889501ea031c8340 SHA512 50b1cd7bab6e4c063984162ed803fd13b69df7f67efe8ce7af15eace6b0ccd1669b6e57daa59511fd9531a847433cda49c1f52bfff234031af0d79e7fbd6423e +DIST SuiteSparse-7.12.2.gh.tar.gz 95337908 BLAKE2B df279ccc572887ecda2809551eefd34d0780b9cfef5c257c6c9f218dbcc5140f44e148a8199ebe899984561bb454b1f202606f8af290d71f5caeef4c008659c4 SHA512 0a7d070c90ef0a55c3ed821edf6567f4a84d5615250898b8fbacad19e1cf53dba199c38369c771465b4149ba5501bf0c1ae1352f29d0fb462fd10ca90e486cfa DIST cxsparse-3.2.0.tar.bz2 2080196 BLAKE2B 9b89469c45e518077c4348ad3efd8d89d248e4c039057c0286ee44b493ab595075894d01530cbfbe845b91ef5e43cfbfdd102721cfeefe943a1cb4bc5f171843 SHA512 9931dac5b319b61a39ccb5f34309acb4240602b5f55d029c790ed0b7319a373cb925c4b83994526af4bc5b19b88c723f04581068d1fc80960a290c9d6d1e1aef diff --git a/sci-libs/cxsparse/cxsparse-4.4.2.ebuild b/sci-libs/cxsparse/cxsparse-4.4.2.ebuild new file mode 100644 index 0000000000000..50557958b3557 --- /dev/null +++ b/sci-libs/cxsparse/cxsparse-4.4.2.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +Sparse_PV="7.12.2" +Sparse_P="SuiteSparse-${Sparse_PV}" +DESCRIPTION="Extended sparse matrix package" +HOMEPAGE="https://people.engr.tamu.edu/davis/suitesparse.html" +SRC_URI="https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v${Sparse_PV}.tar.gz -> ${Sparse_P}.gh.tar.gz" + +S="${WORKDIR}/${Sparse_P}/CXSparse" +LICENSE="LGPL-2.1" +SLOT="0/4" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND=">=sci-libs/suitesparseconfig-${Sparse_PV}" +RDEPEND="${DEPEND}" + +src_configure() { + # Define SUITESPARSE_INCLUDEDIR_POSTFIX to "" otherwise it take + # the value suitesparse, and the include directory would be set to + # /usr/include/suitesparse + # This need to be set in all suitesparse ebuilds. + local mycmakeargs=( + -DBUILD_STATIC_LIBS=OFF + -DSUITESPARSE_DEMOS=$(usex test) + -DSUITESPARSE_INCLUDEDIR_POSTFIX="" + ) + cmake_src_configure +} + +src_test() { + # Because we are not using cmake_src_test, + # we have to manually go to BUILD_DIR + cd "${BUILD_DIR}" || die + # Programs assume that they can access the Matrix folder in ${S} + ln -s "${S}/Matrix" || die + # cs_demo2, cs_di_demo2, cs_dl_demo2 + local demo_set_1=( + ash219 + bcsstk01 + bcsstk16 + fs_183_1 + lp_afiro + mbeacxc + t1 + west0067 + ) + # cs_demo3, cs_di_demo3, cs_dl_demo3 + local demo_set_2=( + bcsstk01 + bcsstk16 + ) + # cs_ci_demo2, cs_cl_demo2 + local demo_set_3=( + c4 + c_mbeacxc + c_west0067 + mhd1280b + neumann + qc324 + t2 + t3 + t4 + young1c + ) + # cs_ci_demo3, cs_cl_demo3 + local demo_set_4=( + c4 + mhd1280b + ) + + declare -A testsuite + testsuite+=( + ["cs_idemo"]=t2 + ["cs_ldemo"]=t2 + + ["cs_demo1"]=t1 + ["cs_demo2"]=${demo_set_1[@]} + ["cs_demo3"]=${demo_set_2[@]} + + ["cs_ci_demo1"]=t2 + ["cs_ci_demo2"]=${demo_set_3[@]} + ["cs_ci_demo3"]=${demo_set_4[@]} + + ["cs_cl_demo1"]=t2 + ["cs_cl_demo2"]=${demo_set_3[@]} + ["cs_cl_demo3"]=${demo_set_4[@]} + + ["cs_di_demo1"]=t1 + ["cs_di_demo2"]=${demo_set_1[@]} + ["cs_di_demo3"]=${demo_set_2[@]} + + ["cs_dl_demo1"]=t1 + ["cs_dl_demo2"]=${demo_set_1[@]} + ["cs_dl_demo3"]=${demo_set_2[@]} + ) + + # Run demo files + local i + local j + for i in ${!testsuite[@]}; do + for j in ${testsuite[${i[@]}]}; do + ./${i} < Matrix/${j} || die "failed testing ${i} with ${j}" + done + done + einfo "All tests passed" +}