diff options
| author | ruki <[email protected]> | 2021-10-21 22:57:16 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-10-21 22:57:16 +0800 |
| commit | f0d5c879cadf8809566aa7e607c55252f6e471d5 (patch) | |
| tree | 4b3726b5780631655be48cc75c4de7c9a3fef62a /tests | |
| parent | c03c36da556816137e18916dcca4517a8a10c6b7 (diff) | |
support static and shared library for nim
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/projects/nim/shared_library/src/foo.nim | 5 | ||||
| -rw-r--r-- | tests/projects/nim/shared_library/src/main.nim | 4 | ||||
| -rw-r--r-- | tests/projects/nim/shared_library/xmake.lua | 12 | ||||
| -rw-r--r-- | tests/projects/nim/static_library/src/bar.nim | 5 | ||||
| -rw-r--r-- | tests/projects/nim/static_library/src/foo.nim | 8 | ||||
| -rw-r--r-- | tests/projects/nim/static_library/src/main.nim | 5 | ||||
| -rw-r--r-- | tests/projects/nim/static_library/xmake.lua | 12 |
7 files changed, 51 insertions, 0 deletions
diff --git a/tests/projects/nim/shared_library/src/foo.nim b/tests/projects/nim/shared_library/src/foo.nim new file mode 100644 index 000000000..4a3e920ff --- /dev/null +++ b/tests/projects/nim/shared_library/src/foo.nim @@ -0,0 +1,5 @@ +proc fibonacci(n: int): int {.cdecl, exportc, dynlib.} = + if n < 2: + result = n + else: + result = fibonacci(n - 1) + (n - 2).fibonacci diff --git a/tests/projects/nim/shared_library/src/main.nim b/tests/projects/nim/shared_library/src/main.nim new file mode 100644 index 000000000..c473c5401 --- /dev/null +++ b/tests/projects/nim/shared_library/src/main.nim @@ -0,0 +1,4 @@ +proc fibonacci(n: int): int {.cdecl, importc} + +echo fibonacci(2) + diff --git a/tests/projects/nim/shared_library/xmake.lua b/tests/projects/nim/shared_library/xmake.lua new file mode 100644 index 000000000..b560961d6 --- /dev/null +++ b/tests/projects/nim/shared_library/xmake.lua @@ -0,0 +1,12 @@ +add_rules("mode.debug", "mode.release") + +target("foo") + set_kind("shared") + add_files("src/foo.nim") + +target("test") + set_kind("binary") + add_deps("foo") + add_files("src/main.nim") + + diff --git a/tests/projects/nim/static_library/src/bar.nim b/tests/projects/nim/static_library/src/bar.nim new file mode 100644 index 000000000..911a3cc85 --- /dev/null +++ b/tests/projects/nim/static_library/src/bar.nim @@ -0,0 +1,5 @@ +proc bar(n: int): int {.cdecl, exportc} = + if n < 2: + result = n + else: + result = bar(n - 1) + (n - 2).bar diff --git a/tests/projects/nim/static_library/src/foo.nim b/tests/projects/nim/static_library/src/foo.nim new file mode 100644 index 000000000..ba0fcad5b --- /dev/null +++ b/tests/projects/nim/static_library/src/foo.nim @@ -0,0 +1,8 @@ +import bar + +proc foo(n: int): int {.cdecl, exportc} = + if n < 2: + result = n + else: + result = foo(n - 1) + (n - 2).foo + diff --git a/tests/projects/nim/static_library/src/main.nim b/tests/projects/nim/static_library/src/main.nim new file mode 100644 index 000000000..a91ba0614 --- /dev/null +++ b/tests/projects/nim/static_library/src/main.nim @@ -0,0 +1,5 @@ +proc foo(n: int): int {.cdecl, importc} +proc bar(n: int): int {.cdecl, importc} + +echo foo(2) +echo bar(2) diff --git a/tests/projects/nim/static_library/xmake.lua b/tests/projects/nim/static_library/xmake.lua new file mode 100644 index 000000000..7ef38314a --- /dev/null +++ b/tests/projects/nim/static_library/xmake.lua @@ -0,0 +1,12 @@ +add_rules("mode.debug", "mode.release") + +target("foo") + set_kind("static") + add_files("src/foo.nim") + +target("test") + set_kind("binary") + add_deps("foo") + add_files("src/main.nim") + + |
