2
0
Fork 0
genodepkgs/packages/default.nix

104 lines
2.5 KiB
Nix

# SPDX-License-Identifier: CC0-1.0
{ system, legacyPackages, depot, apps, dhallApps }:
let
inherit (legacyPackages) callPackage;
dhallPackages = legacyPackages.dhallPackages
// (callPackage ./dhall { inherit dhallApps; });
mkDhallManifest = drv:
legacyPackages.runCommand "${drv.name}.dhall" { inherit drv; }
"${apps.generate-manifest.program} $drv > $out";
addManifest = drv: { manifest = mkDhallManifest drv; } // drv;
callPackage' = path: attrs:
addManifest (legacyPackages.callPackages path attrs);
buildUpstream = import ./genodelabs {
nixpkgs = legacyPackages;
inherit apps;
};
in rec {
inherit (legacyPackages) stdenv;
base-hw-pc = buildUpstream {
name = "base-hw-pc";
arch = "x86_64";
kernel = "hw";
board = "pc";
targets = [ "bootstrap" "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/bin/*.o $out/lib/
mv $out/bin/ld-hw.lib.so $out/lib/ld.lib.so
'';
};
base-nova = buildUpstream {
name = "base-nova";
arch = "x86_64";
kernel = "nova";
targets = [ "core" "timer" "lib/ld" ];
postInstall = ''
mkdir -p $out/lib
mv $out/bin/*.o $out/lib/
mv $out/bin/ld-nova.lib.so $out/lib/ld.lib.so
'';
};
genodeTests = let
directoryBlacklist = [
"repos/base-*"
"repos/base/src/test/sanitizer"
"repos/base/src/test/xml_generator"
"repos/dde_bsd"
"repos/dde_linux"
"repos/gems/src/test/aes_cbc_4k"
"repos/gems/src/test/decorator_stress"
"repos/gems/src/test/text_painter"
"repos/gems/src/test/text_painter"
"repos/gems/src/test/tiled_wm"
"repos/libports"
"repos/ports"
];
in buildUpstream {
name = "genode-tests";
arch = "x86_64";
preBuild = "find ${toString directoryBlacklist} -name target.mk -delete";
targets = [ "test" ];
};
bender = legacyPackages.buildPackages.callPackage ./bender { };
dhallGenode = dhallPackages.genode;
dhallPrelude = dhallPackages.prelude;
genode = import ./genode {
nixpkgs = legacyPackages;
inherit mkDhallManifest;
};
NOVA = legacyPackages.callPackage ./NOVA { };
libc = callPackage' ./libc { inherit depot; };
nic_bus = callPackage ./nic_bus { inherit (genode) base os; };
solo5 = let drv = callPackage' ./solo5 { inherit genode; };
in drv // { tests = addManifest drv.tests // { pname = "solo5-tests"; }; };
sotest-producer = callPackage' ./sotest-producer {
stdenv = genode.stdenvGcc;
inherit genode;
};
stdcxx = callPackage' ./stdcxx { };
}