From 42cbe751a860470cc8fd36f9e105566b97b6a2ff Mon Sep 17 00:00:00 2001 From: Andreas Fuchs Date: Wed, 25 Nov 2020 00:11:15 -0500 Subject: Fix running & building under macOS (Big Sur) (#9) * Add xcbuild as native build input 2 ways & pass --verbose to cargo build * Make "deploy" build on macOS * Bump the nixpkgs version to one that ships Rust 1.47, which can produce binaries under macOS 11 (Big Sur). * Use darwin-specific options that let Naersk build the "deploy" binary under macOS. (With a work-around for https://github.com/nmattia/naersk/issues/127, which prevents this from being much more straight-forward). Unfortunately, the "activate" binary can't be built under macOS due to the inotify dependency; that means the best we can do is to run the deploy under macOS, not deploy *to* macOS.--- flake.nix | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index d92a60a..2e775ca 100644 --- a/flake.nix +++ b/flake.nix @@ -23,10 +23,20 @@ let pkgs = import nixpkgs { inherit system; }; naersk-lib = pkgs.callPackage naersk { }; + isDarwin = pkgs.lib.strings.hasSuffix "-darwin" system; + darwinOptions = pkgs.lib.optionalAttrs isDarwin { + nativeBuildInputs = [ + pkgs.darwin.apple_sdk.frameworks.SystemConfiguration + ]; + singleStep = true; # https://github.com/nmattia/naersk/issues/127 + cargoBuildOptions = opts: opts ++ [ "--bin" "deploy" ]; # The "activate" binary is linux-only. + }; in { defaultPackage = self.packages."${system}".deploy-rs; - packages.deploy-rs = naersk-lib.buildPackage ./.; + packages.deploy-rs = naersk-lib.buildPackage (darwinOptions // { + root = ./.; + }); defaultApp = self.apps."${system}".deploy-rs; apps.deploy-rs = { @@ -35,9 +45,9 @@ }; devShell = pkgs.mkShell { - inputsFrom = [ self.packages.${system}.deploy-rs ]; - buildInputs = [ pkgs.nixUnstable ]; - }; + inputsFrom = [ self.packages.${system}.deploy-rs ]; + buildInputs = [ pkgs.nixUnstable ]; + }; lib = rec { -- cgit v1.2.3