Regina 7.3 Calculation Engine
|
Provides global routines that return directories in which various components of Regina are installed on the system. More...
#include <file/globaldirs.h>
Static Public Member Functions | |
static std::string | home () |
Returns Regina's primary home directory on the system. More... | |
static std::string | pythonModule () |
Returns the directory in which Regina's python module is installed, or the empty string if the module is installed in python's standard site-packages directory. More... | |
static std::string | census () |
Returns the directory containing the large machine-encoded census data files. More... | |
static std::string | examples () |
Returns the directory in which example data files (including the smaller but human-browsable census data files) are installed. More... | |
static std::string | engineDocs () |
Returns the directory in which API documentation for Regina's calculation engine is installed. More... | |
static std::string | data () |
Returns the directory containing miscellaneous data files for internal use Regina's calculation engine. More... | |
static void | setDirs (const std::string &homeDir, const std::string &pythonDir, const std::string &censusDir=std::string()) |
Tells Regina explicitly where its supporting files are installed. More... | |
static void | deduceDirs (const char *executable) |
Ask Regina to deduce where its supporting files are installed. More... | |
Provides global routines that return directories in which various components of Regina are installed on the system.
By default, these routines return directories that were configured by cmake when Regina was compiled, which will only be useful with a fixed filesystem installation of Regina (e.g., a typical Linux install).
If Regina may be running from a different place in the filesystem (e.g., if you are running an app bundle on macOS or if you are running directly from the source tree), then you must call either setDirs() or deduceDirs() when your application starts. Otherwise the directories that GlobalDirs returns might be incorrect, and might not even exist.
|
inlinestatic |
Returns the directory containing the large machine-encoded census data files.
These data files are not human-browsable: instead they are built for fast performance and small size. Users can access them by calling Census::lookup().
On a typical GNU/Linux system, this directory might (for example) be /usr/local/share/regina/data/census
.
|
inlinestatic |
Returns the directory containing miscellaneous data files for internal use Regina's calculation engine.
This is computed automatically as the data/
subdirectory of home().
On a typical GNU/Linux system, this directory might (for example) be /usr/local/share/regina/data
.
|
static |
Ask Regina to deduce where its supporting files are installed.
You should call either setDirs() or deduceDirs() at runtime if Regina is not installed in the location that was configured by cmake at build time (e.g., if you are running a macOS app bundle, or if you are running directly out of the source tree).
This routine sets all of the relevant paths automatically, based on the type of build and the location of the given executable (which is typically the program currently being run). It can identify the correct paths for fixed XDG installations, relocatable macOS bundles, Windows installations, and also running directly from within the source tree.
If running from within the source tree, the executable must be inside the build tree (any depth of subdirectory within the build tree is fine). Moreover, it is assumed that the build tree is either an immediate subdirectory of the source root, or else is the source root itself. So, for example, an executable path of regina-X.Y/qtui/src/regina-gui
or regina-X.Y/build/qtui/src/regina-gui
is fine, but regina-X.Y/tmp/build/qtui/src/regina-gui
is not.
This routine respects the following environment variables, and these will take precedence over any automatic deductions:
$REGINA_HOME/data/census
.If you have an unusual setup where Regina cannot deduce the paths correctly, you can always call setDirs() to set the paths explicitly yourself.
executable | the path to an executable, which would typically be the executable currently being run. |
|
inlinestatic |
Returns the directory in which API documentation for Regina's calculation engine is installed.
This is computed automatically:
engine-docs/
subdirectory of home();On a typical GNU/Linux system, this directory might (for example) be /usr/local/share/regina/engine-docs
.
|
inlinestatic |
Returns the directory in which example data files (including the smaller but human-browsable census data files) are installed.
This is computed automatically as the examples/
subdirectory of home().
On a typical GNU/Linux system, this directory might (for example) be /usr/local/share/regina/examples
.
|
inlinestatic |
Returns Regina's primary home directory on the system.
This directory should contains subdirectories data, icons/, examples/ and so on.
On a typical GNU/Linux system, this directory might (for example) be /usr/local/share/regina
.
|
inlinestatic |
Returns the directory in which Regina's python module is installed, or the empty string if the module is installed in python's standard site-packages directory.
|
static |
Tells Regina explicitly where its supporting files are installed.
You should call either setDirs() or deduceDirs() at runtime if Regina is not installed in the location that was configured by cmake at build time (e.g., if you are running a macOS app bundle, or if you are running directly out of the source tree).
In most settings, it is better to call deduceDirs(), since this avoids you (the programmer) having to manage through the many different possible platforms and runtime environments.
Empty strings are treated as follows:
homeDir | Regina's primary home directory; this will be returned by homeDir(). |
pythonDir | the directory containing Regina's python module, or the empty string if the module has been installed in python's standard site-packages directory; this will be returned by pythonModule(). |
censusDir | The directory containing the large machine-encoded census data files; this will be returned by census(). |