Make sure clang-tidy and iwyu are added to all targets

This commit is contained in:
Tim Wojtulewicz 2025-04-16 14:52:45 -07:00
parent ce7ef3ce6a
commit 64e2fccc2b
3 changed files with 30 additions and 18 deletions

View file

@ -208,6 +208,20 @@ include(cmake/CheckCompilerArch.cmake)
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER) string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWER)
if (ENABLE_IWYU)
find_program(ZEEK_IWYU_PATH NAMES include-what-you-use iwyu)
if (NOT ZEEK_IWYU_PATH)
message(FATAL_ERROR "Could not find the program include-what-you-use")
endif ()
endif ()
if (ENABLE_CLANG_TIDY)
find_program(ZEEK_CLANG_TIDY_PATH NAMES clang-tidy)
if (NOT ZEEK_CLANG_TIDY_PATH)
message(FATAL_ERROR "Could not find the program clang-tidy")
endif ()
endif ()
# ############################################################################## # ##############################################################################
# Main targets and utilities. # Main targets and utilities.
@ -307,6 +321,16 @@ function (zeek_target_link_libraries lib_target)
endforeach () endforeach ()
endfunction () endfunction ()
function (zeek_target_add_linters lib_target)
if (ZEEK_IWYU_PATH)
set_target_properties(${lib_target} PROPERTIES CXX_INCLUDE_WHAT_YOU_USE ${ZEEK_IWYU_PATH})
endif ()
if (ZEEK_CLANG_TIDY_PATH)
set_target_properties(${lib_target} PROPERTIES CXX_CLANG_TIDY ${ZEEK_CLANG_TIDY_PATH})
endif ()
endfunction ()
function (zeek_include_directories) function (zeek_include_directories)
foreach (name zeek_exe zeek_lib zeek_fuzzer_shared) foreach (name zeek_exe zeek_lib zeek_fuzzer_shared)
if (TARGET ${name}) if (TARGET ${name})
@ -414,6 +438,9 @@ function (zeek_add_subdir_library name)
# Feed into the main Zeek target(s). # Feed into the main Zeek target(s).
zeek_target_link_libraries(${target_name}) zeek_target_link_libraries(${target_name})
# Add IWYU and clang-tidy to the target if enabled.
zeek_target_add_linters(${target_name})
endfunction () endfunction ()
# ############################################################################## # ##############################################################################

2
cmake

@ -1 +1 @@
Subproject commit b4998425fb00402967792311ec7c2cf391eb0ca5 Subproject commit 04a714605d2af055dd35152aeffc1874447ca616

View file

@ -562,23 +562,8 @@ target_compile_definitions(zeek_objs PRIVATE ZEEK_CONFIG_SKIP_VERSION_H)
add_dependencies(zeek_objs zeek_autogen_files) add_dependencies(zeek_objs zeek_autogen_files)
zeek_target_link_libraries(zeek_objs) zeek_target_link_libraries(zeek_objs)
if (ENABLE_IWYU) # Add IWYU and clang-tidy to the target if enabled.
find_program(IWYU_PATH NAMES include-what-you-use iwyu) zeek_target_add_linters(zeek_objs)
if (NOT IWYU_PATH)
message(FATAL_ERROR "Could not find the program include-what-you-use")
endif ()
set_target_properties(zeek_objs PROPERTIES CXX_INCLUDE_WHAT_YOU_USE ${IWYU_PATH})
endif ()
if (ENABLE_CLANG_TIDY)
find_program(CLANG_TIDY_PATH NAMES clang-tidy)
if (NOT CLANG_TIDY_PATH)
message(FATAL_ERROR "Could not find the program clang-tidy")
endif ()
set_target_properties(zeek_objs PROPERTIES CXX_CLANG_TIDY ${CLANG_TIDY_PATH})
endif ()
if (HAVE_SPICY) if (HAVE_SPICY)
target_link_libraries(zeek_objs PRIVATE hilti spicy) target_link_libraries(zeek_objs PRIVATE hilti spicy)