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:
Deepanshu Gupta 2014-07-15 17:22:00 -07:00
parent f6771f631b
commit 9c5564e060
1 changed files with 22 additions and 1 deletions

View File

@ -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");