diff mbox series

[meta-openembedded] suitesparse: Update after toolchain selection changes

Message ID 20250620101405.2455812-1-richard.purdie@linuxfoundation.org
State New
Headers show
Series [meta-openembedded] suitesparse: Update after toolchain selection changes | expand

Commit Message

Richard Purdie June 20, 2025, 10:14 a.m. UTC
The toolchain selection changes mean CC is not set until after the recipe
is parsed, breaking the manipulations made by this recipe.

Replace it with code to inherit the cmake class, which correctly
configures cmake to use the right compiler/compiler flags.

We need to patch the makefiles to avoid those options being added
incorrectly.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 .../suitesparse/makefile-quoting.patch        | 32 +++++++++++++++++++
 .../suitesparse/suitesparse_5.10.1.bb         |  7 ++++
 2 files changed, 39 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/suitesparse/suitesparse/makefile-quoting.patch
diff mbox series

Patch

diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse/makefile-quoting.patch b/meta-oe/recipes-devtools/suitesparse/suitesparse/makefile-quoting.patch
new file mode 100644
index 0000000000..6bd2ffbb55
--- /dev/null
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/makefile-quoting.patch
@@ -0,0 +1,32 @@ 
+OE's CC and CXX contain spaces and extra options which is incompatible with 
+cmake way of handling them. Remove passing the compiler options this way in
+favour of our normal cmake toolchain files added elsewhere.
+
+Upstream-Status: Pending
+
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -282,7 +282,7 @@ metis: include/metis.h
+ # hardcoded below.
+ include/metis.h:
+ ifeq (,$(MY_METIS_LIB))
+-	- ( cd metis-5.1.0 && $(MAKE) config shared=1 prefix=$(SUITESPARSE) cc=$(CC) )
++	- ( cd metis-5.1.0 && $(MAKE) config shared=1 prefix=$(SUITESPARSE) )
+ 	- ( cd metis-5.1.0 && $(MAKE) )
+ 	- ( cd metis-5.1.0 && $(MAKE) install )
+ 	- $(SO_INSTALL_NAME) $(SUITESPARSE)/lib/libmetis.dylib \
+Index: git/SuiteSparse_config/SuiteSparse_config.mk
+===================================================================
+--- git.orig/SuiteSparse_config/SuiteSparse_config.mk
++++ git/SuiteSparse_config/SuiteSparse_config.mk
+@@ -146,7 +146,7 @@ SUITESPARSE_VERSION = 5.10.1
+         endif
+     endif
+ 
+-    CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX) -DCMAKE_C_COMPILER=$(CC)
++    #CMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX) -DCMAKE_C_COMPILER=$(CC)
+ 
+     #---------------------------------------------------------------------------
+     # CFLAGS for the C/C++ compiler
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
index b113145808..29f114a9dc 100644
--- a/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
@@ -4,6 +4,7 @@  SRC_URI = "git://github.com/DrTimothyAldenDavis/SuiteSparse;protocol=https;branc
            file://0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch \
            file://0002-Preserve-links-when-installing-libmetis.patch \
            file://0003-Add-version-information-to-libmetis.patch \
+           file://makefile-quoting.patch \
            "
 SRCREV = "538273cfd53720a10e34a3d80d3779b607e1ac26"
 
@@ -14,11 +15,17 @@  DEPENDS = "cmake-native lapack gmp mpfr chrpath-native"
 PROVIDES = "mongoose graphblas"
 RPROVIDES:${PN} = "mongoose graphblas"
 
+inherit cmake
+
+B = "${S}"
+
 export CMAKE_OPTIONS = " \
     -DCMAKE_INSTALL_PREFIX=${D}${prefix} \
     -DCMAKE_INSTALL_LIBDIR=${baselib} \
 "
 
+OECMAKE_SOURCEPATH = "${S}/Mongoose ${S}/metis-5.1.0 ${S}/GraphBLAS"
+
 do_compile () {
 	oe_runmake library
 }