forked from github/cordova-android
CB-8373 Add gradle plugin includes based on project.properties (where plugman now puts them)
This commit is contained in:
parent
8cf8da5776
commit
7e7dc7694c
25
bin/templates/cordova/lib/build.js
vendored
25
bin/templates/cordova/lib/build.js
vendored
@ -99,13 +99,22 @@ function extractProjectNameFromManifest(projectPath) {
|
|||||||
|
|
||||||
function extractSubProjectPaths() {
|
function extractSubProjectPaths() {
|
||||||
var data = fs.readFileSync(path.join(ROOT, 'project.properties'), 'utf8');
|
var data = fs.readFileSync(path.join(ROOT, 'project.properties'), 'utf8');
|
||||||
var ret = {};
|
var libsSet = {};
|
||||||
var r = /^\s*android\.library\.reference\.\d+=(.*)(?:\s|$)/mg
|
var r = /^\s*android\.library\.reference\.\d+=(.*)(?:\s|$)/mg
|
||||||
var m;
|
var m;
|
||||||
while (m = r.exec(data)) {
|
while (m = r.exec(data)) {
|
||||||
ret[m[1]] = 1;
|
libsSet[m[1]] = 1;
|
||||||
}
|
}
|
||||||
return Object.keys(ret);
|
var gradleSet = {};
|
||||||
|
r = /^\s*cordova\.gradle\.include\.\d+=(.*)(?:\s|$)/mg
|
||||||
|
m;
|
||||||
|
while (m = r.exec(data)) {
|
||||||
|
gradleSet[m[1]] = 1;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
libs: Object.keys(libsSet),
|
||||||
|
gradleIncludes: Object.keys(gradleSet)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var builders = {
|
var builders = {
|
||||||
@ -134,7 +143,7 @@ var builders = {
|
|||||||
fs.writeFileSync(path.join(projectPath, 'local.properties'), LOCAL_PROPERTIES_TEMPLATE);
|
fs.writeFileSync(path.join(projectPath, 'local.properties'), LOCAL_PROPERTIES_TEMPLATE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var subProjects = extractSubProjectPaths();
|
var subProjects = extractSubProjectPaths().libs;
|
||||||
writeBuildXml(ROOT);
|
writeBuildXml(ROOT);
|
||||||
for (var i = 0; i < subProjects.length; ++i) {
|
for (var i = 0; i < subProjects.length; ++i) {
|
||||||
writeBuildXml(path.join(ROOT, subProjects[i]));
|
writeBuildXml(path.join(ROOT, subProjects[i]));
|
||||||
@ -224,7 +233,8 @@ var builders = {
|
|||||||
|
|
||||||
// Update the version of build.gradle in each dependent library.
|
// Update the version of build.gradle in each dependent library.
|
||||||
var pluginBuildGradle = path.join(projectPath, 'cordova', 'lib', 'plugin-build.gradle');
|
var pluginBuildGradle = path.join(projectPath, 'cordova', 'lib', 'plugin-build.gradle');
|
||||||
var subProjects = extractSubProjectPaths();
|
var propertiesObj = extractSubProjectPaths();
|
||||||
|
var subProjects = propertiesObj.libs;
|
||||||
for (var i = 0; i < subProjects.length; ++i) {
|
for (var i = 0; i < subProjects.length; ++i) {
|
||||||
if (subProjects[i] !== 'CordovaLib') {
|
if (subProjects[i] !== 'CordovaLib') {
|
||||||
shell.cp('-f', pluginBuildGradle, path.join(ROOT, subProjects[i], 'build.gradle'));
|
shell.cp('-f', pluginBuildGradle, path.join(ROOT, subProjects[i], 'build.gradle'));
|
||||||
@ -245,6 +255,11 @@ var builders = {
|
|||||||
depsList += ' releaseCompile project(path: "' + p + '", configuration: "release")\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');
|
buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + depsList + ' $2');
|
||||||
|
var includeList = '';
|
||||||
|
propertiesObj.gradleIncludes.forEach(function(includePath) {
|
||||||
|
includeList += 'apply from: "' + includePath + '"\n';
|
||||||
|
});
|
||||||
|
buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + includeList + '$2');
|
||||||
fs.writeFileSync(path.join(projectPath, 'build.gradle'), buildGradle);
|
fs.writeFileSync(path.join(projectPath, 'build.gradle'), buildGradle);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user