# SPDX-License-Identifier: CC0-1.0 { system, localSystem, crossSystem, genodepkgs, nixpkgs, genode-depot, apps }: let thisSystem = builtins.getAttr system; hostPkgs = nixpkgs.legacyPackages.${localSystem}; testPkgs = thisSystem genodepkgs.packages; depot = thisSystem genode-depot.packages; 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 ''; mergeManifests = inputs: nixpkgs.legacyPackages.${localSystem}.writeTextFile { name = "manifest.dhall"; text = with builtins; let f = head: input: if hasAttr "manifest" input then "${head},${input.pname}=${input.manifest}" else abort "${input.pname} does not have a manifest"; in (foldl' f "{" inputs) + "}"; }; }