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
|
--!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("project")
set_category("plugin")
on_run("main")
set_menu {
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."}
}
}
|