2
0
Fork 0
genodepkgs/lib/default.nix

49 lines
1.4 KiB
Nix
Raw Normal View History

2020-01-17 01:24:34 +01:00
# SPDX-License-Identifier: CC0-1.0
{ system, localSystem, crossSystem, genodepkgs, nixpkgs, dhall-haskell
, genode-depot }:
2019-11-10 09:42:12 +01:00
let
2020-01-14 12:16:02 +01:00
thisSystem = builtins.getAttr system;
2019-11-10 09:42:12 +01:00
hostPkgs = import nixpkgs {
2019-12-02 16:39:52 +01:00
system = localSystem;
2020-01-14 12:16:02 +01:00
overlays = [
(self: super: {
inherit (builtins.getAttr localSystem dhall-haskell.packages) dhall;
})
];
2019-11-10 09:42:12 +01:00
};
2019-12-02 16:39:52 +01:00
testPkgs = thisSystem genodepkgs.packages;
depot = thisSystem genode-depot.packages;
2019-11-10 09:42:12 +01:00
in {
dhallText = name: source:
hostPkgs.runCommand name {
inherit name source;
preferLocalBuild = true;
buildInputs = [ hostPkgs.dhall ];
DHALL_PRELUDE = "${testPkgs.dhallPackages.prelude}/package.dhall";
DHALL_GENODE = "${testPkgs.dhallPackages.genode}/package.dhall";
} ''
export XDG_CACHE_HOME=$NIX_BUILD_TOP
dhall text < $source > $out
'';
renderDhallInit = path: args:
hostPkgs.runCommand "init.xml" {
preferLocalBuild = true;
buildInputs = with hostPkgs; [ dhall libxml2 ];
2019-11-10 09:42:12 +01:00
initConfig = path;
initArgs = args;
DHALL_PRELUDE = "${testPkgs.dhallPrelude}/package.dhall";
DHALL_GENODE = "${testPkgs.dhallGenode}/package.dhall";
} ''
export XDG_CACHE_HOME=$NIX_BUILD_TOP
dhall text \
<<< 'let Prelude = env:DHALL_GENODE in Prelude.Init.render (env:initConfig env:initArgs)' \
2019-11-10 09:42:12 +01:00
> $out
xmllint --noout $out
2019-11-10 09:42:12 +01:00
'';
}