mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
* Installs luarocks WITH it's executable (easy to install other rocks if necessary) * Use Lua supplied with luarocks * Create Utils/luadocumentor.bat, which works with RELATIVE PATH ! -> Everybody can generate the doc * Updated launch files accordingly
93 lines
3.6 KiB
Lua
93 lines
3.6 KiB
Lua
|
|
--- Module implementing the LuaRocks "make" command.
|
|
-- Builds sources in the current directory, but unlike "build",
|
|
-- it does not fetch sources, etc., assuming everything is
|
|
-- available in the current directory.
|
|
local make = {}
|
|
package.loaded["luarocks.make"] = make
|
|
|
|
local build = require("luarocks.build")
|
|
local fs = require("luarocks.fs")
|
|
local util = require("luarocks.util")
|
|
local cfg = require("luarocks.cfg")
|
|
local fetch = require("luarocks.fetch")
|
|
local pack = require("luarocks.pack")
|
|
local remove = require("luarocks.remove")
|
|
local deps = require("luarocks.deps")
|
|
local manif = require("luarocks.manif")
|
|
|
|
util.add_run_function(make)
|
|
make.help_summary = "Compile package in current directory using a rockspec."
|
|
make.help_arguments = "[--pack-binary-rock] [<rockspec>]"
|
|
make.help = [[
|
|
Builds sources in the current directory, but unlike "build",
|
|
it does not fetch sources, etc., assuming everything is
|
|
available in the current directory. If no argument is given,
|
|
it looks for a rockspec in the current directory and in "rockspec/"
|
|
and "rockspecs/" subdirectories, picking the rockspec with newest version
|
|
or without version name. If rockspecs for different rocks are found
|
|
or there are several rockspecs without version, you must specify which to use,
|
|
through the command-line.
|
|
|
|
This command is useful as a tool for debugging rockspecs.
|
|
To install rocks, you'll normally want to use the "install" and
|
|
"build" commands. See the help on those for details.
|
|
|
|
--pack-binary-rock Do not install rock. Instead, produce a .rock file
|
|
with the contents of compilation in the current
|
|
directory.
|
|
|
|
--keep Do not remove previously installed versions of the
|
|
rock after installing a new one. This behavior can
|
|
be made permanent by setting keep_other_versions=true
|
|
in the configuration file.
|
|
|
|
--branch=<name> Override the `source.branch` field in the loaded
|
|
rockspec. Allows to specify a different branch to
|
|
fetch. Particularly for SCM rocks.
|
|
|
|
]]
|
|
|
|
--- Driver function for "make" command.
|
|
-- @param name string: A local rockspec.
|
|
-- @return boolean or (nil, string, exitcode): True if build was successful; nil and an
|
|
-- error message otherwise. exitcode is optionally returned.
|
|
function make.command(flags, rockspec)
|
|
assert(type(rockspec) == "string" or not rockspec)
|
|
|
|
if not rockspec then
|
|
local err
|
|
rockspec, err = util.get_default_rockspec()
|
|
if not rockspec then
|
|
return nil, err
|
|
end
|
|
end
|
|
if not rockspec:match("rockspec$") then
|
|
return nil, "Invalid argument: 'make' takes a rockspec as a parameter. "..util.see_help("make")
|
|
end
|
|
|
|
if flags["pack-binary-rock"] then
|
|
local rspec, err, errcode = fetch.load_rockspec(rockspec)
|
|
if not rspec then
|
|
return nil, err
|
|
end
|
|
return pack.pack_binary_rock(rspec.name, rspec.version, build.build_rockspec, rockspec, false, true, deps.get_deps_mode(flags))
|
|
else
|
|
local ok, err = fs.check_command_permissions(flags)
|
|
if not ok then return nil, err, cfg.errorcodes.PERMISSIONDENIED end
|
|
ok, err = build.build_rockspec(rockspec, false, true, deps.get_deps_mode(flags))
|
|
if not ok then return nil, err end
|
|
local name, version = ok, err
|
|
|
|
if (not flags["keep"]) and not cfg.keep_other_versions then
|
|
local ok, err = remove.remove_other_versions(name, version, flags["force"], flags["force-fast"])
|
|
if not ok then util.printerr(err) end
|
|
end
|
|
|
|
manif.check_dependencies(nil, deps.get_deps_mode(flags))
|
|
return name, version
|
|
end
|
|
end
|
|
|
|
return make
|