Improve getNimPrefixDir to support choosenim and env var.
See comment for more information. This commit also adds support for an environment variable so that users have a workaround when Nimble cannot find the Nim stdlib.
This commit is contained in:
parent
30d6aaf966
commit
4a71ccbbd4
2 changed files with 21 additions and 1 deletions
|
|
@ -773,6 +773,13 @@ installation.
|
|||
|
||||
Make sure that you are running at least version 0.16.0 of Nim (or the latest nightly).
|
||||
|
||||
* ``Error: cannot open '/home/user/.nimble/lib/system.nim'.``
|
||||
|
||||
Nimble cannot find the Nim standard library. This is considered a bug so
|
||||
please report it. As a workaround you can set the ``NIM_LIB_PREFIX`` environment
|
||||
variable to the directory where ``lib/system.nim`` (and other standard library
|
||||
files) are found.
|
||||
|
||||
## Repository information
|
||||
|
||||
This repository has two main branches: ``master`` and ``stable``.
|
||||
|
|
|
|||
|
|
@ -188,7 +188,20 @@ proc setupVM(module: PSym; scriptName: string, flags: Flags): PEvalContext =
|
|||
else:
|
||||
flags[key] = @[value]
|
||||
|
||||
proc getNimPrefixDir(): string = splitPath(findExe("nim")).head.parentDir
|
||||
proc getNimPrefixDir(): string =
|
||||
let env = getEnv("NIM_LIB_PREFIX")
|
||||
if env != "":
|
||||
return env
|
||||
|
||||
result = splitPath(findExe("nim")).head.parentDir
|
||||
# The above heuristic doesn't work for 'choosenim' proxies. Thankfully in
|
||||
# that case the `nimble` binary is beside the `nim` binary so things should
|
||||
# just work.
|
||||
if not dirExists(result / "lib"):
|
||||
# By specifying an empty string we instruct the Nim compiler to use
|
||||
# getAppDir().head as the prefix dir. See compiler/options module for
|
||||
# the code responsible for this.
|
||||
result = ""
|
||||
|
||||
when declared(ModuleGraph):
|
||||
var graph: ModuleGraph
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue