From bb1fa4c3f0cdbc625b2bbc04b6f88788f6ccf49f Mon Sep 17 00:00:00 2001 From: Brad King Date: Fri, 16 Nov 2007 11:01:23 -0500 Subject: [PATCH] BUG: Fix exception handling flag translation to be specific to each VS version. This allows /EHa to be handled correctly for VS 2003. --- Source/cmGlobalVisualStudio7Generator.cxx | 8 ++++++++ Source/cmGlobalVisualStudio8Generator.cxx | 6 ++++++ Source/cmLocalVisualStudio7Generator.cxx | 3 --- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 3556d7939..6c322bbfa 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -813,6 +813,14 @@ static cmVS7FlagTable cmVS7ExtraFlagTable[] = cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue}, {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", 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} }; cmVS7FlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7() diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx index 3ea9f75c0..014fcd332 100644 --- a/Source/cmGlobalVisualStudio8Generator.cxx +++ b/Source/cmGlobalVisualStudio8Generator.cxx @@ -286,6 +286,12 @@ static cmVS7FlagTable cmVS8ExtraFlagTable[] = {"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "", cmVS7FlagTable::UserValueRequired}, // 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} }; cmVS7FlagTable const* cmGlobalVisualStudio8Generator::GetExtraFlagTableVS8() diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index bb3668c1d..18c30077c 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -342,9 +342,6 @@ cmVS7FlagTable cmLocalVisualStudio7GeneratorFlagTable[] = {"EnableFunctionLevelLinking", "Gy", "EnableFunctionLevelLinking", "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}, {"ImproveFloatingPointConsistency", "Op", "ImproveFloatingPointConsistency", "TRUE", 0},