[WIN32SS:GDI] Add a sanity assert
[reactos.git] / toolchain-msvc.cmake
1
2 # pass variables necessary for the toolchain (needed for try_compile)
3 set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES ARCH USE_CLANG_CL)
4
5 # the name of the target operating system
6 set(CMAKE_SYSTEM_NAME Windows)
7 set(CMAKE_SYSTEM_PROCESSOR i686)
8
9 # set the generator platform
10 if (NOT DEFINED CMAKE_GENERATOR_PLATFORM)
11 if(ARCH STREQUAL "amd64")
12 set(CMAKE_GENERATOR_PLATFORM "x64")
13 elseif(ARCH STREQUAL "arm")
14 set(CMAKE_GENERATOR_PLATFORM "ARM")
15 elseif(ARCH STREQUAL "arm64")
16 set(CMAKE_GENERATOR_PLATFORM "ARM64")
17 else()
18 set(CMAKE_GENERATOR_PLATFORM "Win32")
19 endif()
20 endif()
21
22 if(USE_CLANG_CL)
23 set(CMAKE_C_COMPILER clang-cl)
24 set(CMAKE_CXX_COMPILER clang-cl)
25 # Clang now defaults to lld-link which we're not compatible with yet
26 set(CMAKE_LINKER link)
27 # Explicitly set target so CMake doesn't get confused
28 if (ARCH STREQUAL "amd64")
29 set(CMAKE_C_COMPILER_TARGET "x86_64-pc-windows-msvc")
30 set(CMAKE_CXX_COMPILER_TARGET "x86_64-pc-windows-msvc")
31 elseif(ARCH STREQUAL "arm")
32 set(CMAKE_C_COMPILER_TARGET "arm-pc-windows-msvc")
33 set(CMAKE_CXX_COMPILER_TARGET "arm-pc-windows-msvc")
34 elseif(ARCH STREQUAL "arm64")
35 set(CMAKE_C_COMPILER_TARGET "arm64-pc-windows-msvc")
36 set(CMAKE_CXX_COMPILER_TARGET "arm64-pc-windows-msvc")
37 else()
38 set(CMAKE_C_COMPILER_TARGET "i686-pc-windows-msvc")
39 set(CMAKE_CXX_COMPILER_TARGET "i686-pc-windows-msvc")
40 endif()
41 else()
42 set(CMAKE_C_COMPILER cl)
43 set(CMAKE_CXX_COMPILER cl)
44 endif()
45
46 set(CMAKE_MC_COMPILER mc)
47 set(CMAKE_RC_COMPILER rc)
48 if(ARCH STREQUAL "amd64")
49 set(CMAKE_ASM_MASM_COMPILER ml64)
50 set(CMAKE_ASM_MASM_FLAGS_INIT "/Cp")
51 elseif(ARCH STREQUAL "arm")
52 set(CMAKE_ASM_MASM_COMPILER armasm)
53 elseif(ARCH STREQUAL "arm64")
54 set(CMAKE_ASM_MASM_COMPILER armasm64)
55 else()
56 set(CMAKE_ASM_MASM_COMPILER ml)
57 set(CMAKE_ASM_MASM_FLAGS_INIT "/Cp")
58 endif()
59
60 set(CMAKE_C_STANDARD_LIBRARIES "" CACHE INTERNAL "")
61
62 set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_LIST_DIR}/overrides-msvc.cmake")