summaryrefslogtreecommitdiff
path: root/xmake/scripts
diff options
context:
space:
mode:
authorruki <[email protected]>2015-06-02 11:38:44 +0800
committerruki <[email protected]>2015-06-02 11:38:44 +0800
commite1498eebcd687db0ccd8786906746642a173c01a (patch)
treed93258273e977dcd7a878cdd7ab29579c0473ae2 /xmake/scripts
parent4b85064e874d050de835f4a4a0b2158f1405a6aa (diff)
impl build
Diffstat (limited to 'xmake/scripts')
-rw-r--r--xmake/scripts/base/makefile.lua28
-rw-r--r--xmake/scripts/linker/_clang.lua2
-rw-r--r--xmake/scripts/platform/android/_android.lua2
-rw-r--r--xmake/scripts/platform/iphoneos/_iphoneos.lua2
-rw-r--r--xmake/scripts/platform/iphonesimulator/_iphonesimulator.lua2
-rw-r--r--xmake/scripts/platform/linux/_linux.lua2
-rw-r--r--xmake/scripts/platform/macosx/_macosx.lua2
7 files changed, 22 insertions, 18 deletions
diff --git a/xmake/scripts/base/makefile.lua b/xmake/scripts/base/makefile.lua
index 1a3bbbbe6..b39da2f86 100644
--- a/xmake/scripts/base/makefile.lua
+++ b/xmake/scripts/base/makefile.lua
@@ -77,22 +77,26 @@ function makefile._srcfiles(target)
end
-- get object files for the given source files
-function makefile._objfiles(name, srcfiles)
+function makefile._objfiles(target, name, srcfiles)
-- check
- assert(name and srcfiles)
+ assert(target and name and srcfiles)
-- the build directory
local buildir = config.get("buildir")
assert(buildir)
+ -- the object directory
+ local objectdir = target.objectdir or buildir .. "/.objs"
+ assert(objectdir and type(objectdir) == "string")
+
-- make object files
local i = 1
local objfiles = {}
for _, srcfile in ipairs(srcfiles) do
-- make object file
- local objfile = string.format("%s/%s/%s/%s", buildir, name, path.directory(srcfile), platform.filename(path.basename(srcfile), "object"))
+ local objfile = string.format("%s/%s/%s/%s", objectdir, name, path.directory(srcfile), platform.filename(path.basename(srcfile), "object"))
-- save it
objfiles[i] = path.translate(objfile)
@@ -105,21 +109,21 @@ function makefile._objfiles(name, srcfiles)
end
-- get target file for the given target name and kind
-function makefile._targetfile(name, kind)
+function makefile._targetfile(name, target)
-- check
- assert(name and kind)
+ assert(name and target and target.kind)
- -- the build directory
- local buildir = config.get("buildir")
- assert(buildir)
+ -- the target directory
+ local targetdir = target.targetdir or config.get("buildir")
+ assert(targetdir and type(targetdir) == "string")
-- the target file name
- local filename = platform.filename(name, kind)
+ local filename = platform.filename(name, target.kind)
assert(filename)
-- make the target file path
- return buildir .. "/" .. name .. "/" .. filename
+ return targetdir .. "/" .. filename
end
-- make the object to the makefile
@@ -185,11 +189,11 @@ function makefile._make_target(file, name, target)
-- get source and object files
local srcfiles = makefile._srcfiles(target)
- local objfiles = makefile._objfiles(name, srcfiles)
+ local objfiles = makefile._objfiles(target, name, srcfiles)
assert(srcfiles and objfiles)
-- get target file
- local targetfile = makefile._targetfile(name, target.kind)
+ local targetfile = makefile._targetfile(name, target)
assert(targetfile)
-- the linker
diff --git a/xmake/scripts/linker/_clang.lua b/xmake/scripts/linker/_clang.lua
index c5d778e04..7cb0ed859 100644
--- a/xmake/scripts/linker/_clang.lua
+++ b/xmake/scripts/linker/_clang.lua
@@ -54,7 +54,7 @@ end
function _clang._make(configs, objfiles, targetfile, flags)
-- make it
- return string.format("%s %s -o%s %s", configs.name, flags, objfiles, targetfile)
+ return string.format("%s %s -o%s %s", configs.name, flags, targetfile, objfiles)
end
-- make the link flag
diff --git a/xmake/scripts/platform/android/_android.lua b/xmake/scripts/platform/android/_android.lua
index 112d464dd..49dd8ce0e 100644
--- a/xmake/scripts/platform/android/_android.lua
+++ b/xmake/scripts/platform/android/_android.lua
@@ -42,7 +42,7 @@ function _android.make(configs)
configs.format = {}
configs.format.static = {"lib", ".a"}
configs.format.object = {"", ".o"}
- configs.format.shared = {"", ".so"}
+ configs.format.shared = {"lib", ".so"}
end
diff --git a/xmake/scripts/platform/iphoneos/_iphoneos.lua b/xmake/scripts/platform/iphoneos/_iphoneos.lua
index 5fbea1558..9242da6da 100644
--- a/xmake/scripts/platform/iphoneos/_iphoneos.lua
+++ b/xmake/scripts/platform/iphoneos/_iphoneos.lua
@@ -42,7 +42,7 @@ function _iphoneos.make(configs)
configs.format = {}
configs.format.static = {"lib", ".a"}
configs.format.object = {"", ".o"}
- configs.format.shared = {"", ".dylib"}
+ configs.format.shared = {"lib", ".dylib"}
-- init xcode sdk directory
configs.xcode_sdkdir = config.get("xcode_dir") .. "/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS" .. config.get("xcode_sdkver") .. ".sdk"
diff --git a/xmake/scripts/platform/iphonesimulator/_iphonesimulator.lua b/xmake/scripts/platform/iphonesimulator/_iphonesimulator.lua
index 5028f8bbb..f2d01244a 100644
--- a/xmake/scripts/platform/iphonesimulator/_iphonesimulator.lua
+++ b/xmake/scripts/platform/iphonesimulator/_iphonesimulator.lua
@@ -42,7 +42,7 @@ function _iphonesimulator.make(configs)
configs.format = {}
configs.format.static = {"lib", ".a"}
configs.format.object = {"", ".o"}
- configs.format.shared = {"", ".dylib"}
+ configs.format.shared = {"lib", ".dylib"}
-- init xcode sdk directory
configs.xcode_sdkdir = config.get("xcode_dir") .. "/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator" .. config.get("xcode_sdkver") .. ".sdk"
diff --git a/xmake/scripts/platform/linux/_linux.lua b/xmake/scripts/platform/linux/_linux.lua
index 391a4d2cd..cd1fdd139 100644
--- a/xmake/scripts/platform/linux/_linux.lua
+++ b/xmake/scripts/platform/linux/_linux.lua
@@ -42,7 +42,7 @@ function _linux.make(configs)
configs.format = {}
configs.format.static = {"lib", ".a"}
configs.format.object = {"", ".o"}
- configs.format.shared = {"", ".so"}
+ configs.format.shared = {"lib", ".so"}
end
-- get the option menu for action: xmake config or global
diff --git a/xmake/scripts/platform/macosx/_macosx.lua b/xmake/scripts/platform/macosx/_macosx.lua
index 532a540df..6ab67da0f 100644
--- a/xmake/scripts/platform/macosx/_macosx.lua
+++ b/xmake/scripts/platform/macosx/_macosx.lua
@@ -42,7 +42,7 @@ function _macosx.make(configs)
configs.format = {}
configs.format.static = {"lib", ".a"}
configs.format.object = {"", ".o"}
- configs.format.shared = {"", ".dylib"}
+ configs.format.shared = {"lib", ".dylib"}
-- init the compiler
configs.compiler = {}