diff --git a/src/nimble.nim b/src/nimble.nim index 402601a..5cf9652 100644 --- a/src/nimble.nim +++ b/src/nimble.nim @@ -225,6 +225,7 @@ proc buildFromDir( " `bin` key in your .nimble file?") var args = args let realDir = pkgInfo.getRealDir() + let nimblePkgVersion = "-d:NimblePkgVersion=" & pkgInfo.version for path in paths: args.add("--path:\"" & path & "\" ") for bin in pkgInfo.bin: # Check if this is the only binary that we want to build. @@ -242,8 +243,8 @@ proc buildFromDir( createDir(outputDir) try: - doCmd("\"" & getNimBin() & "\" $# --noBabelPath $# $# \"$#\"" % - [pkgInfo.backend, join(args, " "), outputOpt, + doCmd("\"" & getNimBin() & "\" $# --noNimblePath $# $# $# \"$#\"" % + [pkgInfo.backend, nimblePkgVersion, join(args, " "), outputOpt, realDir / bin.changeFileExt("nim")]) except NimbleError: let currentExc = (ref NimbleError)(getCurrentException()) @@ -530,6 +531,7 @@ proc execBackend(options: Options) = nimScriptHint(pkgInfo) let deps = processDeps(pkginfo, options) + let nimblePkgVersion = "-d:NimblePkgVersion=" & pkgInfo.version var args = "" for dep in deps: args.add("--path:\"" & dep.getRealDir() & "\" ") for option in options.getCompilationFlags(): @@ -547,8 +549,8 @@ proc execBackend(options: Options) = else: display("Generating", ("documentation for $1 (from package $2) using $3 " & "backend") % [bin, pkgInfo.name, backend], priority = HighPriority) - doCmd("\"" & getNimBin() & "\" $# --noNimblePath $# \"$#\"" % - [backend, args, bin], showOutput = true) + doCmd("\"" & getNimBin() & "\" $# --noNimblePath $# $# \"$#\"" % + [backend, nimblePkgVersion, args, bin], showOutput = true) display("Success:", "Execution finished", Success, HighPriority) proc search(options: Options) = diff --git a/tests/nimbleVersionDefine/nimbleVersionDefine.nimble b/tests/nimbleVersionDefine/nimbleVersionDefine.nimble new file mode 100644 index 0000000..b47b049 --- /dev/null +++ b/tests/nimbleVersionDefine/nimbleVersionDefine.nimble @@ -0,0 +1,14 @@ +# Package + +version = "0.1.0" +author = "Dominik Picheta" +description = "A new awesome nimble package" +license = "MIT" +srcDir = "src" +bin = @["nimbleVersionDefine"] + + + +# Dependencies + +requires "nim >= 0.16.0" diff --git a/tests/nimbleVersionDefine/src/nimbleVersionDefine b/tests/nimbleVersionDefine/src/nimbleVersionDefine new file mode 100755 index 0000000..3b089c0 Binary files /dev/null and b/tests/nimbleVersionDefine/src/nimbleVersionDefine differ diff --git a/tests/nimbleVersionDefine/src/nimbleVersionDefine.nim b/tests/nimbleVersionDefine/src/nimbleVersionDefine.nim new file mode 100644 index 0000000..572dab8 --- /dev/null +++ b/tests/nimbleVersionDefine/src/nimbleVersionDefine.nim @@ -0,0 +1,3 @@ +when isMainModule: + const NimblePkgVersion {.strdefine.} = "Unknown" + echo(NimblePkgVersion) diff --git a/tests/tester.nim b/tests/tester.nim index c70c5b7..19c52cf 100644 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -907,6 +907,16 @@ suite "nimble run": check output.contains("tests/run/run --debug check") check output.contains("""Testing `nimble run`: @["--debug", "check"]""") +test "NimbleVersion is defined": + cd "nimbleVersionDefine": + var (output, exitCode) = execNimble("c", "-r", "src/nimbleVersionDefine.nim") + check output.contains("0.1.0") + check exitCode == QuitSuccess + + var (output2, exitCode2) = execNimble("run", "nimbleVersionDefine") + check output2.contains("0.1.0") + check exitCode2 == QuitSuccess + test "compilation without warnings": const buildDir = "./buildDir/" const filesToBuild = [