mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-21 23:05:27 +00:00
@@ -567,7 +567,12 @@ proc loadDynamicLib(m: BModule, lib: PLib) =
|
||||
var p = newProc(nil, m)
|
||||
p.options = p.options - {optStackTrace, optEndb}
|
||||
var dest: TLoc
|
||||
initLocExpr(p, lib.path, dest)
|
||||
initLoc(dest, locTemp, lib.path, OnStack)
|
||||
dest.r = getTempName(m)
|
||||
appcg(m, m.s[cfsDynLibInit],"$1 $2;$n",
|
||||
[getTypeDesc(m, lib.path.typ), rdLoc(dest)])
|
||||
expr(p, lib.path, dest)
|
||||
|
||||
add(m.s[cfsVars], p.s(cpsLocals))
|
||||
add(m.s[cfsDynLibInit], p.s(cpsInit))
|
||||
add(m.s[cfsDynLibInit], p.s(cpsStmts))
|
||||
|
||||
10
tests/cpp/amodule.nim
Normal file
10
tests/cpp/amodule.nim
Normal file
@@ -0,0 +1,10 @@
|
||||
import os
|
||||
|
||||
proc findlib: string =
|
||||
let path = getEnv("MYLIB_DOES_NOT_EXIST_PATH")
|
||||
if path.len > 0 and dirExists(path):
|
||||
path / "alib_does_not_matter.dll"
|
||||
else:
|
||||
"alib_does_not_matter.dll"
|
||||
|
||||
proc imported_func*(a: cint): cstring {.importc, dynlib: findlib().}
|
||||
@@ -5,3 +5,19 @@ discard """
|
||||
|
||||
proc foo(): cstring {.importcpp: "", dynlib: "".}
|
||||
echo foo()
|
||||
|
||||
|
||||
## bug #9222
|
||||
import os
|
||||
import amodule
|
||||
proc findlib2: string =
|
||||
let path = getEnv("MYLIB2_DOES_NOT_EXIST_PATH")
|
||||
if path.len > 0 and dirExists(path):
|
||||
path / "alib_does_not_matter.dll"
|
||||
else:
|
||||
"alib_does_not_matter.dll"
|
||||
|
||||
proc imported_func2*(a: cint): cstring {.importc, dynlib: findlib2().}
|
||||
|
||||
echo imported_func(1)
|
||||
echo imported_func2(1)
|
||||
Reference in New Issue
Block a user