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