diff options
author | Martin Braun <martin.braun@ettus.com> | 2020-03-05 16:23:07 -0800 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-04-02 12:36:20 -0500 |
commit | 1383fde3457168ed759d6ed3b913dfae8a6085ef (patch) | |
tree | 60acf5dfd0a917e6fcc562005dd2405332e1f8bb /host/lib/include/uhdlib/utils | |
parent | c65166562f1278f6633b183b7188789158210544 (diff) | |
download | uhd-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.hpp | 22 |
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 */ |