You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ma...@apache.org on 2024/03/17 23:06:59 UTC

(trafficserver) branch master updated: Add ENABLE_CLANG_TIDY option (#11077)

This is an automated email from the ASF dual-hosted git repository.

masaori pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 0b813fdfb9 Add ENABLE_CLANG_TIDY option (#11077)
0b813fdfb9 is described below

commit 0b813fdfb90a0a0cceb3a7bfbe5861e8a339a80d
Author: Masaori Koshiba <ma...@apache.org>
AuthorDate: Mon Mar 18 08:06:53 2024 +0900

    Add ENABLE_CLANG_TIDY option (#11077)
    
    * Add ENABLE_CLANG_TIDY option
    
    * Include from top CMakeLists.txt
    
    * Fix format
    
    * Trim semi-colon at the end
---
 CMakeLists.txt                        |  1 +
 cmake/ClangTidy.cmake                 | 59 +++++++++++++++++++++++++++++++++++
 cmake/add_atsplugin.cmake             |  1 +
 src/api/CMakeLists.txt                |  2 ++
 src/cripts/CMakeLists.txt             |  2 ++
 src/iocore/aio/CMakeLists.txt         |  2 ++
 src/iocore/cache/CMakeLists.txt       |  2 ++
 src/iocore/dns/CMakeLists.txt         |  2 ++
 src/iocore/eventsystem/CMakeLists.txt |  2 ++
 src/iocore/hostdb/CMakeLists.txt      |  2 ++
 src/iocore/io_uring/CMakeLists.txt    |  2 ++
 src/iocore/net/CMakeLists.txt         |  2 ++
 src/iocore/utils/CMakeLists.txt       |  2 ++
 src/mgmt/config/CMakeLists.txt        |  2 ++
 src/mgmt/rpc/CMakeLists.txt           |  2 ++
 src/proxy/CMakeLists.txt              |  2 ++
 src/proxy/hdrs/CMakeLists.txt         |  2 ++
 src/proxy/http/CMakeLists.txt         |  2 ++
 src/proxy/http2/CMakeLists.txt        |  2 ++
 src/proxy/http3/CMakeLists.txt        |  2 ++
 src/proxy/logging/CMakeLists.txt      |  2 ++
 src/records/CMakeLists.txt            |  2 ++
 src/shared/CMakeLists.txt             |  2 ++
 src/traffic_cache_tool/CMakeLists.txt |  2 ++
 src/traffic_crashlog/CMakeLists.txt   |  2 ++
 src/traffic_ctl/CMakeLists.txt        |  2 ++
 src/traffic_layout/CMakeLists.txt     |  2 ++
 src/traffic_logcat/CMakeLists.txt     |  2 ++
 src/traffic_logstats/CMakeLists.txt   |  2 ++
 src/traffic_server/CMakeLists.txt     |  2 ++
 src/traffic_top/CMakeLists.txt        |  2 ++
 src/traffic_via/CMakeLists.txt        |  2 ++
 src/tscore/CMakeLists.txt             |  2 ++
 src/tscpp/api/CMakeLists.txt          |  2 ++
 src/tsutil/CMakeLists.txt             |  2 ++
 35 files changed, 125 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7bc10df048..1b2509604f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,6 +42,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE -DATS_BUILD)
 
 include(layout)
+include(ClangTidy)
 
 if(CMAKE_BUILD_TYPE STREQUAL "Debug")
   add_compile_definitions(DEBUG _DEBUG)
diff --git a/cmake/ClangTidy.cmake b/cmake/ClangTidy.cmake
new file mode 100644
index 0000000000..825f5d04f3
--- /dev/null
+++ b/cmake/ClangTidy.cmake
@@ -0,0 +1,59 @@
+#######################
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more contributor license
+#  agreements.  See the NOTICE file distributed with this work for additional information regarding
+#  copyright ownership.  The ASF licenses this file to you under the Apache License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with the License.  You may obtain
+#  a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software distributed under the License
+#  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+#  or implied. See the License for the specific language governing permissions and limitations under
+#  the License.
+#
+#######################
+
+# ClangTidy.cmake
+#
+# This adds a function to enable clang-tidy to the target. The .clang-tidy config file is refered in default.
+#
+# - e.g.
+# ```
+# "cacheVariables": {
+#   "ENABLE_CLANG_TIDY": true,
+#   "CLANG_TIDY_PATH": "/opt/homebrew/opt/llvm/bin/"
+#   "CLANG_TIDY_OPTS": "--fix;--warnings-as-errors=*"
+# }
+# ```
+
+if(ENABLE_CLANG_TIDY)
+  # Find clang-tidy program
+  find_program(
+    CLANG_TIDY_EXE
+    NAMES "clang-tidy"
+    HINTS ${CLANG_TIDY_PATH}
+  )
+
+  # Add options if there
+  #
+  # CAVEAT: the option should not end with semi-colon. You'll see below error.
+  # ```
+  # error: unable to handle compilation, expected exactly one compiler job in '' [clang-diagnostic-error]
+  # ```
+  if(NOT "${CLANG_TIDY_OPTS}" STREQUAL "")
+    string(REGEX REPLACE ";$" "$" CLANG_TIDY_OPTS_TRIMMED ${CLANG_TIDY_OPTS})
+    string(APPEND CLANG_TIDY_EXE ";${CLANG_TIDY_OPTS_TRIMMED}")
+  endif()
+
+  message(STATUS "Enable clang-tidy - ${CLANG_TIDY_EXE}")
+endif()
+
+function(clang_tidy_check target)
+  if(NOT ENABLE_CLANG_TIDY)
+    return()
+  endif()
+
+  set_target_properties(${target} PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_EXE}")
+endfunction()
diff --git a/cmake/add_atsplugin.cmake b/cmake/add_atsplugin.cmake
index 80de5bb965..dae6a4c027 100644
--- a/cmake/add_atsplugin.cmake
+++ b/cmake/add_atsplugin.cmake
@@ -31,6 +31,7 @@ function(add_atsplugin name)
   set_target_properties(${name} PROPERTIES SUFFIX ".so")
   remove_definitions(-DATS_BUILD) # remove the ATS_BUILD define for plugins to build without issue
   install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
+  clang_tidy_check(${name})
 endfunction()
 
 function(verify_remap_plugin target)
diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt
index 7db56a345d..b9c9e9dffc 100644
--- a/src/api/CMakeLists.txt
+++ b/src/api/CMakeLists.txt
@@ -54,3 +54,5 @@ install(
 if(APPLE)
   target_link_options(tsapi PRIVATE -undefined dynamic_lookup)
 endif()
+
+clang_tidy_check(tsapi)
diff --git a/src/cripts/CMakeLists.txt b/src/cripts/CMakeLists.txt
index 52613f017b..31a673dfc8 100644
--- a/src/cripts/CMakeLists.txt
+++ b/src/cripts/CMakeLists.txt
@@ -79,3 +79,5 @@ add_custom_target(
   DEPENDS ${PROJECT_SOURCE_DIR}/src/shared/overridable_txn_vars.cc ${PROJECT_SOURCE_DIR}/tools/cripts/genconfig.py
   VERBATIM
 )
+
+clang_tidy_check(cripts)
diff --git a/src/iocore/aio/CMakeLists.txt b/src/iocore/aio/CMakeLists.txt
index 4d7446cdda..0930cc8dee 100644
--- a/src/iocore/aio/CMakeLists.txt
+++ b/src/iocore/aio/CMakeLists.txt
@@ -34,3 +34,5 @@ if(BUILD_TESTING)
     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/iocore/aio
   )
 endif()
+
+clang_tidy_check(aio)
diff --git a/src/iocore/cache/CMakeLists.txt b/src/iocore/cache/CMakeLists.txt
index 4d7f9498ad..3cc6c6ae94 100644
--- a/src/iocore/cache/CMakeLists.txt
+++ b/src/iocore/cache/CMakeLists.txt
@@ -87,3 +87,5 @@ if(BUILD_TESTING)
   add_cache_test(Update_Header unit_tests/test_Update_header.cc)
 
 endif()
+
+clang_tidy_check(inkcache)
diff --git a/src/iocore/dns/CMakeLists.txt b/src/iocore/dns/CMakeLists.txt
index 987cdb34ab..80ba814a3b 100644
--- a/src/iocore/dns/CMakeLists.txt
+++ b/src/iocore/dns/CMakeLists.txt
@@ -30,3 +30,5 @@ target_link_libraries(
          #ts::inknet cyclic dependency
          ts::proxy ts::tsutil ts::tscore
 )
+
+clang_tidy_check(inkdns)
diff --git a/src/iocore/eventsystem/CMakeLists.txt b/src/iocore/eventsystem/CMakeLists.txt
index 5488e19278..656015c2f4 100644
--- a/src/iocore/eventsystem/CMakeLists.txt
+++ b/src/iocore/eventsystem/CMakeLists.txt
@@ -64,3 +64,5 @@ if(BUILD_TESTING)
   add_test(NAME test_MIOBufferWriter COMMAND test_MIOBufferWriter)
 
 endif()
+
+clang_tidy_check(inkevent)
diff --git a/src/iocore/hostdb/CMakeLists.txt b/src/iocore/hostdb/CMakeLists.txt
index d8999a78d6..40a0603111 100644
--- a/src/iocore/hostdb/CMakeLists.txt
+++ b/src/iocore/hostdb/CMakeLists.txt
@@ -19,3 +19,5 @@ add_library(inkhostdb STATIC HostDB.cc Inline.cc RefCountCache.cc HostFile.cc Ho
 add_library(ts::inkhostdb ALIAS inkhostdb)
 
 target_link_libraries(inkhostdb PUBLIC ts::inkdns ts::inkevent ts::tscore)
+
+clang_tidy_check(inkhostdb)
diff --git a/src/iocore/io_uring/CMakeLists.txt b/src/iocore/io_uring/CMakeLists.txt
index 4c5e586e21..6cec4d1e88 100644
--- a/src/iocore/io_uring/CMakeLists.txt
+++ b/src/iocore/io_uring/CMakeLists.txt
@@ -32,3 +32,5 @@ if(BUILD_TESTING)
 
   add_test(NAME test_iouring COMMAND $<TARGET_FILE:test_iouring>)
 endif()
+
+clang_tidy_check(inkuring)
diff --git a/src/iocore/net/CMakeLists.txt b/src/iocore/net/CMakeLists.txt
index 9f714b956b..2a11811c5e 100644
--- a/src/iocore/net/CMakeLists.txt
+++ b/src/iocore/net/CMakeLists.txt
@@ -125,3 +125,5 @@ if(BUILD_TESTING)
   target_compile_definitions(test_net PRIVATE LIBINKNET_UNIT_TEST_DIR=${LIBINKNET_UNIT_TEST_DIR})
   add_test(NAME test_net COMMAND test_net)
 endif()
+
+clang_tidy_check(inknet)
diff --git a/src/iocore/utils/CMakeLists.txt b/src/iocore/utils/CMakeLists.txt
index 4d6e150123..d490a7bae1 100644
--- a/src/iocore/utils/CMakeLists.txt
+++ b/src/iocore/utils/CMakeLists.txt
@@ -19,3 +19,5 @@ add_library(inkutils STATIC Machine.cc OneWayMultiTunnel.cc OneWayTunnel.cc)
 add_library(ts::inkutils ALIAS inkutils)
 
 target_link_libraries(inkutils PUBLIC ts::inkevent ts::tscore)
+
+clang_tidy_check(inkutils)
diff --git a/src/mgmt/config/CMakeLists.txt b/src/mgmt/config/CMakeLists.txt
index 61d75132f7..e4e106ff92 100644
--- a/src/mgmt/config/CMakeLists.txt
+++ b/src/mgmt/config/CMakeLists.txt
@@ -23,3 +23,5 @@ target_link_libraries(
   PUBLIC ts::tscore
   PRIVATE ts::proxy
 )
+
+clang_tidy_check(configmanager)
diff --git a/src/mgmt/rpc/CMakeLists.txt b/src/mgmt/rpc/CMakeLists.txt
index 36446217b7..1d91928697 100644
--- a/src/mgmt/rpc/CMakeLists.txt
+++ b/src/mgmt/rpc/CMakeLists.txt
@@ -69,3 +69,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_jsonrpcserver catch2::catch2 ts::jsonrpc_server ts::inkevent libswoc::libswoc)
   add_test(NAME test_jsonrpcserver COMMAND test_jsonrpcserver)
 endif()
+
+clang_tidy_check(jsonrpc_protocol)
diff --git a/src/proxy/CMakeLists.txt b/src/proxy/CMakeLists.txt
index 6b25c6683d..dc2eec4b7c 100644
--- a/src/proxy/CMakeLists.txt
+++ b/src/proxy/CMakeLists.txt
@@ -59,3 +59,5 @@ add_subdirectory(logging)
 if(TS_USE_QUIC)
   add_subdirectory(http3)
 endif()
+
+clang_tidy_check(proxy)
diff --git a/src/proxy/hdrs/CMakeLists.txt b/src/proxy/hdrs/CMakeLists.txt
index dd8bad770c..9c3a2fb53f 100644
--- a/src/proxy/hdrs/CMakeLists.txt
+++ b/src/proxy/hdrs/CMakeLists.txt
@@ -58,3 +58,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_proxy_hdrs_xpack PRIVATE ts::hdrs ts::tscore ts::tsutil libswoc catch2::catch2)
   add_test(NAME test_proxy_hdrs_xpack COMMAND test_proxy_hdrs_xpack)
 endif()
+
+clang_tidy_check(hdrs)
diff --git a/src/proxy/http/CMakeLists.txt b/src/proxy/http/CMakeLists.txt
index 63f9ff6439..ff133c251a 100644
--- a/src/proxy/http/CMakeLists.txt
+++ b/src/proxy/http/CMakeLists.txt
@@ -69,3 +69,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_proxy_http PRIVATE catch2::catch2 hdrs tscore inkevent proxy logging)
   add_test(NAME test_proxy_http COMMAND test_proxy_http)
 endif(BUILD_TESTING)
+
+clang_tidy_check(http)
diff --git a/src/proxy/http2/CMakeLists.txt b/src/proxy/http2/CMakeLists.txt
index 066bd624eb..00b302444a 100644
--- a/src/proxy/http2/CMakeLists.txt
+++ b/src/proxy/http2/CMakeLists.txt
@@ -60,3 +60,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_HPACK PRIVATE tscore hdrs inkevent)
   add_test(NAME test_HPACK COMMAND test_HPACK -i ${CMAKE_CURRENT_SOURCE_DIR}/hpack-tests -o ./results)
 endif()
+
+clang_tidy_check(http2)
diff --git a/src/proxy/http3/CMakeLists.txt b/src/proxy/http3/CMakeLists.txt
index 9089b72cad..bc24e63c8a 100644
--- a/src/proxy/http3/CMakeLists.txt
+++ b/src/proxy/http3/CMakeLists.txt
@@ -84,3 +84,5 @@ target_link_libraries(
           ts::tscore
 )
 add_test(NAME test_qpack COMMAND test_qpack)
+
+clang_tidy_check(http3)
diff --git a/src/proxy/logging/CMakeLists.txt b/src/proxy/logging/CMakeLists.txt
index 62fe72f974..83d5c68502 100644
--- a/src/proxy/logging/CMakeLists.txt
+++ b/src/proxy/logging/CMakeLists.txt
@@ -49,3 +49,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_RolledLogDeleter tscore records catch2::catch2)
   add_test(NAME test_RolledLogDeleter COMMAND test_RolledLogDeleter)
 endif()
+
+clang_tidy_check(logging)
diff --git a/src/records/CMakeLists.txt b/src/records/CMakeLists.txt
index a65d5a43f2..17ea54e79f 100644
--- a/src/records/CMakeLists.txt
+++ b/src/records/CMakeLists.txt
@@ -48,3 +48,5 @@ if(BUILD_TESTING)
   target_link_libraries(test_records_on_eventsystem PRIVATE records catch2::catch2 tscore libswoc::libswoc)
   add_test(NAME test_records_on_eventsystem COMMAND test_records_on_eventsystem)
 endif()
+
+clang_tidy_check(records)
diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt
index 25fe4216ff..fa6d1d8326 100644
--- a/src/shared/CMakeLists.txt
+++ b/src/shared/CMakeLists.txt
@@ -19,3 +19,5 @@ add_library(overridable_txn_vars STATIC overridable_txn_vars.cc)
 add_library(ts::overridable_txn_vars ALIAS overridable_txn_vars)
 
 target_link_libraries(overridable_txn_vars PRIVATE ts::inknet)
+
+clang_tidy_check(overridable_txn_vars)
diff --git a/src/traffic_cache_tool/CMakeLists.txt b/src/traffic_cache_tool/CMakeLists.txt
index e7a4dcd186..458fae0cd2 100644
--- a/src/traffic_cache_tool/CMakeLists.txt
+++ b/src/traffic_cache_tool/CMakeLists.txt
@@ -19,3 +19,5 @@ add_executable(traffic_cache_tool CacheDefs.cc CacheTool.cc CacheScan.cc)
 
 target_link_libraries(traffic_cache_tool PRIVATE ts::tscore libswoc::libswoc ts::tsutil)
 install(TARGETS traffic_cache_tool)
+
+clang_tidy_check(traffic_cache_tool)
diff --git a/src/traffic_crashlog/CMakeLists.txt b/src/traffic_crashlog/CMakeLists.txt
index 9dcda20323..2ee1ac9a8c 100644
--- a/src/traffic_crashlog/CMakeLists.txt
+++ b/src/traffic_crashlog/CMakeLists.txt
@@ -24,3 +24,5 @@ if(TS_USE_REMOTE_UNWINDING)
 endif()
 
 install(TARGETS traffic_crashlog)
+
+clang_tidy_check(traffic_crashlog)
diff --git a/src/traffic_ctl/CMakeLists.txt b/src/traffic_ctl/CMakeLists.txt
index 86d647237e..6962f30d3a 100644
--- a/src/traffic_ctl/CMakeLists.txt
+++ b/src/traffic_ctl/CMakeLists.txt
@@ -23,3 +23,5 @@ add_executable(
 target_link_libraries(traffic_ctl ts::tscore libswoc::libswoc yaml-cpp::yaml-cpp ts::tsutil)
 
 install(TARGETS traffic_ctl)
+
+clang_tidy_check(traffic_ctl)
diff --git a/src/traffic_layout/CMakeLists.txt b/src/traffic_layout/CMakeLists.txt
index 551b0f9271..56766955c6 100644
--- a/src/traffic_layout/CMakeLists.txt
+++ b/src/traffic_layout/CMakeLists.txt
@@ -32,3 +32,5 @@ if(HAVE_BROTLI_ENCODE_H)
 endif()
 
 install(TARGETS traffic_layout)
+
+clang_tidy_check(traffic_layout)
diff --git a/src/traffic_logcat/CMakeLists.txt b/src/traffic_logcat/CMakeLists.txt
index 5c16aac904..17f835a9ca 100644
--- a/src/traffic_logcat/CMakeLists.txt
+++ b/src/traffic_logcat/CMakeLists.txt
@@ -18,3 +18,5 @@
 add_executable(traffic_logcat logcat.cc)
 target_link_libraries(traffic_logcat PRIVATE ts::logging ts::tscore ts::diagsconfig ts::inkevent)
 install(TARGETS traffic_logcat)
+
+clang_tidy_check(traffic_logcat)
diff --git a/src/traffic_logstats/CMakeLists.txt b/src/traffic_logstats/CMakeLists.txt
index 8d62e07df1..f14d2b5381 100644
--- a/src/traffic_logstats/CMakeLists.txt
+++ b/src/traffic_logstats/CMakeLists.txt
@@ -33,3 +33,5 @@ if(BUILD_TESTING)
     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/src
   )
 endif()
+
+clang_tidy_check(traffic_logstats)
diff --git a/src/traffic_server/CMakeLists.txt b/src/traffic_server/CMakeLists.txt
index c381520c6f..8bd5b8f284 100644
--- a/src/traffic_server/CMakeLists.txt
+++ b/src/traffic_server/CMakeLists.txt
@@ -65,3 +65,5 @@ endif(TS_USE_LINUX_IO_URING)
 set_target_properties(traffic_server PROPERTIES ENABLE_EXPORTS ON)
 
 install(TARGETS traffic_server)
+
+clang_tidy_check(traffic_server)
diff --git a/src/traffic_top/CMakeLists.txt b/src/traffic_top/CMakeLists.txt
index 52d93f84d0..a15a922172 100644
--- a/src/traffic_top/CMakeLists.txt
+++ b/src/traffic_top/CMakeLists.txt
@@ -19,3 +19,5 @@ add_executable(traffic_top traffic_top.cc ${CMAKE_SOURCE_DIR}/src/shared/rpc/IPC
 target_include_directories(traffic_top PRIVATE ${CURSES_INCLUDE_DIRS})
 target_link_libraries(traffic_top PRIVATE ts::tscore ts::inkevent libswoc::libswoc ${CURSES_LIBRARIES})
 install(TARGETS traffic_top)
+
+clang_tidy_check(traffic_top)
diff --git a/src/traffic_via/CMakeLists.txt b/src/traffic_via/CMakeLists.txt
index dcc032e193..49ef1ff35b 100644
--- a/src/traffic_via/CMakeLists.txt
+++ b/src/traffic_via/CMakeLists.txt
@@ -19,6 +19,8 @@ add_executable(traffic_via traffic_via.cc)
 target_link_libraries(traffic_via ts::tscore libswoc::libswoc ts::tsutil)
 install(TARGETS traffic_via)
 
+clang_tidy_check(traffic_via)
+
 if(BUILD_TESTING)
   # Odd test to maintain compatibility with autotools.  This could be better.
   add_test(
diff --git a/src/tscore/CMakeLists.txt b/src/tscore/CMakeLists.txt
index b7722e99a4..a7a2e417b1 100644
--- a/src/tscore/CMakeLists.txt
+++ b/src/tscore/CMakeLists.txt
@@ -187,3 +187,5 @@ if(BUILD_TESTING)
 
   add_test(NAME test_tscore COMMAND $<TARGET_FILE:test_tscore>)
 endif()
+
+clang_tidy_check(tscore)
diff --git a/src/tscpp/api/CMakeLists.txt b/src/tscpp/api/CMakeLists.txt
index 9a4668bd62..3e5c43775b 100644
--- a/src/tscpp/api/CMakeLists.txt
+++ b/src/tscpp/api/CMakeLists.txt
@@ -82,3 +82,5 @@ set(TSCPP_API_PUBLIC_HEADERS
 set_target_properties(tscppapi PROPERTIES PUBLIC_HEADER "${TSCPP_API_PUBLIC_HEADERS}")
 
 install(TARGETS tscppapi PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tscpp/api)
+
+clang_tidy_check(tscppapi)
diff --git a/src/tsutil/CMakeLists.txt b/src/tsutil/CMakeLists.txt
index beca3c8a25..48e3df46b1 100644
--- a/src/tsutil/CMakeLists.txt
+++ b/src/tsutil/CMakeLists.txt
@@ -85,3 +85,5 @@ if(BUILD_TESTING)
 
   add_test(NAME test_tsutil COMMAND $<TARGET_FILE:test_tsutil>)
 endif()
+
+clang_tidy_check(tsutil)