Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix extra make flags passed for clang tidy #140

Merged
merged 4 commits into from
Aug 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions share/rocm/cmake/ROCMClangTidy.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,9 @@ else()
message(STATUS "Clang tidy found: ${CLANG_TIDY_VERSION}")
endif()

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS
ON
CACHE INTERNAL "")

set(CLANG_TIDY_CACHE
"${CMAKE_BINARY_DIR}/tidy-cache"
Expand Down Expand Up @@ -90,16 +92,27 @@ cmake_dependent_option(ROCM_ENABLE_CLANG_TIDY "Enable Clang-Tidy checks" ON CLAN

macro(rocm_enable_clang_tidy)
if(ROCM_ENABLE_CLANG_TIDY)
set(options ALL ANALYZE_TEMPORARY_DTORS ENABLE_ALPHA_CHECKS)
set(options ALL ANALYZE_TEMPORARY_DTORS ENABLE_ALPHA_CHECKS DEV_WARNINGS_AS_ERRORS)
set(oneValueArgs HEADER_FILTER)
set(multiValueArgs CHECKS ERRORS EXTRA_ARGS CLANG_ARGS)

cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
string(REPLACE ";" "," CLANG_TIDY_CHECKS "${PARSE_CHECKS}")
string(REPLACE ";" "," CLANG_TIDY_ERRORS "${PARSE_ERRORS}")

if(PARSE_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "Unknown keywords given to rocm_enable_clang_tidy(): \"${PARSE_UNPARSED_ARGUMENTS}\"")
endif()

message(STATUS "Clang tidy checks: ${CLANG_TIDY_CHECKS}")

set(CLANG_TIDY_DEV_WARNINGS_AS_ERRORS)
set(CLANG_TIDY_DEV_WARNING_MODE WARNING)
if(PARSE_DEV_WARNINGS_AS_ERRORS)
set(CLANG_TIDY_DEV_WARNING_MODE FATAL_ERROR)
set(CLANG_TIDY_DEV_WARNINGS_AS_ERRORS -Werror=dev)
endif()

set(CLANG_TIDY_ALL)
if(PARSE_ALL)
set(CLANG_TIDY_ALL ALL)
Expand Down Expand Up @@ -204,12 +217,13 @@ function(rocm_clang_tidy_check TARGET)
set(GH_ANNOTATIONS ${ROCM_ENABLE_GH_ANNOTATIONS})
execute_process(
COMMAND
${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR} --target ${BASE_SOURCE}.i -e COLOR=OFF
${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR} --target ${BASE_SOURCE}.i --
-e COLOR=OFF
ERROR_QUIET
OUTPUT_VARIABLE PP_OUT
RESULT_VARIABLE RESULT1)
if(NOT RESULT1 EQUAL 0)
message(WARNING \"Could not preprocess ${SOURCE} -> ${BASE_SOURCE}.i\")
message(${CLANG_TIDY_DEV_WARNING_MODE} \"Could not preprocess ${SOURCE} -> ${BASE_SOURCE}.i\")
execute_process(
COMMAND
\${CLANG_TIDY_COMMAND_LIST}
Expand Down Expand Up @@ -281,7 +295,8 @@ function(rocm_clang_tidy_check TARGET)
")
add_custom_target(
${tidy_target}
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/${tidy_target}.cmake
COMMAND ${CMAKE_COMMAND} ${CLANG_TIDY_DEV_WARNINGS_AS_ERRORS} -P
${CMAKE_CURRENT_BINARY_DIR}/${tidy_target}.cmake
COMMENT "clang-tidy: Running clang-tidy on target ${SOURCE}...")
else()
add_custom_target(
Expand Down
16 changes: 9 additions & 7 deletions test/analyze/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,9 @@ include(ROCMInstallTargets)
include(ROCMAnalyzers)
include(ROCMSetupVersion)

rocm_setup_version(VERSION 1.0.0)

configure_file(simple2.cpp.in simple2.cpp)

add_library(simple simple.cpp ${CMAKE_CURRENT_BINARY_DIR}/simple2.cpp)
rocm_install_targets(TARGETS simple INCLUDE include)

include(ROCMClangTidy)
rocm_enable_clang_tidy(
DEV_WARNINGS_AS_ERRORS
CHECKS
*
-llvmlibc-*
Expand All @@ -46,4 +40,12 @@ rocm_enable_cppcheck(
threadsafety
)

rocm_setup_version(VERSION 1.0.0)

configure_file(simple2.cpp.in simple2.cpp)

add_library(simple simple.cpp ${CMAKE_CURRENT_BINARY_DIR}/simple2.cpp)
rocm_install_targets(TARGETS simple INCLUDE include)


rocm_clang_tidy_check(simple)
Loading