From fc408c8690218bf07d7c9338e39c23577348c23b Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Wed, 2 Oct 2019 00:08:13 +0200 Subject: [PATCH] lua.pkgs.luv.libluv: fix linking against lua on darwin [ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o [100%] Linking C shared library libluv.dylib Undefined symbols for architecture x86_64: "_luaL_addlstring", referenced from: _thread_dump in luv.c.o ... --- pkgs/development/lua-modules/overrides.nix | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix index 87636c84c41..bb640cb09a5 100644 --- a/pkgs/development/lua-modules/overrides.nix +++ b/pkgs/development/lua-modules/overrides.nix @@ -273,17 +273,22 @@ with super; sed -i 's,\(option(WITH_SHARED_LIBUV.*\)OFF,\1ON,' CMakeLists.txt rm -rf deps/libuv ''; - propagatedBuildInputs = [ - pkgs.libuv - ]; + + buildInputs = [ pkgs.libuv ]; passthru = { - libluv = self.luv.override({ + libluv = self.luv.override ({ preBuild = self.luv.preBuild + '' - sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt - sed -i 's,\(option(BUILD_SHARED_LIBS.*\)OFF,\1ON,' CMakeLists.txt - sed -i 's,${"\${INSTALL_INC_DIR}"},${placeholder "out"}/include/luv,' CMakeLists.txt + sed -i 's,\(option(BUILD_MODULE.*\)ON,\1OFF,' CMakeLists.txt + sed -i 's,\(option(BUILD_SHARED_LIBS.*\)OFF,\1ON,' CMakeLists.txt + sed -i 's,${"\${INSTALL_INC_DIR}"},${placeholder "out"}/include/luv,' CMakeLists.txt ''; + + nativeBuildInputs = [ pkgs.fixDarwinDylibNames ]; + + # Fixup linking libluv.dylib, for some reason it's not linked against lua correctly. + NIX_LDFLAGS = pkgs.lib.optionalString pkgs.stdenv.isDarwin + (if isLuaJIT then "-lluajit-${lua.luaversion}" else "-llua"); }); }; });