From b0b546d44777eb1fa25995384876bd14a006a929 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 11 Dec 2024 12:49:06 -0500 Subject: [PATCH] [libc++abi] Provide an explicit error when trying to build for MSVC (#119370) Fixes #119322 --- libcxxabi/CMakeLists.txt | 5 +++++ libunwind/CMakeLists.txt | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt index da0e8b286cdd..158d61ff4fcb 100644 --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -34,6 +34,11 @@ MACRO_ENSURE_OUT_OF_SOURCE_BUILD( build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there." ) +if (MSVC) + message(FATAL_ERROR "Libc++abi can't be built for MSVC targets, and doing so is pointless anyway because such " + "targets must use the MS C++ ABI, and libc++abi provides the Itanium C++ ABI.") +endif() + #=============================================================================== # Setup CMake Options #=============================================================================== diff --git a/libunwind/CMakeLists.txt b/libunwind/CMakeLists.txt index ea06dc8a67b9..3c8499fd3346 100644 --- a/libunwind/CMakeLists.txt +++ b/libunwind/CMakeLists.txt @@ -24,6 +24,11 @@ set(LIBUNWIND_LIBCXX_PATH "${CMAKE_CURRENT_LIST_DIR}/../libcxx" CACHE PATH include(GNUInstallDirs) include(CheckSymbolExists) +if (MSVC) + message(FATAL_ERROR "Libunwind doesn't build for MSVC targets, and that is almost certainly not what you want to do " + "anyway since libunwind is tied to the Itanium C++ ABI, and MSVC targets must use the MS C++ ABI.") +endif() + #=============================================================================== # Setup CMake Options #===============================================================================