diff options
| author | ruki <[email protected]> | 2017-11-21 22:41:46 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-11-21 10:10:39 +0800 |
| commit | 5b98e5ebcabfdb83a4ab0d333210839d056a98fb (patch) | |
| tree | 219b4668f147b58e52d9a47fec29c7b73f8b5355 | |
| parent | 3c7a0f6690678337f9e86b777e35094ba34a34ad (diff) | |
force to set flags without auto checking
| -rw-r--r-- | CHANGELOG.md | 4 | ||||
| -rw-r--r-- | xmake/core/tool/builder.lua | 24 |
2 files changed, 27 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 610d6b894..630fb7382 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ * [#151](https://github.com/tboox/xmake/issues/151): Improve to build the share library for the mingw platform * Improve to generate makefile plugin * Improve the checking errors tips +* Improve `add_cxflags` .., force to set flags without auto checking: `add_cxflags("-DTEST", {force = true})` +* Improve `add_files`, add force block to force to set flags without auto checking: `add_files("src/*.c", {force = {cxflags = "-DTEST"}})` ### Bugs fixed @@ -424,6 +426,8 @@ * [#151](https://github.com/tboox/xmake/issues/151): 改进mingw平台下动态库生成 * 改进生成makefile插件 * 改进检测错误提示 +* 改进`add_cxflags`等flags api的设置,添加force参数,来禁用自动检测和映射,强制设置选项:`add_cxflags("-DTEST", {force = true})` +* 改进`add_files`的flags设置,添加force域,用于设置不带自动检测和映射的原始flags:`add_files("src/*.c", {force = {cxflags = "-DTEST"}})` ## Bugs修复 diff --git a/xmake/core/tool/builder.lua b/xmake/core/tool/builder.lua index 01e779fda..5795cadd4 100644 --- a/xmake/core/tool/builder.lua +++ b/xmake/core/tool/builder.lua @@ -230,7 +230,21 @@ function builder:_addflags_from_target(flags, target) -- add the target flags for _, flagkind in ipairs(self:_flagkinds()) do - table.join2(targetflags, self:_mapflags(target:get(flagkind))) + + -- get flag and extra info + local flag = target:get(flagkind) + local flagextra = target:get("__extra_" .. flagkind) + local force = false + if flagextra then + force = (flagextra[flag] or {}).force + end + + -- add original or auto mapping flag? + if force then + table.join2(targetflags, flag) + else + table.join2(targetflags, self:_mapflags(flag)) + end end -- cache it @@ -246,7 +260,15 @@ function builder:_addflags_from_argument(flags, target, args) -- add flags from the flag kinds (cxflags, ..) for _, flagkind in ipairs(self:_flagkinds()) do + + -- add auto mapping flags table.join2(flags, self:_mapflags(args[flagkind])) + + -- add original flags + local original_flags = (args.force or {})[flagkind] + if original_flags then + table.join2(flags, original_flags) + end end -- add flags (named) from the language |
