1*4882a593SmuzhiyunLICENSE = "GPL-2.0-only & GPL-3.0-only & BSD-3-Clause & LGPL-2.0-only & Apache-2.0" 2*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5fa987762101f748a6cdd951b64ffc6b" 3*4882a593SmuzhiyunSRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https;branch=master \ 4*4882a593Smuzhiyun file://0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch \ 5*4882a593Smuzhiyun file://0002-Preserve-links-when-installing-libmetis.patch \ 6*4882a593Smuzhiyun file://0003-Add-version-information-to-libmetis.patch \ 7*4882a593Smuzhiyun " 8*4882a593SmuzhiyunSRCREV = "538273cfd53720a10e34a3d80d3779b607e1ac26" 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunS = "${WORKDIR}/git" 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunDEPENDS = "cmake-native lapack gmp mpfr chrpath-native" 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunPROVIDES = "mongoose graphblas" 15*4882a593SmuzhiyunRPROVIDES:${PN} = "mongoose graphblas" 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun# The values of $CC, $CXX, and $LD that Bitbake uses have spaces in them which 18*4882a593Smuzhiyun# causes problems when the SuiteSparse Makefiles try to pass these values on 19*4882a593Smuzhiyun# the command line. To get around this problem, set these variables to only the 20*4882a593Smuzhiyun# program name and prepend the rest of the value onto the corresponding FLAGS 21*4882a593Smuzhiyun# variable. 22*4882a593SmuzhiyunCFLAGS:prepend := "${@" ".join(d.getVar('CC', True).split()[1:])} " 23*4882a593Smuzhiyunexport CC := "${@d.getVar('CC', True).split()[0]}" 24*4882a593Smuzhiyun 25*4882a593SmuzhiyunCXXFLAGS:prepend := "${@" ".join(d.getVar('CXX', True).split()[1:])} " 26*4882a593Smuzhiyunexport CXX := "${@d.getVar('CXX', True).split()[0]}" 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunLDFLAGS:prepend := "${@" ".join(d.getVar('LD', True).split()[1:])} " 29*4882a593Smuzhiyunexport LD := "${@d.getVar('LD', True).split()[0]}" 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunexport CMAKE_OPTIONS = " \ 32*4882a593Smuzhiyun -DCMAKE_INSTALL_PREFIX=${D}${prefix} \ 33*4882a593Smuzhiyun -DCMAKE_INSTALL_LIBDIR=${baselib} \ 34*4882a593Smuzhiyun" 35*4882a593Smuzhiyun 36*4882a593Smuzhiyundo_compile () { 37*4882a593Smuzhiyun oe_runmake library 38*4882a593Smuzhiyun} 39*4882a593Smuzhiyun 40*4882a593Smuzhiyundo_install () { 41*4882a593Smuzhiyun oe_runmake prefix=${D}${prefix} INSTALL=${D}${prefix} install 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun # Remove runtime paths from shared libraries 44*4882a593Smuzhiyun for file in ${D}${libdir}/*.so.*; do 45*4882a593Smuzhiyun if [ ! -L "$file" ]; then 46*4882a593Smuzhiyun chrpath -d "$file" 47*4882a593Smuzhiyun fi 48*4882a593Smuzhiyun done 49*4882a593Smuzhiyun} 50*4882a593Smuzhiyun 51*4882a593SmuzhiyunFILES:${PN} += " \ 52*4882a593Smuzhiyun ${libdir}/libmongoose.so.* \ 53*4882a593Smuzhiyun ${libdir}/libgraphblas.so.* \ 54*4882a593Smuzhiyun ${libdir}/libmetis.so.* \ 55*4882a593Smuzhiyun ${libdir}/libsuitesparseconfig.so.* \ 56*4882a593Smuzhiyun ${libdir}/libamd.so.* \ 57*4882a593Smuzhiyun ${libdir}/libbtf.so.* \ 58*4882a593Smuzhiyun ${libdir}/libcamd.so.* \ 59*4882a593Smuzhiyun ${libdir}/libccolamd.so.* \ 60*4882a593Smuzhiyun ${libdir}/libcolamd.so.* \ 61*4882a593Smuzhiyun ${libdir}/libcholmod.so.* \ 62*4882a593Smuzhiyun ${libdir}/libcxsparse.so.* \ 63*4882a593Smuzhiyun ${libdir}/libldl.so.* \ 64*4882a593Smuzhiyun ${libdir}/libklu.so.* \ 65*4882a593Smuzhiyun ${libdir}/libumfpack.so.* \ 66*4882a593Smuzhiyun ${libdir}/librbio.so.* \ 67*4882a593Smuzhiyun ${libdir}/libspqr.so.* \ 68*4882a593Smuzhiyun ${libdir}/libsliplu.so.* \ 69*4882a593Smuzhiyun ${bindir}/mongoose \ 70*4882a593Smuzhiyun" 71*4882a593Smuzhiyun 72*4882a593SmuzhiyunFILES:${PN}-staticdev += "${libdir}/libmongoose.a" 73*4882a593SmuzhiyunFILES:${PN}-dev += "${includedir} ${libdir}/*.so" 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunEXCLUDE_FROM_WORLD = "1" 76