diff options
| author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-11-12 16:49:18 +0100 |
|---|---|---|
| committer | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-11-12 16:49:18 +0100 |
| commit | 7e520a520283ee27c384660aa31259e609cb5e6e (patch) | |
| tree | efbb1433d78ae0957ddeb5f6299dea34ebc3e551 | |
| parent | a726e45ec81e2cc8512f9e4c5b1459a86ab53098 (diff) | |
| parent | bdcde8743014964b3fbe13154bedc9ac6bceae76 (diff) | |
| download | luarocks-7e520a520283ee27c384660aa31259e609cb5e6e.tar.gz luarocks-7e520a520283ee27c384660aa31259e609cb5e6e.tar.bz2 luarocks-7e520a520283ee27c384660aa31259e609cb5e6e.zip | |
Merge branch 'master' of github.com:Tieske/luarocks into win_install_checkpath
Conflicts:
install.bat
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | install.bat | 95 | ||||
| -rw-r--r-- | src/luarocks/build/cmake.lua | 2 | ||||
| -rw-r--r-- | src/luarocks/loader.lua | 2 |
4 files changed, 66 insertions, 35 deletions
| @@ -143,7 +143,7 @@ install_bins: built | |||
| 143 | cd src/bin && for f in $(BIN_FILES); \ | 143 | cd src/bin && for f in $(BIN_FILES); \ |
| 144 | do \ | 144 | do \ |
| 145 | cp "$$f" "$(DESTDIR)$(BINDIR)/$$f-$(LUA_VERSION)"; \ | 145 | cp "$$f" "$(DESTDIR)$(BINDIR)/$$f-$(LUA_VERSION)"; \ |
| 146 | ln -nfs "$(DESTDIR)$(BINDIR)/$$f-$(LUA_VERSION)" "$(DESTDIR)$(BINDIR)/$$f"; \ | 146 | ln -nfs "$$f-$(LUA_VERSION)" "$(DESTDIR)$(BINDIR)/$$f"; \ |
| 147 | done | 147 | done |
| 148 | 148 | ||
| 149 | install_luas: built | 149 | install_luas: built |
diff --git a/install.bat b/install.bat index c085de40..d234e242 100644 --- a/install.bat +++ b/install.bat | |||
| @@ -91,42 +91,49 @@ local function print_help() | |||
| 91 | print(S[[ | 91 | print(S[[ |
| 92 | Installs LuaRocks. | 92 | Installs LuaRocks. |
| 93 | 93 | ||
| 94 | /P [dir] (REQUIRED) Where to install. | 94 | /P [dir] (REQUIRED) Where to install LuaRocks. |
| 95 | Note that version; $VERSION, will be | 95 | Note that version; $VERSION, will be appended to this |
| 96 | appended to this path. | 96 | path, so "/P c:\luarocks\" will install in |
| 97 | /CONFIG [dir] Location where the config file should be installed. | 97 | "c:\luarocks\$VERSION\" |
| 98 | Default is same place of installation | 98 | |
| 99 | Configuring the destinations: | ||
| 99 | /TREE [dir] Root of the local tree of installed rocks. | 100 | /TREE [dir] Root of the local tree of installed rocks. |
| 100 | Default is same place of installation | 101 | Default is same place of installation |
| 101 | /SCRIPTS [dir] Where to install scripts installed by rocks. | 102 | /SCRIPTS [dir] Where to install commandline scripts installed by |
| 102 | Default is TREE/bin. | 103 | rocks. Default is TREE/bin. |
| 103 | 104 | ||
| 105 | Configuring the Lua interpreter: | ||
| 104 | /LV [version] Lua version to use; either 5.1 or 5.2. | 106 | /LV [version] Lua version to use; either 5.1 or 5.2. |
| 105 | Default is 5.1 | 107 | Default is 5.1 |
| 106 | /L Install LuaRocks' own copy of Lua even if detected, | ||
| 107 | this will always be a 5.1 installation. | ||
| 108 | (/LUA, /INC, /LIB, /BIN cannot be used with /L) | ||
| 109 | /LUA [dir] Location where Lua is installed - e.g. c:\lua\5.1\ | 108 | /LUA [dir] Location where Lua is installed - e.g. c:\lua\5.1\ |
| 109 | If not provided, the installer will search the system | ||
| 110 | path and some default locations for a valid Lua | ||
| 111 | installation. | ||
| 110 | This is the base directory, the installer will look | 112 | This is the base directory, the installer will look |
| 111 | for subdirectories bin, lib, include. Alternatively | 113 | for subdirectories bin, lib, include. Alternatively |
| 112 | these can be specified explicitly using the /INC, | 114 | these can be specified explicitly using the /INC, |
| 113 | /LIB, and /BIN options. | 115 | /LIB, and /BIN options. |
| 114 | /INC [dir] Location of Lua includes - e.g. c:\lua\5.1\include | 116 | /INC [dir] Location of Lua includes - e.g. c:\lua\5.1\include |
| 115 | If provided overrides sub directory found using /LUA. | 117 | If provided overrides sub directory found using /LUA. |
| 116 | /LIB [dir] Location of Lua libraries -e.g. c:\lua\5.1\lib | 118 | /LIB [dir] Location of Lua libraries (.dll) - e.g. c:\lua\5.1\lib |
| 117 | If provided overrides sub directory found using /LUA. | 119 | If provided overrides sub directory found using /LUA. |
| 118 | /BIN [dir] Location of Lua executables - e.g. c:\lua\5.1\bin | 120 | /BIN [dir] Location of Lua executables - e.g. c:\lua\5.1\bin |
| 119 | If provided overrides sub directory found using /LUA. | 121 | If provided overrides sub directory found using /LUA. |
| 122 | /L Install LuaRocks' own copy of Lua even if detected, | ||
| 123 | this will always be a 5.1 installation. | ||
| 124 | (/LUA, /INC, /LIB, /BIN cannot be used with /L) | ||
| 120 | 125 | ||
| 126 | Compiler configuration: | ||
| 121 | /MW Use mingw as build system instead of MSVC | 127 | /MW Use mingw as build system instead of MSVC |
| 122 | 128 | ||
| 129 | Other options: | ||
| 130 | /CONFIG [dir] Location where the config file should be installed. | ||
| 131 | Default is same place of installation | ||
| 123 | /FORCECONFIG Use a single config location. Do not use the | 132 | /FORCECONFIG Use a single config location. Do not use the |
| 124 | LUAROCKS_CONFIG variable or the user's home directory. | 133 | LUAROCKS_CONFIG variable or the user's home directory. |
| 125 | Useful to avoid conflicts when LuaRocks | 134 | Useful to avoid conflicts when LuaRocks |
| 126 | is embedded within an application. | 135 | is embedded within an application. |
| 127 | |||
| 128 | /F Remove installation directory if it already exists. | 136 | /F Remove installation directory if it already exists. |
| 129 | |||
| 130 | /R Load registry information to register '.rockspec' | 137 | /R Load registry information to register '.rockspec' |
| 131 | extension with LuaRocks commands (right-click). | 138 | extension with LuaRocks commands (right-click). |
| 132 | 139 | ||
| @@ -224,7 +231,7 @@ local function look_for_interpreter (directory) | |||
| 224 | print(S" Found $LUA_BINDIR\\$LUA_INTERPRETER") | 231 | print(S" Found $LUA_BINDIR\\$LUA_INTERPRETER") |
| 225 | return true | 232 | return true |
| 226 | end | 233 | end |
| 227 | die(S"Lua executable lua.exe, luajit.exe or lua$LUA_VERSION.exe not found in $LUA_BINDIR") | 234 | die(S"Lua executable lua.exe, luajit.exe, lua$LUA_SHORTV.exe or lua$LUA_VERSION.exe not found in $LUA_BINDIR") |
| 228 | end | 235 | end |
| 229 | 236 | ||
| 230 | for _, e in ipairs{ [[\]], [[\bin\]] } do | 237 | for _, e in ipairs{ [[\]], [[\bin\]] } do |
| @@ -307,31 +314,31 @@ end | |||
| 307 | 314 | ||
| 308 | 315 | ||
| 309 | local function get_runtime() | 316 | local function get_runtime() |
| 310 | local f | 317 | local f |
| 311 | vars.LUA_RUNTIME, f = pe.msvcrt(vars.LUA_BINDIR.."\\"..vars.LUA_INTERPRETER) | 318 | vars.LUA_RUNTIME, f = pe.msvcrt(vars.LUA_BINDIR.."\\"..vars.LUA_INTERPRETER) |
| 312 | if type(vars.LUA_RUNTIME) ~= "string" then | 319 | if type(vars.LUA_RUNTIME) ~= "string" then |
| 313 | -- analysis failed, issue a warning | 320 | -- analysis failed, issue a warning |
| 314 | vars.LUA_RUNTIME = "MSVCR80" | 321 | vars.LUA_RUNTIME = "MSVCR80" |
| 315 | print("*** WARNING ***: could not analyse the runtime used, defaulting to "..vars.LUA_RUNTIME) | 322 | print("*** WARNING ***: could not analyse the runtime used, defaulting to "..vars.LUA_RUNTIME) |
| 316 | else | 323 | else |
| 317 | print(" "..f.." uses "..vars.LUA_RUNTIME..".DLL as runtime") | 324 | print(" "..f.." uses "..vars.LUA_RUNTIME..".DLL as runtime") |
| 318 | end | 325 | end |
| 319 | return true | 326 | return true |
| 320 | end | 327 | end |
| 321 | 328 | ||
| 322 | local function get_architecture() | 329 | local function get_architecture() |
| 323 | -- detect processor arch interpreter was compiled for | 330 | -- detect processor arch interpreter was compiled for |
| 324 | local proc = (pe.parse(vars.LUA_BINDIR.."\\"..vars.LUA_INTERPRETER) or {}).Machine | 331 | local proc = (pe.parse(vars.LUA_BINDIR.."\\"..vars.LUA_INTERPRETER) or {}).Machine |
| 325 | if not proc then | 332 | if not proc then |
| 326 | die("Could not detect processor architecture used in "..vars.LUA_INTERPRETER) | 333 | die("Could not detect processor architecture used in "..vars.LUA_INTERPRETER) |
| 327 | end | 334 | end |
| 328 | proc = pe.const.Machine[proc] -- collect name from constant value | 335 | proc = pe.const.Machine[proc] -- collect name from constant value |
| 329 | if proc == "IMAGE_FILE_MACHINE_I386" then | 336 | if proc == "IMAGE_FILE_MACHINE_I386" then |
| 330 | proc = "x86" | 337 | proc = "x86" |
| 331 | else | 338 | else |
| 332 | proc = "x86_64" | 339 | proc = "x86_64" |
| 333 | end | 340 | end |
| 334 | return proc | 341 | return proc |
| 335 | end | 342 | end |
| 336 | 343 | ||
| 337 | local function look_for_lua_install () | 344 | local function look_for_lua_install () |
| @@ -418,10 +425,34 @@ local with_arg = { -- options followed by an argument, others are flags | |||
| 418 | ["/BIN"] = true, | 425 | ["/BIN"] = true, |
| 419 | ["/LIB"] = true, | 426 | ["/LIB"] = true, |
| 420 | } | 427 | } |
| 428 | -- reconstruct argument values with spaces and double quotes | ||
| 429 | -- this will be damaged by the batch construction at the start of this file | ||
| 430 | if #arg > 0 then | ||
| 431 | farg = table.concat(arg, " ") .. " " | ||
| 432 | arg = {} | ||
| 433 | farg = farg:gsub('%"', "") | ||
| 434 | local i = 0 | ||
| 435 | while #farg>0 do | ||
| 436 | i = i + 1 | ||
| 437 | if (farg:sub(1,1) ~= "/") and ((arg[i-1] or ""):sub(1,1) ~= "/") then | ||
| 438 | i = i - 1 -- continued previous arg | ||
| 439 | if i == 0 then i = 1 end | ||
| 440 | end | ||
| 441 | if arg[i] then | ||
| 442 | arg[i] = arg[i] .. " " | ||
| 443 | else | ||
| 444 | arg[i] = "" | ||
| 445 | end | ||
| 446 | local v,r = farg:match("^(.-)%s(.*)$") | ||
| 447 | arg[i], farg = arg[i]..v, r | ||
| 448 | while farg:sub(1,1) == " " do farg = farg:sub(2,-1) end -- remove prefix spaces | ||
| 449 | end | ||
| 450 | end | ||
| 451 | |||
| 421 | local i = 1 | 452 | local i = 1 |
| 422 | while i <= #arg do | 453 | while i <= #arg do |
| 423 | local opt = arg[i] | 454 | local opt = arg[i] |
| 424 | if with_arg[opt] then | 455 | if with_arg[opt:upper()] then |
| 425 | local value = arg[i + 1] | 456 | local value = arg[i + 1] |
| 426 | if not value then | 457 | if not value then |
| 427 | die("Missing value for option "..opt) | 458 | die("Missing value for option "..opt) |
| @@ -448,15 +479,15 @@ vars.LUA_SHORTV = vars.LUA_VERSION:gsub("%.", "") | |||
| 448 | 479 | ||
| 449 | if INSTALL_LUA then | 480 | if INSTALL_LUA then |
| 450 | if vars.LUA_VERSION ~= "5.1" then | 481 | if vars.LUA_VERSION ~= "5.1" then |
| 451 | die("Cannot install own copy because no 5.2 version is bundled") | 482 | die("Cannot install own copy of Lua because only 5.1 is bundled") |
| 452 | end | 483 | end |
| 453 | vars.LUA_INTERPRETER = "lua5.1" | 484 | vars.LUA_INTERPRETER = "lua5.1" |
| 454 | vars.LUA_BINDIR = vars.BINDIR | 485 | vars.LUA_BINDIR = vars.BINDIR |
| 455 | vars.LUA_LIBDIR = vars.LIBDIR | 486 | vars.LUA_LIBDIR = vars.LIBDIR |
| 456 | vars.LUA_INCDIR = vars.INCDIR | 487 | vars.LUA_INCDIR = vars.INCDIR |
| 457 | vars.LUA_LIBNAME = "lua5.1.lib" | 488 | vars.LUA_LIBNAME = "lua5.1.lib" |
| 458 | vars.LUA_RUNTIME = "MSVCR80" | 489 | vars.LUA_RUNTIME = "MSVCR80" |
| 459 | vars.UNAME_M = "x86" | 490 | vars.UNAME_M = "x86" |
| 460 | else | 491 | else |
| 461 | if not look_for_lua_install() then | 492 | if not look_for_lua_install() then |
| 462 | die("Could not find Lua. See /? for options for specifying the location of Lua, or installing a bundled copy of Lua 5.1.") | 493 | die("Could not find Lua. See /? for options for specifying the location of Lua, or installing a bundled copy of Lua 5.1.") |
diff --git a/src/luarocks/build/cmake.lua b/src/luarocks/build/cmake.lua index f1737876..0df3a921 100644 --- a/src/luarocks/build/cmake.lua +++ b/src/luarocks/build/cmake.lua | |||
| @@ -22,7 +22,7 @@ function run(rockspec) | |||
| 22 | 22 | ||
| 23 | util.variable_substitutions(variables, rockspec.variables) | 23 | util.variable_substitutions(variables, rockspec.variables) |
| 24 | 24 | ||
| 25 | if not fs.execute_quiet(rockspec.variables.CMAKE, "--help")) then | 25 | if not fs.execute_quiet(rockspec.variables.CMAKE, "--help") then |
| 26 | return nil, "'"..rockspec.variables.CMAKE.."' program not found. Is cmake installed? You may want to edit variables.CMAKE" | 26 | return nil, "'"..rockspec.variables.CMAKE.."' program not found. Is cmake installed? You may want to edit variables.CMAKE" |
| 27 | end | 27 | end |
| 28 | 28 | ||
diff --git a/src/luarocks/loader.lua b/src/luarocks/loader.lua index a116766c..aa3b2781 100644 --- a/src/luarocks/loader.lua +++ b/src/luarocks/loader.lua | |||
| @@ -108,7 +108,7 @@ end | |||
| 108 | -- @return table or (nil, string): The module table as returned by some other loader, | 108 | -- @return table or (nil, string): The module table as returned by some other loader, |
| 109 | -- or nil followed by an error message if no other loader managed to load the module. | 109 | -- or nil followed by an error message if no other loader managed to load the module. |
| 110 | local function call_other_loaders(module, name, version, module_name) | 110 | local function call_other_loaders(module, name, version, module_name) |
| 111 | for i, loader in pairs(package.loaders) do | 111 | for i, loader in ipairs(package.loaders) do |
| 112 | if loader ~= luarocks_loader then | 112 | if loader ~= luarocks_loader then |
| 113 | local results = { loader(module_name) } | 113 | local results = { loader(module_name) } |
| 114 | if type(results[1]) == "function" then | 114 | if type(results[1]) == "function" then |
