Utilities.cmake 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. # Returns number of arguments that evaluate to true
  26. function(curl_count_true _output_count_var)
  27. set(lst_len 0)
  28. foreach(option_var IN LISTS ARGN)
  29. if(${option_var})
  30. math(EXPR lst_len "${lst_len} + 1")
  31. endif()
  32. endforeach()
  33. set(${_output_count_var} ${lst_len} PARENT_SCOPE)
  34. endfunction()
  35. # Dump all defined variables with their values
  36. function(curl_dumpvars)
  37. message("::group::CMake Variable Dump")
  38. get_cmake_property(_vars VARIABLES)
  39. foreach(_var IN ITEMS ${_vars})
  40. get_property(_var_type CACHE ${_var} PROPERTY TYPE)
  41. get_property(_var_advanced CACHE ${_var} PROPERTY ADVANCED)
  42. if(_var_type)
  43. set(_var_type ":${_var_type}")
  44. endif()
  45. if(_var_advanced)
  46. set(_var_advanced " [adv]")
  47. endif()
  48. message("${_var}${_var_type}${_var_advanced} = ${${_var}}")
  49. endforeach()
  50. message("::endgroup::")
  51. endfunction()