From 99e2d92f0772c267375718f148e13c6a2289c9fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Koz=C5=82owski?= Date: Thu, 1 Dec 2022 17:07:18 +0100 Subject: [PATCH] Remove lib copying, fix nixpkgs pinning on non-flake usage --- default.nix | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/default.nix b/default.nix index a59b71467d..c850adb153 100644 --- a/default.nix +++ b/default.nix @@ -1,16 +1,20 @@ -{ rev ? "093268502280540a7f5bf1e2a6330a598ba3b7d0", # nixpkgs master. Keep up to date with "nixpkgs">"locked">"rev" in flake.lock -nixpkgsSource ? builtins.fetchTarball { - url = "https://github.com/nixos/nixpkgs/tarball/${rev}"; - sha256 = "sha256-5DGKX81wIPAAiLwUmUYECpA3vop94AHHR7WmGXSsQok="; -}, pkgs ? import nixpkgsSource { } -, cargoSha256 ? "sha256-AH/cWRbshJI2pweoz24AXcDcz/+fM6cGHJU7V9GH/w4", }: +{ rev ? (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked.rev +, nixpkgsSource ? builtins.fetchTarball { + url = "https://github.com/nixos/nixpkgs/tarball/${rev}"; + sha256 = (builtins.fromJSON (builtins.readFile ./flake.lock)).nodes.nixpkgs.locked.narHash; + } +, pkgs ? import nixpkgsSource { } +, cargoSha256 ? "sha256-AH/cWRbshJI2pweoz24AXcDcz/+fM6cGHJU7V9GH/w4" +, +}: # we only this file to release a nix package, use flake.nix for development let rustPlatform = pkgs.rustPlatform; llvmPkgs = pkgs.llvmPackages_13; # nix does not store libs in /usr/lib or /lib nixGlibcPath = if pkgs.stdenv.isLinux then "${pkgs.glibc.out}/lib" else ""; -in rustPlatform.buildRustPackage { +in +rustPlatform.buildRustPackage { pname = "roc"; version = "0.0.1"; @@ -77,15 +81,14 @@ in rustPlatform.buildRustPackage { # cp: to copy str.zig,list.zig... # wrapProgram pkgs.stdenv.cc: to make ld available for compiler/build/src/link.rs - postInstall = if pkgs.stdenv.isLinux then '' - cp -r target/x86_64-unknown-linux-gnu/release/lib* $out/lib - wrapProgram $out/bin/roc --set NIX_GLIBC_PATH ${nixGlibcPath} --prefix PATH : ${ - pkgs.lib.makeBinPath [ pkgs.stdenv.cc ] - } - '' else '' - cp -r target/aarch64-apple-darwin/release/lib* $out/lib - wrapProgram $out/bin/roc --prefix PATH : ${ - pkgs.lib.makeBinPath [ pkgs.stdenv.cc ] - } - ''; + postInstall = + if pkgs.stdenv.isLinux then '' + wrapProgram $out/bin/roc --set NIX_GLIBC_PATH ${nixGlibcPath} --prefix PATH : ${ + pkgs.lib.makeBinPath [ pkgs.stdenv.cc ] + } + '' else '' + wrapProgram $out/bin/roc --prefix PATH : ${ + pkgs.lib.makeBinPath [ pkgs.stdenv.cc ] + } + ''; }