在CMake中为每个目标设置CXX_INCLUDE_WHAT_YOU_USE属性

Dav*_*san 3 cmake

我的项目中有多个CmakeLists.txt,我想启用iwyu

新增中

set_property(
  TARGETS MY-TARGET
  PROPERTY CXX_INCLUDE_WHAT_YOU_USE ${iwyu_path}
)
Run Code Online (Sandbox Code Playgroud)

将使它成为一个目标。我想为每个目标启用它,以避免在另一个文件中产生冗余。我在已经存在的CMakeLists.txt中添加了该文件。

ret*_*idi 5

cmake_minimum_required(VERSION 3.3 FATAL_ERROR)

find_program(IWYU_PATH NAMES include-what-you-use iwyu)
if(NOT IWYU_PATH)
  message(FATAL_ERROR "Could not find the program include-what-you-use")
endif()
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${IWYU_PATH})
set(CMAKE_C_INCLUDE_WHAT_YOU_USE ${IWYU_PATH})
Run Code Online (Sandbox Code Playgroud)

可以在这里找到“文档”:CMAKE_ <LANG> _INCLUDE_WHAT_YOU_USE

  • 您需要先执行此操作,然后再添加任何目标。 (2认同)