From d9f737482df2ec04a185415b8ba6592905ec33f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20M=20G=C3=B3mez?= Date: Thu, 6 Mar 2025 16:11:33 +0000 Subject: [PATCH] Win fix binary declarative parser (#1361) * Makes the declarative parser the default (CI test) * Adds support to requires flag in the declarative parser * Adds `exe` in windows when parsing binary * Makes declarative vmParser default * Fixes failing test --- src/nimblepkg/declarativeparser.nim | 6 +++++- tests/tdeclarativeparser.nim | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/nimblepkg/declarativeparser.nim b/src/nimblepkg/declarativeparser.nim index b018bf82..5ee4ec76 100644 --- a/src/nimblepkg/declarativeparser.nim +++ b/src/nimblepkg/declarativeparser.nim @@ -101,7 +101,11 @@ proc extract(n: PNode, conf: ConfigRef, result: var NimbleFileInfo) = elif n[0].kind == nkIdent and eqIdent(n[0].ident.s, "bin"): let binSeq = extractSeqLiteral(n[1], conf, "bin") for bin in binSeq: - result.bin[bin] = bin + when defined(windows): + var bin = bin & ".exe" + result.bin[bin] = bin + else: + result.bin[bin] = bin else: discard else: diff --git a/tests/tdeclarativeparser.nim b/tests/tdeclarativeparser.nim index 97a290bc..3fdd68b7 100644 --- a/tests/tdeclarativeparser.nim +++ b/tests/tdeclarativeparser.nim @@ -37,7 +37,10 @@ suite "Declarative parsing": let nimbleFile = getNimbleFileFromPkgNameHelper("nimlangserver") let nimbleFileInfo = extractRequiresInfo(nimbleFile) check nimbleFileInfo.bin.len == 1 - check nimbleFileInfo.bin["nimlangserver"] == "nimlangserver" + when defined(windows): + check nimbleFileInfo.bin["nimlangserver.exe"] == "nimlangserver.exe" + else: + check nimbleFileInfo.bin["nimlangserver"] == "nimlangserver" test "should be able to get all the released PackageVersions from a git local repository using the declarative parser": var options = initOptions()