CB-13145: added variable replacing to framework tag
diff --git a/src/PluginInfo/PluginInfo.js b/src/PluginInfo/PluginInfo.js
index 75c96c1..4cb5307 100644
--- a/src/PluginInfo/PluginInfo.js
+++ b/src/PluginInfo/PluginInfo.js
@@ -306,15 +306,34 @@
             return n.attrib.name;
         });
     };
-    self.getFrameworks = function (platform) {
+
+    self.getFrameworks = function (platform, options) {
         return _getTags(self._et, 'framework', platform, function (el) {
+            var src = el.attrib.src;
+            if (options) {
+                var vars = options.cli_variables || {};
+                if (Object.keys(vars).length === 0) {
+                    // get variable defaults from plugin.xml for removal
+                    vars = self.getPreferences(platform);
+                }
+
+                var regExp;
+                // Iterate over plugin variables.
+                // Replace them in framework src if they exist
+                Object.keys(vars).forEach(function (name) {
+                    if (vars[name]) {
+                        regExp = new RegExp('\\$' + name, 'g');
+                        src = src.replace(regExp, vars[name]);
+                    }
+                });
+            }
             var ret = {
                 itemType: 'framework',
                 type: el.attrib.type,
                 parent: el.attrib.parent,
                 custom: isStrTrue(el.attrib.custom),
                 embed: isStrTrue(el.attrib.embed),
-                src: el.attrib.src,
+                src: src,
                 spec: el.attrib.spec,
                 weak: isStrTrue(el.attrib.weak),
                 versions: el.attrib.versions,
@@ -328,14 +347,14 @@
     };
 
     self.getFilesAndFrameworks = getFilesAndFrameworks;
-    function getFilesAndFrameworks (platform) {
+    function getFilesAndFrameworks (platform, options) {
         // Please avoid changing the order of the calls below, files will be
         // installed in this order.
         var items = [].concat(
             self.getSourceFiles(platform),
             self.getHeaderFiles(platform),
             self.getResourceFiles(platform),
-            self.getFrameworks(platform),
+            self.getFrameworks(platform, options),
             self.getLibFiles(platform)
         );
         return items;
diff --git a/src/PluginManager.js b/src/PluginManager.js
index 7b8a0d4..b875d0e 100644
--- a/src/PluginManager.js
+++ b/src/PluginManager.js
@@ -92,7 +92,7 @@
     var actions = new ActionStack();

 

     // gather all files need to be handled during operation ...

-    plugin.getFilesAndFrameworks(this.platform)

+    plugin.getFilesAndFrameworks(this.platform, options)

         .concat(plugin.getAssets(this.platform))

         .concat(plugin.getJsModules(this.platform))

         // ... put them into stack ...