Broadly speaking, there are three ways in which the ResourceFinder operates to locate files:
YARP_CONFIG_HOME
<path to a directory>YARP_DATA_HOME
<path to a directory>YARP_CONFIG_DIRS
<list of path separated by (semi)colons>YARP_DATA_DIRS
<list of path separated by (semi)colons>.When searching for files and directories, the ResourceFinder looks inside these directories in the above order, so that files modified by the user take precedence over installed ones.
The default value for these variables is dependent on the operating system.
Default values for Linux are based on the XDG Base Directory Specification (see http://standards.freedesktop.org/basedir-spec/basedir-spec-0.8.html). They rely on XDG environment variables, whose default values are:
$XDG_DATA_HOME:
$HOME/.local/share/
$XDG_CONFIG_HOME:
$HOME/.config/
$XDG_DATA_DIRS:
/usr/local/share/:/usr/share/
$XDG_CONFIG_DIRS:
/etc/xdg/
Default values for YARP are:
$YARP_DATA_HOME:
$XDG_DATA_HOME + /yarp/
$YARP_CONFIG_HOME:
$XDG_CONFIG_HOME + /yarp/
$YARP_DATA_DIRS:
$XDG_DATA_DIRS + /yarp/ (appended to each dir)
$YARP_CONFIG_DIRS:
$XDG_CONFIG_DIRS + /yarp/ (appended to each dir) [NOTE: /etc/yarp is used as default instead of /etc/xdg/yarp ]
The following environment variables (with their respective default values) are available on windows:
%YARP_DIR%:
C:\Program Files\robotology\YARP_2.X.XXorC:\Program Files (x86)\robotology\YARP_2.X.XX(Set by the installer or by the user)
%HOMEPATH%:
C:\Users\<username>orC:\Documents and Settings\<username>(User home)
%APPDATA%:
%HOMEPATH%\AppData\Roaming(Windows 7) or%HOMEPATH%\Application Data(Windows XP) (Location where applications should store their data by default)
%ALLUSERSPROFILE%:
C:\ProgramData(Windows Vista) orC:\Documents and Settings\All Users(Windows XP) (Location of the "All Users" or "Common" profile folder)
Default values for YARP are therefore:
%YARP_DATA_HOME%:
%APPDATA%\yarp
%YARP_CONFIG_HOME%:
%APPDATA%\yarp\config\
%YARP_DATA_DIRS%:
%YARP_DIR%\share\yarp\
%YARP_CONFIG_DIRS%:
%ALLUSERSPROFILE%\yarp\
On macOS, the following environment variable is used:
$HOME:
/Users/<username>
Default values for YARP are therefore:
$YARP_DATA_HOME:
$HOME/Library/Application Support/yarp
$YARP_CONFIG_HOME:
$HOME/Library/Preferences/yarp
$YARP_DATA_DIRS:
/usr/local/share/yarp:/usr/share/yarp
$YARP_CONFIG_DIRS:
/etc/yarp:Library/Preferences/yarp
Config files are INI files that contain parameters used by YARP's own executables.
$YARP_CONFIG_HOME$YARP_CONFIG_DIRS + /config/($YARP_DATA_DIRS && path.d) + /config/