summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaikari <[email protected]>2026-01-27 21:41:03 +0300
committerSaikari <[email protected]>2026-01-27 21:41:03 +0300
commit02f221f1877719da333190d203b2079b6d58513f (patch)
tree7c218e7d5ec7694035444626e8b5959d861319a7
parentdde6e30a0cd7f7476778cfe8daf224a15ff25b70 (diff)
feat: add architecture-specific flags for x86, x86_64, arm, and arm64
-rw-r--r--xmake/modules/core/tools/nim.lua31
1 files changed, 31 insertions, 0 deletions
diff --git a/xmake/modules/core/tools/nim.lua b/xmake/modules/core/tools/nim.lua
index 6d89479ac..5f1c509ce 100644
--- a/xmake/modules/core/tools/nim.lua
+++ b/xmake/modules/core/tools/nim.lua
@@ -34,6 +34,37 @@ function init(self)
-- init shflags
self:set("ncshflags", "--app:lib", "--noMain")
+
+ -- init arch flags
+ local arch = self:arch()
+ if arch then
+ if arch == "x86" or arch == "i386" then
+ self:add("ncflags", "--cpu:i386", "--define:bit32")
+ self:add("ncshflags", "--cpu:i386", "--define:bit32")
+ self:add("ncarflags", "--cpu:i386", "--define:bit32")
+ self:add("ldflags", "--cpu:i386", "--define:bit32")
+ if self:is_plat("linux", "macosx", "bsd", "mingw") then
+ self:add("ncflags", "--passC:\"-m32\"", "--passL:\"-m32\"")
+ self:add("ncshflags", "--passC:\"-m32\"", "--passL:\"-m32\"")
+ self:add("ldflags", "--passL:\"-m32\"")
+ end
+ elseif arch == "x86_64" then
+ self:add("ncflags", "--cpu:amd64", "--define:bit64")
+ self:add("ncshflags", "--cpu:amd64", "--define:bit64")
+ self:add("ncarflags", "--cpu:amd64", "--define:bit64")
+ self:add("ldflags", "--cpu:amd64", "--define:bit64")
+ elseif arch == "arm64" then
+ self:add("ncflags", "--cpu:arm64", "--define:bit64")
+ self:add("ncshflags", "--cpu:arm64", "--define:bit64")
+ self:add("ncarflags", "--cpu:arm64", "--define:bit64")
+ self:add("ldflags", "--cpu:arm64", "--define:bit64")
+ elseif arch:startswith("arm") then
+ self:add("ncflags", "--cpu:arm", "--define:bit32")
+ self:add("ncshflags", "--cpu:arm", "--define:bit32")
+ self:add("ncarflags", "--cpu:arm", "--define:bit32")
+ self:add("ldflags", "--cpu:arm", "--define:bit32")
+ end
+ end
end
-- make the warning flag