[cmake-commits] hoffman committed cmLocalVisualStudio7Generator.cxx 1.206 1.207 cmLocalVisualStudio7Generator.h 1.44 1.45

cmake-commits at cmake.org cmake-commits at cmake.org
Thu Dec 6 08:40:20 EST 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv6817/Source

Modified Files:
	cmLocalVisualStudio7Generator.cxx 
	cmLocalVisualStudio7Generator.h 
Log Message:
BUG: fix for bug 5455, handle nodefaultlib with more than one lib


Index: cmLocalVisualStudio7Generator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.cxx,v
retrieving revision 1.206
retrieving revision 1.207
diff -u -d -r1.206 -r1.207
--- cmLocalVisualStudio7Generator.cxx	16 Nov 2007 16:01:23 -0000	1.206
+++ cmLocalVisualStudio7Generator.cxx	6 Dec 2007 13:40:18 -0000	1.207
@@ -365,7 +365,7 @@
   {"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 @@
           // 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.

Index: cmLocalVisualStudio7Generator.h
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalVisualStudio7Generator.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- cmLocalVisualStudio7Generator.h	12 Nov 2007 20:42:37 -0000	1.44
+++ cmLocalVisualStudio7Generator.h	6 Dec 2007 13:40:18 -0000	1.45
@@ -137,6 +137,10 @@
     UserIgnored  = (1<<1), // ignore any user value
     UserRequired = (1<<2), // match only when user value is non-empty
     Continue     = (1<<3), // continue looking for matching entries
+    SemicolonAppendable = (1<<4), // a flag that if specified multiple times
+                                  // should have its value appended to the
+                                  // old value with semicolons (e.g.
+                                  // /NODEFAULTLIB: => IgnoreDefaultLibraryNames)
 
     UserValueIgnored  = UserValue | UserIgnored,
     UserValueRequired = UserValue | UserRequired



More information about the Cmake-commits mailing list