mirror of
https://github.com/deepseek-ai/3FS
synced 2025-06-26 18:16:45 +00:00
Initial commit
This commit is contained in:
52
cmake/CLangTidy.cmake
Normal file
52
cmake/CLangTidy.cmake
Normal file
@@ -0,0 +1,52 @@
|
||||
# clang-tidy generates too many warnings, so just disable it by default.
|
||||
option(ENABLE_CLANG_TIDY "Run clang-tidy during build" OFF)
|
||||
|
||||
find_program(CLANG_TIDY NAMES clang-tidy-14)
|
||||
if(CLANG_TIDY)
|
||||
if(CMake_SOURCE_DIR STREQUAL CMake_BINARY_DIR)
|
||||
message(FATAL_ERROR "CMake_RUN_CLANG_TIDY requires an out-of-source build!")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||
message(WARNING "CMAKE_EXPORT_COMPILE_COMMANDS=OFF, clang-tidy may not works!!!")
|
||||
endif()
|
||||
|
||||
set(HEADER_FILTER "${CMAKE_SOURCE_DIR}/\\(src\\|tests\\|benchmarks\\|demos\\)")
|
||||
|
||||
if(ENABLE_CLANG_TIDY)
|
||||
set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY} --header-filter ${HEADER_FILTER})
|
||||
|
||||
# Create a preprocessor definition that depends on .clang-tidy content so
|
||||
# the compile command will change when .clang-tidy changes. This ensures
|
||||
# that a subsequent build re-runs clang-tidy on all sources even if they
|
||||
# do not otherwise need to be recompiled. Nothing actually uses this
|
||||
# definition. We add it to targets on which we run clang-tidy just to
|
||||
# get the build dependency on the .clang-tidy file.
|
||||
file(SHA1 ${CMAKE_CURRENT_SOURCE_DIR}/.clang-tidy clang_tidy_sha1)
|
||||
set(CLANG_TIDY_DEFINITIONS "CLANG_TIDY_SHA1=${clang_tidy_sha1}")
|
||||
unset(clang_tidy_sha1)
|
||||
|
||||
configure_file(.clang-tidy .clang-tidy COPYONLY)
|
||||
endif()
|
||||
|
||||
set(SOURCE_DIRS
|
||||
${CMAKE_SOURCE_DIR}/src
|
||||
${CMAKE_SOURCE_DIR}/tests
|
||||
${CMAKE_SOURCE_DIR}/demos
|
||||
${CMAKE_SOURCE_DIR}/benchmarks
|
||||
)
|
||||
|
||||
# For now, it just hard codes the source files list to globs. That works
|
||||
# fine until we have another directory in `src/`. We should ideally gather
|
||||
# this from SOURCE_FILES list. But, should filter the thirs_party sources.
|
||||
# Taking a quick route for now. We should deal with it sometime down the line.
|
||||
add_custom_target(clang-tidy
|
||||
COMMENT "Running clang-tidy"
|
||||
COMMAND run-clang-tidy-14 -header-filter ${HEADER_FILTER} `find ${SOURCE_DIRS} -name "*.cc" -o -name "*.cpp" -not -name "*.actor.cpp" ` -quiet)
|
||||
|
||||
add_custom_target(clang-tidy-fix
|
||||
COMMENT "Running clang-tidy -fix"
|
||||
COMMAND run-clang-tidy-14 -header-filter ${HEADER_FILTER} `find ${SOURCE_DIRS} -name "*.cc" -o -name "*.cpp" -not -name "*.actor.cpp" ` -fix -quiet)
|
||||
else()
|
||||
message(WARNING "clang-tidy-14 not found!!!")
|
||||
endif()
|
||||
Reference in New Issue
Block a user