cmake: use built-in variable and target property dump functions with CMake 4.5+
No binary (build failed)
—
(log yok)
| @@ -37,24 +37,30 @@ endfunction() | |
| # Dump all defined variables with their values | |
| function(curl_dumpvars) | |
| message("::group::CMake Variable Dump") | |
| - | get_cmake_property(_vars VARIABLES) |
| - | foreach(_var IN ITEMS ${_vars}) |
| - | get_property(_var_type CACHE ${_var} PROPERTY TYPE) |
| - | get_property(_var_advanced CACHE ${_var} PROPERTY ADVANCED) |
| - | if(_var_type) |
| - | set(_var_type ":${_var_type}") |
| - | endif() |
| - | if(_var_advanced) |
| - | set(_var_advanced " [adv]") |
| - | endif() |
| - | message("${_var}${_var_type}${_var_advanced} = '${${_var}}'") |
| - | endforeach() |
| + | if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.5) |
| + | cmake_language(PRINT_VARIABLES ALL) |
| + | else() |
| + | get_cmake_property(_vars VARIABLES) |
| + | foreach(_var IN ITEMS ${_vars}) |
| + | get_property(_var_type CACHE ${_var} PROPERTY TYPE) |
| + | get_property(_var_advanced CACHE ${_var} PROPERTY ADVANCED) |
| + | if(_var_type) |
| + | set(_var_type ":${_var_type}") |
| + | endif() |
| + | if(_var_advanced) |
| + | set(_var_advanced " [adv]") |
| + | endif() |
| + | message(" ${_var}${_var_type}${_var_advanced} = \"${${_var}}\"") |
| + | endforeach() |
| + | endif() |
| message("::endgroup::") | |
| endfunction() | |
| # Dump all target properties | |
| function(curl_dumptargetprops _target) | |
| - | if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.19 AND TARGET "${_target}") |
| + | if(CMAKE_VERSION VERSION_GREATER_EQUAL 4.5) |
| + | cmake_language(PRINT_PROPERTIES TARGETS "${_target}" ALL) |
| + | elseif(CMAKE_VERSION VERSION_GREATER_EQUAL 3.19 AND TARGET "${_target}") |
| execute_process(COMMAND "${CMAKE_COMMAND}" "--help-property-list" OUTPUT_VARIABLE _cmake_property_list) | |
| string(REPLACE "\n" ";" _cmake_property_list "${_cmake_property_list}") | |
| list(REMOVE_DUPLICATES _cmake_property_list) | |
| @@ -64,21 +70,22 @@ function(curl_dumptargetprops _target) | |
| if(NOT _target_imported) | |
| list(REMOVE_ITEM _cmake_property_list "LOCATION" "LOCATION_<CONFIG>" "MACOSX_PACKAGE_LOCATION" "VS_DEPLOYMENT_LOCATION") | |
| endif() | |
| + | list(SORT _cmake_property_list) |
| foreach(_prop IN LISTS _cmake_property_list) | |
| if(_prop MATCHES "<CONFIG>") | |
| - | foreach(_config IN ITEMS "DEBUG" "RELEASE" "MINSIZEREL" "RELWITHDEBINFO") |
| + | foreach(_config IN ITEMS "DEBUG" "MINSIZEREL" "RELEASE" "RELWITHDEBINFO") |
| string(REPLACE "<CONFIG>" "${_config}" _propconfig "${_prop}") | |
| get_property(_is_set TARGET "${_target}" PROPERTY "${_propconfig}" SET) | |
| if(_is_set) | |
| get_target_property(_val "${_target}" "${_propconfig}") | |
| - | message("${_target}.${_propconfig} = '${_val}'") |
| + | message(" ${_target}.${_propconfig} = \"${_val}\"") |
| endif() | |
| endforeach() | |
| else() | |
| get_property(_is_set TARGET "${_target}" PROPERTY "${_prop}" SET) | |
| if(_is_set) | |
| get_target_property(_val "${_target}" "${_prop}") | |
| - | message("${_target}.${_prop} = '${_val}'") |
| + | message(" ${_target}.${_prop} = \"${_val}\"") |
| endif() | |
| endif() | |
| endforeach() | |