|
1 | 1 | set(CMAKE_SYSTEM_NAME Windows) |
2 | | -set(CMAKE_SYSTEM_PROCESSOR arm64) |
| 2 | +set(CMAKE_SYSTEM_PROCESSOR ARM64) |
3 | 3 |
|
4 | | -set(target arm64-pc-windows-msvc) |
| 4 | +# Look for cl.exe in the Visual Studio installation directories |
| 5 | +set(PROGRAMFILES "$ENV{ProgramFiles}") |
| 6 | +set(PROGRAMFILES_X86 "$ENV{ProgramFiles\(x86\)}") |
5 | 7 |
|
6 | | -set(CMAKE_C_COMPILER clang) |
7 | | -set(CMAKE_CXX_COMPILER clang++) |
| 8 | +set(VS_INSTALL_PATHS |
| 9 | + "${PROGRAMFILES_X86}/Microsoft Visual Studio" |
| 10 | + "${PROGRAMFILES}/Microsoft Visual Studio" |
| 11 | + "C:/Program Files (x86)/Microsoft Visual Studio" |
| 12 | + "C:/Program Files/Microsoft Visual Studio" |
| 13 | +) |
| 14 | +foreach(PATH IN LISTS VS_INSTALL_PATHS) |
| 15 | + if(CL_EXE_PATH) |
| 16 | + break() |
| 17 | + endif() |
8 | 18 |
|
9 | | -set(CMAKE_C_COMPILER_TARGET ${target}) |
10 | | -set(CMAKE_CXX_COMPILER_TARGET ${target}) |
| 19 | + file(GLOB_RECURSE FOUND_CL_EXE "${PATH}/*/VC/Tools/MSVC/*/bin/Hostx64/arm64/cl.exe") |
| 20 | + if(FOUND_CL_EXE) |
| 21 | + list(GET FOUND_CL_EXE 0 CL_EXE_PATH) |
| 22 | + break() |
| 23 | + endif() |
11 | 24 |
|
12 | | -# Look for cl.exe in the Visual Studio installation directories |
13 | | -# set(PROGRAMFILES "$ENV{ProgramFiles}") |
14 | | -# set(PROGRAMFILES_X86 "$ENV{ProgramFiles\(x86\)}") |
15 | | -# |
16 | | -# set(VS_INSTALL_PATHS |
17 | | -# "${PROGRAMFILES_X86}/Microsoft Visual Studio" |
18 | | -# "${PROGRAMFILES}/Microsoft Visual Studio" |
19 | | -# "C:/Program Files (x86)/Microsoft Visual Studio" |
20 | | -# "C:/Program Files/Microsoft Visual Studio" |
21 | | -# ) |
22 | | -# foreach(PATH IN LISTS VS_INSTALL_PATHS) |
23 | | -# if(CL_EXE_PATH) |
24 | | -# break() |
25 | | -# endif() |
26 | | -# |
27 | | -# file(GLOB_RECURSE FOUND_CL_EXE "${PATH}/*/VC/Tools/MSVC/*/bin/Hostx64/arm64/cl.exe") |
28 | | -# if(FOUND_CL_EXE) |
29 | | -# list(GET FOUND_CL_EXE 0 CL_EXE_PATH) |
30 | | -# break() |
31 | | -# endif() |
32 | | -# |
33 | | -# if(CL_EXE_PATH) |
34 | | -# break() |
35 | | -# endif() |
36 | | -# |
37 | | -# file(GLOB_RECURSE FOUND_CL_EXE "${PATH}/**/*/VC/Tools/MSVC/*/bin/Hostx64/arm64/cl.exe") |
38 | | -# if(FOUND_CL_EXE) |
39 | | -# list(GET FOUND_CL_EXE 0 CL_EXE_PATH) |
40 | | -# break() |
41 | | -# endif() |
42 | | -# endforeach() |
43 | | -# |
44 | | -# if(NOT CL_EXE_PATH) |
45 | | -# message(FATAL_ERROR "cl.exe not found for ARM architecture.") |
46 | | -# else() |
47 | | -# set(CMAKE_C_COMPILER "${CL_EXE_PATH}") |
48 | | -# set(CMAKE_CXX_COMPILER "${CL_EXE_PATH}") |
49 | | -# endif() |
| 25 | + if(CL_EXE_PATH) |
| 26 | + break() |
| 27 | + endif() |
| 28 | + |
| 29 | + file(GLOB_RECURSE FOUND_CL_EXE "${PATH}/**/*/VC/Tools/MSVC/*/bin/Hostx64/arm64/cl.exe") |
| 30 | + if(FOUND_CL_EXE) |
| 31 | + list(GET FOUND_CL_EXE 0 CL_EXE_PATH) |
| 32 | + break() |
| 33 | + endif() |
| 34 | +endforeach() |
| 35 | + |
| 36 | +if(NOT CL_EXE_PATH) |
| 37 | + message(FATAL_ERROR "cl.exe not found for ARM architecture.") |
| 38 | +else() |
| 39 | + set(CMAKE_C_COMPILER "${CL_EXE_PATH}") |
| 40 | + set(CMAKE_CXX_COMPILER "${CL_EXE_PATH}") |
| 41 | +endif() |
0 commit comments