gradle: Write sub-project list explicitly to make Android Studio happy
Project: http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/repo Commit: http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/commit/c66c317b Tree: http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/tree/c66c317b Diff: http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/diff/c66c317b Branch: refs/heads/master Commit: c66c317b81ddef45fb3bfc5b4387ea212ba141e7 Parents: 73e2a9a Author: Andrew Grieve <[email protected]> Authored: Tue Sep 23 21:03:00 2014 -0400 Committer: Prabhjot Singh <[email protected]> Committed: Mon Oct 6 16:22:10 2014 +0530 ---------------------------------------------------------------------- bin/lib/create.js | 1 - bin/templates/cordova/lib/build.js | 16 ++++++++++++++++ bin/templates/project/build.gradle | 20 ++++---------------- bin/templates/project/settings.gradle | 18 ------------------ 4 files changed, 20 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/blob/c66c317b/bin/lib/create.js ---------------------------------------------------------------------- diff --git a/bin/lib/create.js b/bin/lib/create.js index d7550a6..74037df 100755 --- a/bin/lib/create.js +++ b/bin/lib/create.js @@ -124,7 +124,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, 'settings.gradle'), projectPath); shell.cp('-f', path.join(srcDir, 'cordova.gradle'), projectPath); } http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/blob/c66c317b/bin/templates/cordova/lib/build.js ---------------------------------------------------------------------- diff --git a/bin/templates/cordova/lib/build.js b/bin/templates/cordova/lib/build.js index 89556fe..c5b6b09 100644 --- a/bin/templates/cordova/lib/build.js +++ b/bin/templates/cordova/lib/build.js @@ -237,6 +237,22 @@ var builders = { for (var i = 0; i < subProjects.length; ++i) { shell.cp('-f', pluginBuildGradle, path.join(ROOT, subProjects[i], 'build.gradle')); } + + var subProjectsAsGradlePaths = subProjects.map(function(p) { return ':' + p.replace(/[/\\]/g, ':') }); + // Write the settings.gradle file. + fs.writeFileSync(path.join(projectPath, 'settings.gradle'), + '// GENERATED FILE - DO NOT EDIT\n' + + 'include ":"\n' + + 'include "' + subProjectsAsGradlePaths.join('"\ninclude "') + '"\n'); + // Update dependencies within build.gradle. + var buildGradle = fs.readFileSync(path.join(projectPath, 'build.gradle'), 'utf8'); + var depsList = ''; + subProjectsAsGradlePaths.forEach(function(p) { + depsList += ' debugCompile project(path: "' + p + '", configuration: "debug")\n'; + depsList += ' releaseCompile project(path: "' + p + '", configuration: "release")\n'; + }); + buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + depsList + ' $2'); + fs.writeFileSync(path.join(projectPath, 'build.gradle'), buildGradle); }); }, http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/blob/c66c317b/bin/templates/project/build.gradle ---------------------------------------------------------------------- diff --git a/bin/templates/project/build.gradle b/bin/templates/project/build.gradle index 41984fa..ce59e32 100644 --- a/bin/templates/project/build.gradle +++ b/bin/templates/project/build.gradle @@ -17,6 +17,8 @@ under the License. */ +// GENERATED FILE! DO NOT EDIT! + import java.util.regex.Pattern import groovy.swing.SwingBuilder @@ -111,11 +113,8 @@ android { dependencies { compile fileTree(dir: 'libs', include: '*.jar') - // https://code.google.com/p/android/issues/detail?id=52962 - for (subproject in getProjectList()) { - releaseCompile project(path: subproject, configuration: 'release') - debugCompile project(path: subproject, configuration: 'debug') - } + // SUB-PROJECT DEPENDENCIES START + // SUB-PROJECT DEPENDENCIES END } @@ -172,17 +171,6 @@ def getVersionCodeFromManifest() { 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 -} - def ensureValueExists(filePath, props, key) { if (props.get(key) == null) { throw new GradleException(filePath + ': Missing key required "' + key + '"') http://git-wip-us.apache.org/repos/asf/cordova-amazon-fireos/blob/c66c317b/bin/templates/project/settings.gradle ---------------------------------------------------------------------- diff --git a/bin/templates/project/settings.gradle b/bin/templates/project/settings.gradle deleted file mode 100644 index baa1714..0000000 --- a/bin/templates/project/settings.gradle +++ /dev/null @@ -1,18 +0,0 @@ -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 ':' --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
