← Commit list

d9386a2f8e

Viktor Szakats
Viktor Szakats
2026-02-27
SUCCESS Duration: 338s

Subject

cmake: fix system include directory position for clang-tidy in tests

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

CMake/Macros.cmake+21 -0
@@ -139,6 +139,18 @@ macro(curl_add_clang_tidy_test_target _target_clang_tidy _target)
set(_incsys "")
set(_options "")
+ # Make a list of known system include directories
+ set(_sys_incdirs "${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}")
+ foreach(_inc IN LISTS CMAKE_SYSTEM_PREFIX_PATH)
+ if(NOT _inc MATCHES "/$")
+ string(APPEND _inc "/")
+ endif()
+ string(APPEND _inc "include")
+ if(NOT _inc IN_LIST _sys_incdirs AND IS_DIRECTORY "${_inc}")
+ list(APPEND _sys_incdirs "${_inc}")
+ endif()
+ endforeach()
+
# Collect macro definitions and header directories applying to the directory
get_directory_property(_val COMPILE_DEFINITIONS)
if(_val)
@@ -169,7 +181,12 @@ macro(curl_add_clang_tidy_test_target _target_clang_tidy _target)
set(_incsys_tmp ${_incsys})
list(REMOVE_DUPLICATES _incsys_tmp)
set(_incsys "")
+ set(_incsystop "")
foreach(_inc IN LISTS _incsys_tmp)
+ if(_inc IN_LIST _sys_incdirs)
+ list(APPEND _incsystop "${_inc}") # Save system prefixes to re-add them later to the end of list
+ continue()
+ endif()
# Avoid empty and '$<INSTALL_INTERFACE:include>' items. The latter
# evaluates to an empty path in this context. Also skip
# '$<BUILD_INTERFACE:curl-include>', as already present in '_includes'.
@@ -179,6 +196,9 @@ macro(curl_add_clang_tidy_test_target _target_clang_tidy _target)
list(APPEND _incsys "-isystem" "${_inc}")
endif()
endforeach()
+ foreach(_inc IN LISTS _incsystop)
+ list(APPEND _incsys "-isystem" "${_inc}")
+ endforeach()
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(REMOVE_DUPLICATES _options) # Keep the first of duplicates to imitate CMake
@@ -214,6 +234,7 @@ macro(curl_add_clang_tidy_test_target _target_clang_tidy _target)
DEPENDS ${_sources})
add_dependencies(tests-clang-tidy ${_target_clang_tidy})
+ unset(_sys_incdirs)
unset(_cc)
unset(_definitions)
unset(_includes)
scripts/cmakelint.sh+2 -2
@@ -72,8 +72,8 @@ cd "$(dirname "$0")"/..
--min-statement-spacing 1 \
--max-statement-spacing 2 \
--max-returns 6 \
- --max-branches 12 \
+ --max-branches 15 \
--max-arguments 5 \
--max-localvars 15 \
- --max-statements 65 \
+ --max-statements 85 \
--