V1.2.2 branch#414
Conversation
| endif ( ) | ||
| endif ( ) | ||
|
|
||
| if ( GRAPHBLAS_VERSION ) |
There was a problem hiding this comment.
This is a fix for a very strange problem I had in GraphBLAS 10.3.2. In v10.3.1, I had 3 cmake variables, GraphBLAS_VERSION_MAJOR, *_MINOR, and *_SUB. They worked just fine, and were held in the cmake cache.
Then in going to 10.3.2, the _MAJOR and _MINOR variables got "lots". They appear in the cache but are empty when used in cmake. I "fixed" it by renaming them GraphBLAS_VER_MAJOR, etc. It might be that an update to cmake causes the non-cached variables GRAPHBLAS_VERSION_MAJOR etc to clash with the cached GraphBLAS_VERSION_MAJOR variables (note the lower vs upper case).
I fixed the issue in GraphBLAS but then this cmake code in LAGraph could no longer detect the right GraphBLAS version to configure its FindGraphBLAS.cmake script. It does have GRAPHBLAS_VERSION so I've added this cmake script to parse out the 3 major, minor, and update components.
This script now works.
| @@ -271,18 +271,18 @@ string ( | |||
|
|
|||
| if ( GRAPHBLAS_VERSION ) | |||
There was a problem hiding this comment.
See comments below about why I needed to fix this to detect the GraphBLAS version correctly.
| # GraphBLAS is false. | ||
| # | ||
| # SUITESPARSE_CUDA_ARCHITECTURES: a string, such as "all" or | ||
| # "35;50;75;80" that lists the CUDA architectures to use |
There was a problem hiding this comment.
This change to SuiteSparsePolicy.cmake has no effect on LAGraph at all, but I've included it to sync it with my upcoming release of SuiteSparse 7.12.3, which will include LAGraph v1.2.2.
| #define LAGRAPH_VERSION_MAJOR @LAGraph_VERSION_MAJOR@ | ||
| #define LAGRAPH_VERSION_MINOR @LAGraph_VERSION_MINOR@ | ||
| #define LAGRAPH_VERSION_UPDATE @LAGraph_VERSION_SUB@ | ||
| #define LAGRAPH_HAS_STDALIGN_H @LAGraph_HAS_STDALIGN_H@ |
There was a problem hiding this comment.
MSVC is a pathetic compiler. It claims to be C11 compliant but it does not have stdalign.h. I thus check for it in the cmake script and configure LAGraph accordingly.
|
|
||
| #if ( !LAGRAPH_VANILLA ) && defined ( GxB_SUITESPARSE_GRAPHBLAS ) | ||
| // use SuiteSparse, and its GxB* extensions | ||
| #if GxB_IMPLEMENTATION < GxB_VERSION (9,0,0) |
There was a problem hiding this comment.
LAGraph no longer works with GraphBLAS 9.0.0 so I took this out.
| #include <LAGraph.h> | ||
| #include <LAGraphX.h> | ||
| #include <stdalign.h> | ||
| #if LAGRAPH_HAS_STDALIGN_H |
There was a problem hiding this comment.
See comments about about the miserable MSVC compiler's claim to C11 compliance while not actualy being C11 compliant by not providing a stdalign.h.
| #------------------------------------------------------------------------------- | ||
|
|
||
| cmake_minimum_required ( VERSION 3.20 ) # LAGraph can be built stand-alone | ||
| cmake_minimum_required ( VERSION 3.23 ) |
There was a problem hiding this comment.
cmake 3.23 is now common. It's also required for the changes in SuiteSparsePolicy.cmake.
|
Is this PR done? I see you still making recent changes, if you plan more changes you can switch it to "Draft" and then switch it back when you're ready for review. |
This PR is ready to merge into stable, from my perspective. |
Minor but important updates that are required for compiler changes in github workflows
(1) fixes the MSVC compiler which does not have stdalign.h.
(2) FindGraphBLAS.cmake updated to work with recent cmake versions (cmake 3.23 is now required)
(3) less important change: some typos in betweenness centrality
No change to the LAGraph API.