--!A cross-platform build utility based on Lua -- -- Licensed under the Apache License, Version 2.0 (the "License"); -- you may not use this file except in compliance with the License. -- You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- -- Copyright (C) 2015-present, Xmake Open Source Community. -- -- @author ruki -- @file xmake.lua -- task("global") set_category("action") on_run("main") set_menu { usage = "xmake global|g [options] [target]", description = "Configure the global options for xmake.", shortname = 'g', options = { {'c', "clean", "k", nil, "Clean the cached user configs and detection cache."}, {nil, "check", "k", nil, "Just ignore detection cache and force to check all, it will reserve the cached user configs."}, {nil, "menu", "k", nil, "Configure with a menu-driven user interface."}, {category = "."}, {nil, "theme", "kv", "default", "The theme name.", values = function () return import("core.theme.theme.names")() end}, {nil, "debugger", "kv", "auto", "The debugger program path."}, {nil, "ccache", "kv", nil, "Enable or disable the c/c++ compiler cache."}, {category = "Build Configuration"}, {nil, "cachedir", "kv", nil, "The global cache directory."}, {nil, "policies", "kv", nil, "Set the global project policies.", " e.g.", " - xmake g --policies=run.autobuild", " - xmake g --policies=build.warning:n"}, {category = "Network Configuration"}, {nil, "network", "kv", "public", "Set the network mode.", values = {"public", "private"}}, {nil, "insecure-ssl", "kv", nil, "Disable to check ssl certificates for downloading."}, {'x', "proxy", "kv", nil, "Use proxy on given port. [protocol://]host[:port]", " e.g.", " - xmake g --proxy='http://host:port'", " - xmake g --proxy='https://host:port'", " - xmake g --proxy='socks5://host:port'"}, {nil, "proxy_hosts", "kv", nil, "Only enable proxy for the given hosts list, it will enable all if be unset,", "and we can pass match pattern to list:", " e.g.", " - xmake g --proxy_hosts='github.com,gitlab.*,*.xmake.io'"}, {nil, "proxy_pac", "kv", "pac.lua", "Set the auto proxy configuration file.", " e.g.", " - xmake g --proxy_pac=pac.lua (in $(globaldir) or absolute path)", " - function main(url, host)", " if host == 'github.com' then", " return true", " end", " end", "", "Builtin pac files:", function () local description = {} local pacfiles = os.files(path.join(os.programdir(), "scripts", "pac", "*.lua")) for _, pacfile in ipairs(pacfiles) do table.insert(description, " - " .. path.filename(pacfile)) end return description end}, {category = "Package Configuration"}, {nil, "pkg_searchdirs", "kv", nil, "The search directories of the remote package.", " e.g.", " - xmake g --pkg_searchdirs=/dir1" .. path.envsep() .. "/dir2"}, {nil, "pkg_cachedir", "kv", nil, "The cache root directory of the remote package."}, {nil, "pkg_installdir", "kv", nil, "The install root directory of the remote package."}, {category = "Platform Configuration"}, function () import("core.platform.menu") return menu.options("global") end } }