summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-11-16 16:01:23 (GMT)
committerBrad King <brad.king@kitware.com>2007-11-16 16:01:23 (GMT)
commitbb1fa4c3f0cdbc625b2bbc04b6f88788f6ccf49f (patch)
tree5b8b3cbfc2fbd50f98aa272f71f0990ca71f0076
parent5cd4f2a6617e9f92e797eb86ca3555b94b5116ea (diff)
downloadCMake-bb1fa4c3f0cdbc625b2bbc04b6f88788f6ccf49f.zip
CMake-bb1fa4c3f0cdbc625b2bbc04b6f88788f6ccf49f.tar.gz
CMake-bb1fa4c3f0cdbc625b2bbc04b6f88788f6ccf49f.tar.bz2
BUG: Fix exception handling flag translation to be specific to each VS version. This allows /EHa to be handled correctly for VS 2003.
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx8
-rw-r--r--Source/cmGlobalVisualStudio8Generator.cxx6
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx3
3 files changed, 14 insertions, 3 deletions
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 3556d79..6c322bb 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 3ea9f75..014fcd3 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 bb3668c..18c3007 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},