smeenai created this revision.
Herald added a subscriber: mgorny.

libc++abi is never the right option for LIBCXX_TARGETING_MSVC, since it
targets the Itanium ABI, whereas MSVC uses the Microsoft ABI. Make the
default ABI be vcruntime when targeting MSVC even if libc++abi is
present in the tree.


https://reviews.llvm.org/D32320

Files:
  CMakeLists.txt


Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -113,27 +113,29 @@
 
 # Setup the default options if LIBCXX_CXX_ABI is not specified.
 if (LIBCXX_CXX_ABI STREQUAL "default")
-  find_path(
-    LIBCXX_LIBCXXABI_INCLUDES_INTERNAL
-    cxxabi.h
-    PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxxabi/include
-          ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
-    NO_DEFAULT_PATH
-  )
-  if ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND
-      IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
-    set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
-    set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
-    set(LIBCXX_CXX_ABI_INTREE 1)
+  if (LIBCXX_TARGETING_MSVC)
+    # FIXME: Figure out how to configure the ABI library on Windows.
+    set(LIBCXX_CXX_ABI_LIBNAME "vcruntime")
   else()
-    if (LIBCXX_TARGETING_MSVC)
-      # FIXME: Figure out how to configure the ABI library on Windows.
-      set(LIBCXX_CXX_ABI_LIBNAME "vcruntime")
-    elseif(APPLE)
+    find_path(
+      LIBCXX_LIBCXXABI_INCLUDES_INTERNAL
+      cxxabi.h
+      PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxxabi/include
+            ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
+      NO_DEFAULT_PATH
+    )
+    if ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND
+        IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
       set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
-      set(LIBCXX_CXX_ABI_SYSTEM 1)
+      set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
+      set(LIBCXX_CXX_ABI_INTREE 1)
     else()
-      set(LIBCXX_CXX_ABI_LIBNAME "default")
+      if (APPLE)
+        set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
+        set(LIBCXX_CXX_ABI_SYSTEM 1)
+      else()
+        set(LIBCXX_CXX_ABI_LIBNAME "default")
+      endif()
     endif()
   endif()
 else()


Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -113,27 +113,29 @@
 
 # Setup the default options if LIBCXX_CXX_ABI is not specified.
 if (LIBCXX_CXX_ABI STREQUAL "default")
-  find_path(
-    LIBCXX_LIBCXXABI_INCLUDES_INTERNAL
-    cxxabi.h
-    PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxxabi/include
-          ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
-    NO_DEFAULT_PATH
-  )
-  if ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND
-      IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
-    set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
-    set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
-    set(LIBCXX_CXX_ABI_INTREE 1)
+  if (LIBCXX_TARGETING_MSVC)
+    # FIXME: Figure out how to configure the ABI library on Windows.
+    set(LIBCXX_CXX_ABI_LIBNAME "vcruntime")
   else()
-    if (LIBCXX_TARGETING_MSVC)
-      # FIXME: Figure out how to configure the ABI library on Windows.
-      set(LIBCXX_CXX_ABI_LIBNAME "vcruntime")
-    elseif(APPLE)
+    find_path(
+      LIBCXX_LIBCXXABI_INCLUDES_INTERNAL
+      cxxabi.h
+      PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxxabi/include
+            ${LLVM_MAIN_SRC_DIR}/runtimes/libcxxabi/include
+      NO_DEFAULT_PATH
+    )
+    if ((NOT LIBCXX_STANDALONE_BUILD OR HAVE_LIBCXXABI) AND
+        IS_DIRECTORY "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
       set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
-      set(LIBCXX_CXX_ABI_SYSTEM 1)
+      set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LIBCXX_LIBCXXABI_INCLUDES_INTERNAL}")
+      set(LIBCXX_CXX_ABI_INTREE 1)
     else()
-      set(LIBCXX_CXX_ABI_LIBNAME "default")
+      if (APPLE)
+        set(LIBCXX_CXX_ABI_LIBNAME "libcxxabi")
+        set(LIBCXX_CXX_ABI_SYSTEM 1)
+      else()
+        set(LIBCXX_CXX_ABI_LIBNAME "default")
+      endif()
     endif()
   endif()
 else()
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to