diff --git a/pkgs/tools/misc/watchexec/default.nix b/pkgs/tools/misc/watchexec/default.nix index e376568d3503..dd3eddf73954 100644 --- a/pkgs/tools/misc/watchexec/default.nix +++ b/pkgs/tools/misc/watchexec/default.nix @@ -1,4 +1,4 @@ -{ stdenv, rustPlatform, fetchFromGitHub }: +{ stdenv, rustPlatform, fetchFromGitHub, CoreServices, CoreFoundation }: rustPlatform.buildRustPackage rec { name = "watchexec-${version}"; @@ -13,11 +13,19 @@ rustPlatform.buildRustPackage rec { cargoSha256 = "1li84kq9myaw0zwx69y72f3lx01s7i9p8yays4rwvl1ymr614y1l"; + buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ]; + + # FIXME: Use impure version of CoreFoundation because of missing symbols. + # Undefined symbols for architecture x86_64: "_CFURLResourceIsReachable" + preConfigure = stdenv.lib.optionalString stdenv.isDarwin '' + export NIX_LDFLAGS="-F${CoreFoundation}/Library/Frameworks -framework CoreFoundation $NIX_LDFLAGS" + ''; + meta = with stdenv.lib; { description = "Executes commands in response to file modifications"; homepage = https://github.com/watchexec/watchexec; license = with licenses; [ asl20 ]; maintainers = [ maintainers.michalrus ]; - platforms = platforms.linux; + platforms = platforms.linux ++ platforms.darwin; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 12665aa1754c..7483f80bbd74 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5942,7 +5942,9 @@ with pkgs; wal_e = callPackage ../tools/backup/wal-e { }; - watchexec = callPackage ../tools/misc/watchexec { }; + watchexec = callPackage ../tools/misc/watchexec { + inherit (darwin.apple_sdk.frameworks) CoreServices CoreFoundation; + }; watchman = callPackage ../development/tools/watchman { inherit (darwin.apple_sdk.frameworks) CoreServices;