aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/build/builtin.lua12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua
index e7c0ae38..cd4d4486 100644
--- a/src/luarocks/build/builtin.lua
+++ b/src/luarocks/build/builtin.lua
@@ -180,12 +180,20 @@ function builtin.run(rockspec, no_install)
180 add_flags(extras, "-I%s", incdirs) 180 add_flags(extras, "-I%s", incdirs)
181 return execute(variables.CC.." "..variables.CFLAGS, "-c", "-o", object, "-I"..variables.LUA_INCDIR, source, unpack(extras)) 181 return execute(variables.CC.." "..variables.CFLAGS, "-c", "-o", object, "-I"..variables.LUA_INCDIR, source, unpack(extras))
182 end 182 end
183 compile_library = function(library, objects, libraries, libdirs) 183 compile_library = function(library, objects, libraries, libdirs, name)
184 local extras = { unpack(objects) } 184 local extras = { unpack(objects) }
185 add_flags(extras, "-L%s", libdirs) 185 add_flags(extras, "-L%s", libdirs)
186 add_flags(extras, "-l%s", libraries) 186 add_flags(extras, "-l%s", libraries)
187 extras[#extras+1] = dir.path(variables.LUA_LIBDIR, variables.LUALIB) 187 extras[#extras+1] = dir.path(variables.LUA_LIBDIR, variables.LUALIB)
188 extras[#extras+1] = "-l" .. (variables.MSVCRT or "m") 188
189 if variables.CC == "clang" or variables.CC == "clang-cl" then
190 local exported_name = name:gsub("%.", "_")
191 exported_name = exported_name:match('^[^%-]+%-(.+)$') or exported_name
192 extras[#extras+1] = string.format("-Wl,-export:luaopen_%s", exported_name)
193 else
194 extras[#extras+1] = "-l" .. (variables.MSVCRT or "m")
195 end
196
189 local ok = execute(variables.LD.." "..variables.LDFLAGS.." "..variables.LIBFLAG, "-o", library, unpack(extras)) 197 local ok = execute(variables.LD.." "..variables.LDFLAGS.." "..variables.LIBFLAG, "-o", library, unpack(extras))
190 return ok 198 return ok
191 end 199 end