diff --git a/src/nimble.nim b/src/nimble.nim index 45f7eab..7817dfd 100644 --- a/src/nimble.nim +++ b/src/nimble.nim @@ -527,6 +527,10 @@ proc processDeps(pkginfo: PackageInfo, options: Options): seq[string] = proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], forRelease: bool) = ## Builds a package as specified by ``pkgInfo``. + if pkgInfo.bin.len == 0: + raise newException(NimbleError, + "Nothing to build. Did you specify a module to build using the" & + " `bin` key in your .nimble file?") let realDir = pkgInfo.getRealDir() let releaseOpt = if forRelease: "-d:release" else: "" var args = "" diff --git a/tests/issue108/issue108.nimble b/tests/issue108/issue108.nimble new file mode 100644 index 0000000..8b2fa29 --- /dev/null +++ b/tests/issue108/issue108.nimble @@ -0,0 +1,11 @@ +# Package + +version = "0.1.0" +author = "Dominik Picheta" +description = "Test for issue 108." +license = "BSD" + +# Dependencies + +requires "nim >= 0.12.1" + diff --git a/tests/tester.nim b/tests/tester.nim index 83b3833..19173e6 100644 --- a/tests/tester.nim +++ b/tests/tester.nim @@ -78,6 +78,13 @@ test "issue #126": check exitCode1 != QuitSuccess check "The .nimble file name must match name specified inside it." in lines1[^1] +test "issue #108": + cd "issue108": + let (output, exitCode) = execCmdEx("../" & path & " build") + let lines = output.strip.splitLines() + check exitCode != QuitSuccess + check "Nothing to build" in lines[^1] + test "can list": check execCmdEx(path & " list").exitCode == QuitSuccess