You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by no...@apache.org on 2022/05/18 04:10:22 UTC

[cordova-android] branch master updated: [Android] Added support for BoM imports (#1311)

This is an automated email from the ASF dual-hosted git repository.

normanbreau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-android.git


The following commit(s) were added to refs/heads/master by this push:
     new bd0c8ce6 [Android] Added support for BoM imports (#1311)
bd0c8ce6 is described below

commit bd0c8ce6398be2f3c005787dc383d4c98677b635
Author: ebhsgit <48...@users.noreply.github.com>
AuthorDate: Wed May 18 14:10:15 2022 +1000

    [Android] Added support for BoM imports (#1311)
    
    * Added support for BoM imports
    
    https://docs.gradle.org/current/userguide/platforms.html#sub:bom_import
    
    Changes
    
    * propertiesObj.systemLibs regex - exclude the value contains (
    * added propertiesObj.bomPlatforms - any value which matches platform("...")
    
    * Fix eslint style issues
    
    Co-authored-by: 8bhsolutions <48...@users.noreply.github.com>
---
 lib/builders/ProjectBuilder.js | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/lib/builders/ProjectBuilder.js b/lib/builders/ProjectBuilder.js
index 98450254..d253e73e 100644
--- a/lib/builders/ProjectBuilder.js
+++ b/lib/builders/ProjectBuilder.js
@@ -140,7 +140,8 @@ class ProjectBuilder {
         return {
             libs: findAllUniq(data, /^\s*android\.library\.reference\.\d+=(.*)(?:\s|$)/mg),
             gradleIncludes: findAllUniq(data, /^\s*cordova\.gradle\.include\.\d+=(.*)(?:\s|$)/mg),
-            systemLibs: findAllUniq(data, /^\s*cordova\.system\.library\.\d+=(.*)(?:\s|$)/mg)
+            systemLibs: findAllUniq(data, /^\s*cordova\.system\.library\.\d+=((?!.*\().*)(?:\s|$)/mg),
+            bomPlatforms: findAllUniq(data, /^\s*cordova\.system\.library\.\d+=platform\((?:'|")(.*)(?:'|")\)/mg)
         };
     }
 
@@ -234,11 +235,24 @@ class ProjectBuilder {
             [/^\/?google\/google_play_services\/libproject\/google-play-services_lib\/?$/, 'com.google.android.gms:play-services:+']
         ];
 
+        propertiesObj.bomPlatforms.forEach(function (p) {
+            if (!/:.*:/.exec(p)) {
+                throw new CordovaError('Malformed BoM platform: ' + p);
+            }
+
+            // Add bom platform
+            depsList += '    implementation platform("' + p + '")\n';
+        });
+
         propertiesObj.systemLibs.forEach(function (p) {
             let mavenRef;
             // It's already in gradle form if it has two ':'s
             if (/:.*:/.exec(p)) {
                 mavenRef = p;
+            } else if (/:.*/.exec(p)) {
+                // Support BoM imports
+                mavenRef = p;
+                events.emit('warn', 'Library expects a BoM package: ' + p);
             } else {
                 for (let i = 0; i < SYSTEM_LIBRARY_MAPPINGS.length; ++i) {
                     const pair = SYSTEM_LIBRARY_MAPPINGS[i];


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