summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2022-10-08 00:36:00 +0800
committerruki <[email protected]>2022-10-08 00:36:00 +0800
commitf210bb148f933253f5dc1338d08382a19df6b245 (patch)
tree8b8b8813c2aacade5790c0f3ac630d2efa70dd51
parent664ef028094a250e06521b4a3bdb2a3a5fb567e6 (diff)
improve dlang tests
-rw-r--r--tests/projects/dlang/shared_library/src/interfaces.d13
-rw-r--r--xmake/modules/core/tools/dmd.lua18
2 files changed, 19 insertions, 12 deletions
diff --git a/tests/projects/dlang/shared_library/src/interfaces.d b/tests/projects/dlang/shared_library/src/interfaces.d
index 3386c9124..e9adfa8b0 100644
--- a/tests/projects/dlang/shared_library/src/interfaces.d
+++ b/tests/projects/dlang/shared_library/src/interfaces.d
@@ -1,9 +1,14 @@
-extern(C) int add(int a, int b)
-{
+import core.sys.windows.windows;
+import core.sys.windows.dll;
+
+version(Windows)
+mixin SimpleDllMain;
+
+extern(C) int add(int a, int b) {
return a + b;
}
-extern(C) int sub(int a, int b)
-{
+extern(C) int sub(int a, int b) {
return a - b;
}
+
diff --git a/xmake/modules/core/tools/dmd.lua b/xmake/modules/core/tools/dmd.lua
index c6b84ebc1..899fc2511 100644
--- a/xmake/modules/core/tools/dmd.lua
+++ b/xmake/modules/core/tools/dmd.lua
@@ -133,14 +133,16 @@ end
-- make the rpathdir flag
function nf_rpathdir(self, dir)
- dir = path.translate(dir)
- if self:has_flags("-L-rpath=" .. dir, "ldflags") then
- return {"-L-rpath=" .. (dir:gsub("@[%w_]+", function (name)
- local maps = {["@loader_path"] = "$ORIGIN", ["@executable_path"] = "$ORIGIN"}
- return maps[name]
- end))}
- elseif self:has_flags("-L-rpath -L" .. dir, "ldflags") then
- return {"-L-rpath", "-L" .. (dir:gsub("%$ORIGIN", "@loader_path"))}
+ if not self:is_plat("windows") then
+ dir = path.translate(dir)
+ if self:has_flags("-L-rpath=" .. dir, "ldflags") then
+ return {"-L-rpath=" .. (dir:gsub("@[%w_]+", function (name)
+ local maps = {["@loader_path"] = "$ORIGIN", ["@executable_path"] = "$ORIGIN"}
+ return maps[name]
+ end))}
+ elseif self:has_flags("-L-rpath -L" .. dir, "ldflags") then
+ return {"-L-rpath", "-L" .. (dir:gsub("%$ORIGIN", "@loader_path"))}
+ end
end
end