prebuild
Version:
A command line tool for easily making prebuilt binaries for multiple versions of node, electron or node-webkit on a specific platform
40 lines (31 loc) • 1.08 kB
JavaScript
var noop = require('noop-logger')
var releaseFolder = require('./util').releaseFolder
var gypbuild = require('./gypbuild')
var cmakebuild = require('./cmakebuild')
var collectArtifacts = require('./collect-artifacts')
var util = require('./util')
function build (opts, version, cb) {
var log = opts.log || noop
var run = function () {
var release = releaseFolder(opts, version)
var build = opts.backend === 'cmake-js' ? cmakebuild : gypbuild
log.verbose('starting build process ' + opts.backend)
build(opts, version, function (err) {
if (err) return cb(err)
log.verbose('completed building ' + opts.backend)
if (!opts.prepack) return collectArtifacts(release, opts, cb)
log.verbose('executing prepack')
util.run(opts.prepack, function (err) {
if (err) return cb(err)
collectArtifacts(release, opts, cb)
})
})
}
if (!opts.preinstall) return run()
log.verbose('executing preinstall')
util.run(opts.preinstall, function (err) {
if (err) return cb(err)
run()
})
}
module.exports = build