diff --git a/CMakeModules/FindLLVM.cmake b/CMakeModules/FindLLVM.cmake index 8dc064d5d1..351850fb98 100644 --- a/CMakeModules/FindLLVM.cmake +++ b/CMakeModules/FindLLVM.cmake @@ -13,7 +13,8 @@ endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(LLVM HANDLE_COMPONENTS CONFIG_MODE) -if (LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle) +# Demangle only for Windows targets +if (WIN32 AND LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle) add_library(LLVM::Demangle INTERFACE IMPORTED) target_compile_definitions(LLVM::Demangle INTERFACE ${LLVM_DEFINITIONS}) target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS}) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 13de8f567d..c0e90c178b 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -49,8 +49,8 @@ if (NOT TARGET stb::headers) add_library(stb::headers ALIAS stb) endif() -# ItaniumDemangle -if (NOT TARGET LLVM::Demangle) +# ItaniumDemangle (Windows only) +if (WIN32 AND NOT TARGET LLVM::Demangle) add_library(demangle demangle/ItaniumDemangle.cpp) target_include_directories(demangle PUBLIC ./demangle) if (NOT MSVC)