cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bryan Higgins <bhigg...@blackberry.com>
Subject Re: Plugman engine check and WP7/8
Date Wed, 23 Oct 2013 14:13:21 GMT
This issue has to do with the host system rather than platform. Android and
BB10 both have version.bat files.


On Wed, Oct 23, 2013 at 9:56 AM, Sergey Grebnov (Akvelon) <
v-segreb@microsoft.com> wrote:

> Hi,
>
> #1 The problem
> Right now the simplest (and also the most correct IMO) way to specify
> plugin restrictions to specific cordova version is the following:
>
> plugin.xml:
>
>  <engines>
>    <engine name="cordova" version=">=2.7.0" />
>  </engines>
>
> But in this case as per plugman engines definition
> (plugman/src/util/default-engines.js) plugman will always try to find
> version verification script in some predefined location, not taking into
> account currently running platform, and will fail on WP since correct
> script name is version.bat, not just version.
>
> module.exports = function(project_dir){
>     return {
>         'cordova':
>             { 'platform':'*', 'scriptSrc':
> path.join(project_dir,'cordova','version') }, <- works in general, but NOT
> for WP7/8
>          ...
>         'cordova-wp8':
>             { 'platform':'wp8', 'scriptSrc':
> path.join(project_dir,'cordova','version.bat') }, <- correct location, not
> used in case of example above
>
>
> This means that right now there is no way to specify platform dependent
> location of version verification script for 'cordova' engine check which
>  is going to be the most popular.
>
> #2 Proposed solution
>
> Taking into account we have platform context when we are looking for the
> appropriate engine
> plugman/src/install.js
>         function getEngines(pluginElement, platform, project_dir,
> plugin_dir){
>
> I propose to think about 'cordova' engine settings (in default-engines.js)
> as a fallback in case we don't have any platform specific engine for some
> platform. So in case of  engine.attrib["name"] == 'cordova' we should check
> if there is engine with ['cordova-' + platform] name first and if it does
> not exist use 'cordova' engine settings only.  For example we already do
> this by the following line, but we need both engines (cordova and
> cordova-wp8) specified in plugin.xml file. Thoughts?
>
> // make sure we check for platform req's and not just cordova reqs
>     if(cordovaEngineIndex && cordovaPlatformEngineIndex)
> uncheckedEngines.pop(cordovaEngineIndex);
>
> PS. Another minor potential issue seems to be in check above;
> cordovaEngineIndex && cordovaPlatformEngineIndex will return false if one
> of indexes is zero (zero is valid/correct index in this context so it must
> be true).
>
> Thx!
> Sergey
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message