-
Notifications
You must be signed in to change notification settings - Fork 6.6k
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
[lapack] add metaport lapack to switch lapack impl with an overlay #12464
Conversation
in order to be ready even better, do you have any idea on how to handle osx inside lapack-select? |
@cenit what about all those |
added external as a feature. made a dummy project to find the external provided LAPACK
@cenit see latest commit. You basically need a select feature with a build-depends which has the platform conditions. The feature is required to not always force the dependency. |
OpenBLAS has improved a lot and we can use it on vcpkg now maybe. For sure, it's not like clapack (which is not acceptable on osx) |
Convoluted but effective. Nice! |
@cenit: The question was more is at a real openBLAS dependency or is it a indirect dependency due to LAPACK which should not be listed in Build-Depends. |
We don't want blas functions from lapack-reference, so we should disable internal blas and add a real dependency on openblas. Similarly, the cblas feature should disappear from lapack-reference, since the C API for blas will be provided by openblas. |
Yeah that is clear. The question was if the ports actually use BLAS functions or if they only use LAPACK functions and thus only indirectly depend on BLAS. |
Ah now I understand what you mean |
ports/mlpack/CONTROL
Outdated
Homepage: https://github.com/mlpack/mlpack | ||
Description: mlpack is a fast, flexible machine learning library, written in C++, that aims to provide fast, extensible implementations of cutting-edge machine learning algorithms. | ||
Build-Depends: openblas (!osx), clapack (!osx), boost, armadillo, ensmallen, stb | ||
Build-Depends: openblas (!osx), lapack-select[core], boost, armadillo, ensmallen, stb |
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.
Doesn't seem to depend on openblas or lapack directly.
@Neumann-A is there a reason that you're depending on |
@strega-nil: depending on |
@strega-nil See #11602, use |
@Neumann-A I see... so we want the |
@strega-nil vcpkg still chooses a default for the user if it is not explicutly specified. If you ask why something like this is necessary just take a peek in cmakes FindLAPACK.cmake |
Right, yeah, I'm just thinking about how best to do this, since at some point I'm hoping that we stop installing default features for dependencies listed with |
Features are designed to be additive, not exclusive; they shouldn't be used to model "exactly-one-of" -- they model "Any subset of". Since this is an "exactly-one-of", it isn't a good fit for features. Instead, for this situation, our current best approach is to use overlay ports. In this approach, there is an intermediate port exactly like in this PR, ideally named like the interface (perhaps just
Users can then redirect this metapackage by copying the port, replacing the |
cc @ras0219 this look good to you? |
In preparation to add netlibs lapack-reference from #11454