BUG: fix DLL and DEF being lost and add real support for /DEF: /DLL does not have an entry so just let it pass to advanced command line

This commit is contained in:
Bill Hoffman 2007-07-31 11:23:15 -04:00
parent 7d34b7de7c
commit be1b19ada0
1 changed files with 4 additions and 3 deletions

View File

@ -346,6 +346,8 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorLinkFlagTable[] =
cmVS7FlagTable::UserValue}, cmVS7FlagTable::UserValue},
{"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "ignore all default libs", {"IgnoreAllDefaultLibraries", "NODEFAULTLIB", "ignore all default libs",
"TRUE", 0}, "TRUE", 0},
{"ModuleDefinitionFile", "DEF:", "add an export def file", "",
cmVS7FlagTable::UserValue},
{0,0,0,0,0} {0,0,0,0,0}
}; };
@ -1726,7 +1728,8 @@ void cmLocalVisualStudio7GeneratorOptions::HandleFlag(const char* flag)
if(flag[0] == '-' || flag[0] == '/') if(flag[0] == '-' || flag[0] == '/')
{ {
// Look for preprocessor definitions. // Look for preprocessor definitions.
if(flag[1] == 'D') if(flag[1] == 'D' && strncmp(flag+1, "DEF:", 4) !=0
&& strcmp(flag+1, "DLL") != 0)
{ {
if(flag[2] == '\0') if(flag[2] == '\0')
{ {
@ -1760,7 +1763,6 @@ void cmLocalVisualStudio7GeneratorOptions::HandleFlag(const char* flag)
return; return;
} }
} }
// This option is not known. Store it in the output flags. // This option is not known. Store it in the output flags.
this->FlagString += " "; this->FlagString += " ";
this->FlagString += this->FlagString +=
@ -1901,6 +1903,5 @@ GetTargetObjectFileDirectories(cmTarget* target,
dir += this->GetTargetDirectory(*target); dir += this->GetTargetDirectory(*target);
dir += "/"; dir += "/";
dir += this->GetGlobalGenerator()->GetCMakeCFGInitDirectory(); dir += this->GetGlobalGenerator()->GetCMakeCFGInitDirectory();
std::cerr << dir << "\n";
dirs.push_back(dir); dirs.push_back(dir);
} }