From fe79a60310d2fee62fe44f919d2592786015f5b2 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sat, 26 Oct 2024 14:19:16 +0200 Subject: [PATCH] neovim: improve lpeg patch for darwin Co-authored-by: Carlos Hernandez --- pkgs/by-name/ne/neovim-unwrapped/package.nix | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ne/neovim-unwrapped/package.nix b/pkgs/by-name/ne/neovim-unwrapped/package.nix index a0d3700d6ee5a..24936d7e7db10 100644 --- a/pkgs/by-name/ne/neovim-unwrapped/package.nix +++ b/pkgs/by-name/ne/neovim-unwrapped/package.nix @@ -33,18 +33,29 @@ stdenv.mkDerivation ( nvim-lpeg-dylib = luapkgs: if stdenv.hostPlatform.isDarwin then + let + luaLibDir = "$out/lib/lua/${lib.versions.majorMinor luapkgs.lua.luaversion}"; + in (luapkgs.lpeg.overrideAttrs (oa: { preConfigure = '' # neovim wants clang .dylib - sed -i makefile -e "s/CC = gcc/CC = clang/" - sed -i makefile -e "s/-bundle/-dynamiclib/" + substituteInPlace Makefile \ + --replace-fail "CC = gcc" "CC = clang" \ + --replace-fail "-bundle" "-dynamiclib" \ + --replace-fail "lpeg.so" "lpeg.dylib" ''; preBuild = '' # there seems to be implicit calls to Makefile from luarocks, we need to # add a stage to build our dylib make macosx - mkdir -p $out/lib - mv lpeg.so $out/lib/lpeg.dylib + mkdir -p ${luaLibDir} + mv lpeg.dylib ${luaLibDir}/lpeg.dylib + ''; + postInstall = '' + rm -f ${luaLibDir}/lpeg.so + echo ------------------------------------------------- + echo $out + echo ------------------------------------------------- ''; nativeBuildInputs = oa.nativeBuildInputs ++ (lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames);