diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake --- a/llvm/cmake/modules/AddLLVM.cmake +++ b/llvm/cmake/modules/AddLLVM.cmake @@ -1589,6 +1589,10 @@ list(APPEND LLVM_COMPILE_FLAGS "-Wno-gnu-zero-variadic-macro-arguments") endif() + if(MSVC) + list(APPEND LLVM_COMPILE_FLAGS "/execution-charset:utf-8") + endif() + if (NOT DEFINED LLVM_REQUIRES_RTTI) set(LLVM_REQUIRES_RTTI OFF) endif() diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake --- a/llvm/cmake/modules/HandleLLVMOptions.cmake +++ b/llvm/cmake/modules/HandleLLVMOptions.cmake @@ -489,6 +489,9 @@ _UNICODE ) + # Tell MSVC the LLVM sources are UTF-8 encoded. + append("/source-charset:utf-8" CMAKE_C_FLAGS CMAKE_CXX_FLAGS) + if (LLVM_WINSYSROOT) if (NOT CLANG_CL) message(ERROR "LLVM_WINSYSROOT requires clang-cl")