Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 29 additions & 21 deletions Windows.Clang.toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ option(TOOLCHAIN_ADD_VS_NINJA_PATH "Whether the toolchain should add the path to

set(UNUSED ${CMAKE_TOOLCHAIN_FILE}) # Note: only to prevent cmake unused variable warninig
list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
CMAKE_MT
CMAKE_RC_COMPILER
CMAKE_SYSTEM_PROCESSOR
CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
CMAKE_VS_PRODUCTS
Expand Down Expand Up @@ -183,32 +187,36 @@ else()
message(FATAL_ERROR "Unable identify compiler architecture for CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR}")
endif()

set(TOOLCHAIN_C_COMPILER_EXE clang.exe)
if(CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL MSVC)
set(TOOLCHAIN_C_COMPILER_EXE clang-cl.exe)
if(NOT CMAKE_C_COMPILER)
set(TOOLCHAIN_C_COMPILER_EXE clang.exe)
if(CMAKE_C_COMPILER_FRONTEND_VARIANT STREQUAL MSVC)
set(TOOLCHAIN_C_COMPILER_EXE clang-cl.exe)
endif()

find_program(CMAKE_C_COMPILER
${TOOLCHAIN_C_COMPILER_EXE}
HINTS
"${VS_INSTALLATION_PATH}/VC/Tools/Llvm/x64/bin"
"$ENV{ProgramFiles}/LLVM/bin"
REQUIRED
)
endif()

find_program(CMAKE_C_COMPILER
${TOOLCHAIN_C_COMPILER_EXE}
HINTS
"${VS_INSTALLATION_PATH}/VC/Tools/Llvm/x64/bin"
"$ENV{ProgramFiles}/LLVM/bin"
REQUIRED
)
if(NOT CMAKE_CXX_COMPILER)
set(TOOLCHAIN_CXX_COMPILER_EXE clang++.exe)
if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL MSVC)
set(TOOLCHAIN_CXX_COMPILER_EXE clang-cl.exe)
endif()

set(TOOLCHAIN_CXX_COMPILER_EXE clang++.exe)
if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL MSVC)
set(TOOLCHAIN_CXX_COMPILER_EXE clang-cl.exe)
find_program(CMAKE_CXX_COMPILER
${TOOLCHAIN_CXX_COMPILER_EXE}
HINTS
"${VS_INSTALLATION_PATH}/VC/Tools/Llvm/x64/bin"
"$ENV{ProgramFiles}/LLVM/bin"
REQUIRED
)
endif()

find_program(CMAKE_CXX_COMPILER
${TOOLCHAIN_CXX_COMPILER_EXE}
HINTS
"${VS_INSTALLATION_PATH}/VC/Tools/Llvm/x64/bin"
"$ENV{ProgramFiles}/LLVM/bin"
REQUIRED
)

if(CMAKE_SYSTEM_PROCESSOR STREQUAL ARM)
set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /EHsc")
endif()
Expand Down
11 changes: 8 additions & 3 deletions Windows.Kits.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,14 @@ if(NOT EXISTS ${WINDOWS_KITS_LIB_PATH})
message(FATAL_ERROR "Windows SDK ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION} cannot be found: Folder '${WINDOWS_KITS_LIB_PATH}' does not exist.")
endif()

set(CMAKE_MT "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/mt.exe")
set(CMAKE_RC_COMPILER_INIT "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/rc.exe")
set(CMAKE_RC_FLAGS_INIT "/nologo")
if(NOT CMAKE_MT)
set(CMAKE_MT "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/mt.exe")
endif()

if((NOT CMAKE_RC_COMPILER) AND (NOT CMAKE_RC_COMPILER_INIT))
set(CMAKE_RC_COMPILER_INIT "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/rc.exe")
set(CMAKE_RC_FLAGS_INIT "/nologo")
endif()

set(MIDL_COMPILER "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/midl.exe")
set(MDMERGE_TOOL "${WINDOWS_KITS_BIN_PATH}/${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}/mdmerge.exe")
Expand Down
4 changes: 4 additions & 0 deletions Windows.MSVC.toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ option(TOOLCHAIN_ADD_VS_NINJA_PATH "Whether the toolchain should add the path to

set(UNUSED ${CMAKE_TOOLCHAIN_FILE}) # Note: only to prevent cmake unused variable warninig
list(APPEND CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
CMAKE_C_COMPILER
CMAKE_CXX_COMPILER
CMAKE_MT
CMAKE_RC_COMPILER
CMAKE_SYSTEM_PROCESSOR
CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
CMAKE_VS_PRODUCTS
Expand Down