CREATE_PROJECT: Fix module.mk parsing.

Formerly create_project incorrectly assumed that a given object file is only
present once in an module.mk file. This is not the case for backends/module.mk
for example. There the Windows FS object files are in two different if blocks.
In this particular case it resulted in the object file being added to both the
include list and the exclude list.

Now the module.mk handler prefers files being in the include list.
This commit is contained in:
Johannes Schickel 2011-05-06 20:41:21 +02:00
parent 29bc72a627
commit dea5aa8a20

View File

@ -1225,10 +1225,20 @@ void ProjectProvider::createModuleList(const std::string &moduleDir, const Strin
tokens = tokenize(line);
i = tokens.begin();
} else {
if (shouldInclude.top())
includeList.push_back(moduleDir + "/" + unifyPath(*i));
else
excludeList.push_back(moduleDir + "/" + unifyPath(*i));
const std::string filename = moduleDir + "/" + unifyPath(*i);
if (shouldInclude.top()) {
// In case we should include a file, we need to make
// sure it is not in the exclude list already. If it
// is we just drop it from the exclude list.
excludeList.remove(filename);
includeList.push_back(filename);
} else if (std::find(includeList.begin(), includeList.end(), filename) == includeList.end()) {
// We only add the file to the exclude list in case it
// has not yet been added to the include list.
excludeList.push_back(filename);
}
++i;
}
}