diff options
author | Johannes Schickel | 2011-05-06 20:41:21 +0200 |
---|---|---|
committer | Johannes Schickel | 2011-05-06 20:41:21 +0200 |
commit | dea5aa8a2017ec9b9abc16b34683a1e37aafbe46 (patch) | |
tree | 93b441a0f5ce435f0326c5f8fd62362d3d328d24 /devtools | |
parent | 29bc72a627ece0ba87509585651f25765bb64865 (diff) | |
download | scummvm-rg350-dea5aa8a2017ec9b9abc16b34683a1e37aafbe46.tar.gz scummvm-rg350-dea5aa8a2017ec9b9abc16b34683a1e37aafbe46.tar.bz2 scummvm-rg350-dea5aa8a2017ec9b9abc16b34683a1e37aafbe46.zip |
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.
Diffstat (limited to 'devtools')
-rw-r--r-- | devtools/create_project/create_project.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp index 7d112c7ffe..de82dd1698 100644 --- a/devtools/create_project/create_project.cpp +++ b/devtools/create_project/create_project.cpp @@ -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; } } |