diff options
author | Joel Rosdahl <joel@rosdahl.net> | 2022-11-13 14:43:35 +0100 |
---|---|---|
committer | Joel Rosdahl <joel@rosdahl.net> | 2022-11-13 16:36:30 +0100 |
commit | 876509ae8b95f76adebdfa1f2380d75a49f9871d (patch) | |
tree | ce9c3dca6583c915eea3d8adf76af2ba6e0d6856 /src | |
parent | fee7808210fbf2ca1934d9d9eec948ab19cb5762 (diff) | |
download | ccache-876509ae8b95f76adebdfa1f2380d75a49f9871d.tar.gz |
fix: Use $XDG_RUNTIME_DIR/ccache-tmp as the default temporary directory
See discussion in #1221.
Diffstat (limited to 'src')
-rw-r--r-- | src/Config.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Config.cpp b/src/Config.cpp index 5755c1b6..75a1358d 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -1114,9 +1114,10 @@ std::string Config::default_temporary_dir() const { static const std::string run_user_tmp_dir = [] { -#ifdef HAVE_GETEUID - if (Stat::stat("/run").is_directory()) { - auto dir = FMT("/run/user/{}/ccache-tmp", geteuid()); +#ifndef _WIN32 + const char* const xdg_runtime_dir = getenv("XDG_RUNTIME_DIR"); + if (xdg_runtime_dir && Stat::stat(xdg_runtime_dir).is_directory()) { + auto dir = FMT("{}/ccache-tmp", xdg_runtime_dir); if (Util::create_dir(dir) && access(dir.c_str(), W_OK) == 0) { return dir; } |