From 88e5e05d497fa223089b9aaea4ce1ee3c0d781fd Mon Sep 17 00:00:00 2001 From: Silvio Massari Date: Thu, 5 May 2016 14:38:28 -0300 Subject: [PATCH] makeVCBuildArgs option added --- README.md | 4 ++++ lib/exe.js | 18 +++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index ed3d2de..0ea720c 100644 --- a/README.md +++ b/README.md @@ -142,6 +142,10 @@ nexe.compile({ nodeTempDir: 'src', // where to store node source. nodeConfigureArgs: ['opt', 'val'], // for all your configure arg needs. nodeMakeArgs: ["-j", "4"], // when you want to control the make process. + nodeVCBuildArgs: ["nosign", "x64"], // when you want to control the make process for windows. + // By default "nosign" option will be specified + // You can check all available options and its default values here: + // https://github.com/nodejs/node/blob/master/vcbuild.bat python: 'path/to/python', // for non-standard python setups. Or python 3.x forced ones. resourceFiles: [ 'path/to/a/file' ], // array of files to embed. resourceRoot: [ 'path/' ], // where to embed the resourceFiles. diff --git a/lib/exe.js b/lib/exe.js index cab459b..b7b0767 100644 --- a/lib/exe.js +++ b/lib/exe.js @@ -126,7 +126,7 @@ exports.compile = function(options, complete) { * first download node */ function downloadNode(next) { - _downloadNode(version, options.nodeTempDir, options.nodeConfigureArgs, options.nodeMakeArgs, next); + _downloadNode(version, options.nodeTempDir, options.nodeConfigureArgs, options.nodeMakeArgs, options.nodeVCBuildArgs, next); }, /** @@ -279,13 +279,13 @@ exports.compile = function(options, complete) { * @param {function} complete, callback */ -function _downloadNode(version, directory, nodeConfigureArgs, nodeMakeArgs, complete) { +function _downloadNode(version, directory, nodeConfigureArgs, nodeMakeArgs, nodeVCBuildArgs, complete) { var nodeFileDir = path.resolve(path.join(directory, framework, version)), // fixes #107, was process.cwd(), + rest. nodeFilePath = path.resolve(path.join(nodeFileDir, framework + "-" + version + ".tar.gz")); // might already be downloaded, and unzipped - if (_getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, complete)) { + if (_getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, nodeVCBuildArgs, complete)) { return; } @@ -436,7 +436,7 @@ function _downloadNode(version, directory, nodeConfigureArgs, nodeMakeArgs, comp */ function(next, type) { - _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, next, type) + _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, nodeVCBuildArgs, next, type) }, ], complete); @@ -447,7 +447,7 @@ function _downloadNode(version, directory, nodeConfigureArgs, nodeMakeArgs, comp * it. */ -function _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, complete, type) { +function _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, nodeVCBuildArgs, complete, type) { var dir = _getFirstDirectory(nodeFileDir); // standard @@ -475,8 +475,12 @@ function _getNodeCompiler(nodeFileDir, nodeConfigureArgs, nodeMakeArgs, complete newEnv.path = process.env.PATH + ";" + path.dirname(isPy) } + if (!nodeVCBuildArgs || !nodeVCBuildArgs.length) { + nodeVCBuildArgs = [ "nosign" ]; // "release" is already the default config value in VCBuild.bat + } + // spawn a vcbuild process with our custom enviroment. - var vcbuild = spawn("vcbuild.bat", ["nosign", "release"], { + var vcbuild = spawn("vcbuild.bat", nodeVCBuildArgs, { cwd: dir, env: newEnv }); @@ -978,11 +982,11 @@ exports.package = function(path, options) { input: (_package.nexe.input || options.i), output: (_package.nexe.output || options.o), flags: (_package.nexe.runtime.ignoreFlags || (options.f || false)), - nodeMakeArgs: (_package.nexe.runtime.nodeMakeArgs || []), resourceFiles: (_package.nexe.resourceFiles), nodeVersion: (_package.nexe.runtime.version || options.r), nodeConfigureArgs: (_package.nexe.runtime.nodeConfigureArgs || []), nodeMakeArgs: (_package.nexe.runtime.nodeMakeArgs || []), + nodeVCBuildArgs: (_package.nexe.runtime.nodeVCBuildArgs || []), jsFlags: (_package.nexe.runtime['js-flags'] || options.j), python: (_package.nexe.python || options.p), debug: (_package.nexe.debug || options.d),