This PR refactors the cmake build system of LAGraph so we can link to LC builds of LucataGraphBLAS. Many of these changes are intended as temporary patches to help developers build LAGraph against LucataGraphBLAS until GraphBLAS/LAGraph#161 is resolved.
Details
The refactoring involved a couple of things:
Removing support for dynamic libraries (this was the main problem, I proposed a more elegant solution in GraphBLAS/LAGraph#161)
Turning off compilation of experimental/benchmarks when performing an LC build (this was due to stack frame size limits). See emusolutions/llvm-cilk#969. This is already fixed in the development versions of the toolchain and will become unnecessary after the next major toolchain release.
Turning off all rpath flags when performing an LC build (because our compiler doesn't support rpath flags)
Using These Changes
My hope is that people who already have scripts to build LAGraph against LucataGraphBLAS should see no change in behavior. With that said we encourage devs to use the simplified approach made possible by this PR. See the first section of README.md for details. The quick version is below:
If you want to compile with the Lucata toolchain (i.e. emu-cc.sh) then you MUST point cmake to an LC build of LucataGraphBLAS AND tell cmake to use emu-cc.sh as your compilers. For example:
@moonwatcher let me know if you think this needs more documentation. I added more defaults to our build system so users should only have to specify 1-3 cmake args making build scripts unnecessary (IMHO).
General
This PR refactors the cmake build system of LAGraph so we can link to LC builds of LucataGraphBLAS. Many of these changes are intended as temporary patches to help developers build LAGraph against LucataGraphBLAS until GraphBLAS/LAGraph#161 is resolved.
Details
The refactoring involved a couple of things:
experimental/benchmarks
when performing an LC build (this was due to stack frame size limits). See emusolutions/llvm-cilk#969. This is already fixed in the development versions of the toolchain and will become unnecessary after the next major toolchain release.Using These Changes
My hope is that people who already have scripts to build LAGraph against LucataGraphBLAS should see no change in behavior. With that said we encourage devs to use the simplified approach made possible by this PR. See the first section of
README.md
for details. The quick version is below:Linking against x86 LucataGraphBLAS
Linking against LC LucataGraphBLAS
If you want to compile with the Lucata toolchain (i.e.
emu-cc.sh
) then you MUST point cmake to an LC build of LucataGraphBLAS AND tell cmake to useemu-cc.sh
as your compilers. For example: