Open SilentVoid13 opened 1 week ago
@SilentVoid13 I think your approach might be better, but here's how we've dealt with linking with compiled libraries when cross-compiling:
Generally cross-compiling is a PITA, Flake do not have a native support for it, stuff often hits some corner cases etc.
Crane is still doing some fixes too: https://github.com/ipetkov/crane/pull/652
We could relatively easily add support in mergeArgs
to support elements of the list which are lambdas pkgsCross: ...
and evaluate over specific pkgCross
in craneMultiBuild
. It wouldn't be a huge change, I guess.
If you have some time, please submit a PR. @SilentVoid13 .
Thanks for the reply, I'll take a look at it and see if I come up with something functional.
Hey there, I have a question about cross-compilation with flakebox. It seems to work perfectly as long as you don't have any external pkgs dependencies.
If you do, you want to be using
pkgsCross.<target>
instead ofpkgs
for thebuildInputs
andnativeBuildInputs
, but there are no easy way to specify that with flakebox'scraneMultiBuild
.A hacky way to manually make it work for a target is to specify the target's pkgs in your flake with:
To make the cross-compilation work, but of course this is now imposing the
aarch64
pkgs on all targets, which is not the point.Am I missing something or is that a limitation of flakebox? I did take a look at flakebox's source to make it work, but it doesn't seem like a trivial change. My idea would be to accept a
pkgsCross
function forcraneMultiBuild
that would look like this:This would somehow be forwarded to
mkStdTargets
where the correct pkgs would be resolved and later passed tomkTarget
.Thoughts about it?