aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch')
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch b/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
new file mode 100644
index 00000000000..61e05b791cf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
@@ -0,0 +1,23 @@
+diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
+index a470179bd..73cfa1a23 100644
+--- a/compiler/nimconf.nim
++++ b/compiler/nimconf.nim
+@@ -225,10 +225,15 @@ proc getUserConfigPath*(filename: RelativeFile): AbsoluteFile =
+ proc getSystemConfigPath*(conf: ConfigRef; filename: RelativeFile): AbsoluteFile =
+ # try standard configuration file (installation did not distribute files
+ # the UNIX way)
+- let p = getPrefixDir(conf)
+- result = p / RelativeDir"config" / filename
++ let
++ prefix = getPrefixDir(conf)
++ env = getEnv("NIM_CONFIG_PATH")
++ if env != "":
++ result = env.toAbsoluteDir / filename
++ else:
++ result = prefix / RelativeDir"config" / filename
+ when defined(unix):
+- if not fileExists(result): result = p / RelativeDir"etc/nim" / filename
++ if not fileExists(result): result = prefix / RelativeDir"etc/nim" / filename
+ if not fileExists(result): result = AbsoluteDir"/etc/nim" / filename
+
+ proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef) =