Merge branch 'topic/timw/clang-tidy-iwyu-for-all-targets'

* topic/timw/clang-tidy-iwyu-for-all-targets:
  Update src/3rdparty submodule to disable clang-format
  Disable linting for files generated by bison
  Make sure clang-tidy and iwyu are added to all targets
This commit is contained in:
Tim Wojtulewicz 2025-04-17 09:28:50 -07:00
commit 89d22f6133
6 changed files with 56 additions and 30 deletions

11
CHANGES
View file

@ -1,3 +1,14 @@
7.2.0-dev.560 | 2025-04-17 09:28:50 -0700
* Update src/3rdparty submodule to disable clang-format (Tim Wojtulewicz, Corelight)
* Disable linting for files generated by bison (Tim Wojtulewicz, Corelight)
These files will report lots of findings in the code that we have no
control over.
* Make sure clang-tidy and iwyu are added to all targets (Tim Wojtulewicz, Corelight)
7.2.0-dev.556 | 2025-04-17 08:59:11 -0700
* Add libnode-dev to docs github runner, update docs to include ZeekJS (Tim Wojtulewicz, Corelight)

View file

@ -208,6 +208,20 @@ include(cmake/CheckCompilerArch.cmake)
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.
@ -307,6 +321,16 @@ function (zeek_target_link_libraries lib_target)
endforeach ()
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)
foreach (name zeek_exe zeek_lib zeek_fuzzer_shared)
if (TARGET ${name})
@ -414,6 +438,9 @@ function (zeek_add_subdir_library name)
# Feed into the main Zeek target(s).
zeek_target_link_libraries(${target_name})
# Add IWYU and clang-tidy to the target if enabled.
zeek_target_add_linters(${target_name})
endfunction ()
# ##############################################################################

View file

@ -1 +1 @@
7.2.0-dev.556
7.2.0-dev.560

2
cmake

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

@ -1 +1 @@
Subproject commit c48d4fac922cc476e758da98baac454d047d2636
Subproject commit 46ad4968b63604842cca58c7a18b92e9cbc184c3

View file

@ -92,10 +92,8 @@ replace_yy_prefix_target(${CMAKE_CURRENT_BINARY_DIR}/p.cc ${CMAKE_CURRENT_BINARY
flex_target(Scanner scan.l ${CMAKE_CURRENT_BINARY_DIR}/scan.cc COMPILE_FLAGS "-Pzeek")
set_property(SOURCE scan.cc APPEND_STRING PROPERTY COMPILE_FLAGS "${SIGN_COMPARE_FLAG}")
# Add a dependency for the generated files to zeek_autogen_files.
add_custom_target(
zeek_bison_outputs
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/parse.cc
set(zeek_bison_generated_files
${CMAKE_CURRENT_BINARY_DIR}/parse.cc
${CMAKE_CURRENT_BINARY_DIR}/re-parse.cc
${CMAKE_CURRENT_BINARY_DIR}/re-parse.h
${CMAKE_CURRENT_BINARY_DIR}/re-scan.cc
@ -103,6 +101,11 @@ add_custom_target(
${CMAKE_CURRENT_BINARY_DIR}/rule-parse.h
${CMAKE_CURRENT_BINARY_DIR}/rule-scan.cc
${CMAKE_CURRENT_BINARY_DIR}/scan.cc)
set_source_files_properties(${zeek_bison_generated_files} PROPERTIES SKIP_LINTING ON)
# Add a dependency for the generated files to zeek_autogen_files.
add_custom_target(zeek_bison_outputs DEPENDS ${zeek_bison_generated_files})
add_dependencies(zeek_autogen_files zeek_bison_outputs)
# ##############################################################################
@ -562,23 +565,8 @@ target_compile_definitions(zeek_objs PRIVATE ZEEK_CONFIG_SKIP_VERSION_H)
add_dependencies(zeek_objs zeek_autogen_files)
zeek_target_link_libraries(zeek_objs)
if (ENABLE_IWYU)
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_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 ()
# Add IWYU and clang-tidy to the target if enabled.
zeek_target_add_linters(zeek_objs)
if (HAVE_SPICY)
target_link_libraries(zeek_objs PRIVATE hilti spicy)