summaryrefslogtreecommitdiff
path: root/xmake/plugins/show
diff options
context:
space:
mode:
authorruki <[email protected]>2020-05-24 21:10:49 +0800
committerGitHub <[email protected]>2020-05-24 21:10:49 +0800
commitfb2ba113ca1534249b0872002af0f133becd7e51 (patch)
treed5bc9fb1553f622842712b18a7959a0c08a92d63 /xmake/plugins/show
parentdd09a2264181f82a0b6aefb38dce5c92fb3af8fe (diff)
parent5ad2eaee8cd65987359dbdfc5149bdd61b9260fc (diff)
Merge pull request #792 from xmake-io/toolchain
Improve to detect cross-compilation toolchains
Diffstat (limited to 'xmake/plugins/show')
-rw-r--r--xmake/plugins/show/list.lua31
-rw-r--r--xmake/plugins/show/lists/platforms.lua28
-rw-r--r--xmake/plugins/show/lists/targets.lua35
-rw-r--r--xmake/plugins/show/lists/toolchains.lua34
-rw-r--r--xmake/plugins/show/main.lua37
-rw-r--r--xmake/plugins/show/showlist.lua40
-rw-r--r--xmake/plugins/show/xmake.lua49
7 files changed, 254 insertions, 0 deletions
diff --git a/xmake/plugins/show/list.lua b/xmake/plugins/show/list.lua
new file mode 100644
index 000000000..3d44532bb
--- /dev/null
+++ b/xmake/plugins/show/list.lua
@@ -0,0 +1,31 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file list.lua
+--
+
+-- imports
+import("core.base.option")
+
+-- get all list values
+function lists()
+ local values = {}
+ for _, filepath in ipairs(os.files(path.join(os.scriptdir(), "lists", "*.lua"))) do
+ table.insert(values, path.basename(filepath))
+ end
+ return values
+end
diff --git a/xmake/plugins/show/lists/platforms.lua b/xmake/plugins/show/lists/platforms.lua
new file mode 100644
index 000000000..0f9d2507c
--- /dev/null
+++ b/xmake/plugins/show/lists/platforms.lua
@@ -0,0 +1,28 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file platforms.lua
+--
+
+-- imports
+import("core.platform.platform")
+import(".showlist")
+
+-- show all platforms
+function main()
+ showlist(platform.plats())
+end
diff --git a/xmake/plugins/show/lists/targets.lua b/xmake/plugins/show/lists/targets.lua
new file mode 100644
index 000000000..7089fc53f
--- /dev/null
+++ b/xmake/plugins/show/lists/targets.lua
@@ -0,0 +1,35 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file targets.lua
+--
+
+-- imports
+import("core.project.config")
+import("core.project.project")
+import("core.platform.platform")
+import(".showlist")
+
+-- show all platforms
+function main()
+ config.load()
+ local targets = {}
+ for name, _ in pairs(project.targets()) do
+ table.insert(targets, name)
+ end
+ showlist(targets)
+end
diff --git a/xmake/plugins/show/lists/toolchains.lua b/xmake/plugins/show/lists/toolchains.lua
new file mode 100644
index 000000000..911fd801c
--- /dev/null
+++ b/xmake/plugins/show/lists/toolchains.lua
@@ -0,0 +1,34 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file toolchains.lua
+--
+
+-- imports
+import("core.base.option")
+import("core.project.project")
+import("core.platform.platform")
+import(".showlist")
+
+-- show all toolchains
+function main()
+ local names = table.copy(platform.toolchains())
+ for name, _ in pairs(project.toolchains()) do
+ table.insert(names, name)
+ end
+ showlist(names)
+end
diff --git a/xmake/plugins/show/main.lua b/xmake/plugins/show/main.lua
new file mode 100644
index 000000000..816ca30a3
--- /dev/null
+++ b/xmake/plugins/show/main.lua
@@ -0,0 +1,37 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file main.lua
+--
+
+-- imports
+import("core.base.option")
+
+-- show list
+function _show_list(name)
+ return assert(import("lists." .. name, {try = true, anonymous = true}), "unknown list name(%s)", name)()
+end
+
+-- main entry
+function main()
+
+ -- show list?
+ local listname = option.get("list")
+ if listname then
+ return _show_list(listname)
+ end
+end
diff --git a/xmake/plugins/show/showlist.lua b/xmake/plugins/show/showlist.lua
new file mode 100644
index 000000000..7a7e90b54
--- /dev/null
+++ b/xmake/plugins/show/showlist.lua
@@ -0,0 +1,40 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file showlist.lua
+--
+
+-- imports
+import("core.base.option")
+import("core.base.text")
+
+-- show values
+function main(values)
+ local tbl = {align = 'l', sep = " "}
+ local row = {}
+ for _, value in ipairs(values) do
+ table.insert(row, value)
+ if #row > 10 then
+ table.insert(tbl, row)
+ row = {}
+ end
+ end
+ if #row > 0 then
+ table.insert(tbl, row)
+ end
+ print(text.table(tbl))
+end
diff --git a/xmake/plugins/show/xmake.lua b/xmake/plugins/show/xmake.lua
new file mode 100644
index 000000000..180b2140d
--- /dev/null
+++ b/xmake/plugins/show/xmake.lua
@@ -0,0 +1,49 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file xmake.lua
+--
+
+-- define task
+task("show")
+
+ -- set category
+ set_category("plugin")
+
+ -- on run
+ on_run("main")
+
+ -- set menu
+ set_menu {
+ -- usage
+ usage = "xmake show [options] [arguments]"
+
+ -- description
+ , description = "Show the given project information."
+
+ -- options
+ , options =
+ {
+ {'l', "list" , "kv" , nil , "Show the values list of the given name."
+ , values = function (complete, opt)
+ return import("list").lists()
+ end}
+ }
+ }
+
+
+