The top-level package set ideally contains only packages. It however also contains functions and package sets and probably other attributes as well.
Several times the question came up, how can we perform a package set wide override? I recall there have been PR’s demonstrating USE flags approaches as well.
In this post I consider a specific case, where packages need cuda
or mkl
. In PR’s it has been proposed to, in an overlay, simply set mklSupport = true;
in the top-level set. This functions, because callPackage
handles it.
Should we document this as “the way” or not? If not, we do need to think of a solution. Maybe use config
values and let callPackage
consider those as well?