| # Mimick `GNUInstallDirs` for one more install directory, the one where | |
| # project's installed cmake subdirs go. | |
| # These functions are internal functions vendored in from GNUInstallDirs (with | |
| # new names), so we don't depend on unstable implementation details. They are | |
| # also simplified to only handle the cases we need. | |
| # | |
| # The purpose would appear to be making `CACHE PATH` vars in a way that | |
| # bypasses the legacy oddity that `-D<PATH>` gets canonicalized, despite | |
| # non-canonical `CACHE PATH`s being perfectly valid. | |
| macro(_GNUInstallPackageDir_cache_convert_to_path var description) | |
| get_property(_GNUInstallPackageDir_cache_type CACHE ${var} PROPERTY TYPE) | |
| if(_GNUInstallPackageDir_cache_type STREQUAL "UNINITIALIZED") | |
| file(TO_CMAKE_PATH "${${var}}" _GNUInstallPackageDir_cmakepath) | |
| set_property(CACHE ${var} PROPERTY TYPE PATH) | |
| set_property(CACHE ${var} PROPERTY VALUE "${_GNUInstallPackageDir_cmakepath}") | |
| set_property(CACHE ${var} PROPERTY HELPSTRING "${description}") | |
| unset(_GNUInstallPackageDir_cmakepath) | |
| endif() | |
| unset(_GNUInstallPackageDir_cache_type) | |
| endmacro() | |
| # Create a cache variable with default for a path. | |
| macro(_GNUInstallPackageDir_cache_path var default description) | |
| if(NOT DEFINED ${var}) | |
| set(${var} "${default}" CACHE PATH "${description}") | |
| endif() | |
| _GNUInstallPackageDir_cache_convert_to_path("${var}" "${description}") | |
| endmacro() | |
| _GNUInstallPackageDir_cache_path(CMAKE_INSTALL_PACKAGEDIR "lib${LLVM_LIBDIR_SUFFIX}/cmake" | |
| "Directories containing installed CMake modules (lib/cmake)") |