From b6c5a5fc9a274135d373285855120dfbecbac8fd Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Wed, 20 Aug 2014 10:44:48 -0400 Subject: [PATCH] CB-3445: Read project.properties to configure gradle libraries --- bin/lib/create.js | 1 - bin/templates/project/build.gradle | 16 ++++++++++++++-- bin/templates/project/libraries.gradle | 7 ------- bin/templates/project/settings.gradle | 19 ++++++++++++++++++- 4 files changed, 32 insertions(+), 11 deletions(-) delete mode 100644 bin/templates/project/libraries.gradle diff --git a/bin/lib/create.js b/bin/lib/create.js index 0e929e3a..c4c6f1b8 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -122,7 +122,6 @@ function copyBuildRules(projectPath) { shell.cp('-f', path.join(srcDir, 'custom_rules.xml'), projectPath); shell.cp('-f', path.join(srcDir, 'build.gradle'), projectPath); - shell.cp('-f', path.join(srcDir, 'libraries.gradle'), projectPath); shell.cp('-f', path.join(srcDir, 'settings.gradle'), projectPath); } diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle index 4b34e48f..dcebbc5d 100644 --- a/bin/templates/project/build.gradle +++ b/bin/templates/project/build.gradle @@ -15,9 +15,10 @@ buildscript { ext.multiarch=false dependencies { - compile project(':CordovaLib') + for (subproject in getProjectList()) { + compile project(subproject) + } } -apply from: 'libraries.gradle' android { sourceSets { @@ -79,3 +80,14 @@ def getVersionCodeFromManifest() { matcher.find() return Integer.parseInt(matcher.group(1)) } + +def getProjectList() { + def manifestFile = file("project.properties") + def pattern = Pattern.compile("android.library.reference.(\\d+)\\s*=\\s*(.*)") + def matcher = pattern.matcher(manifestFile.getText()) + def projects = [] + while (matcher.find()) { + projects.add(":" + matcher.group(2).replace("/",":")) + } + return projects +} diff --git a/bin/templates/project/libraries.gradle b/bin/templates/project/libraries.gradle deleted file mode 100644 index f4975435..00000000 --- a/bin/templates/project/libraries.gradle +++ /dev/null @@ -1,7 +0,0 @@ -dependencies { -// This file contains no plugins by default. -// To add a third-party library project, add a line to this file like -// compile project(':library_dir_name') -} -// If multiple ndk architectures are provided, uncomment this line -//ext.multiarch=true diff --git a/bin/templates/project/settings.gradle b/bin/templates/project/settings.gradle index b938ccc5..baa17145 100644 --- a/bin/templates/project/settings.gradle +++ b/bin/templates/project/settings.gradle @@ -1 +1,18 @@ -include ':CordovaLib', ':' +import java.util.regex.Pattern + +def getProjectList() { + def manifestFile = file("project.properties") + def pattern = Pattern.compile("android.library.reference.(\\d+)\\s*=\\s*(.*)") + def matcher = pattern.matcher(manifestFile.getText()) + def projects = [] + while (matcher.find()) { + projects.add(":" + matcher.group(2).replace("/",":")) + } + return projects +} + +for (subproject in getProjectList()) { + include subproject +} + +include ':'