diff --git a/CMake/Macros.cmake b/CMake/Macros.cmake index d658fcedc4..e182f21d04 100644 --- a/CMake/Macros.cmake +++ b/CMake/Macros.cmake @@ -110,20 +110,16 @@ endmacro() # Internal: Recurse into target libraries and collect their include directories # and macro definitions. -macro(curl_collect_target_options _target) - get_target_property(_val ${_target} COMPILE_DEFINITIONS) +macro(curl_collect_target_compile_options _target) + get_target_property(_val ${_target} INTERFACE_COMPILE_DEFINITIONS) if(_val) list(APPEND _definitions ${_val}) endif() - get_target_property(_val ${_target} INCLUDE_DIRECTORIES) - if(_val) - list(APPEND _includes ${_val}) - endif() get_target_property(_val ${_target} INTERFACE_INCLUDE_DIRECTORIES) if(_val) list(APPEND _incsys ${_val}) endif() - get_target_property(_val ${_target} COMPILE_OPTIONS) + get_target_property(_val ${_target} INTERFACE_COMPILE_OPTIONS) if(_val) list(APPEND _options ${_val}) endif() @@ -131,7 +127,7 @@ macro(curl_collect_target_options _target) if(_val) foreach(_lib IN LISTS _val) if(TARGET "${_lib}") - curl_collect_target_options(${_lib}) + curl_collect_target_compile_options(${_lib}) endif() endforeach() endif() @@ -159,7 +155,7 @@ function(curl_add_clang_tidy_test_target _target_clang_tidy _target) endif() endforeach() - # Collect macro definitions and header directories applying to the directory + # Collect options applying to the directory get_directory_property(_val COMPILE_DEFINITIONS) if(_val) list(APPEND _definitions ${_val}) @@ -172,10 +168,23 @@ function(curl_add_clang_tidy_test_target _target_clang_tidy _target) if(_val) list(APPEND _options ${_val}) endif() - unset(_val) + + # Collect options applying to the target + get_target_property(_val ${_target} COMPILE_DEFINITIONS) + if(_val) + list(APPEND _definitions ${_val}) + endif() + get_target_property(_val ${_target} INCLUDE_DIRECTORIES) + if(_val) + list(APPEND _includes ${_val}) + endif() + get_target_property(_val ${_target} COMPILE_OPTIONS) + if(_val) + list(APPEND _options ${_val}) + endif() # Collect header directories and macro definitions from lib dependencies - curl_collect_target_options(${_target}) + curl_collect_target_compile_options(${_target}) list(REMOVE_ITEM _definitions "") string(REPLACE ";" ";-D" _definitions ";${_definitions}") diff --git a/scripts/cmakelint.sh b/scripts/cmakelint.sh index 0927603375..30a735f87e 100755 --- a/scripts/cmakelint.sh +++ b/scripts/cmakelint.sh @@ -72,8 +72,8 @@ cd "$(dirname "$0")"/.. --min-statement-spacing 1 \ --max-statement-spacing 2 \ --max-returns 6 \ - --max-branches 15 \ + --max-branches 20 \ --max-arguments 5 \ --max-localvars 15 \ - --max-statements 85 \ + --max-statements 95 \ --