···11+# VCPKG {#sec-vcpkg}
22+33+The `vcpkg-tool` package has a wrapper around the `vcpkg` executable to avoid writing to the nix store.
44+The wrapper will also be present in `vcpkg`, unless you specify `vcpkg.override { vcpkg-tool = vcpkg-tool-unwrapped; }`
55+66+The wrapper has been made in a way so that it will provide default cli arguments, but tries not to interfere if the user provides the same arguments.
77+The arguments also have corresponding environment variables that can be used as an alternative way of overriding these paths.
88+99+Run the wrapper with the environment variable `NIX_VCPKG_DEBUG_PRINT_ENVVARS=true` to get a full list of corresponding environment variables.
1010+1111+## Nix specific environment variables {#sec-vcpkg-nix-envvars}
1212+1313+The wrapper also provides some new nix-specific environment variables that lets you control some of the wrapper functionality.
1414+1515+- `NIX_VCPKG_WRITABLE_PATH = <path>`
1616+1717+ Set this environment variable to specify the path where `vcpkg` will store buildtime artifacts.
1818+ This will become the base path for all of the other paths.
1919+2020+- `NIX_VCPKG_DEBUG_PRINT_ENVVARS = true | false`
2121+2222+ Set this to `true` for the wrapper to print the corresponding environment variables for the arguments that will be provided to the unwrapped executable.
2323+ The list of variables will be printed right before invoking `vcpkg`.
2424+ This can be useful if you suspect that the wrapper for some reason was unable to prioritize user-provided cli args over its default ones, or for fixing other issues like typos or unexpanded environment variables.