CMake - 检查是否安装了 Pylint

Joã*_*cho 5 pylint cmake

我正在使用 Cmake 浏览目录中的所有 .py 文件,并使用 Pylint 检测错误和检查编码标准。

有没有办法让我检查是否使用 cmake 安装了 Pylint?这段代码是否独立于操作系统(例如对于 Ubuntu 和 Windows)?

Nib*_*bor 2

您应该创建一个 FindPylint.cmake 文件及其include()目录。然后运行find_package(Pylint REQUIRED)

查找Pylint.cmake:

execute_process(
    COMMAND pylint --version
    OUTPUT_VARIABLE pylint_out
    RESULT_VARIABLE pylint_error
    ERROR_VARIABLE pylint_suppress)

if (NOT pylint_error)
    string(REGEX MATCH "pylint .\..\.." pylint_version_string "${pylint_out}")
    string(SUBSTRING "${pylint_version_string}" 7 5 pylint_version)
endif ()

if (pylint_version)
    set(PYLINT_FOUND 1
        CACHE INTERNAL "Pylint version ${pylint_version} found")
endif ()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Pylint REQUIRED_VARS pylint_version
                                    VERSION_VAR pylint_version)
Run Code Online (Sandbox Code Playgroud)

一些解释:

  • 错误输出实际上并不是错误,它读取的是No config file found, using default configuration,因此我们通过忽略来抑制它pylint_suppress变量来抑制它。
  • pylint不仅仅是版本,因此我们需要进行一些正则表达式/字符串处理。
  • CACHE INTERNAL变量并不是绝对必要的,但稍后可以派上用场来检查是否找到 Pylint。