diff options
Diffstat (limited to 'compiler/options.nim')
-rw-r--r-- | compiler/options.nim | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/options.nim b/compiler/options.nim index 6054eb3a5..2f796afe6 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -884,3 +884,18 @@ proc floatInt64Align*(conf: ConfigRef): int16 = # to 4bytes (except with -malign-double) return 4 return 8 + +proc setOutFile*(conf: ConfigRef) = + proc libNameTmpl(conf: ConfigRef): string {.inline.} = + result = if conf.target.targetOS == osWindows: "$1.lib" else: "lib$1.a" + + if conf.outFile.isEmpty: + let base = conf.projectName + let targetName = + if optGenDynLib in conf.globalOptions: + platform.OS[conf.target.targetOS].dllFrmt % base + elif optGenStaticLib in conf.globalOptions: + libNameTmpl(conf) % base + else: + base & platform.OS[conf.target.targetOS].exeExt + conf.outFile = RelativeFile targetName |