summaryrefslogtreecommitdiff
path: root/xmake/modules/core/tools/dmd.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2022-06-15 00:08:37 +0800
committerruki <[email protected]>2022-06-14 20:12:57 +0800
commitdb62122ed2aab5ea823ea80617e673bfedfeb28b (patch)
tree8898612c00662fe41573fc2919a18b38fc9ddb6b /xmake/modules/core/tools/dmd.lua
parentc96e777d90a4cec5941896680191f50e47e0d247 (diff)
improve optimize for emcc
Diffstat (limited to 'xmake/modules/core/tools/dmd.lua')
-rw-r--r--xmake/modules/core/tools/dmd.lua23
1 files changed, 14 insertions, 9 deletions
diff --git a/xmake/modules/core/tools/dmd.lua b/xmake/modules/core/tools/dmd.lua
index 3f29da28f..e3785c680 100644
--- a/xmake/modules/core/tools/dmd.lua
+++ b/xmake/modules/core/tools/dmd.lua
@@ -22,6 +22,7 @@
import("core.base.option")
import("core.project.config")
import("core.project.project")
+import("core.language.language")
-- init it
function init(self)
@@ -38,15 +39,19 @@ end
-- make the optimize flag
function nf_optimize(self, level)
- local maps =
- {
- fast = "-O"
- , faster = "-O -release"
- , fastest = "-O -release -inline -boundscheck=off"
- , smallest = "-O -release -boundscheck=off"
- , aggressive = "-O -release -inline -boundscheck=off"
- }
- return maps[level]
+ -- only for source kind
+ local kind = self:kind()
+ if language.sourcekinds()[kind] then
+ local maps =
+ {
+ fast = "-O"
+ , faster = "-O -release"
+ , fastest = "-O -release -inline -boundscheck=off"
+ , smallest = "-O -release -boundscheck=off"
+ , aggressive = "-O -release -inline -boundscheck=off"
+ }
+ return maps[level]
+ end
end
-- make the strip flag