Mercurial > repo
view share/lua/5.2/luarocks/cfg.lua @ 7910:7d5f1c5e44b1
<moon__> mkx bin/hfs//erro You have discovered an eerie caven. The air above the dark stone floor is alive with vorices of purple light and dark, boiling clouds. Seemingly bottomless glowing pit mark the surface.
author | HackBot |
---|---|
date | Sat, 07 May 2016 00:41:47 +0000 |
parents | d137f631bad5 |
children |
line wrap: on
line source
--- Configuration for LuaRocks. -- Tries to load the user's configuration file and -- defines defaults for unset values. See the -- <a href="http://luarocks.org/en/Config_file_format">config -- file format documentation</a> for details. -- -- End-users shouldn't edit this file. They can override any defaults -- set in this file using their system-wide $LUAROCKS_SYSCONFIG file -- (see luarocks.site_config) or their user-specific configuration file -- (~/.luarocks/config.lua on Unix or %APPDATA%/luarocks/config.lua on -- Windows). local rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, tonumber, type, assert, _VERSION = rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, tonumber, type, assert, _VERSION module("luarocks.cfg") -- Load site-local global configurations local ok, site_config = pcall(require, "luarocks.site_config") if not ok then io.stderr:write("Site-local luarocks/site_config.lua file not found. Incomplete installation?\n") site_config = {} end _M.site_config = site_config lua_version = _VERSION:sub(5) program_version = "2.0.12" local persist = require("luarocks.persist") local popen_ok, popen_result = pcall(io.popen, "") if popen_ok then if popen_result then popen_result:close() end else io.stderr:write("Your version of Lua does not support io.popen,\n") io.stderr:write("which is required by LuaRocks. Please check your Lua installation.\n") os.exit(1) end -- System detection: local detected = {} local system,proc -- A proper installation of LuaRocks will hardcode the system -- and proc values with site_config.LUAROCKS_UNAME_S and site_config.LUAROCKS_UNAME_M, -- so that this detection does not run every time. When it is -- performed, we use the Unix way to identify the system, -- even on Windows (assuming UnxUtils or Cygwin). system = site_config.LUAROCKS_UNAME_S or io.popen("uname -s"):read("*l") proc = site_config.LUAROCKS_UNAME_M or io.popen("uname -m"):read("*l") if proc:match("i[%d]86") then proc = "x86" elseif proc:match("amd64") or proc:match("x86_64") then proc = "x86_64" elseif proc:match("Power Macintosh") then proc = "powerpc" end if system == "FreeBSD" then detected.unix = true detected.freebsd = true detected.bsd = true elseif system == "OpenBSD" then detected.unix = true detected.openbsd = true detected.bsd = true elseif system == "NetBSD" then detected.unix = true detected.netbsd = true detected.bsd = true elseif system == "Darwin" then detected.unix = true detected.macosx = true detected.bsd = true elseif system == "Linux" then detected.unix = true detected.linux = true elseif system == "SunOS" then detected.unix = true detected.solaris = true elseif system and system:match("^CYGWIN") then detected.unix = true detected.cygwin = true elseif system and system:match("^Windows") then detected.windows = true elseif system and system:match("^MINGW") then detected.windows = true detected.mingw32 = true else detected.unix = true -- Fall back to Unix in unknown systems. end -- Path configuration: local version_suffix = lua_version:gsub ("%.", "_") local sys_config_file, home_config_file local sys_config_ok, home_config_ok = false, false sys_config_file = site_config["LUAROCKS_SYSCONFIG_" .. version_suffix] or site_config.LUAROCKS_SYSCONFIG if detected.windows then home = os.getenv("APPDATA") or "c:" sys_config_file = sys_config_file or "c:/luarocks/config.lua" home_config_file = home.."/luarocks/config.lua" home_tree = home.."/luarocks/" else home = os.getenv("HOME") or "" sys_config_file = sys_config_file or "/etc/luarocks/config.lua" home_config_file = home.."/.luarocks/config.lua" home_tree = home.."/.luarocks/" end variables = {} rocks_trees = {} local ok, err = persist.load_into_table(sys_config_file, _M) if ok then sys_config_ok = true else -- nil or false sys_config_ok = ok if err and ok == nil then io.stderr:write(err.."\n") end end if not site_config.LUAROCKS_FORCE_CONFIG then home_config_file = os.getenv("LUAROCKS_CONFIG_" .. version_suffix) or os.getenv("LUAROCKS_CONFIG") or home_config_file local home_overrides, err = persist.load_into_table(home_config_file, { home = home }) if home_overrides then home_config_ok = true local util = require("luarocks.util") if home_overrides.rocks_trees then _M.rocks_trees = nil end if home_overrides.rocks_servers then _M.rocks_servers = nil end util.deep_merge(_M, home_overrides) else -- nil or false home_config_ok = home_overrides if err and home_config_ok == nil then io.stderr:write(err.."\n") end end end if not next(rocks_trees) then if home_tree then table.insert(rocks_trees, home_tree) end if site_config.LUAROCKS_ROCKS_TREE then table.insert(rocks_trees, site_config.LUAROCKS_ROCKS_TREE) end end -- Configure defaults: local root = rocks_trees[#rocks_trees] local defaults = { local_by_default = false, use_extensions = false, accept_unknown_fields = false, fs_use_modules = true, deps_mode = "one", lua_modules_path = "/share/lua/"..lua_version, lib_modules_path = "/lib/lua/"..lua_version, arch = "unknown", lib_extension = "unknown", obj_extension = "unknown", rocks_servers = { { "http://www.luarocks.org/repositories/rocks", "http://luarocks.giga.puc-rio.br/", "http://luafr.org/luarocks/rocks", "http://liblua.so/luarocks/repositories/rocks", "http://luarocks.logiceditor.com/rocks", } }, lua_extension = "lua", lua_interpreter = site_config.LUA_INTERPRETER or "lua", downloader = site_config.LUAROCKS_DOWNLOADER or "wget", md5checker = site_config.LUAROCKS_MD5CHECKER or "md5sum", variables = { 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", CP = "cp", LS = "ls", RM = "rm", FIND = "find", TEST = "test", CHMOD = "chmod", PATCH = "patch", ZIP = "zip", UNZIP = "unzip", 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", include = "include" }, runtime_external_deps_subdirs = { bin = "bin", lib = "lib", include = "include" }, } if detected.windows then home_config_file = home_config_file:gsub("\\","/") defaults.fs_use_modules = false defaults.arch = "win32-"..proc defaults.platforms = {"win32", "windows" } defaults.lib_extension = "dll" defaults.external_lib_extension = "dll" defaults.obj_extension = "obj" defaults.external_deps_dirs = { "c:/external/" } defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/bin" defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/include" defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua"..lua_version.."/lib" defaults.cmake_generator = "MinGW Makefiles" defaults.makefile = "Makefile.win" 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.LD = "link" defaults.variables.MT = "mt" defaults.variables.LUALIB = "lua"..lua_version..".lib" defaults.variables.CFLAGS = "/MD /O2" defaults.variables.LIBFLAG = "/dll" defaults.variables.LUALIB = "lua"..lua_version..".lib" defaults.external_deps_patterns = { bin = { "?.exe", "?.bat" }, lib = { "?.lib", "?.dll", "lib?.dll" }, include = { "?.h" } } defaults.runtime_external_deps_patterns = { bin = { "?.exe", "?.bat" }, lib = { "?.dll", "lib?.dll" }, include = { "?.h" } } defaults.export_path = "SET PATH=%s" defaults.export_path_separator = ";" defaults.export_lua_path = "SET LUA_PATH=%s" defaults.export_lua_cpath = "SET LUA_CPATH=%s" defaults.local_cache = home.."/cache/luarocks" end if detected.mingw32 then defaults.platforms = { "win32", "mingw32" } defaults.obj_extension = "o" defaults.cmake_generator = "MinGW Makefiles" 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.LD = "mingw32-gcc" defaults.variables.CFLAGS = "-O2" defaults.variables.LIBFLAG = "-shared" end if detected.unix then defaults.lib_extension = "so" defaults.external_lib_extension = "so" defaults.obj_extension = "o" defaults.external_deps_dirs = { "/usr/local", "/usr" } defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR or "/usr/local/bin" defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR or "/usr/local/include" defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR or "/usr/local/lib" defaults.variables.CFLAGS = "-O2" defaults.cmake_generator = "Unix Makefiles" defaults.platforms = { "unix" } defaults.variables.CC = "gcc" defaults.variables.LD = "gcc" defaults.gcc_rpath = true defaults.variables.LIBFLAG = "-shared" defaults.external_deps_patterns = { bin = { "?" }, lib = { "lib?.a", "lib?.so", "lib?.so.*" }, include = { "?.h" } } defaults.runtime_external_deps_patterns = { bin = { "?" }, lib = { "lib?.so", "lib?.so.*" }, include = { "?.h" } } defaults.export_path = "export PATH='%s'" defaults.export_path_separator = ":" defaults.export_lua_path = "export LUA_PATH='%s'" defaults.export_lua_cpath = "export LUA_CPATH='%s'" defaults.local_cache = home.."/.cache/luarocks" if not defaults.variables.CFLAGS:match("-fPIC") then defaults.variables.CFLAGS = defaults.variables.CFLAGS.." -fPIC" end end if detected.cygwin then defaults.lib_extension = "so" -- can be overridden in the config file for mingw builds defaults.arch = "cygwin-"..proc defaults.platforms = {"unix", "cygwin"} defaults.cmake_generator = "Unix Makefiles" defaults.variables.CC = "echo -llua | xargs gcc" defaults.variables.LD = "echo -llua | xargs gcc" defaults.variables.LIBFLAG = "-shared" end if detected.bsd then defaults.variables.MAKE = "gmake" defaults.variables.STATFLAG = "-f '%OLp'" end if detected.macosx then defaults.external_lib_extension = "dylib" defaults.arch = "macosx-"..proc defaults.platforms = {"unix", "bsd", "macosx"} defaults.variables.LIBFLAG = "-bundle -undefined dynamic_lookup -all_load" defaults.variables.STATFLAG = "-f '%A'" local version = io.popen("sw_vers -productVersion"):read("*l") version = tonumber(version and version:match("^[^.]+%.([^.]+)")) or 3 if version >= 5 then version = 5 else defaults.gcc_rpath = false end defaults.variables.CC = "export MACOSX_DEPLOYMENT_TARGET=10."..version.."; gcc" defaults.variables.LD = "export MACOSX_DEPLOYMENT_TARGET=10."..version.."; gcc" end if detected.linux then defaults.arch = "linux-"..proc defaults.platforms = {"unix", "linux"} end if detected.freebsd then defaults.arch = "freebsd-"..proc defaults.platforms = {"unix", "bsd", "freebsd"} end if detected.openbsd then defaults.arch = "openbsd-"..proc defaults.platforms = {"unix", "bsd", "openbsd"} end if detected.netbsd then defaults.arch = "netbsd-"..proc defaults.platforms = {"unix", "bsd", "netbsd"} end if detected.solaris then defaults.arch = "solaris-"..proc defaults.platforms = {"unix", "solaris"} defaults.variables.MAKE = "gmake" end -- Expose some more values detected by LuaRocks for use by rockspec authors. defaults.variables.LIB_EXTENSION = defaults.lib_extension defaults.variables.OBJ_EXTENSION = defaults.obj_extension defaults.variables.LUAROCKS_PREFIX = site_config.LUAROCKS_PREFIX defaults.variables.LUA = site_config.LUA_DIR_SET and (defaults.variables.LUA_BINDIR.."/"..defaults.lua_interpreter) or defaults.lua_interpreter -- Use defaults: -- Populate values from 'defaults.variables' in 'variables' if they were not -- already set by user. if not _M.variables then _M.variables = {} end for k,v in pairs(defaults.variables) do if not _M.variables[k] then _M.variables[k] = v end end -- For values not set in the config file, use values from the 'defaults' table. local cfg_mt = { __index = function(t, k) local default = defaults[k] if default then rawset(t, k, default) end return default end } setmetatable(_M, cfg_mt) for _,tree in ipairs(rocks_trees) do if type(tree) == "string" then package.path = tree..lua_modules_path.."/?.lua;"..tree..lua_modules_path.."/?/init.lua;"..package.path package.cpath = tree..lib_modules_path.."/?."..lib_extension..";"..package.cpath else package.path = (tree.lua_dir or tree.root..lua_modules_path).."/?.lua;".. (tree.lua_dir or tree.root..lua_modules_path).."/?/init.lua;"..package.path package.cpath = (tree.lib_dir or tree.root..lib_modules_path).."/?."..lib_extension..";"..package.cpath end end function which_config() return sys_config_file, sys_config_ok, home_config_file, home_config_ok end user_agent = "LuaRocks/"..program_version.." "..arch --- Check if platform was detected -- @param query string: The platform name to check. -- @return boolean: true if LuaRocks is currently running on queried platform. function is_platform(query) assert(type(query) == "string") for _, platform in ipairs(platforms) do if platform == query then return true end end end