diff options
| author | ruki <[email protected]> | 2017-02-21 23:32:31 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-02-21 23:32:31 +0800 |
| commit | c3d883feee28fd29cfdde759f7a5252049bc6d1e (patch) | |
| tree | c1b4e3a1768533c346d4b4a6b9ab08fa5324b5ec | |
| parent | fb6033c52082b69041783dc23a8d5b07f9bf007a (diff) | |
modify flags
| -rw-r--r-- | xmake/core/tool/builder.lua | 4 | ||||
| -rw-r--r-- | xmake/core/tool/linker.lua | 9 | ||||
| -rw-r--r-- | xmake/languages/dlang/api.lua | 6 | ||||
| -rwxr-xr-x | xmake/languages/dlang/xmake.lua | 16 | ||||
| -rw-r--r-- | xmake/languages/golang/api.lua | 4 | ||||
| -rwxr-xr-x | xmake/languages/golang/xmake.lua | 10 | ||||
| -rw-r--r-- | xmake/platforms/macosx/load.lua | 39 | ||||
| -rwxr-xr-x | xmake/tools/dmd.lua | 10 | ||||
| -rwxr-xr-x | xmake/tools/go.lua | 2 | ||||
| -rwxr-xr-x | xmake/tools/ldc.lua | 10 |
10 files changed, 48 insertions, 62 deletions
diff --git a/xmake/core/tool/builder.lua b/xmake/core/tool/builder.lua index f1335df68..9fdb76ce1 100644 --- a/xmake/core/tool/builder.lua +++ b/xmake/core/tool/builder.lua @@ -156,8 +156,10 @@ end function builder:_addflags_from_platform(flags) -- add flags + local toolkind = self:get("kind") for _, flagkind in ipairs(self:_flagkinds()) do - table.join2(flags, platform.get(flagkind)) + -- attempt to add special lanugage flags first, .e.g go-ldflags, dc-arflags + table.join2(flags, platform.get(toolkind .. 'flags') or platform.get(flagkind)) end end diff --git a/xmake/core/tool/linker.lua b/xmake/core/tool/linker.lua index d438eb54a..7b9afdbbe 100644 --- a/xmake/core/tool/linker.lua +++ b/xmake/core/tool/linker.lua @@ -45,13 +45,15 @@ function linker:_addflags_from_compiler(flags, sourcekinds) -- make flags local flags_of_compiler = {} + local toolkind = self:get("kind") for _, sourcekind in ipairs(table.wrap(sourcekinds)) do -- load compiler local instance, errors = compiler.load(sourcekind) if instance then for _, flagkind in ipairs(self:_flagkinds()) do - table.join2(flags_of_compiler, instance:get(flagkind)) + -- attempt to add special lanugage flags first, .e.g go-ldflags, dc-arflags + table.join2(flags_of_compiler, instance:get(toolkind .. 'flags') or instance:get(flagkind)) end end end @@ -64,8 +66,11 @@ end function linker:_addflags_from_linker(flags) -- add flags + local toolkind = self:get("kind") for _, flagkind in ipairs(self:_flagkinds()) do - table.join2(flags, self:get(flagkind)) + + -- attempt to add special lanugage flags first, .e.g go-ldflags, dc-arflags + table.join2(flags, self:get(toolkind .. 'flags') or self:get(flagkind)) end end diff --git a/xmake/languages/dlang/api.lua b/xmake/languages/dlang/api.lua index 60441d086..27d13640c 100644 --- a/xmake/languages/dlang/api.lua +++ b/xmake/languages/dlang/api.lua @@ -30,13 +30,13 @@ function apis() { -- target.add_xxx "target.add_links" - , "target.add_goflags" + , "target.add_dcflags" , "target.add_ldflags" , "target.add_arflags" , "target.add_shflags" -- option.add_xxx , "option.add_links" - , "option.add_goflags" + , "option.add_dcflags" , "option.add_ldflags" , "option.add_arflags" , "option.add_shflags" @@ -45,8 +45,10 @@ function apis() { -- target.add_xxx "target.add_linkdirs" + , "target.add_includedirs" -- option.add_xxx , "option.add_linkdirs" + , "option.add_includedirs" } -- ok diff --git a/xmake/languages/dlang/xmake.lua b/xmake/languages/dlang/xmake.lua index e9f86c0d0..938ba5c94 100755 --- a/xmake/languages/dlang/xmake.lua +++ b/xmake/languages/dlang/xmake.lua @@ -29,13 +29,13 @@ language("dlang") set_sourcekinds {dc = ".d"} -- set source file flags - set_sourceflags {dc = "dflags"} + set_sourceflags {dc = "dcflags"} -- set target kinds set_targetkinds {binary = "dc-ld", static = "dc-ar", shared = "dc-sh"} -- set target flags - set_targetflags {binary = "dc-ldflags", static = "dc-arflags", shared = "dc-shflags"} + set_targetflags {binary = "ldflags", static = "arflags", shared = "shflags"} -- on load on_load("load") @@ -99,22 +99,10 @@ language("dlang") { { } , {nil, "dc", "kv", nil, "The Dlang Compiler" } - , {nil, "dflags", "kv", nil, "The Dlang Compiler Flags" } - - , { } , {nil, "dc-ld", "kv", nil, "The Dlang Linker" } - , {nil, "dc-ldflags", "kv", nil, "The Dlang Linker Flags" } - - , { } , {nil, "dc-ar", "kv", nil, "The Dlang Static Library Archiver" } - , {nil, "dc-arflags", "kv", nil, "The Dlang Static Library Archvier Flags" } - - - , { } , {nil, "dc-sh", "kv", nil, "The Dlang Shared Library Linker" } - , {nil, "dc-shflags", "kv", nil, "The Dlang Shared Library Linker Flags" } - -- TODO , { } , {nil, "links", "kv", nil, "The Link Libraries" } , {nil, "linkdirs", "kv", nil, "The Link Search Directories" } diff --git a/xmake/languages/golang/api.lua b/xmake/languages/golang/api.lua index 60441d086..0178f53c6 100644 --- a/xmake/languages/golang/api.lua +++ b/xmake/languages/golang/api.lua @@ -33,20 +33,20 @@ function apis() , "target.add_goflags" , "target.add_ldflags" , "target.add_arflags" - , "target.add_shflags" -- option.add_xxx , "option.add_links" , "option.add_goflags" , "option.add_ldflags" , "option.add_arflags" - , "option.add_shflags" } _g.pathes = { -- target.add_xxx "target.add_linkdirs" + , "target.add_includedirs" -- option.add_xxx , "option.add_linkdirs" + , "option.add_includedirs" } -- ok diff --git a/xmake/languages/golang/xmake.lua b/xmake/languages/golang/xmake.lua index ab2e7566c..2a52e353e 100755 --- a/xmake/languages/golang/xmake.lua +++ b/xmake/languages/golang/xmake.lua @@ -35,7 +35,7 @@ language("golang") set_targetkinds {binary = "go-ld", static = "go-ar"} -- set target flags - set_targetflags {binary = "go-ldflags", static = "go-arflags"} + set_targetflags {binary = "ldflags", static = "arflags"} -- on load on_load("load") @@ -99,17 +99,9 @@ language("golang") { { } , {nil, "go", "kv", nil, "The Golang Compiler" } - , {nil, "goflags", "kv", nil, "The Golang Compiler Flags" } - - , { } , {nil, "go-ld", "kv", nil, "The Golang Linker" } - , {nil, "go-ldflags", "kv", nil, "The Golang Linker Flags" } - - , { } , {nil, "go-ar", "kv", nil, "The Golang Static Library Linker" } - , {nil, "go-arflags", "kv", nil, "The Golang Static Library Linker Flags" } - -- TODO , { } , {nil, "links", "kv", nil, "The Link Libraries" } , {nil, "linkdirs", "kv", nil, "The Link Search Directories" } diff --git a/xmake/platforms/macosx/load.lua b/xmake/platforms/macosx/load.lua index 9f0fb3465..5496ed844 100644 --- a/xmake/platforms/macosx/load.lua +++ b/xmake/platforms/macosx/load.lua @@ -38,37 +38,34 @@ function main() -- init flags for architecture local arch = config.get("arch") local target_minver = config.get("target_minver") - _g.cxflags = { "-arch " .. arch, "-fpascal-strings", "-fmessage-length=0" } - _g.mxflags = { "-arch " .. arch, "-fpascal-strings", "-fmessage-length=0" } - _g.asflags = { "-arch " .. arch } - _g.ldflags = { "-arch " .. arch, "-mmacosx-version-min=" .. target_minver, "-stdlib=libc++", "-lz" } - _g.shflags = { "-arch " .. arch, "-mmacosx-version-min=" .. target_minver, "-stdlib=libc++", "-lz" } - _g.scflags = { format("-target %s-apple-macosx%s", arch, target_minver) } -- init flags for the xcode sdk directory local xcode_dir = config.get("xcode_dir") local xcode_sdkver = config.get("xcode_sdkver") local xcode_sdkdir = xcode_dir .. "/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX" .. xcode_sdkver .. ".sdk" - insert(_g.cxflags, "-isysroot " .. xcode_sdkdir) - insert(_g.asflags, "-isysroot " .. xcode_sdkdir) - insert(_g.mxflags, "-isysroot " .. xcode_sdkdir) - insert(_g.ldflags, "-isysroot " .. xcode_sdkdir) - insert(_g.shflags, "-isysroot " .. xcode_sdkdir) - insert(_g.scflags, "-sdk " .. xcode_sdkdir) - -- init includedirs - -- - -- @note - -- cannot use _g.includedirs because the swift/objc compiler will compile code failed - insert(_g.cxflags, "-I/usr/include") - insert(_g.cxflags, "-I/usr/local/include") + -- init flags for c/c++ + _g.cxflags = { "-arch " .. arch, "-fpascal-strings", "-fmessage-length=0", "-isysroot " .. xcode_sdkdir, "-I/usr/local/include", "-I/usr/include" } + _g.ldflags = { "-arch " .. arch, "-mmacosx-version-min=" .. target_minver, "-isysroot " .. xcode_sdkdir, "-L/usr/local/lib", "-L/usr/lib", "-stdlib=libc++", "-lz" } + _g.shflags = { "-arch " .. arch, "-mmacosx-version-min=" .. target_minver, "-isysroot " .. xcode_sdkdir, "-L/usr/local/lib", "-L/usr/lib", "-stdlib=libc++", "-lz" } - -- init linkdirs - _g.linkdirs = {"/usr/lib", "/usr/local/lib"} + -- init flags for objc/c++ (with _g.ldflags and _g.shflags) + _g.mxflags = { "-arch " .. arch, "-fpascal-strings", "-fmessage-length=0", "-isysroot " .. xcode_sdkdir } - -- save swift link directory for tools + -- init flags for asm (with _g.ldflags and _g.shflags) + _g.asflags = { "-arch " .. arch, "-isysroot " .. xcode_sdkdir } + + -- init flags for swift (with _g.ldflags and _g.shflags) + _g.scflags = { format("-target %s-apple-macosx%s", arch, target_minver) , "-sdk " .. xcode_sdkdir } config.set("__swift_linkdirs", xcode_dir .. "/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx") + -- init flags for golang + _g["go-ldflags"] = {} + + -- init flags for dlang + _g["dc-shflags"] = {} + _g["dc-ldflags"] = {} + -- ok return _g end diff --git a/xmake/tools/dmd.lua b/xmake/tools/dmd.lua index 8329e1a3c..e71a0f51c 100755 --- a/xmake/tools/dmd.lua +++ b/xmake/tools/dmd.lua @@ -38,14 +38,14 @@ function init(shellname, kind) _g.kind = kind -- init arflags - _g["dd-arflags"] = { "-lib" } + _g.arflags = { "-lib" } -- init shflags - _g["dd-shflags"] = { "-shared", "-fPIC" } + _g.shflags = { "-shared", "-fPIC" } - -- init dflags for the kind: shared - _g.shared = {} - _g.shared.dflags = {"-fPIC"} + -- init dcflags for the kind: shared + _g.shared = {} + _g.shared.dcflags = {"-fPIC"} -- init features _g.features = diff --git a/xmake/tools/go.lua b/xmake/tools/go.lua index 578a49f6a..a8966404f 100755 --- a/xmake/tools/go.lua +++ b/xmake/tools/go.lua @@ -38,7 +38,7 @@ function init(shellname, kind) _g.kind = kind -- init arflags - _g["go-arflags"] = { "grc" } + _g.arflags = { "grc" } -- init the file formats _g.formats = {} diff --git a/xmake/tools/ldc.lua b/xmake/tools/ldc.lua index d5e6198cd..213fd7e34 100755 --- a/xmake/tools/ldc.lua +++ b/xmake/tools/ldc.lua @@ -38,14 +38,14 @@ function init(shellname, kind) _g.kind = kind -- init arflags - _g["dd-arflags"] = { "-lib" } + _g.arflags = { "-lib" } -- init shflags - _g["dd-shflags"] = { "-shared", "-fPIC" } + _g.shflags = { "-shared", "-fPIC" } - -- init dflags for the kind: shared - _g.shared = {} - _g.shared.dflags = {"-fPIC"} + -- init dcflags for the kind: shared + _g.shared = {} + _g.shared.dcflags = {"-fPIC"} -- init features _g.features = |
