summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2007-12-06 13:40:18 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2007-12-06 13:40:18 (GMT)
commit246e9641807e817f0a6051130128d5433e1b83a6 (patch)
treec4f0c9520188836a2c6d135b52484efd953fa228 /Source/cmLocalVisualStudio7Generator.cxx
parent6d7ca9f9d4b78ac426650c2237a35d1ab0e2bae4 (diff)
downloadCMake-246e9641807e817f0a6051130128d5433e1b83a6.zip
CMake-246e9641807e817f0a6051130128d5433e1b83a6.tar.gz
CMake-246e9641807e817f0a6051130128d5433e1b83a6.tar.bz2
BUG: fix for bug 5455, handle nodefaultlib with more than one lib
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.cxx')
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx19
1 files changed, 18 insertions, 1 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 18c3007..4e7db83 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -365,7 +365,7 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorLinkFlagTable[] =
{"LinkIncremental", "INCREMENTAL:NO", "link incremental", "1", 0},
{"LinkIncremental", "INCREMENTAL:YES", "link incremental", "2", 0},
{"IgnoreDefaultLibraryNames", "NODEFAULTLIB:", "default libs to ignore", "",
- cmVS7FlagTable::UserValue},
+ cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "ignore all default libs",
"TRUE", 0},
{"ModuleDefinitionFile", "DEF:", "add an export def file", "",
@@ -1807,6 +1807,23 @@ cmLocalVisualStudio7GeneratorOptions
// Ignore the user-specified value.
this->FlagMap[entry->IDEName] = entry->value;
}
+ else if(entry->special & cmVS7FlagTable::SemicolonAppendable)
+ {
+ const char *new_value = flag+1+n;
+
+ std::map<cmStdString,cmStdString>::iterator itr;
+ itr = this->FlagMap.find(entry->IDEName);
+ if(itr != this->FlagMap.end())
+ {
+ // Append to old value (if present) with semicolons;
+ itr->second += ";";
+ itr->second += new_value;
+ }
+ else
+ {
+ this->FlagMap[entry->IDEName] = new_value;
+ }
+ }
else
{
// Use the user-specified value.