mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-15 10:02:47 +03:00
ce3cbf0857
This also removes nixcrpkgs and OSX cross compilation in favour of compiling on the target. x86_64/musl targets are still supported on Linux. All sources are now managed via niv (see nix/sources.json) and Haskell package sets are provided/organised via IOHK's haskell.nix. Some effort has been made to expose similar top-level attributes for development, but in some cases there have been changes. Please see the comments in the top-level default.nix and ci.nix files for usage.
38 lines
854 B
Nix
38 lines
854 B
Nix
{ lib, stdenvNoCC, coreutils }:
|
|
|
|
{ name, contents # { target = source, ... }
|
|
}:
|
|
|
|
let
|
|
|
|
transforms = builtins.concatStringsSep " " (lib.mapAttrsToList
|
|
(target: source: ''--transform "s,${source},${target},"'') contents);
|
|
|
|
sources = builtins.concatStringsSep " "
|
|
(lib.mapAttrsToList (_target: source: "${source}") contents);
|
|
|
|
in stdenvNoCC.mkDerivation {
|
|
name = "${name}.tar.gz";
|
|
outputs = [ "out" "hash" ];
|
|
nativeBuildInputs = [ coreutils ];
|
|
phases = [ "buildPhase" "hashPhase" ];
|
|
|
|
buildPhase = ''
|
|
tar vczf $out \
|
|
--owner=0 --group=0 --mode=u+rw,uga+r \
|
|
--absolute-names \
|
|
--hard-dereference \
|
|
${transforms} \
|
|
${sources}
|
|
'';
|
|
|
|
hashPhase = ''
|
|
mkdir $hash
|
|
|
|
md5sum $out | awk '{printf $1}' > $hash/md5
|
|
sha256sum $out | awk '{printf $1}' > $hash/sha256
|
|
'';
|
|
|
|
preferLocalBuild = true;
|
|
}
|