From c83e4390d863ab1f2d0ad4ab5417352f1ffd8f04 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Sat, 7 Nov 2015 15:48:14 +0000 Subject: [PATCH] Modified setDefaultLibpath to search using findExe"nim". This is so that Nimble (and other tools) which use the compiler modules for nimscript support or other purposes can find $lib. --- compiler/options.nim | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compiler/options.nim b/compiler/options.nim index f63757ac02..9b587fcdb5 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -203,6 +203,17 @@ proc setDefaultLibpath*() = else: libpath = joinPath(prefix, "lib") else: libpath = joinPath(prefix, "lib") + # Special rule to support other tools (nimble) which import the compiler + # modules and make use of them. + let realNimPath = # Make sure we expand the symlink + if symlinkExists(findExe("nim")): expandSymlink(findExe("nim")) + else: findExe("nim") + # Find out if $nim/../../lib/system.nim exists. + let parentNimLibPath = realNimPath.parentDir().parentDir() / "lib" + if not fileExists(libpath / "system.nim") and + fileExists(parentNimlibPath / "system.nim"): + libpath = parentNimLibPath + proc canonicalizePath*(path: string): string = when not FileSystemCaseSensitive: result = path.expandFilename.toLower else: result = path.expandFilename