1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
--!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" },
-- network configuration
{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},
-- package configuration
{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."},
-- show platform menu options
{category = "Platform Configuration"},
function ()
import("core.platform.menu")
return menu.options("global")
end
}
}
|