BUG: Fix exception handling flag translation to be specific to each VS version. This allows /EHa to be handled correctly for VS 2003.

This commit is contained in:
Brad King 2007-11-16 11:01:23 -05:00
parent 5cd4f2a661
commit bb1fa4c3f0
3 changed files with 14 additions and 3 deletions

View File

@ -813,6 +813,14 @@ static cmVS7FlagTable cmVS7ExtraFlagTable[] =
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
cmVS7FlagTable::UserValueRequired}, cmVS7FlagTable::UserValueRequired},
// Exception handling mode. If no entries match, it will be FALSE.
{"ExceptionHandling", "GX", "enable c++ exceptions", "TRUE", 0},
{"ExceptionHandling", "EHsc", "enable c++ exceptions", "TRUE", 0},
// The EHa option does not have an IDE setting. Let it go to false,
// and have EHa passed on the command line by leaving out the table
// entry.
{0,0,0,0,0} {0,0,0,0,0}
}; };
cmVS7FlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7() cmVS7FlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7()

View File

@ -286,6 +286,12 @@ static cmVS7FlagTable cmVS8ExtraFlagTable[] =
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
cmVS7FlagTable::UserValueRequired}, cmVS7FlagTable::UserValueRequired},
// There is no YX option in the VS8 IDE. // There is no YX option in the VS8 IDE.
// Exception handling mode. If no entries match, it will be FALSE.
{"ExceptionHandling", "GX", "enable c++ exceptions", "1", 0},
{"ExceptionHandling", "EHsc", "enable c++ exceptions", "1", 0},
{"ExceptionHandling", "EHa", "enable SEH exceptions", "2", 0},
{0,0,0,0,0} {0,0,0,0,0}
}; };
cmVS7FlagTable const* cmGlobalVisualStudio8Generator::GetExtraFlagTableVS8() cmVS7FlagTable const* cmGlobalVisualStudio8Generator::GetExtraFlagTableVS8()

View File

@ -342,9 +342,6 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[] =
{"EnableFunctionLevelLinking", "Gy", {"EnableFunctionLevelLinking", "Gy",
"EnableFunctionLevelLinking", "TRUE", 0}, "EnableFunctionLevelLinking", "TRUE", 0},
{"EnableIntrinsicFunctions", "Oi", "EnableIntrinsicFunctions", "TRUE", 0}, {"EnableIntrinsicFunctions", "Oi", "EnableIntrinsicFunctions", "TRUE", 0},
{"ExceptionHandling", "EHsc", "enable c++ exceptions", "TRUE", 0},
{"ExceptionHandling", "EHa", "enable c++ exceptions", "2", 0},
{"ExceptionHandling", "GX", "enable c++ exceptions", "TRUE", 0},
{"GlobalOptimizations", "Og", "Global Optimize", "TRUE", 0}, {"GlobalOptimizations", "Og", "Global Optimize", "TRUE", 0},
{"ImproveFloatingPointConsistency", "Op", {"ImproveFloatingPointConsistency", "Op",
"ImproveFloatingPointConsistency", "TRUE", 0}, "ImproveFloatingPointConsistency", "TRUE", 0},