You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ag...@apache.org on 2015/02/13 02:45:46 UTC

cordova-lib git commit: CB-8469 android: Call into platform's build.js after `plugin add` so that Android Studio will work without needing an explicit command-line build first

Repository: cordova-lib
Updated Branches:
  refs/heads/master f37d6a6f1 -> d77ebc40a


CB-8469 android: Call into platform's build.js after `plugin add` so that Android Studio will work without needing an explicit command-line build first


Project: http://git-wip-us.apache.org/repos/asf/cordova-lib/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-lib/commit/d77ebc40
Tree: http://git-wip-us.apache.org/repos/asf/cordova-lib/tree/d77ebc40
Diff: http://git-wip-us.apache.org/repos/asf/cordova-lib/diff/d77ebc40

Branch: refs/heads/master
Commit: d77ebc40a16ab27a8ed22c0bbf2ab8a84a5ac448
Parents: f37d6a6
Author: Andrew Grieve <ag...@chromium.org>
Authored: Thu Feb 12 20:44:00 2015 -0500
Committer: Andrew Grieve <ag...@chromium.org>
Committed: Thu Feb 12 20:45:27 2015 -0500

----------------------------------------------------------------------
 cordova-lib/spec-cordova/HooksRunner.spec.js |  4 +++-
 cordova-lib/src/plugman/install.js           | 14 +++++++++++++
 cordova-lib/src/plugman/uninstall.js         | 25 ++++++++++++++++++++++-
 3 files changed, 41 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d77ebc40/cordova-lib/spec-cordova/HooksRunner.spec.js
----------------------------------------------------------------------
diff --git a/cordova-lib/spec-cordova/HooksRunner.spec.js b/cordova-lib/spec-cordova/HooksRunner.spec.js
index 6b30828..14508ea 100644
--- a/cordova-lib/spec-cordova/HooksRunner.spec.js
+++ b/cordova-lib/spec-cordova/HooksRunner.spec.js
@@ -110,6 +110,8 @@ describe('HooksRunner', function() {
                 shell.cp('-R', path.join(__dirname, 'fixtures', 'platforms', 'android'), path.join(project, 'platforms'));
             } else if(cmd.match(/update\b/)) {
                 fs.writeFileSync(path.join(project, 'platforms', helpers.testPlatform, 'updated'), 'I was updated!', 'utf-8');
+            } else if (cmd.match(/version/)) {
+                return '3.6.0';
             }
             return Q();
         });
@@ -133,7 +135,7 @@ describe('HooksRunner', function() {
             hookOptions = { projectRoot: project, cordova: options };
 
             cordova.raw.plugin('add', testPluginFixturePath).fail(function (err) {
-                expect(err).toBeUndefined();
+                expect(err && err.stack).toBeUndefined();
             }).then(function () {
                 testPluginInstalledPath = path.join(projectRoot, 'plugins', 'com.plugin.withhooks');
                 shell.chmod('-R', 'ug+x', path.join(testPluginInstalledPath, 'scripts'));

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d77ebc40/cordova-lib/src/plugman/install.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/install.js b/cordova-lib/src/plugman/install.js
index 0c95ad5..bcdbbac 100644
--- a/cordova-lib/src/plugman/install.js
+++ b/cordova-lib/src/plugman/install.js
@@ -586,6 +586,20 @@ function handleInstall(actions, pluginInfo, platform, project_dir, plugins_dir,
         }
 	}).then (function() {
         events.emit('verbose', 'Install complete for ' + pluginInfo.id + ' on ' + platform + '.');
+
+        if (platform == 'android' && semver.gte(options.platformVersion, '4.0.0-dev') && frameworkFiles.length > 0) {
+            events.emit('verbose', 'Updating build files since android plugin contained <framework>');
+            var buildModule;
+            try {
+                buildModule = require(path.join(project_dir, 'cordova', 'lib', 'build'));
+            } catch (e) {
+                // Should occur only in unit tests.
+            }
+            if (buildModule && buildModule.prepBuildFiles) {
+                buildModule.prepBuildFiles();
+            }
+        }
+
         // WIN!
         // Log out plugin INFO element contents in case additional install steps are necessary
         var info_strings = pluginInfo.getInfo(platform) || [];

http://git-wip-us.apache.org/repos/asf/cordova-lib/blob/d77ebc40/cordova-lib/src/plugman/uninstall.js
----------------------------------------------------------------------
diff --git a/cordova-lib/src/plugman/uninstall.js b/cordova-lib/src/plugman/uninstall.js
index 1a14134..4d09996 100644
--- a/cordova-lib/src/plugman/uninstall.js
+++ b/cordova-lib/src/plugman/uninstall.js
@@ -21,6 +21,7 @@
 
 var path = require('path'),
     fs   = require('fs'),
+    semver = require('semver'),
     shell= require('shelljs'),
     action_stack = require('./util/action-stack'),
     dependencies = require('./util/dependencies'),
@@ -34,6 +35,7 @@ var path = require('path'),
     HooksRunner = require('../hooks/HooksRunner'),
     cordovaUtil      = require('../cordova/util');
 
+var superspawn = require('../cordova/superspawn');
 var PlatformJson = require('./util/PlatformJson');
 var PluginInfoProvider = require('../PluginInfoProvider');
 
@@ -76,7 +78,15 @@ module.exports.uninstallPlatform = function(platform, project_dir, id, plugins_d
 
     var current_stack = new action_stack();
 
-    return runUninstallPlatform(current_stack, platform, project_dir, plugin_dir, plugins_dir, options);
+    return Q().then(function() {
+        if (options.platformVersion) {
+            return Q(options.platformVersion);
+        }
+        return Q(superspawn.maybeSpawn(path.join(project_dir, 'cordova', 'version')));
+    }).then(function(platformVersion) {
+        options.platformVersion = platformVersion;
+        return runUninstallPlatform(current_stack, platform, project_dir, plugin_dir, plugins_dir, options);
+    });
 };
 
 // Returns a promise.
@@ -355,5 +365,18 @@ function handleUninstall(actions, platform, pluginInfo, project_dir, www_dir, pl
         } else {
             return plugman.prepare(project_dir, platform, plugins_dir, www_dir, is_top_level, options.pluginInfoProvider);
         }
+    }).then(function() {
+        if (platform == 'android' && semver.gte(options.platformVersion, '4.0.0-dev') && frameworkFiles.length > 0) {
+            events.emit('verbose', 'Updating build files since android plugin contained <framework>');
+            var buildModule;
+            try {
+                buildModule = require(path.join(project_dir, 'cordova', 'lib', 'build'));
+            } catch (e) {
+                // Should occur only in unit tests.
+            }
+            if (buildModule && buildModule.prepBuildFiles) {
+                buildModule.prepBuildFiles();
+            }
+        }
     });
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org