You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2014/06/06 23:28:58 UTC
[1/2] git commit: Adds support for target architectures to build
command
Repository: cordova-windows
Updated Branches:
refs/heads/master be2ef3a10 -> fcb1f6642
Adds support for target architectures to build command
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/28bba703
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/28bba703
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/28bba703
Branch: refs/heads/master
Commit: 28bba7032dee74b26de37c43cc12bb41c428a3de
Parents: be2ef3a
Author: Vladimir Kotikov <v-...@microsoft.com>
Authored: Fri Jun 6 11:23:58 2014 +0400
Committer: Vladimir Kotikov <v-...@microsoft.com>
Committed: Fri Jun 6 12:08:28 2014 +0400
----------------------------------------------------------------------
windows8/template/cordova/lib/build.js | 156 ++++++++++++++++++++--------
1 file changed, 112 insertions(+), 44 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/28bba703/windows8/template/cordova/lib/build.js
----------------------------------------------------------------------
diff --git a/windows8/template/cordova/lib/build.js b/windows8/template/cordova/lib/build.js
index 1db2f28..912c493 100644
--- a/windows8/template/cordova/lib/build.js
+++ b/windows8/template/cordova/lib/build.js
@@ -23,21 +23,28 @@ var wscript_shell = WScript.CreateObject("WScript.Shell");
var args = WScript.Arguments;
+// build type. Possible values: "debug", "release"
+var buildType = null,
+// list of build architectures. list of strings
+buildArchs = null;
+
// working dir
var ROOT = WScript.ScriptFullName.split('\\cordova\\lib\\build.js').join('');
// help/usage function
function Usage() {
Log("");
- Log("Usage: build [ --debug | --release ]");
+ Log("Usage: build [ --debug | --release ] [--archs=\"<list of architectures...>\"]");
Log(" --help : Displays this dialog.");
Log(" --debug : builds project in debug mode. (Default)");
Log(" --release : builds project in release mode.");
Log(" -r : shortcut :: builds project in release mode.");
+ Log(" --archs : Builds project binaries for specific chip architectures.");
Log("examples:");
Log(" build ");
Log(" build --debug");
Log(" build --release");
+ Log(" build --release --archs=\"arm x86\"");
Log("");
}
@@ -119,61 +126,122 @@ function getMSBuildToolsPath(path) {
}
// builds the project and .xap in debug mode
-function build_appx(path,isRelease) {
-
- var mode = (isRelease ? "Release" : "Debug");
- Log("Building Cordova Windows 8 Project:");
- Log("\tConfiguration : " + mode);
- Log("\tDirectory : " + path);
-
- try {
- wscript_shell.CurrentDirectory = path;
-
- var MSBuildToolsPath = getMSBuildToolsPath(path);
- Log("\tMSBuildToolsPath: " + MSBuildToolsPath);
- var solutionDir = getSolutionDir(path);
- var buildCommand = escapePath(MSBuildToolsPath + 'msbuild') + ' ' + escapePath(solutionDir) +
- ' /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo /p:Configuration=' + mode;
-
- // hack to get rid of 'Access is denied.' error when running the shell w/ access to C:\path..
- buildCommand = 'cmd /c "' + buildCommand + '"';
- Log(buildCommand);
- if (exec_verbose(buildCommand) != 0) {
- // msbuild failed
- WScript.Quit(2);
+function build_appx(path, buildtype, buildarchs) {
+
+ if (!buildtype) {
+ Log("WARNING: [ --debug | --release ] not specified, defaulting to debug...");
+ buildtype = "debug";
+ }
+
+ if (!buildarchs) {
+ Log("WARNING: target architecture not specified, defaulting to AnyCPU...");
+ buildarchs = ["Any CPU"];
+ }
+
+ for (var i = 0; i < buildarchs.length; i++) {
+
+ var buildarch = buildarchs[i];
+
+ Log("\nBuilding Cordova Windows 8 Project:");
+ Log("\tConfiguration : " + buildtype);
+ Log("\tPlatform : " + buildarch);
+ Log("\tDirectory : " + path);
+
+ try {
+ wscript_shell.CurrentDirectory = path;
+
+ var MSBuildToolsPath = getMSBuildToolsPath(path);
+ Log("\tMSBuildToolsPath: " + MSBuildToolsPath);
+ var solutionDir = getSolutionDir(path);
+ var buildCommand = escapePath(MSBuildToolsPath + 'msbuild') +
+ ' ' + escapePath(solutionDir) +
+ ' /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal' +
+ ' /nologo' +
+ ' /p:Configuration=' + buildtype +
+ ' /p:Platform="' + buildarch + '"';
+
+ // hack to get rid of 'Access is denied.' error when running the shell w/ access to C:\path..
+ buildCommand = 'cmd /c "' + buildCommand + '"';
+ Log(buildCommand);
+ if (exec_verbose(buildCommand) !== 0) {
+ // msbuild failed
+ WScript.Quit(2);
+ }
+ } catch (err) {
+ Log("Build failed: " + err.message, true);
}
+ }
- // TODO: there could be multiple AppPackages
- // check if AppPackages created
- if (fso.FolderExists(path + '\\AppPackages')) {
- var out_folder = fso.GetFolder(path + '\\AppPackages');
- var subFolders = new Enumerator(out_folder.SubFolders);
- for(;!subFolders.atEnd();subFolders.moveNext())
+ // TODO: there could be multiple AppPackages
+ // check if AppPackages created
+ if (fso.FolderExists(path + '\\AppPackages')) {
+ var out_folder = fso.GetFolder(path + '\\AppPackages');
+ var subFolders = new Enumerator(out_folder.SubFolders);
+ for(;!subFolders.atEnd();subFolders.moveNext())
+ {
+ var subFolder = subFolders.item();
+ var files = new Enumerator(subFolder.Files);
+ for(;!files.atEnd();files.moveNext())
{
- var subFolder = subFolders.item();
- var files = new Enumerator(subFolder.Files);
- for(;!files.atEnd();files.moveNext())
+ if(fso.GetExtensionName(files.item()) == "ps1")
{
- if(fso.GetExtensionName(files.item()) == "ps1")
- {
- // app was built, installation script exists
- return "Success";
- }
-
+ // app was built, installation script exists
+ return "\nSUCCESS";
}
}
}
- } catch (err) {
- Log("Build failed: " + err.message, true);
+
}
Log("Error : AppPackages were not built");
WScript.Quit(2);
}
+// parses script args and set global variables for build
+// throws error if unknown argument specified.
+function parseArgs () {
+
+ // return build type, specified by input string, or null, if not build type parameter
+ function getBuildType (arg) {
+ arg = arg.toLowerCase();
+ if (arg == "--debug" || arg == "-d") {
+ return "debug";
+ }
+ else if (arg == "--release" || arg == "-r") {
+ return "release";
+ }
+ return null;
+ }
+
+ // returns build architectures list, specified by input string
+ // or null if nothing specified, or not --archs parameter
+ function getBuildArchs (arg) {
+ arg = arg.toLowerCase();
+ var archs = /--archs=(.+)/.exec(arg);
+ if (archs) {
+ // if architectures list contains commas, suppose that is comma delimited
+ if (archs[1].indexOf(',') != -1){
+ return archs[1].split(',');
+ }
+ // else space delimited
+ return archs[1].split(/\s/);
+ }
+ return null;
+ }
-Log("");
+ for (var i = 0; i < args.Length; i++) {
+ if (getBuildType(args(i))) {
+ buildType = getBuildType(args(i));
+ } else if (getBuildArchs(args(i))) {
+ buildArchs = getBuildArchs(args(i));
+ } else {
+ Log("Error: \"" + args(i) + "\" is not recognized as a build option", true);
+ Usage();
+ WScript.Quit(2);
+ }
+ }
+}
var result;
var isRelease = false;
@@ -189,8 +257,8 @@ if (args.Count() > 0) {
Log("Error: could not find project at " + ROOT, true);
WScript.Quit(2);
}
-
- isRelease = (args(0) == "--release" || args(0) == "-r");
+
+ parseArgs();
}
-Log(build_appx(ROOT,isRelease));
+Log(build_appx(ROOT, buildType, buildArchs));
[2/2] git commit: Added list of supported architectures in help text
Posted by pu...@apache.org.
Added list of supported architectures in help text
Project: http://git-wip-us.apache.org/repos/asf/cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-windows/commit/fcb1f664
Tree: http://git-wip-us.apache.org/repos/asf/cordova-windows/tree/fcb1f664
Diff: http://git-wip-us.apache.org/repos/asf/cordova-windows/diff/fcb1f664
Branch: refs/heads/master
Commit: fcb1f6642cc0affe2c6ef78293af40087a070f8a
Parents: 28bba70
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Fri Jun 6 14:28:42 2014 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Fri Jun 6 14:28:42 2014 -0700
----------------------------------------------------------------------
windows8/template/cordova/lib/build.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-windows/blob/fcb1f664/windows8/template/cordova/lib/build.js
----------------------------------------------------------------------
diff --git a/windows8/template/cordova/lib/build.js b/windows8/template/cordova/lib/build.js
index 912c493..a342921 100644
--- a/windows8/template/cordova/lib/build.js
+++ b/windows8/template/cordova/lib/build.js
@@ -39,7 +39,7 @@ function Usage() {
Log(" --debug : builds project in debug mode. (Default)");
Log(" --release : builds project in release mode.");
Log(" -r : shortcut :: builds project in release mode.");
- Log(" --archs : Builds project binaries for specific chip architectures.");
+ Log(" --archs : Builds project binaries for specific chip architectures. `arm` + `x86` + `x64` are supported.");
Log("examples:");
Log(" build ");
Log(" build --debug");