-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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
[SuiteSparse] Update and split into sub-packages #39297
Conversation
That looks like a no go. Is there an equivalent of |
AFAIK SuiteSparse does not export a |
Yeah I checked upstream. Their They should really install Suitesparse-config.cmake and use the component approach instead of just taking common abbreviations. SuitesparseAMD-config.cmake would be much better compared to just AMD-config.cmake. |
Parallel configure fails due to race conditions with configure_file().
The graphblas package made me study the package a little more. There are hard problems. (But maybe it is already broken now.)
|
-DSUITESPARSE_USE_STRICT=ON | ||
-DSUITESPARSE_USE_FORTRAN=OFF | ||
-DSUITESPARSE_DEMOS=OFF | ||
-DGRAPHBLAS_JIT_ENABLE_RELOCATE=ON |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another note: This overrides upstream's default, and this is a point where upstream chooses a different default for APPLE.
More on suitesparse-graphblas: Postponing compilation to JIT, as modeled with feature "compact", saves a lot of build time. But this also implies that a significant part of the build is moved out of vcpkg, to a different time, maybe to a different machine (with the frozen absolute compiler paths and compilation flags). IMO this is fragile, at least from a more general vcpkg POV. I wonder if there are better models. And I also wonder if "compact" is additive in a vcpkg feature sense, or if there should be "precompiled" instead, adding the extra build time and robustness when selected. With "core" being cheap, it would also be cheap to depend on the host port for the extra tool needed for JIT (if this dependency is feasible at all). (Most of this might be relevant already for the current state of suitesparse, so it should not stop the PR. I just want to make sure that the split helps to move to an improved situation, maybe in following PRs.) |
We discussed this PR in our last meeting, we think it is a good direction. This is still pending thorough review, and we are a bit concerned about the upstream package names but will refer to whatever other package managers are doing. |
+ find_package(CHOLMOD CONFIG REQUIRED) | ||
+ find_package(SPQR CONFIG REQUIRED) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not a change request, I'm just curious as to how "transparent" these changes are:
- Do the changes in this PR require that we do this for all downstream consumers?
- Could we leave
find_package(suitesparse CONFIG REQUIRED)
and do thefind_package
updates in a follow-up PR?
We are closing this PR due to inactivity. We like the changes here and would like to see them merged when you have time to address the requested changes (mainly moving the generation script to the |
SuiteSparse consists of a suite of mostly independent libraries, where each of them:
find_package(AMD)
to usesuitesparse-amd
),So I think splitting the package into its constituent sub-packages is well-justified.
Fixes #24252.
./vcpkg x-add-version --all
and committing the result.