summaryrefslogtreecommitdiff
path: root/xmake/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'xmake/plugins')
-rw-r--r--xmake/plugins/check/xmake.lua9
-rw-r--r--xmake/plugins/doxygen/xmake.lua32
-rw-r--r--xmake/plugins/format/xmake.lua63
-rw-r--r--xmake/plugins/lua/xmake.lua104
-rw-r--r--xmake/plugins/macro/xmake.lua107
-rw-r--r--xmake/plugins/pack/xmake.lua5
-rw-r--r--xmake/plugins/plugin/xmake.lua14
-rw-r--r--xmake/plugins/project/xmake.lua86
-rw-r--r--xmake/plugins/repo/xmake.lua43
-rw-r--r--xmake/plugins/show/xmake.lua20
-rw-r--r--xmake/plugins/watch/xmake.lua60
11 files changed, 228 insertions, 315 deletions
diff --git a/xmake/plugins/check/xmake.lua b/xmake/plugins/check/xmake.lua
index 07b045a71..4664c3888 100644
--- a/xmake/plugins/check/xmake.lua
+++ b/xmake/plugins/check/xmake.lua
@@ -34,12 +34,11 @@ task("check")
" - xmake check api.target.languages",
"",
"The supported checkers list:",
- values = function (complete, opt)
- return import("private.check.checker").complete(complete, opt)
- end},
+ values = function (complete, opt)
+ return import("private.check.checker").complete(complete, opt)
+ end},
{nil, "arguments", "vs", nil, "Set the checker arguments.",
"e.g.",
- " - xmake check clang.tidy [arguments]"}
+ " - xmake check clang.tidy [arguments]"},
}
}
-
diff --git a/xmake/plugins/doxygen/xmake.lua b/xmake/plugins/doxygen/xmake.lua
index a849af053..f9adc0126 100644
--- a/xmake/plugins/doxygen/xmake.lua
+++ b/xmake/plugins/doxygen/xmake.lua
@@ -18,31 +18,15 @@
-- @file doxygen.lua
--
--- define task
task("doxygen")
-
- -- set category
set_category("plugin")
-
- -- on run
on_run("main")
-
- -- set menu
set_menu {
- -- usage
- usage = "xmake doxygen [options] [arguments]"
-
- -- description
- , description = "Generate the doxygen document."
-
- -- options
- , options =
- {
- {'o', "outputdir", "kv", nil, "Set the output directory." }
- , {}
- , {nil, "srcdir", "v", "src", "Set the source code directory." }
- }
- }
-
-
-
+ usage = "xmake doxygen [options] [arguments]",
+ description = "Generate the doxygen document.",
+ options = {
+ {'o', "outputdir", "kv", nil, "Set the output directory."},
+ {},
+ {nil, "srcdir", "v", "src", "Set the source code directory."},
+ }
+ }
diff --git a/xmake/plugins/format/xmake.lua b/xmake/plugins/format/xmake.lua
index 5de1b8120..964fa1d34 100644
--- a/xmake/plugins/format/xmake.lua
+++ b/xmake/plugins/format/xmake.lua
@@ -22,35 +22,34 @@ task("format")
set_category("plugin")
on_run("main")
set_menu {
- usage = "xmake format [options] [arguments]",
- description = "Format the current project.",
- options = {
- {'s', "style", "kv", nil, "Set the path of .clang-format file, a coding style",
- values = {"LLVM", "Google", "Chromium", "Mozilla", "WebKit"}},
- {nil, "create", "k", nil, "Create a .clang-format file from a coding style"},
- {'n', "dry-run", "k", nil, "Do not make any changes, just show the files that would be formatted."},
- {'e', "error", "k", nil, "If set, changes formatting warnings to errors."},
- {'j', "jobs", "kv", tostring(os.default_njob()),
- "Set the number of parallel format jobs."},
- {'a', "all", "k", nil, "Format all targets."},
- {'g', "group", "kv", nil, "Format all targets of the given group. It support path pattern matching.",
- "e.g.",
- " xmake format -g test",
- " xmake format -g test_*",
- " xmake format --group=benchmark/*"},
- {'f', "files", "kv", nil, "Build the given source files.",
- "e.g.",
- " - xmake format --files=src/main.c",
- " - xmake format --files='src/*.c' [target]",
- " - xmake format --files='src/**.c|excluded_file.c'",
- " - xmake format --files='src/main.c" .. path.envsep() .. "src/test.c'" },
- {},
- {nil, "targets", "vs", nil, "The target names. It will format all default targets if this parameter is not specified.",
- "e.g.",
- " xmake format target1 target2 ..."
- , values = function (complete, opt) return import("private.utils.complete_helper.targets")(complete, opt) end }
- }
- }
-
-
-
+ usage = "xmake format [options] [arguments]",
+ description = "Format the current project.",
+ options = {
+ {'s', "style", "kv", nil, "Set the path of .clang-format file, a coding style",
+ values = {"LLVM", "Google", "Chromium", "Mozilla", "WebKit"}},
+ {nil, "create", "k", nil, "Create a .clang-format file from a coding style"},
+ {'n', "dry-run", "k", nil, "Do not make any changes, just show the files that would be formatted."},
+ {'e', "error", "k", nil, "If set, changes formatting warnings to errors."},
+ {'j', "jobs", "kv", tostring(os.default_njob()),
+ "Set the number of parallel format jobs."},
+ {'a', "all", "k", nil, "Format all targets."},
+ {'g', "group", "kv", nil, "Format all targets of the given group. It supports path pattern matching.",
+ "e.g.",
+ " xmake format -g test",
+ " xmake format -g test_*",
+ " xmake format --group=benchmark/*"},
+ {'f', "files", "kv", nil, "Build the given source files.",
+ "e.g.",
+ " - xmake format --files=src/main.c",
+ " - xmake format --files='src/*.c' [target]",
+ " - xmake format --files='src/**.c|excluded_file.c'",
+ " - xmake format --files='src/main.c" .. path.envsep() .. "src/test.c'"},
+ {},
+ {nil, "targets", "vs", nil, "The target names. It will format all default targets if this parameter is not specified.",
+ "e.g.",
+ " xmake format target1 target2 ...",
+ values = function (complete, opt)
+ return import("private.utils.complete_helper.targets")(complete, opt)
+ end},
+ }
+ }
diff --git a/xmake/plugins/lua/xmake.lua b/xmake/plugins/lua/xmake.lua
index dee1707b6..2c56c637e 100644
--- a/xmake/plugins/lua/xmake.lua
+++ b/xmake/plugins/lua/xmake.lua
@@ -18,69 +18,49 @@
-- @file xmake.lua
--
--- define task
task("lua")
-
- -- set category
set_category("plugin")
-
- -- on run
on_run("main")
-
- -- set menu
set_menu {
- -- usage
- usage = "xmake lua|l [options] [script] [arguments]"
-
- -- description
- , description = "Run the lua script."
-
- -- xmake l
- , shortname = 'l'
-
- -- options
- , options =
- {
-
- {'l', "list" , "k" , nil , "List all scripts." }
- , {'c', "command" , "k" , nil , "Run script as command" }
- , {'d', "deserialize" , "kv" , nil , "Deserialize arguments starts with given prefix" }
- , {nil, "stdin" , "k" , nil , "Run script from stdin",
- "e.g.",
- " - echo 'print(\"hello\")' | xmake lua --stdin",
- " - cat script.lua | xmake lua --stdin"
- }
- , {nil, "script" , "v" , nil , "Run the given lua script name, file or module and enter interactive mode if no given script.",
- "e.g.",
- " - xmake lua (enter interactive mode)",
- " - xmake lua /tmp/script.lua",
- " - xmake lua echo 'hello xmake'",
- " - xmake lua core.xxx.xxx",
- " - xmake lua -c 'print(...)' hello xmake!"
- , values = function (complete, opt)
- if not complete or opt.command or opt.list then
- return
- end
- local list = import("main.scripts")()
- if list and complete then
- local result = {}
- for _, item in ipairs(list) do
- if item:startswith(complete) then
- table.insert(result, item)
- end
- end
- if #result > 0 then
- return result
- end
- end
- -- we just return nil and fallback to system autocomplete
- -- it will complete file path, e.g. `xmake l scripts/test.lua`
- end }
- , {nil, "arguments" , "vs" , nil , "The script arguments, use '--deserialize' option to enable deserializing.",
- "e.g.",
- " - xmake lua -d@ lib.detect.find_tool tar @{version=true}" }
- }
- }
-
-
-
+ usage = "xmake lua|l [options] [script] [arguments]",
+ description = "Run the lua script.",
+ shortname = 'l',
+ options = {
+ {'l', "list", "k", nil, "List all scripts."},
+ {'c', "command", "k", nil, "Run script as command"},
+ {'d', "deserialize", "kv", nil, "Deserialize arguments starts with given prefix"},
+ {nil, "stdin", "k", nil, "Run script from stdin",
+ "e.g.",
+ " - echo 'print(\"hello\")' | xmake lua --stdin",
+ " - cat script.lua | xmake lua --stdin"},
+ {nil, "script", "v", nil, "Run the given lua script name, file or module and enter interactive mode if no given script.",
+ "e.g.",
+ " - xmake lua (enter interactive mode)",
+ " - xmake lua /tmp/script.lua",
+ " - xmake lua echo 'hello xmake'",
+ " - xmake lua core.xxx.xxx",
+ " - xmake lua -c 'print(...)' hello xmake!",
+ values = function (complete, opt)
+ if not complete or opt.command or opt.list then
+ return
+ end
+ local list = import("main.scripts")()
+ if list and complete then
+ local result = {}
+ for _, item in ipairs(list) do
+ if item:startswith(complete) then
+ table.insert(result, item)
+ end
+ end
+ if #result > 0 then
+ return result
+ end
+ end
+ -- we just return nil and fallback to system autocomplete
+ -- it will complete file path, e.g. `xmake l scripts/test.lua`
+ end},
+ {nil, "arguments", "vs", nil, "The script arguments, use '--deserialize' option to enable deserializing.",
+ "e.g.",
+ " - xmake lua -d@ lib.detect.find_tool tar @{version=true}"},
+ }
+ }
diff --git a/xmake/plugins/macro/xmake.lua b/xmake/plugins/macro/xmake.lua
index 2a8710924..2cd022d6a 100644
--- a/xmake/plugins/macro/xmake.lua
+++ b/xmake/plugins/macro/xmake.lua
@@ -18,69 +18,54 @@
-- @file macro.lua
--
--- define task
task("macro")
-
- -- set category
set_category("plugin")
-
- -- on run
on_run("main")
-
- -- set menu
set_menu {
- -- usage
- usage = "xmake macro|m [options] [name] [arguments]"
-
- -- description
- , description = "Run the given macro."
-
- -- xmake m
- , shortname = 'm'
-
- -- options
- , options =
- {
- {'b', "begin", "k", nil, "Start to record macro."
- , "e.g."
- , "Record macro with name: test"
- , " xmake macro --begin"
- , " xmake config --plat=macosx"
- , " xmake clean"
- , " xmake -r"
- , " xmake package"
- , " xmake macro --end test" }
- , {'e', "end", "k", nil, "Stop to record macro." }
- , {}
- , {nil, "show", "k", nil, "Show the content of the given macro." }
- , {'l', "list", "k", nil, "List all macros." }
- , {'d', "delete", "k", nil, "Delete the given macro." }
- , {'c', "clear", "k", nil, "Clear the all macros." }
- , {}
- , {nil, "import", "kv", nil, "Import the given macro file or directory."
- , "e.g."
- , " xmake macro --import=/xxx/macro.lua test"
- , " xmake macro --import=/xxx/macrodir" }
- , {nil, "export", "kv", nil, "Export the given macro to file or directory."
- , "e.g."
- , " xmake macro --export=/xxx/macro.lua test"
- , " xmake macro --export=/xxx/macrodir" }
- , {}
- , {nil, "name", "v", ".", "Set the macro name."
- , "e.g."
- , " Run the given macro: xmake macro test"
- , " Run the anonymous macro: xmake macro ."
- , " Run the last command: xmake macro .."
- , values = function (complete, opt)
- -- hide in help menu
- if not complete then return end
- -- don't need name
- if opt.begin or opt.list or opt.clear then return end
- -- name should be given by user
- if opt["end"] or opt.import then return end
+ usage = "xmake macro|m [options] [name] [arguments]",
+ description = "Run the given macro.",
+ shortname = 'm',
+ options = {
+ {'b', "begin", "k", nil, "Start to record macro.",
+ "e.g.",
+ "Record macro with name: test",
+ " xmake macro --begin",
+ " xmake config --plat=macosx",
+ " xmake clean",
+ " xmake -r",
+ " xmake package",
+ " xmake macro --end test"},
+ {'e', "end", "k", nil, "Stop to record macro."},
+ {},
+ {nil, "show", "k", nil, "Show the content of the given macro."},
+ {'l', "list", "k", nil, "List all macros."},
+ {'d', "delete", "k", nil, "Delete the given macro."},
+ {'c', "clear", "k", nil, "Clear the all macros."},
+ {},
+ {nil, "import", "kv", nil, "Import the given macro file or directory.",
+ "e.g.",
+ " xmake macro --import=/xxx/macro.lua test",
+ " xmake macro --import=/xxx/macrodir"},
+ {nil, "export", "kv", nil, "Export the given macro to file or directory.",
+ "e.g.",
+ " xmake macro --export=/xxx/macro.lua test",
+ " xmake macro --export=/xxx/macrodir"},
+ {},
+ {nil, "name", "v", ".", "Set the macro name.",
+ "e.g.",
+ " Run the given macro: xmake macro test",
+ " Run the anonymous macro: xmake macro .",
+ " Run the last command: xmake macro ..",
+ values = function (complete, opt)
+ -- hide in help menu
+ if not complete then return end
+ -- don't need name
+ if opt.begin or opt.list or opt.clear then return end
+ -- name should be given by user
+ if opt["end"] or opt.import then return end
- return import("main.macros")(".")
- end }
- , {nil, "arguments", "vs", nil, "Set the macro arguments." }
- }
- }
+ return import("main.macros")(".")
+ end},
+ {nil, "arguments", "vs", nil, "Set the macro arguments."}
+ }
+ }
diff --git a/xmake/plugins/pack/xmake.lua b/xmake/plugins/pack/xmake.lua
index f95abcf98..6e0a358aa 100644
--- a/xmake/plugins/pack/xmake.lua
+++ b/xmake/plugins/pack/xmake.lua
@@ -28,13 +28,14 @@ task("pack")
{'o', "outputdir", "kv", nil, "Set the output directory. (default: build/xpack)"},
{nil, "basename", "kv", nil, "Set the basename of the output file."},
{nil, "autobuild", "kv", true, "Build targets automatically."},
- {'j', "jobs", "kv", tostring(os.default_njob()), "Set the number of parallel compilation jobs." },
+ {'j', "jobs", "kv", tostring(os.default_njob()),
+ "Set the number of parallel compilation jobs."},
{'f', "formats", "kv", "all", "Pack the given package formats.",
"e.g.",
" - xmake pack -f nsis,deb,rpm",
"values:",
values = {"nsis", "wix", "deb", "srpm", "rpm", "runself", "targz", "tarxz", "zip", "srctargz", "srctarxz", "srczip"}},
{},
- {nil, "packages", "vs", nil, "The package names."}
+ {nil, "packages", "vs", nil, "The package names."},
}
}
diff --git a/xmake/plugins/plugin/xmake.lua b/xmake/plugins/plugin/xmake.lua
index f05021828..05d9e3631 100644
--- a/xmake/plugins/plugin/xmake.lua
+++ b/xmake/plugins/plugin/xmake.lua
@@ -25,12 +25,12 @@ task("plugin")
usage = "xmake plugin [options]",
description = "Manage plugins of xmake.",
options = {
- {'i', "install", "k", nil, "Install plugins." },
- {'u', "update", "k", nil, "Update plugins." },
- {'c', "clear", "k", nil, "Clear all installed plugins." },
- {nil, "plugins", "v", nil, "The plugins path or url.",
- "e.g.",
- " $ xmake plugin --install https://github.com/xmake-io/xmake-plugins",
- " $ xmake plugin --update"}
+ {'i', "install", "k", nil, "Install plugins."},
+ {'u', "update", "k", nil, "Update plugins."},
+ {'c', "clear", "k", nil, "Clear all installed plugins."},
+ {nil, "plugins", "v", nil, "The plugins path or url.",
+ "e.g.",
+ " $ xmake plugin --install https://github.com/xmake-io/xmake-plugins",
+ " $ xmake plugin --update"}
}
}
diff --git a/xmake/plugins/project/xmake.lua b/xmake/plugins/project/xmake.lua
index 15333d58b..ed5b35d9f 100644
--- a/xmake/plugins/project/xmake.lua
+++ b/xmake/plugins/project/xmake.lua
@@ -18,59 +18,43 @@
-- @file xmake.lua
--
--- define task
task("project")
-
- -- set category
set_category("plugin")
-
- -- on run
on_run("main")
-
- -- set menu
set_menu {
- -- usage
- usage = "xmake project [options] [outputdir]"
-
- -- description
- , description = "Generate the project file."
-
- -- options
- , options =
- {
- {'k', "kind", "kv" , "makefile", "Set the project kind."
- , " - make"
- , " - xmakefile (makefile with xmake)"
- , " - cmake"
- , " - ninja"
- , " - xcode"
- , " - compile_flags"
- , " - compile_commands (clang compilation database with json format)"
- , " - vs (auto detect), vs2002 - vs2026"
- , " - vsxmake (auto detect), vsxmake2010 ~ vsxmake2026"
- , values = function (complete, opt)
- if not complete then return end
-
- local values = table.keys(import("main.makers")())
- table.sort(values, function (a, b) return a > b end)
- return values
- end }
- , {'m', "modes", "kv" , nil , "Set the project modes."
- , " e.g. "
- , " - xmake project -k vsxmake -m \"release,debug\"" }
- , {'a', "archs", "kv" , nil , "Set the project archs."
- , " e.g. "
- , " - xmake project -k vsxmake -a \"x86,x64\"" }
- , {'t', "target", "kv" , nil , "Set the project target."
- , " e.g. "
- , " - xmake project -k compile_commands -t \"custom\"" }
- , {nil, "lsp", "kv" , nil , "Set the LSP backend for compile_commands."
- , " e.g. "
- , " - xmake project -k compile_commands --lsp=clangd"
- , values = {"clangd", "cpptools", "ccls"}}
- , {nil, "outputdir", "v" , "." , "Set the output directory." }
- }
- }
-
-
+ usage = "xmake project [options] [outputdir]",
+ description = "Generate the project file.",
+ options = {
+ {'k', "kind", "kv", "makefile", "Set the project kind.",
+ " - make",
+ " - xmakefile (makefile with xmake)",
+ " - cmake",
+ " - ninja",
+ " - xcode",
+ " - compile_flags",
+ " - compile_commands (clang compilation database with json format)",
+ " - vs (auto detect), vs2002 - vs2026",
+ " - vsxmake (auto detect), vsxmake2010 ~ vsxmake2026",
+ values = function (complete, opt)
+ if not complete then return end
+ local values = table.keys(import("main.makers")())
+ table.sort(values, function (a, b) return a > b end)
+ return values
+ end},
+ {'m', "modes", "kv", nil, "Set the project modes.",
+ " e.g. ",
+ " - xmake project -k vsxmake -m \"release,debug\""},
+ {'a', "archs", "kv", nil, "Set the project archs.",
+ " e.g. ",
+ " - xmake project -k vsxmake -a \"x86,x64\""},
+ {'t', "target", "kv", nil, "Set the project target.",
+ " e.g. ",
+ " - xmake project -k compile_commands -t \"custom\""},
+ {nil, "lsp", "kv", nil, "Set the LSP backend for compile_commands.",
+ " e.g. ",
+ " - xmake project -k compile_commands --lsp=clangd",
+ values = {"clangd", "cpptools", "ccls"}},
+ {nil, "outputdir", "v", ".", "Set the output directory."}
+ }
+ }
diff --git a/xmake/plugins/repo/xmake.lua b/xmake/plugins/repo/xmake.lua
index 590bb665d..f7260e9b9 100644
--- a/xmake/plugins/repo/xmake.lua
+++ b/xmake/plugins/repo/xmake.lua
@@ -18,36 +18,23 @@
-- @file repo.lua
--
--- define task
task("repo")
-
- -- set category
set_category("plugin")
-
- -- on run
on_run("main")
-
- -- set menu
set_menu {
- -- usage
- usage = "xmake repo [options] [name] [url] [branch]"
-
- -- description
- , description = "Manage package repositories."
-
- -- options
- , options =
- {
- {'a', "add", "k", nil, "Add the given remote repository url." }
- , {'r', "remove", "k", nil, "Remove the given remote repository url." }
- , {'u', "update", "k", nil, "Update all local repositories from the remote." }
- , {'c', "clear", "k", nil, "Clear all added repositories." }
- , { }
- , {'l', "list", "k", nil, "List all added repositories." }
- , {'g', "global", "k", nil, "Save repository to global. (default: local)" }
- , { }
- , {nil, "name", "v", nil, "The repository name." }
- , {nil, "url", "v", nil, "The repository url" }
- , {nil, "branch", "v", nil, "The repository branch" }
- }
+ usage = "xmake repo [options] [name] [url] [branch]",
+ description = "Manage package repositories.",
+ options = {
+ {'a', "add", "k", nil, "Add the given remote repository url."},
+ {'r', "remove", "k", nil, "Remove the given remote repository url."},
+ {'u', "update", "k", nil, "Update all local repositories from the remote."},
+ {'c', "clear", "k", nil, "Clear all added repositories."},
+ {},
+ {'l', "list", "k", nil, "List all added repositories."},
+ {'g', "global", "k", nil, "Save repository to global. (default: local)"},
+ {},
+ {nil, "name", "v", nil, "The repository name."},
+ {nil, "url", "v", nil, "The repository url"},
+ {nil, "branch", "v", nil, "The repository branch"}
+ }
}
diff --git a/xmake/plugins/show/xmake.lua b/xmake/plugins/show/xmake.lua
index ef3ea0fe2..5cbe973e9 100644
--- a/xmake/plugins/show/xmake.lua
+++ b/xmake/plugins/show/xmake.lua
@@ -26,9 +26,9 @@ task("show")
description = "Show the given project information.",
options = {
{'l', "list", "kv", nil, "Show the values list of the given name.",
- values = function (complete, opt)
- return import("list").lists()
- end},
+ values = function (complete, opt)
+ return import("list").lists()
+ end},
{'g', "group", "kv", nil, "Filter targets by the given group name."},
{nil, "json", "k", false, "Show information with json format (deprecated, use --format=json)."},
{nil, "pretty", "k", false, "Enable pretty formatted output."},
@@ -44,14 +44,12 @@ task("show")
" - xmake show --info=depgraph --target=app",
" - xmake show --info=depgraph --format=json",
" - xmake show --info=depgraph --format=dot",
- values = function (complete, opt)
- return import("list").infos()
- end},
+ values = function (complete, opt)
+ return import("list").infos()
+ end},
{'t', "target", "kv", nil, "Show the information of the given target.",
- values = function (complete, opt)
- return import("private.utils.complete_helper.targets")(complete, opt)
- end}
+ values = function (complete, opt)
+ return import("private.utils.complete_helper.targets")(complete, opt)
+ end}
}
}
-
-
diff --git a/xmake/plugins/watch/xmake.lua b/xmake/plugins/watch/xmake.lua
index 1b04b092c..1583cab09 100644
--- a/xmake/plugins/watch/xmake.lua
+++ b/xmake/plugins/watch/xmake.lua
@@ -22,35 +22,31 @@ task("watch")
set_category("plugin")
on_run("main")
set_menu {
- usage = "xmake watch [options] [arguments]"
- , description = "Watch the project directories and run command."
- , options =
- {
- {'c', "commands" , "kv" , nil , "Run the multiple commands instead of the default build command.",
- "e.g.",
- " $ xmake watch -c 'xmake -rv'",
- " $ xmake watch -c 'xmake -vD; xmake run hello'"},
- {'s', "script" , "kv" , nil , "Run the given lua script file.",
- "e.g.",
- " $ xmake watch -s /tmp/watch.lua"},
- {'d', "watchdirs" , "kv" , nil , "Set the given recursive watch directories, the project directories will be watched by default.",
- "e.g.",
- " $ xmake watch -d src",
- " $ xmake watch -d 'src/*" .. path.envsep() .. "tests/**/subdir'"},
- {'p', "plaindirs" , "kv" , nil , "Set the given non-recursive watch directories, the project directories will be watched by default.",
- "e.g.",
- " $ xmake watch -p src",
- " $ xmake watch -p 'src/*" .. path.envsep() .. "tests/**/subdir'"},
- {'r', "run" , "k" , nil , "Build and run target."},
- {'t', "target" , "kv" , nil , "Build the given target.",
- values = function (complete, opt) return import("private.utils.complete_helper.targets")(complete, opt) end },
- {'-', "arbitrary" , "vs" , nil , "Run an arbitrary command.",
- "e.g.",
- " $ xmake watch -- echo hello xmake!",
- " $ xmake watch -- xmake run",
- " $ xmake watch -- xmake -rv"}
- }
- }
-
-
-
+ usage = "xmake watch [options] [arguments]",
+ description = "Watch the project directories and run command.",
+ options = {
+ {'c', "commands", "kv", nil, "Run the multiple commands instead of the default build command.",
+ "e.g.",
+ " $ xmake watch -c 'xmake -rv'",
+ " $ xmake watch -c 'xmake -vD; xmake run hello'"},
+ {'s', "script", "kv", nil, "Run the given lua script file.",
+ "e.g.",
+ " $ xmake watch -s /tmp/watch.lua"},
+ {'d', "watchdirs", "kv", nil, "Set the given recursive watch directories, the project directories will be watched by default.",
+ "e.g.",
+ " $ xmake watch -d src",
+ " $ xmake watch -d 'src/*" .. path.envsep() .. "tests/**/subdir'"},
+ {'p', "plaindirs", "kv", nil, "Set the given non-recursive watch directories, the project directories will be watched by default.",
+ "e.g.",
+ " $ xmake watch -p src",
+ " $ xmake watch -p 'src/*" .. path.envsep() .. "tests/**/subdir'"},
+ {'r', "run", "k", nil, "Build and run target."},
+ {'t', "target", "kv", nil, "Build the given target.",
+ values = function (complete, opt) return import("private.utils.complete_helper.targets")(complete, opt) end},
+ {'-', "arbitrary", "vs", nil, "Run an arbitrary command.",
+ "e.g.",
+ " $ xmake watch -- echo hello xmake!",
+ " $ xmake watch -- xmake run",
+ " $ xmake watch -- xmake -rv"}
+ }
+ }