Документация о P C -Lint, похоже, обслуживается старым CMake, а не целевым современным CMake. Функция add_pc_lint
получает включенные каталоги и скомпилированных определений из свойств каталога CMake. Эти свойства каталогов будут заполнены, если в вашем проекте есть вызовы, такие как:
include_directories()
add_definitions()
Без этих команд (которые на самом деле не следует использовать в современном CMake), функция add_pc_lint
, скорее всего, не найдет все ожидаемые каталоги включения и определения компиляции.
В современном CMake включают каталоги и определения компиляции сохраняются как свойства target вместо этого, когда вы используете такие команды, как эти :
target_include_directories()
target_compile_definitions()
В этом случае необходимо изменить функцию add_pc_lint
, чтобы получить свойства из target , а не каталог . Итак, измените верхнюю часть функции add_pc_lint
с этого:
function(add_pc_lint target)
get_directory_property(lint_include_directories INCLUDE_DIRECTORIES)
get_directory_property(lint_defines COMPILE_DEFINITIONS)
на это:
function(add_pc_lint target)
get_target_property(lint_include_directories ${target} INCLUDE_DIRECTORIES)
get_target_property(lint_defines ${target} COMPILE_DEFINITIONS)