Compare commits
1 commit
master
...
revert-613
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d19dffda48 |
3 changed files with 9 additions and 39 deletions
|
|
@ -214,20 +214,13 @@ proc processDeps(pkginfo: PackageInfo, options: Options): seq[PackageInfo] =
|
|||
addRevDep(options.nimbleData, i, pkginfo)
|
||||
|
||||
proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string],
|
||||
args: var seq[string], options: Options) =
|
||||
doAssert(options.action.typ == actionBuild)
|
||||
|
||||
args: var seq[string]) =
|
||||
## 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()
|
||||
|
||||
cd realDir:
|
||||
if not execHook(options, true):
|
||||
raise newException(NimbleError, "Pre-hook prevented further execution.")
|
||||
|
||||
for path in paths: args.add("--path:\"" & path & "\" ")
|
||||
for bin in pkgInfo.bin:
|
||||
let outputOpt = "-o:\"" & pkgInfo.getOutputDir(bin) & "\""
|
||||
|
|
@ -251,17 +244,13 @@ proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string],
|
|||
exc.hint = hint
|
||||
raise exc
|
||||
|
||||
cd realDir:
|
||||
discard execHook(options, false)
|
||||
|
||||
proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], forRelease: bool,
|
||||
options: Options) =
|
||||
proc buildFromDir(pkgInfo: PackageInfo, paths: seq[string], forRelease: bool) =
|
||||
var args: seq[string]
|
||||
if forRelease:
|
||||
args = @["-d:release"]
|
||||
else:
|
||||
args = @[]
|
||||
buildFromDir(pkgInfo, paths, args, options)
|
||||
buildFromDir(pkgInfo, paths, args)
|
||||
|
||||
proc removePkgDir(dir: string, options: Options) =
|
||||
## Removes files belonging to the package in ``dir``.
|
||||
|
|
@ -336,7 +325,6 @@ proc installFromDir(dir: string, requestedVer: VersionRange, options: Options,
|
|||
## to the packages this package depends on.
|
||||
## The return value of this function is used by
|
||||
## ``processDeps`` to gather a list of paths to pass to the nim compiler.
|
||||
doAssert(options.action.typ == actionInstall)
|
||||
|
||||
# Handle pre-`install` hook.
|
||||
if not options.depsOnly:
|
||||
|
|
@ -368,9 +356,7 @@ proc installFromDir(dir: string, requestedVer: VersionRange, options: Options,
|
|||
# if the build fails then the old package will still be installed.
|
||||
if pkgInfo.bin.len > 0:
|
||||
let paths = result.deps.map(dep => dep.getRealDir())
|
||||
var optsCopy = options.briefClone()
|
||||
optsCopy.action.typ = actionBuild
|
||||
buildFromDir(pkgInfo, paths, true, optsCopy)
|
||||
buildFromDir(pkgInfo, paths, true)
|
||||
|
||||
let pkgDestDir = pkgInfo.getPkgDest(options)
|
||||
if existsDir(pkgDestDir) and existsFile(pkgDestDir / "nimblemeta.json"):
|
||||
|
|
@ -484,14 +470,8 @@ proc getDownloadInfo*(pv: PkgTuple, options: Options,
|
|||
proc install(packages: seq[PkgTuple],
|
||||
options: Options,
|
||||
doPrompt = true): tuple[deps: seq[PackageInfo], pkg: PackageInfo] =
|
||||
var optsCopy = options.briefClone()
|
||||
optsCopy.action.typ = actionInstall
|
||||
# Pass an empty seq here because we're executing `install` inside the package
|
||||
# directory
|
||||
optsCopy.action.packages = @[]
|
||||
|
||||
if packages == @[]:
|
||||
result = installFromDir(getCurrentDir(), newVRAny(), optsCopy, "")
|
||||
result = installFromDir(getCurrentDir(), newVRAny(), options, "")
|
||||
else:
|
||||
# Install each package.
|
||||
for pv in packages:
|
||||
|
|
@ -500,7 +480,7 @@ proc install(packages: seq[PkgTuple],
|
|||
let (downloadDir, downloadVersion) =
|
||||
downloadPkg(url, pv.ver, meth, subdir, options)
|
||||
try:
|
||||
result = installFromDir(downloadDir, pv.ver, optsCopy, url)
|
||||
result = installFromDir(downloadDir, pv.ver, options, url)
|
||||
except BuildFailed:
|
||||
# The package failed to build.
|
||||
# Check if we tried building a tagged version of the package.
|
||||
|
|
@ -527,7 +507,7 @@ proc build(options: Options) =
|
|||
let deps = processDeps(pkginfo, options)
|
||||
let paths = deps.map(dep => dep.getRealDir())
|
||||
var args = options.action.compileOptions
|
||||
buildFromDir(pkgInfo, paths, args, options)
|
||||
buildFromDir(pkgInfo, paths, args)
|
||||
|
||||
proc execBackend(options: Options) =
|
||||
let
|
||||
|
|
@ -569,8 +549,7 @@ proc search(options: Options) =
|
|||
## Searches for matches in ``options.action.search``.
|
||||
##
|
||||
## Searches are done in a case insensitive way making all strings lower case.
|
||||
doAssert(options.action.typ == actionSearch)
|
||||
|
||||
assert options.action.typ == actionSearch
|
||||
if options.action.search == @[]:
|
||||
raise newException(NimbleError, "Please specify a search string.")
|
||||
if needsRefresh(options):
|
||||
|
|
@ -920,8 +899,6 @@ proc listTasks(options: Options) =
|
|||
nimscriptsupport.listTasks(nimbleFile, options)
|
||||
|
||||
proc developFromDir(dir: string, options: Options) =
|
||||
doAssert(options.action.typ == actionDevelop)
|
||||
|
||||
if options.depsOnly:
|
||||
raiseNimbleError("Cannot develop dependencies only.")
|
||||
|
||||
|
|
@ -1016,11 +993,6 @@ proc test(options: Options) =
|
|||
## Executes all tests starting with 't' in the ``tests`` directory.
|
||||
## Subdirectories are not walked.
|
||||
var files = toSeq(walkDir(getCurrentDir() / "tests"))
|
||||
|
||||
if files.len < 1:
|
||||
display("Warning:", "No tests found!", Warning, HighPriority)
|
||||
return
|
||||
|
||||
files.sort((a, b) => cmp(a.path, b.path))
|
||||
|
||||
for file in files:
|
||||
|
|
|
|||
|
|
@ -409,7 +409,5 @@ proc briefClone*(options: Options): Options =
|
|||
var newOptions = initOptions()
|
||||
newOptions.config = options.config
|
||||
newOptions.nimbleData = options.nimbleData
|
||||
newOptions.nimbleDir = options.nimbleDir
|
||||
newOptions.forcePrompts = options.forcePrompts
|
||||
newOptions.pkgInfoCache = options.pkgInfoCache
|
||||
return newOptions
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ proc parseVersionRange*(s: string): VersionRange =
|
|||
|
||||
of ' ':
|
||||
# Make sure '0.9 8.03' is not allowed.
|
||||
if version != "" and i < s.len - 1:
|
||||
if version != "" and i < s.len:
|
||||
if s[i+1] in {'0'..'9', '.'}:
|
||||
raise newException(ParseVersionError,
|
||||
"Whitespace is not allowed in a version literal.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue