forked from openkylin/platform_build
Fix incremental builds for SDK.
Atree used to output files without escaping the filenames. This resulted in breaks for incremental builds when filenames contained '$' symbol. The change fixes this by escaping the filename properly. Change-Id: I957787b1b3536c64ba6fcb5b4bb5fc60e8b04452
This commit is contained in:
parent
f6771f631b
commit
9c5564e060
|
@ -90,6 +90,26 @@ debug_printf(const char* format, ...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Escape the filename so that it can be added to the makefile properly.
|
||||||
|
static string
|
||||||
|
escape_filename(const string name)
|
||||||
|
{
|
||||||
|
ostringstream new_name;
|
||||||
|
for (string::const_iterator iter = name.begin(); iter != name.end(); ++iter)
|
||||||
|
{
|
||||||
|
switch (*iter)
|
||||||
|
{
|
||||||
|
case '$':
|
||||||
|
new_name << "$$";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
new_name << *iter;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new_name.str();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char* const* argv)
|
main(int argc, char* const* argv)
|
||||||
{
|
{
|
||||||
|
@ -324,7 +344,8 @@ main(int argc, char* const* argv)
|
||||||
for (vector<FileRecord>::iterator it=files.begin();
|
for (vector<FileRecord>::iterator it=files.begin();
|
||||||
it!=files.end(); it++) {
|
it!=files.end(); it++) {
|
||||||
if (!it->sourceIsDir) {
|
if (!it->sourceIsDir) {
|
||||||
fprintf(f, "%s \\\n", it->sourcePath.c_str());
|
fprintf(f, "%s \\\n",
|
||||||
|
escape_filename(it->sourcePath).c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
|
|
Loading…
Reference in New Issue