1#*************************************************************************** 2# _ _ ____ _ 3# Project ___| | | | _ \| | 4# / __| | | | |_) | | 5# | (__| |_| | _ <| |___ 6# \___|\___/|_| \_\_____| 7# 8# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. 9# 10# This software is licensed as described in the file COPYING, which 11# you should have received as part of this distribution. The terms 12# are also available at https://curl.se/docs/copyright.html. 13# 14# You may opt to use, copy, modify, merge, publish, distribute and/or sell 15# copies of the Software, and permit persons to whom the Software is 16# furnished to do so, under the terms of the COPYING file. 17# 18# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19# KIND, either express or implied. 20# 21# SPDX-License-Identifier: curl 22# 23########################################################################### 24# File containing various utilities 25 26# Return number of arguments that evaluate to true 27function(curl_count_true _output_count_var) 28 set(_list_len 0) 29 foreach(_option_var IN LISTS ARGN) 30 if(${_option_var}) 31 math(EXPR _list_len "${_list_len} + 1") 32 endif() 33 endforeach() 34 set(${_output_count_var} ${_list_len} PARENT_SCOPE) 35endfunction() 36 37# Dump all defined variables with their values 38function(curl_dumpvars) 39 message("::group::CMake Variable Dump") 40 get_cmake_property(_vars VARIABLES) 41 foreach(_var IN ITEMS ${_vars}) 42 get_property(_var_type CACHE ${_var} PROPERTY TYPE) 43 get_property(_var_advanced CACHE ${_var} PROPERTY ADVANCED) 44 if(_var_type) 45 set(_var_type ":${_var_type}") 46 endif() 47 if(_var_advanced) 48 set(_var_advanced " [adv]") 49 endif() 50 message("${_var}${_var_type}${_var_advanced} = ${${_var}}") 51 endforeach() 52 message("::endgroup::") 53endfunction() 54