summary refs log tree commit diff stats
path: root/compiler/pragmas.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-04-08 16:38:49 +0200
committerAraq <rumpf_a@web.de>2013-04-08 16:38:49 +0200
commit5893a9195c10181392262bf1a541737c2e2a142f (patch)
tree73f8fd3d0766eaeb839b642c210fcfa4a23a39dd /compiler/pragmas.nim
parentc4edcf3ea2fef970c3528f74cf3abb988a69e0e2 (diff)
downloadNim-5893a9195c10181392262bf1a541737c2e2a142f.tar.gz
implemented --dynlibOverride option for static linking of 'dynlib'
Diffstat (limited to 'compiler/pragmas.nim')
-rw-r--r--compiler/pragmas.nim7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim
index 8f06beecd..ba761739a 100644
--- a/compiler/pragmas.nim
+++ b/compiler/pragmas.nim
@@ -202,6 +202,8 @@ proc getLib(c: PContext, kind: TLibKind, path: PNode): PLib =
   result = newLib(kind)
   result.path = path
   Append(c.libs, result)
+  if path.kind in {nkStrLit..nkTripleStrLit}:
+    result.isOverriden = options.isDynLibOverride(path.strVal)
 
 proc expectDynlibNode(c: PContext, n: PNode): PNode =
   if n.kind != nkExprColonExpr:
@@ -225,8 +227,9 @@ proc processDynLib(c: PContext, n: PNode, sym: PSym) =
   else:
     if n.kind == nkExprColonExpr:
       var lib = getLib(c, libDynamic, expectDynlibNode(c, n))
-      addToLib(lib, sym)
-      incl(sym.loc.flags, lfDynamicLib)
+      if not lib.isOverriden:
+        addToLib(lib, sym)
+        incl(sym.loc.flags, lfDynamicLib)
     else:
       incl(sym.loc.flags, lfExportLib)
     # since we'll be loading the dynlib symbols dynamically, we must use