86 lines
2.9 KiB
CMake
86 lines
2.9 KiB
CMake
|
|
set(dir "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64")
|
|
|
|
set(CMAKE_CXX_COMPILER "${dir}/cl.exe")
|
|
set(CMAKE_C_COMPILER "${dir}/cl.exe")
|
|
set(CMAKE_LINKER "${dir}/link.exe")
|
|
|
|
|
|
if(CMAKE_HOST_WIN32 AND CMAKE_GENERATOR MATCHES "Ninja")
|
|
|
|
|
|
message(STATUS "CMAKE_GENERATOR = ${CMAKE_GENERATOR}")
|
|
message(STATUS "CMAKE_GENERATOR_INSTANCE = ${CMAKE_GENERATOR_INSTANCE}")
|
|
message(STATUS "CMAKE_GENERATOR_TOOLSET = ${CMAKE_GENERATOR_TOOLSET}")
|
|
message(STATUS "CMAKE_GENERATOR_PLATFORM = ${CMAKE_GENERATOR_PLATFORM}")
|
|
message(STATUS "CMAKE_MAKE_PROGRAM before = ${CMAKE_MAKE_PROGRAM}")
|
|
|
|
file(GLOB CLION_NINJA_CANDIDATES
|
|
"C:/Program Files/JetBrains/CLion */bin/ninja/win/x64/ninja.exe"
|
|
)
|
|
|
|
list(SORT CLION_NINJA_CANDIDATES ORDER DESCENDING)
|
|
|
|
if(CLION_NINJA_CANDIDATES)
|
|
list(GET CLION_NINJA_CANDIDATES 0 CLION_NINJA_EXE)
|
|
message(STATUS "CLION_NINJA_EXE = ${CLION_NINJA_EXE}")
|
|
|
|
set(CMAKE_MAKE_PROGRAM "${CLION_NINJA_EXE}" CACHE FILEPATH "Ninja executable" FORCE)
|
|
else()
|
|
message(WARNING "CLion ninja.exe not found")
|
|
endif()
|
|
|
|
message(STATUS "CMAKE_MAKE_PROGRAM after = ${CMAKE_MAKE_PROGRAM}")
|
|
|
|
# 输出 Ninja 版本
|
|
execute_process(
|
|
COMMAND "${CMAKE_MAKE_PROGRAM}" --version
|
|
OUTPUT_VARIABLE _ninja_version
|
|
ERROR_VARIABLE _ninja_version_err
|
|
RESULT_VARIABLE _ninja_version_ret
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
message(STATUS "Ninja version ret = ${_ninja_version_ret}")
|
|
message(STATUS "Ninja version = ${_ninja_version}")
|
|
if(_ninja_version_err)
|
|
message(STATUS "Ninja version err = ${_ninja_version_err}")
|
|
endif()
|
|
|
|
# 输出 Ninja Windows 编码模式
|
|
execute_process(
|
|
COMMAND "${CMAKE_MAKE_PROGRAM}" -t wincodepage
|
|
OUTPUT_VARIABLE _ninja_wincodepage
|
|
ERROR_VARIABLE _ninja_wincodepage_err
|
|
RESULT_VARIABLE _ninja_wincodepage_ret
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
message(STATUS "Ninja wincodepage ret = ${_ninja_wincodepage_ret}")
|
|
message(STATUS "Ninja wincodepage = ${_ninja_wincodepage}")
|
|
if(_ninja_wincodepage_err)
|
|
message(STATUS "Ninja wincodepage err = ${_ninja_wincodepage_err}")
|
|
endif()
|
|
|
|
# 输出当前 cmd 代码页
|
|
execute_process(
|
|
COMMAND cmd /c chcp
|
|
OUTPUT_VARIABLE _cmd_chcp
|
|
ERROR_VARIABLE _cmd_chcp_err
|
|
RESULT_VARIABLE _cmd_chcp_ret
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
ERROR_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
message(STATUS "cmd chcp ret = ${_cmd_chcp_ret}")
|
|
message(STATUS "cmd chcp = ${_cmd_chcp}")
|
|
if(_cmd_chcp_err)
|
|
message(STATUS "cmd chcp err = ${_cmd_chcp_err}")
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|