parent
73e6b229aa
commit
036c52f0b6
3 changed files with 32 additions and 1 deletions
|
|
@ -567,7 +567,12 @@ proc loadDynamicLib(m: BModule, lib: PLib) =
|
||||||
var p = newProc(nil, m)
|
var p = newProc(nil, m)
|
||||||
p.options = p.options - {optStackTrace, optEndb}
|
p.options = p.options - {optStackTrace, optEndb}
|
||||||
var dest: TLoc
|
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[cfsVars], p.s(cpsLocals))
|
||||||
add(m.s[cfsDynLibInit], p.s(cpsInit))
|
add(m.s[cfsDynLibInit], p.s(cpsInit))
|
||||||
add(m.s[cfsDynLibInit], p.s(cpsStmts))
|
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: "".}
|
proc foo(): cstring {.importcpp: "", dynlib: "".}
|
||||||
echo foo()
|
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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue