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).
|
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
|
## Repository information
|
||||||
|
|
||||||
This repository has two main branches: ``master`` and ``stable``.
|
This repository has two main branches: ``master`` and ``stable``.
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,20 @@ proc setupVM(module: PSym; scriptName: string, flags: Flags): PEvalContext =
|
||||||
else:
|
else:
|
||||||
flags[key] = @[value]
|
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):
|
when declared(ModuleGraph):
|
||||||
var graph: ModuleGraph
|
var graph: ModuleGraph
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue