Fix for bug #12413, nmake did not handle targets with + in the name.

If you had a + in the name of a target with nmake, it created a variable
in the makefile that used + in its name, which is not allowed by nmake.
To make the implementation easier, + is now not allowed for any make
generators as part of a variable name.
This commit is contained in:
Bill Hoffman 2011-08-24 16:08:31 -04:00
parent d7184e0e4d
commit 281f51e063
1 changed files with 2 additions and 0 deletions

View File

@ -1276,6 +1276,7 @@ cmLocalUnixMakefileGenerator3
// and there are no "." charactors in the string, then return the
// unmodified combination.
if((!this->MakefileVariableSize && unmodified.find('.') == s.npos)
&& (!this->MakefileVariableSize && unmodified.find('+') == s.npos)
&& (!this->MakefileVariableSize && unmodified.find('-') == s.npos))
{
return unmodified;
@ -1297,6 +1298,7 @@ cmLocalUnixMakefileGenerator3
{
cmSystemTools::ReplaceString(ret, ".", "_");
cmSystemTools::ReplaceString(ret, "-", "__");
cmSystemTools::ReplaceString(ret, "+", "___");
int ni = 0;
char buffer[5];
// make sure the _ version is not already used, if