diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-02-16 20:22:15 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-02-26 12:16:13 +0100 |
| commit | c7034976554b2a4e250f551d609b01bafbad8f51 (patch) | |
| tree | 5179bdce6d627d10fe6059733400a8e572792a54 | |
| parent | 0ce6a573a6c96ee50c028f75ca852da892be6b24 (diff) | |
Build: Partial support for clang-cl
(cherry picked from commit 0b846b2107569209d6bb0106f3075b624c713244)
| -rw-r--r-- | cmake/compiler/msvc/settings.cmake | 11 | ||||
| -rw-r--r-- | cmake/platform/win/settings.cmake | 2 | ||||
| -rw-r--r-- | src/common/Debugging/WheatyExceptionReport.cpp | 6 |
3 files changed, 14 insertions, 5 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index 2d59242d32f..4ea2d764e2e 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -4,10 +4,13 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(MSVC_EXPECTED_VERSION 19.30) set(MSVC_EXPECTED_VERSION_STRING "Microsoft Visual Studio 2022 17") -if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS MSVC_EXPECTED_VERSION) - message(FATAL_ERROR "MSVC: TrinityCore requires version ${MSVC_EXPECTED_VERSION} (${MSVC_EXPECTED_VERSION_STRING}) to build but found ${CMAKE_CXX_COMPILER_VERSION}") -else() - message(STATUS "MSVC: Minimum version required is ${MSVC_EXPECTED_VERSION}, found ${CMAKE_CXX_COMPILER_VERSION} - ok!") +# This file is also used by compilers that pretend to be MSVC but report their own version number - don't version check them +if(NOT CMAKE_CXX_COMPILER_FRONTEND_VARIANT) + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS MSVC_EXPECTED_VERSION) + message(FATAL_ERROR "MSVC: TrinityCore requires version ${MSVC_EXPECTED_VERSION} (${MSVC_EXPECTED_VERSION_STRING}) to build but found ${CMAKE_CXX_COMPILER_VERSION}") + else() + message(STATUS "MSVC: Minimum version required is ${MSVC_EXPECTED_VERSION}, found ${CMAKE_CXX_COMPILER_VERSION} - ok!") + endif() endif() # CMake sets warning flags by default, however we manage it manually diff --git a/cmake/platform/win/settings.cmake b/cmake/platform/win/settings.cmake index 16064584e24..63c118f76e0 100644 --- a/cmake/platform/win/settings.cmake +++ b/cmake/platform/win/settings.cmake @@ -4,7 +4,7 @@ add_definitions(-DWIN32_LEAN_AND_MEAN) add_definitions(-DNOMINMAX) add_definitions(-DTRINITY_REQUIRED_WINDOWS_BUILD=18362) -if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") +if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") include(${CMAKE_SOURCE_DIR}/cmake/compiler/msvc/settings.cmake) elseif(CMAKE_CXX_PLATFORM_ID MATCHES "MinGW") include(${CMAKE_SOURCE_DIR}/cmake/compiler/mingw/settings.cmake) diff --git a/src/common/Debugging/WheatyExceptionReport.cpp b/src/common/Debugging/WheatyExceptionReport.cpp index 943c0699381..87e641b639e 100644 --- a/src/common/Debugging/WheatyExceptionReport.cpp +++ b/src/common/Debugging/WheatyExceptionReport.cpp @@ -8,6 +8,12 @@ #include "Errors.h" #include "GitRevision.h" #include <algorithm> + +#ifdef __clang__ +// clang-cl doesn't have these hardcoded types available, correct ehdata_forceinclude.h that relies on it +#define _ThrowInfo ThrowInfo +#endif + #include <ehdata.h> #include <rttidata.h> #include <tlhelp32.h> |
