From fdbb7edbe999b2e3ffa2d84a3bc3cb45227057d9 Mon Sep 17 00:00:00 2001 From: Eric Chiesse Date: Sat, 23 Nov 2013 01:55:45 -0300 Subject: Corrigido erro de não fazer o embed do manifest em dlls compiladas pelo Visual Studio 2008 no caso de a dll fazer parte de um módulo (estar em um subdiretório). O LuaRocks não fazia corretamente o build de módulo que tivessem estrutura de diretório (como luasql.postgres). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/luarocks/build/builtin.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua index 427ab7c9..f9ef4c44 100644 --- a/src/luarocks/build/builtin.lua +++ b/src/luarocks/build/builtin.lua @@ -112,9 +112,15 @@ function run(rockspec) def:write("luaopen_"..name:gsub("%.", "_").."\n") def:close() local ok = execute(variables.LD, "-dll", "-def:"..deffile, "-out:"..library, dir.path(variables.LUA_LIBDIR, variables.LUALIB), unpack(extras)) - local manifestfile = basename..".dll.manifest" + local basedir = "" + if name:find("%.") ~= nil then + basedir = name:gsub("%.%w+$", "\\") + basedir = basedir:gsub("%.", "\\") + end + local manifestfile = basedir .. basename..".dll.manifest" + if ok and fs.exists(manifestfile) then - ok = execute(variables.MT, "-manifest", manifestfile, "-outputresource:"..basename..".dll;2") + ok = execute(variables.MT, "-manifest", manifestfile, "-outputresource:"..basedir..basename..".dll;2") end return ok end @@ -250,7 +256,7 @@ function run(rockspec) end if fs.is_dir("lua") then local ok, err = fs.copy_contents("lua", luadir) - if not ok then + if not ok then return nil, "Failed copying contents of 'lua' directory: "..err end end -- cgit v1.2.3-55-g6feb