<div dir="ltr">It'd be really handy if we could sink this complexity down into the LLVM cmake.  However, I realize that's hard to do for the standalone lldb build.</div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Wed, May 28, 2014 at 10:06 AM, Todd Fiala <span dir="ltr"><<a href="mailto:todd.fiala@gmail.com" target="_blank">todd.fiala@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: tfiala<br>
Date: Wed May 28 12:06:04 2014<br>
New Revision: 209752<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=209752&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=209752&view=rev</a><br>
Log:<br>
Cmake build changes.<br>
<br>
Disables exception handling in LLDB, using appropriate compiler<br>
flags depending on the platform. This is consistent with the build<br>
of LLVM, should improve performance, and also removes a substantial number<br>
of warnings from the Windows build.<br>
<br>
See <a href="http://reviews.llvm.org/D3929" target="_blank">http://reviews.llvm.org/D3929</a> for more details.<br>
<br>
Change by Zachary Turner<br>
<br>
<br>
Modified:<br>
    lldb/trunk/CMakeLists.txt<br>
<br>
Modified: lldb/trunk/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=209752&r1=209751&r2=209752&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=209752&r1=209751&r2=209752&view=diff</a><br>

==============================================================================<br>
--- lldb/trunk/CMakeLists.txt (original)<br>
+++ lldb/trunk/CMakeLists.txt Wed May 28 12:06:04 2014<br>
@@ -153,6 +153,7 @@ if( MSVC )<br>
     -wd4068 # Suppress 'warning C4068: unknown pragma'<br>
     -wd4150 # Suppress 'warning C4150: deletion of pointer to incomplete type'<br>
     -wd4521 # Suppress 'warning C4521: 'type' : multiple copy constructors specified'<br>
+    -wd4530 # Suppress 'warning C4530: C++ exception handler used, but unwind semantics are not enabled.'<br>
   )<br>
 endif()<br>
<br>
@@ -290,21 +291,28 @@ if (CMAKE_SYSTEM_NAME MATCHES "Darwin")<br>
   ${DEBUG_SYMBOLS_LIBRARY})<br>
 endif()<br>
<br>
+if(LLDB_REQUIRES_EH)<br>
+  set(LLDB_REQUIRES_RTTI ON)<br>
+else()<br>
+  if(LLVM_COMPILER_IS_GCC_COMPATIBLE)<br>
+    set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} -fno-exceptions")<br>
+  elseif(MSVC)<br>
+    add_definitions( -D_HAS_EXCEPTIONS=0 )<br>
+    set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} /EHs-c-")<br>
+  endif()<br>
+endif()<br>
+<br>
 # Disable RTTI by default<br>
 if(NOT LLDB_REQUIRES_RTTI)<br>
-  if (NOT MSVC)<br>
-    if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR<br>
-        "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")<br>
-      #gnu && clang compilers<br>
-      set(LLDB_COMPILE_FLAGS "-fno-rtti")<br>
-    endif() #GNU or CLANG<br>
-  else()<br>
-    #MSVC<br>
-    set(LLDB_COMPILE_FLAGS "/GR-")<br>
-  endif() #NOT MSVC<br>
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLDB_COMPILE_FLAGS}")<br>
+  if (LLVM_COMPILER_IS_GCC_COMPATIBLE)<br>
+    set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} -fno-rtti")<br>
+  elseif(MSVC)<br>
+    set(LLDB_COMPILE_FLAGS "${LLDB_COMPILE_FLAGS} /GR-")<br>
+  endif()<br>
 endif()<br>
<br>
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LLDB_COMPILE_FLAGS}")<br>
+<br>
 #add_subdirectory(include)<br>
 add_subdirectory(docs)<br>
 if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")<br>
<br>
<br>
_______________________________________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@cs.uiuc.edu">lldb-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits</a><br>
</blockquote></div><br></div>