CMP0193 — CMake 4.1.4 Documentation

# CMP0193

Added in version 4.1.

`GNUInstallDirs` caches `CMAKE_INSTALL_*` with leading `usr/` for install prefix `/`.

When `CMAKE_INSTALL_PREFIX` is `/`, the `CMAKE_INSTALL_<dir>` variables, for `<dir>` equal to `BINDIR`, `SBINDIR`, `LIBEXECDIR`, `SHAREDSTATEDIR`, `INCLUDEDIR`, `OLDINCLUDEDIR`, `DATAROOTDIR`, and `LIBDIR`, are prepended with a leading `usr/` as documented among the special cases. In CMake 4.0 and below, these `CMAKE_INSTALL_<dir>` variables were cached without their leading `usr/`, and it was prepended in normal variables that shadow their cache entries. CMake 4.1 and above prefer to cache `CMAKE_INSTALL_<dir>` with their leading `usr/`. Consequently, the `GNUInstallDirs_get_absolute_install_dir()` command no longer alters the relative input variable argument `<input-var>`. This policy provides compatibility for projects that have not been updated to expect the new behavior.

The `OLD` behavior for this policy is to cache `CMAKE_INSTALL_<dir>` variables without the leading `usr/`. The `NEW` behavior for this policy is to cache `CMAKE_INSTALL_<dir>` variables with the leading `usr/`.

This policy was introduced in CMake version 4.1. It may be set by `cmake_policy()` or `cmake_minimum_required()`. If it is not set, CMake does not warn, and uses `OLD` behavior.

Note

The `OLD` behavior of a policy is `deprecated by definition` and may be removed in a future version of CMake.