GNUInstallDirs: Convert macros into functions Signed-off-by: Cristian Le <git@lecris.dev>
diff --git a/Modules/GNUInstallDirs.cmake b/Modules/GNUInstallDirs.cmake index ff436bc..d9d291a 100644 --- a/Modules/GNUInstallDirs.cmake +++ b/Modules/GNUInstallDirs.cmake
@@ -151,38 +151,42 @@ this value through the variable ``${dir}``. #]=======================================================================] +cmake_policy(SET CMP0140 NEW) + # Convert a cache variable to PATH type -macro(_GNUInstallDirs_cache_convert_to_path var description) - get_property(_GNUInstallDirs_cache_type CACHE ${var} PROPERTY TYPE) - if(_GNUInstallDirs_cache_type STREQUAL "UNINITIALIZED") - file(TO_CMAKE_PATH "${${var}}" _GNUInstallDirs_cmakepath) +function(_GNUInstallDirs_cache_convert_to_path var description) + get_property(cache_type CACHE ${var} PROPERTY TYPE) + if(cache_type STREQUAL "UNINITIALIZED") + file(TO_CMAKE_PATH "${${var}}" cmakepath) set_property(CACHE ${var} PROPERTY TYPE PATH) - set_property(CACHE ${var} PROPERTY VALUE "${_GNUInstallDirs_cmakepath}") + set_property(CACHE ${var} PROPERTY VALUE "${cmakepath}") set_property(CACHE ${var} PROPERTY HELPSTRING "${description}") - unset(_GNUInstallDirs_cmakepath) endif() - unset(_GNUInstallDirs_cache_type) -endmacro() +endfunction() # Create a cache variable with default for a path. -macro(_GNUInstallDirs_cache_path var default description) - if(NOT DEFINED ${var}) - set(${var} "${default}" CACHE PATH "${description}") +function(_GNUInstallDirs_cache_path var default description) + set(cmake_install_var "${var}") + set(full_description "${description}") + if(NOT DEFINED ${cmake_install_var}) + set(${cmake_install_var} "${default}" CACHE PATH "${full_description}") endif() - _GNUInstallDirs_cache_convert_to_path("${var}" "${description}") -endmacro() + _GNUInstallDirs_cache_convert_to_path("${cmake_install_var}" "${full_description}") +endfunction() # Create a cache variable with not default for a path, with a fallback # when unset; used for entries slaved to other entries such as # DATAROOTDIR. -macro(_GNUInstallDirs_cache_path_fallback var default description) - if(NOT ${var}) - set(${var} "" CACHE PATH "${description}") - set(${var} "${default}") +function(_GNUInstallDirs_cache_path_fallback var default description) + set(cmake_install_var "${var}") + if(NOT ${cmake_install_var}) + set(${cmake_install_var} "" CACHE PATH "${description}") + set(${cmake_install_var} "${default}") endif() - _GNUInstallDirs_cache_convert_to_path("${var}" "${description}") -endmacro() + _GNUInstallDirs_cache_convert_to_path("${cmake_install_var}" "${description}") + return(PROPAGATE ${cmake_install_var}) +endfunction() # Installation directories #