Files
build_infra/0_cmake_library/Development_Quality_Infrastructure/Tools.cmake
T
2026-08-03 12:41:26 +08:00

38 lines
1.7 KiB
CMake

include_guard(GLOBAL)
set(PSC_TOOL_PATHS_FILE "" CACHE FILEPATH "External quality-tool path configuration file")
if (PSC_TOOL_PATHS_FILE)
if (IS_ABSOLUTE "${PSC_TOOL_PATHS_FILE}")
include("${PSC_TOOL_PATHS_FILE}")
else()
include("${CMAKE_CURRENT_LIST_DIR}/${PSC_TOOL_PATHS_FILE}")
endif()
endif()
set(PSC_PWSH_EXECUTABLE "" CACHE FILEPATH "PowerShell 7 executable")
set(PSC_CPPCHECK_EXECUTABLE "" CACHE FILEPATH "Cppcheck executable")
set(PSC_CLANG_TIDY_EXECUTABLE "" CACHE FILEPATH "clang-tidy executable")
set(PSC_LIZARD_EXECUTABLE "" CACHE FILEPATH "Lizard executable")
set(PSC_TOKEI_EXECUTABLE "" CACHE FILEPATH "Tokei executable")
set(PSC_CLOC_EXECUTABLE "" CACHE FILEPATH "Cloc executable")
set(PSC_DOXYGEN_EXECUTABLE "" CACHE FILEPATH "Doxygen executable")
set(PSC_DOT_EXECUTABLE "" CACHE FILEPATH "Graphviz dot executable")
function(_psc_discover_tool cache_variable)
if (NOT "${${cache_variable}}" STREQUAL "")
return()
endif()
unset(found_program)
unset(found_program CACHE)
find_program(found_program NAMES ${ARGN})
if (found_program)
set(${cache_variable} "${found_program}" CACHE FILEPATH "" FORCE)
endif()
unset(found_program CACHE)
endfunction()
_psc_discover_tool(PSC_PWSH_EXECUTABLE pwsh pwsh.exe)
_psc_discover_tool(PSC_CPPCHECK_EXECUTABLE cppcheck cppcheck.exe)
_psc_discover_tool(PSC_CLANG_TIDY_EXECUTABLE clang-tidy clang-tidy.exe)
_psc_discover_tool(PSC_LIZARD_EXECUTABLE lizard lizard.exe)
_psc_discover_tool(PSC_TOKEI_EXECUTABLE tokei tokei.exe)
_psc_discover_tool(PSC_CLOC_EXECUTABLE cloc cloc.exe)
_psc_discover_tool(PSC_DOXYGEN_EXECUTABLE doxygen doxygen.exe)
_psc_discover_tool(PSC_DOT_EXECUTABLE dot dot.exe)