aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib/utils
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2020-03-05 16:23:07 -0800
committerAaron Rossetto <aaron.rossetto@ni.com>2020-04-02 12:36:20 -0500
commit1383fde3457168ed759d6ed3b913dfae8a6085ef (patch)
tree60acf5dfd0a917e6fcc562005dd2405332e1f8bb /host/lib/include/uhdlib/utils
parentc65166562f1278f6633b183b7188789158210544 (diff)
downloaduhd-1383fde3457168ed759d6ed3b913dfae8a6085ef.tar.gz
uhd-1383fde3457168ed759d6ed3b913dfae8a6085ef.tar.bz2
uhd-1383fde3457168ed759d6ed3b913dfae8a6085ef.zip
uhd: paths: Harmonize around XDG Base Directory specification
Up until now, we completely ignore the XDG specification. This commit does the following to change that: - It uses XDG_DATA_HOME and XDG_CONFIG_HOME for cal and config data, respectively. - If config data is in ~/.uhd/uhd.conf, that is still accepted, but if it conflicts with $XDG_CONFIG_HOME/uhd.conf, it is ignored and a warning is displayed - The default location for cal data is thus ${HOME}/.local/share/uhd/cal on Unix, and %LOCALAPPDATA%\uhd\cal on Windows. This is a change in location! - The UHD_CONFIG_DIR environment variable was confusingly named and is now removed. It provided an alternative location than the home directory. The same purpose is now much better served by XDG_DATA_HOME and XDG_CONFIG_HOME. The specification can be found here: specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
Diffstat (limited to 'host/lib/include/uhdlib/utils')
-rw-r--r--host/lib/include/uhdlib/utils/paths.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/host/lib/include/uhdlib/utils/paths.hpp b/host/lib/include/uhdlib/utils/paths.hpp
index 7caac8a7d..cff9299d6 100644
--- a/host/lib/include/uhdlib/utils/paths.hpp
+++ b/host/lib/include/uhdlib/utils/paths.hpp
@@ -7,6 +7,7 @@
#ifndef INCLUDED_UHDLIB_UTILS_PATHS_HPP
#define INCLUDED_UHDLIB_UTILS_PATHS_HPP
+#include <boost/filesystem.hpp>
#include <string>
namespace uhd {
@@ -18,8 +19,29 @@ namespace uhd {
*/
std::string path_expandvars(const std::string& path);
+//! Compatibility function for deprecated CSV file reader. Remove this when CSV
+// format for IQ/DC cal gets removed.
std::string get_appdata_path(void);
+//! Return a path to XDG_DATA_HOME
+//
+// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
+//
+// Even on non-Linux systems, this should return the place where app data is
+// written to. For UHD, this is data such as calibration data.
+boost::filesystem::path get_xdg_data_home();
+
+//! Return a path to XDG_CONFIG_HOME
+//
+// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
+//
+// Even on non-Linux systems, this should return the place where the
+// configuration file can be stored.
+boost::filesystem::path get_xdg_config_home();
+
+//! Return a path to ~/.uhd
+boost::filesystem::path get_legacy_config_home();
+
} /* namespace uhd */
#endif /* INCLUDED_UHDLIB_UTILS_PATHS_HPP */