summaryrefslogtreecommitdiff
path: root/xmake/core/tasks/package.lua
blob: bc63a338bc212e64539e4cb9e6994bb55c51586c (plain)
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
--!The Automatic Cross-platform Build Tool
-- 
-- XMake is free software; you can redistribute it and/or modify
-- it under the terms of the GNU Lesser General Public License as published by
-- the Free Software Foundation; either version 2.1 of the License, or
-- (at your option) any later version.
-- 
-- XMake is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU Lesser General Public License for more details.
-- 
-- You should have received a copy of the GNU Lesser General Public License
-- along with XMake; 
-- If not, see <a href="http://www.gnu.org/licenses/"> http://www.gnu.org/licenses/</a>
-- 
-- Copyright (C) 2015 - 2016, ruki All rights reserved.
--
-- @author      ruki
-- @file        package.lua
--

-- define task
task("package")

    -- set category
    set_task_category("action")

    -- set menu
    set_task_menu({
                    -- usage
                    usage = "xmake package|p [options] [target]"

                    -- description
                ,   description = "Package target."

                    -- xmake p
                ,   shortname = 'p'

                    -- options
                ,   options = 
                    {
                        {'a', "archs",      "kv", nil,          "Package multiple given architectures."                             
                                                              , "    .e.g --archs=\"armv7, arm64\" or -a i386"
                                                              , ""
                                                                -- show the description of all architectures
                                                              , function () 

                                                                   -- import platform
                                                                    import("platform")

                                                                    -- make description
                                                                    local description = {}
                                                                    for i, plat in ipairs(platform.plats()) do
                                                                        description[i] = "    - " .. plat .. ":"
                                                                        for _, arch in ipairs(platform.archs(plat)) do
                                                                            description[i] = description[i] .. " " .. arch
                                                                        end
                                                                    end

                                                                    -- get it
                                                                    return description
                                                                end                                                            }

                        {'o', "outputdir",  "kv", nil,          "Set the output directory."                                     }

                    ,   {}
                    ,   {nil, "target",     "v",  "all",        "Package a given target"                                        }   
                    }
                })