fix: cross-platform deps
This commit is contained in:
parent
27a0e3d59f
commit
193a52cbc8
|
@ -83,6 +83,7 @@ in {
|
|||
}
|
||||
);
|
||||
in
|
||||
(builtins.trace "${package.name}: ${system}")
|
||||
built
|
||||
// {
|
||||
inherit (package) meta;
|
||||
|
|
|
@ -28,7 +28,8 @@ in {
|
|||
# platform.host = lib.modules.overrides.force "x86_64-linux";
|
||||
# };
|
||||
# example-x = config.packages.example.x;
|
||||
# cross-example-x-x86_64-linux = config.packages.cross.x86_64-linux.example.x;
|
||||
cross-aux-a-x86_64-linux = config.packages.cross.x86_64-linux.aux.a;
|
||||
cross-foundation-gcc-x86_64-linux = config.packages.cross.x86_64-linux.foundation.gcc;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -55,7 +55,31 @@ in {
|
|||
];
|
||||
};
|
||||
|
||||
resolved = result.config;
|
||||
# Not all platform information can be effectively handled via submodules. To handle
|
||||
# the case where a user copies the resolved config over we need to ensure that
|
||||
# dependencies are appropriately updated.
|
||||
resolved =
|
||||
result.config
|
||||
// {
|
||||
deps = {
|
||||
build = {
|
||||
only = buildDependencies build build build package.deps.build.only;
|
||||
build = buildDependencies build build target package.deps.build.build;
|
||||
host = buildDependencies build host target package.deps.build.host;
|
||||
target = buildDependencies build target target package.deps.build.target;
|
||||
};
|
||||
host = {
|
||||
only = buildDependencies host host host package.deps.host.only;
|
||||
host = buildDependencies host host target package.deps.host.host;
|
||||
target = buildDependencies host target target package.deps.host.target;
|
||||
};
|
||||
target = {
|
||||
only = buildDependencies target target target package.deps.target.only;
|
||||
target = buildDependencies target target target package.deps.target.target;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
resolved
|
||||
// {
|
||||
|
|
|
@ -80,6 +80,7 @@ in {
|
|||
transform = value: let
|
||||
package = lib'.packages.resolve value;
|
||||
in
|
||||
(builtins.trace "building dependency ${package.name}: build=${build.triple} host=${host.triple} target=${target.triple}")
|
||||
lib'.packages.build package build host target;
|
||||
in
|
||||
lib.types.attrs.of (lib.types.coerce initial transform lib'.types.package);
|
||||
|
|
|
@ -47,7 +47,16 @@ in {
|
|||
builtins.mapAttrs (
|
||||
name: alias: let
|
||||
setHost = package:
|
||||
package;
|
||||
package // {
|
||||
__modules__ = package.__modules__ ++ [
|
||||
{
|
||||
config.platform = {
|
||||
host = lib.modules.override 5 system;
|
||||
target = lib.modules.override 5 system;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
# if package != {}
|
||||
# then
|
||||
# (package.extend (
|
||||
|
|
Loading…
Reference in a new issue