添加ccache 加速编译

This commit is contained in:
2026-06-24 17:10:15 +08:00
parent 4baf9f9040
commit 8ee9f88252
16 changed files with 203 additions and 128 deletions
+79 -79
View File
@@ -1,85 +1,85 @@
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")
#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()
#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()