X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Ffilesystem_paths.cc;h=c0766c066f65f2f7c3755469601bfc157ec470b9;hb=c16d5203385fdb623646f7f686adaceebd784deb;hp=37104b01a1ab2f341ed2c9372c953a3a5402acf4;hpb=96ee33aa5f086f3230db1a4de278b392c0c04ae8;p=ardour.git diff --git a/libs/ardour/filesystem_paths.cc b/libs/ardour/filesystem_paths.cc index 37104b01a1..c0766c066f 100644 --- a/libs/ardour/filesystem_paths.cc +++ b/libs/ardour/filesystem_paths.cc @@ -114,9 +114,10 @@ user_cache_directory () if ((c = getenv ("XDG_CACHE_HOME")) != 0) { p = c; } else { + #ifdef PLATFORM_WINDOWS // Not technically the home dir (since it needs to be a writable folder) - const string home_dir = Glib::build_filename (Glib::get_user_data_dir(), user_config_dir_name); + const string home_dir = Glib::get_user_data_dir(); #else const string home_dir = Glib::get_home_dir(); #endif @@ -124,14 +125,25 @@ user_cache_directory () error << "Unable to determine home directory" << endmsg; exit (1); } - p = home_dir; + +#ifndef PLATFORM_WINDOWS p = Glib::build_filename (p, ".cache"); - } #endif -#ifndef PLATFORM_WINDOWS + } +#endif // end not __APPLE__ + p = Glib::build_filename (p, user_config_dir_name); + +#ifdef PLATFORM_WINDOWS + /* On Windows Glib::get_user_data_dir is the folder to use for local + * (as opposed to roaming) application data. + * See documentation for CSIDL_LOCAL_APPDATA. + * Glib::get_user_data_dir() == GLib::get_user_config_dir() + * so we add an extra subdir *below* the config dir. + */ + p = Glib::build_filename (p, "cache"); #endif if (!Glib::file_test (p, Glib::FILE_TEST_EXISTS)) { @@ -155,7 +167,7 @@ ardour_dll_directory () #ifdef PLATFORM_WINDOWS std::string dll_dir_path(g_win32_get_package_installation_directory_of_module(NULL)); dll_dir_path = Glib::build_filename (dll_dir_path, "lib"); - return Glib::build_filename (dll_dir_path, "ardour3"); + return Glib::build_filename (dll_dir_path, LIBARDOUR); #else std::string s = Glib::getenv("ARDOUR_DLL_PATH"); if (s.empty()) { @@ -172,7 +184,7 @@ windows_search_path () { std::string dll_dir_path(g_win32_get_package_installation_directory_of_module(NULL)); dll_dir_path = Glib::build_filename (dll_dir_path, "share"); - return Glib::build_filename (dll_dir_path, "ardour3"); + return Glib::build_filename (dll_dir_path, LIBARDOUR); } #endif