build/jbb

Types

JBBPackage = ref object
  name*: string
  version*: string
  baseUrl*: string
  isGit*: bool
  url*: string
  sharedLibs*: seq[string]
  staticLibs*: seq[string]
  requires*: seq[JBBPackage]
  skipRequires*: seq[string]
JBBPackage type that stores package information

Procs

proc `==`(pkg1, pkg2: JBBPackage): bool {...}{.raises: [], tags: [].}
Check if two JBBPackage objects are equal
proc newJBBPackage(name, version: string): JBBPackage {...}{.raises: [], tags: [].}
Create a new JBBPackage with specified name and version
proc getJBBRepo(pkg: JBBPackage; outdir: string) {...}{.
    raises: [ValueError, OSError, Exception, IOError, KeyError], tags: [ReadDirEffect,
    ExecIOEffect, ReadIOEffect, RootEffect, WriteIOEffect, ReadEnvEffect].}
Clone JBB package repo and checkout version tag if version is specified in package
proc loadJBBInfo(outdir: string): JBBPackage {...}{.raises: [],
    tags: [ReadDirEffect, ReadIOEffect, WriteIOEffect].}
Load cached package info from outdir/jbbinfo.json
proc saveJBBInfo(pkg: JBBPackage; outdir: string) {...}{.raises: [IOError],
    tags: [WriteIOEffect].}
Save downloaded package info to outdir/jbbinfo.json
proc downloadJBB(pkg: JBBPackage; outdir: string; main = true) {...}{.
    raises: [OSError, ValueError, Exception, IOError, KeyError], tags: [ReadDirEffect,
    ReadIOEffect, WriteIOEffect, ExecIOEffect, RootEffect, ReadEnvEffect].}

Download pkg from BinaryBuilder.org to outdir

High-level API that handles the end to end JBB process flow to find latest package binary and downloads and extracts it to outdir.

proc dlJBBRequires(pkg: JBBPackage; outdir: string) {...}{.
    raises: [KeyError, OSError, ValueError, Exception, IOError], tags: [ReadDirEffect,
    ReadIOEffect, WriteIOEffect, ExecIOEffect, RootEffect, ReadEnvEffect].}
Download all required dependencies of this pkg
proc getJBBLDeps(pkg: JBBPackage; outdir: string; shared: bool; main = true): seq[string] {...}{.
    raises: [ValueError], tags: [].}

Get all BinaryBuilder.org libs - shared (.so|.dll) or static (.a|.lib) in pkg, including deps in descending order

outdir is prefixed to each entry