-
Notifications
You must be signed in to change notification settings - Fork 277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Provide SuiteSparseConfig.cmake #41
Comments
It's on my TODO list. It requires some changes to the codes, however. In many of my codes, I generate multiple versions for double, complex, etc. I do that by setting some -D flags and compiling the source twice (or 4x, depending on how many variants a package has). That works fine in a Makefile, but it complicates a CMake script. I need to rework the source code so it compiles once, yet still generates the versions I need. It's not hard to do, I just need to spend the time to refactor the codes. |
There's native CMake support including relocatable package config in my fork. |
@sergiud how does your fork compares to suitesparse-metis-for-windows? I've looked at your CMake a bit and have some suggestions to facilitate :
|
Thanks for the suggestions. However, many of these seem to target
Some of these features might be also supported by I should note, I offered the CMake implementation to @DrTimothyAldenDavis back in 2016. However, since this required me to give up all the rights, we could not reach an agreement which would allow to integrate the CMake support into official distributions. To my knowledge, @DrTimothyAldenDavis has been working for some time on his own CMake support implementation. |
Thanks. ... I hope we can get some official support for CMake at some point.
True, but one doesn't prevent the other ... I've integrated your CMake via |
I now have a completely new CMake build system for SuiteSparse (v6.0.0, soon to be released as a tagged beta pre-release). It required some substantial changes to many of the packages, since I used to compile individual source files multiple times. I no longer need to do that, so the cmake scripts are very simple. I have a SuiteSparse_config/cmake_modules folder with cmake scripts that handle SuiteSparse policy, the BLAS, and I have "Find*.cmake" scripts now for all of my packages and for all of my package dependencies (GMP, MPFR). The SuiteSparseBLAS.cmake is very handy, as well. Regarding CUDA: I now detect if it's avaiable. It can also be disabled by setting ENABLE_CUDA to false. |
That's great to hear. I do hope that this new CMake system aims to also support subproject builds (via |
SuiteSparse now has a completely new cmake-based build system. I'm still working on a few minor updates in a pending v6.0.2 version, but it's mostly in place now. |
p.s. If there are any issues with the new build system, please add them as a new issue. Thanks again for all the great feedback! |
It would ease using SuiteSparse with CMake, if SuiteSparse would provide a
SuitSparseconfig.cmake
file, that CMake can use to identify the SuiteSparse installation and get all locations and parameters.CMake offers the helper function configure_package_config_file, to get this done without too much work. If you are interested, I can provide an according merge request.
The text was updated successfully, but these errors were encountered: