diff options
| author | ruki <[email protected]> | 2020-05-31 10:52:15 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-05-31 10:52:15 +0800 |
| commit | bd6bda1b207af221c574d4f85639cdf46f01710f (patch) | |
| tree | 946ab2f53c613de25cbc3a350d736ec418f0f41d | |
| parent | 6d67b96bf3977f9f9376e03195933638e75f92ba (diff) | |
add mode.releasedbg and mode.minsizerel rules
| -rw-r--r-- | xmake/rules/mode/xmake.lua | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/xmake/rules/mode/xmake.lua b/xmake/rules/mode/xmake.lua index e1937dd97..09303dab6 100644 --- a/xmake/rules/mode/xmake.lua +++ b/xmake/rules/mode/xmake.lua @@ -65,6 +65,58 @@ rule("mode.release") end end) +-- define rule: release with debug symbols mode +rule("mode.releasedbg") + after_load(function (target) + + -- is releasedbg mode now? xmake f -m releasedbg + if is_mode("releasedbg") then + + -- set the symbols visibility: debug + if not target:get("symbols") then + target:set("symbols", "debug") + end + + -- enable optimization + if not target:get("optimize") then + if is_plat("android", "iphoneos") then + target:set("optimize", "smallest") + else + target:set("optimize", "fastest") + end + end + + -- strip all symbols, but it will generate debug symbol file because debug/symbols is setted + if not target:get("strip") then + target:set("strip", "all") + end + end + end) + +-- define rule: release with minsize mode +rule("mode.minsizerel") + after_load(function (target) + + -- is minsizerel mode now? xmake f -m minsizerel + if is_mode("minsizerel") then + + -- set the symbols visibility: hidden + if not target:get("symbols") then + target:set("symbols", "hidden") + end + + -- enable optimization + if not target:get("optimize") then + target:set("optimize", "smallest") + end + + -- strip all symbols + if not target:get("strip") then + target:set("strip", "all") + end + end + end) + -- define rule: profile mode rule("mode.profile") after_load(function (target) |
