summaryrefslogtreecommitdiff
path: root/tests/projects
diff options
context:
space:
mode:
authorSaikari <[email protected]>2026-01-27 13:47:50 +0300
committerSaikari <[email protected]>2026-01-27 13:47:50 +0300
commitd0b381b22c7b6e75a607c5a61203b3f7ce7c9bdb (patch)
tree06f9bacdf61c15ffcd8d808f6569174dfc7d8ced /tests/projects
parenta217ee2dc800dc9d3a022003f493c01fdebe745c (diff)
refactor: update runpath function and add support for multiple platforms; add Nim test files for static and shared libraries
Diffstat (limited to 'tests/projects')
-rw-r--r--tests/projects/nim/link_library/maindll.nim4
-rw-r--r--tests/projects/nim/link_library/mainlib.nim4
-rw-r--r--tests/projects/nim/link_library/shared.nim11
-rw-r--r--tests/projects/nim/link_library/static.nim6
-rw-r--r--tests/projects/nim/link_library/xmake.lua20
5 files changed, 45 insertions, 0 deletions
diff --git a/tests/projects/nim/link_library/maindll.nim b/tests/projects/nim/link_library/maindll.nim
new file mode 100644
index 000000000..0cd97df01
--- /dev/null
+++ b/tests/projects/nim/link_library/maindll.nim
@@ -0,0 +1,4 @@
+import shared
+
+echo "Calling shared lib mulTwo(10): ", mulTwo(10)
+echo "Calling shared lib countWords('hello, world, hello'): ", countWords("hello, world, hello")
diff --git a/tests/projects/nim/link_library/mainlib.nim b/tests/projects/nim/link_library/mainlib.nim
new file mode 100644
index 000000000..a99c54b41
--- /dev/null
+++ b/tests/projects/nim/link_library/mainlib.nim
@@ -0,0 +1,4 @@
+import static
+
+echo "Calling static lib addTwo(10): ", addTwo(10)
+echo "Calling static lib getAlphabet(): ", getAlphabet()
diff --git a/tests/projects/nim/link_library/shared.nim b/tests/projects/nim/link_library/shared.nim
new file mode 100644
index 000000000..60e02b15e
--- /dev/null
+++ b/tests/projects/nim/link_library/shared.nim
@@ -0,0 +1,11 @@
+proc mulTwo*(x: int): int =
+ return x * 2
+
+import tables, strutils
+
+proc countWords*(input: string): string =
+ var wordFrequencies = initCountTable[string]()
+ for word in input.split(", "):
+ wordFrequencies.inc(word)
+ return "The most frequent word is '" & $wordFrequencies.largest & "'"
+
diff --git a/tests/projects/nim/link_library/static.nim b/tests/projects/nim/link_library/static.nim
new file mode 100644
index 000000000..bd8847543
--- /dev/null
+++ b/tests/projects/nim/link_library/static.nim
@@ -0,0 +1,6 @@
+proc addTwo*(x: int): int =
+ return x + 2
+
+proc getAlphabet*(): string =
+ for letter in 'a'..'z':
+ result.add(letter)
diff --git a/tests/projects/nim/link_library/xmake.lua b/tests/projects/nim/link_library/xmake.lua
new file mode 100644
index 000000000..05512a7cc
--- /dev/null
+++ b/tests/projects/nim/link_library/xmake.lua
@@ -0,0 +1,20 @@
+set_project("link_libs")
+add_rules("mode.debug", "mode.release")
+
+target("executablestatic")
+ set_kind("binary")
+ add_files("mainlib.nim")
+ add_deps("staticlib")
+
+target("executableshared")
+ set_kind("binary")
+ add_files("maindll.nim")
+ add_deps("sharedlib")
+
+target("staticlib")
+ set_kind("static")
+ add_files("static.nim")
+
+target("sharedlib")
+ set_kind("shared")
+ add_files("shared.nim")