diff options
| author | ruki <[email protected]> | 2015-06-03 13:47:32 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2015-06-03 13:47:32 +0800 |
| commit | 6ba8d0eb8d09d5170242837ef091c04ab4da6047 (patch) | |
| tree | 33ad58bbaccaec6d0b3a0035fd92602070454ba2 /xmake/scripts/platform | |
| parent | 8f5a561006bb5b0952278075deb908633317c987 (diff) | |
add string split
Diffstat (limited to 'xmake/scripts/platform')
| -rw-r--r-- | xmake/scripts/platform/platform.lua | 27 | ||||
| -rw-r--r-- | xmake/scripts/platform/windows/_maker.lua | 54 | ||||
| -rw-r--r-- | xmake/scripts/platform/windows/_windows.lua | 3 |
3 files changed, 84 insertions, 0 deletions
diff --git a/xmake/scripts/platform/platform.lua b/xmake/scripts/platform/platform.lua index 4361ea42a..e968137fd 100644 --- a/xmake/scripts/platform/platform.lua +++ b/xmake/scripts/platform/platform.lua @@ -289,5 +289,32 @@ function platform.probe(configs, is_global) end end +-- build target from the given makefile +function platform.build(mkfile, target) + + -- attempt to done the platform special make first + local p = platform._load(config.get("plat")) + if p and p._MAKER and p._MAKER.done then + return p._MAKER.done(mkfile, target) + end + + -- make command + local cmd = nil + if mkfile and os.isfile(mkfile) then + cmd = string.format("make -f %s %s", mkfile, target or "") + else + cmd = string.format("make %s", target or "") + end + + -- done + local ok = os.execute(cmd) + if ok ~= 0 then + return false + end + + -- ok + return true +end + -- return module: platform return platform diff --git a/xmake/scripts/platform/windows/_maker.lua b/xmake/scripts/platform/windows/_maker.lua new file mode 100644 index 000000000..9b459ad45 --- /dev/null +++ b/xmake/scripts/platform/windows/_maker.lua @@ -0,0 +1,54 @@ +--!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) 2009 - 2015, ruki All rights reserved. +-- +-- @author ruki +-- @file _maker.lua +-- + +-- load modules +local os = require("base/os") +local path = require("base/path") +local utils = require("base/utils") +local string = require("base/string") + +-- define module: _maker +local _maker = _maker or {} + +-- build the target from the given makefile +function _maker.done(mkfile, target) + + -- make command + local cmd = nil + if mkfile and os.isfile(mkfile) then + cmd = string.format("nmake /f %s %s", mkfile, target or "") + else + cmd = string.format("nmake %s", target or "") + end + + -- done + local ok = os.execute(cmd) + if ok ~= 0 then + return false + end + + -- ok + return true +end + +-- return module: _maker +return _maker diff --git a/xmake/scripts/platform/windows/_windows.lua b/xmake/scripts/platform/windows/_windows.lua index 1e13e134b..012b0a0ff 100644 --- a/xmake/scripts/platform/windows/_windows.lua +++ b/xmake/scripts/platform/windows/_windows.lua @@ -32,6 +32,9 @@ _windows._HOST = "windows" -- init architectures _windows._ARCHS = {"x86", "x64"} +-- init maker +_windows._MAKER = require("platform/windows/_maker") + -- init prober _windows._PROBER = require("platform/windows/_prober") |
