From 736fa98402202f74160e0bd7cfe7745e34b307ab Mon Sep 17 00:00:00 2001 From: Fabio Mascarenhas Date: Fri, 12 Apr 2013 17:05:40 -0300 Subject: compile rclauncher binary wrapper on windows on every build --- src/luarocks/build/builtin.lua | 12 +++++++++--- src/luarocks/cfg.lua | 18 +++++++++--------- 2 files changed, 18 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua index 96ce35a6..f9cc0302 100644 --- a/src/luarocks/build/builtin.lua +++ b/src/luarocks/build/builtin.lua @@ -88,8 +88,10 @@ function run(rockspec) make_rc(fullname, fullbasename..".rc") local ok = execute(variables.RC, "-o", resname, rcname) if not ok then return ok end - ok = execute(variables.LD, "-o", wrapname, resname, variables.WRAPPER, - dir.path(variables.LUA_LIBDIR, variables.LUALIB), "-l" .. (variables.MSVCRT or "m"), "-luser32") + ok = execute(variables.CC.." "..variables.CFLAGS, "-I"..variables.LUA_INCDIR, + "-o", wrapname, resname, variables.WRAPPER, + dir.path(variables.LUA_LIBDIR, variables.LUALIB), + "-l" .. (variables.MSVCRT or "m"), "-luser32") return ok, wrapname end elseif cfg.is_platform("win32") then @@ -119,13 +121,17 @@ function run(rockspec) compile_wrapper_binary = function(fullname, name) local fullbasename = fullname:gsub("%.lua$", ""):gsub("/", "\\") local basename = name:gsub("%.lua$", ""):gsub("/", "\\") + local object = basename..".obj" local rcname = basename..".rc" local resname = basename..".res" local wrapname = basename..".exe" make_rc(fullname, fullbasename..".rc") local ok = execute(variables.RC, "-r", "-fo"..resname, rcname) if not ok then return ok end - ok = execute(variables.LD, "-out:"..wrapname, resname, variables.WRAPPER, + ok = execute(variables.CC.." "..variables.CFLAGS, "-c", "-Fo"..object, + "-I"..variables.LUA_INCDIR, variables.WRAPPER) + if not ok then return ok end + ok = execute(variables.LD, "-out:"..wrapname, resname, object, dir.path(variables.LUA_LIBDIR, variables.LUALIB), "user32.lib") local manifestfile = wrapname..".manifest" if ok and fs.exists(manifestfile) then diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index e16079f4..12a477a0 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -193,18 +193,18 @@ local defaults = { MAKE = "make", CC = "cc", LD = "ld", - + CVS = "cvs", GIT = "git", SSCM = "sscm", SVN = "svn", HG = "hg", - + RSYNC = "rsync", WGET = "wget", SCP = "scp", CURL = "curl", - + PWD = "pwd", MKDIR = "mkdir", RMDIR = "rmdir", @@ -221,18 +221,18 @@ local defaults = { GUNZIP = "gunzip", BUNZIP2 = "bunzip2", TAR = "tar", - + MD5SUM = "md5sum", OPENSSL = "openssl", MD5 = "md5", STAT = "stat", - + CMAKE = "cmake", SEVENZ = "7z", - + STATFLAG = "-c '%a'", }, - + external_deps_subdirs = { bin = "bin", lib = "lib", @@ -262,7 +262,7 @@ if detected.windows then defaults.variables.MAKE = "nmake" defaults.variables.CC = "cl" defaults.variables.RC = "rc" - defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.obj" + defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.c" defaults.variables.LD = "link" defaults.variables.MT = "mt" defaults.variables.LUALIB = "lua"..lua_version..".lib" @@ -293,7 +293,7 @@ if detected.mingw32 then defaults.variables.MAKE = "mingw32-make" defaults.variables.CC = "mingw32-gcc" defaults.variables.RC = "windres" - defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.o" + defaults.variables.WRAPPER = site_config.LUAROCKS_PREFIX .. "\\2.0\\rclauncher.c" defaults.variables.LD = "mingw32-gcc" defaults.variables.CFLAGS = "-O2" defaults.variables.LIBFLAG = "-shared" -- cgit v1.2.3-55-g6feb