Computer Assisted Medical Intervention Tool Kit  version 5.2
 
Loading...
Searching...
No Matches
camitk::Core Class Reference

Core class specifies the basic static information for the CamiTK API. More...

#include <Core.h>

Static Public Member Functions

runtime directory information
static const QStringList getComponentDirectories ()
 get all the component directories.
 
static const QStringList getActionDirectories ()
 get all the action directories.
 
static const QStringList getViewerDirectories ()
 get all the viewers directories.
 
static const QString getTestDataDir ()
 Get a valid camitk test data directory name.
 
static const QStringList getInstallDirectories (QString suffix, bool exitOnError=true)
 get all installation directories, suffixed by the given word.
 
static const QString getConfig ()
 get more information about installation, etc...
 
static const QString getPaths ()
 get all important paths
 
static const QString getGlobalInstallDir ()
 get the CAMITK_DIR (where camitk-config is installed)
 
static const QString getUserInstallDir ()
 get the user config directory (this is the local installation directory)
 
static const QString getCurrentWorkingDir ()
 get the current working directory (during dev, this should be the build directory, which is an installation directory)
 
static const QString getBugReport ()
 get a well formed bug report with all necessary information
 
runtime build information

get the type of build we are running, Debug or Release

Returns
true if running in Debug, elsewhere false for Release build.
static const bool isDebugBuild ()
 

Static Public Attributes

CamiTK Version variables set at configure time

complete version string

static const char * version = "CamiTK 5.2.0"
 
static const char * shortVersion = "camitk-5.2"
 short version string (all in lower case, without the patch number)
 
static const char * soVersion = "5"
 version used for so name
 
static const char * debugPostfix = "-debug"
 debug postfix used on MSVC to distinguished between release and debug version
 
static const char * libDir = "lib/x86_64-linux-gnu"
 library folder set depending on the compiler and environment choice (it could be lib/ or lib64/ on Linux).
 

Detailed Description

Core class specifies the basic static information for the CamiTK API.

Extensions can only be in three different places:

  • CAMITK_DIR (where the libcamitkcore is)
  • user config directory
  • current wording directory

Taking into account multiarch is difficult as some compiler/OS define CMAKE_INSTALL_LIBDIR to different values ("lib", "lib64" or even "lib/x86_64-linux-gnu" or more complicated paths). This value sometimes depends on where CMAKE_INSTALL_PATH points to (see CMake GNUInstallDirs module). For instance on debian, if CMAKE_INSTALL_PATH is equals to "/usr" then CMAKE_INSTALL_LIBDIR is set to "lib/ARCH", but if CMAKE_INSTALL_PATH is anything else, it is just set to "lib". The Core::libDir variable is defined when CamiTK core is compiled (see CamiTKVersion.h.in), but the CamiTK repositories are required also when a CamiTK application is launched.

The difficulty therefore arises as CamiTK has to load all type of extensions in all type of repositories and this must include:

  • extensions build during CamiTK core compilation (which lands in CMAKE_INSTALL_LIBDIR, and might be as complex as "lib/x86_64-linux-gnu", i.e., include a subdirectory)
  • extensions build by CEP outside CamiTK Community Edition (which will most certainly/by default be "lib/")

Note that "lib/" was the only possible value of CMAKE_INSTALL_LIBDIR before multiarch was taken into account in CamiTK 5.0.

To take into account both situations, that result in a multitude of possible directories, it was decided that:

  • repositories should be looked for either in Core::libDir or lib/
  • the case when Core::libDir is equal to lib/ must be taken into account to avoid duplicates

Member Function Documentation

◆ getActionDirectories()

const QStringList camitk::Core::getActionDirectories ( )
static

get all the action directories.

It gets all the valid directories where actions are installed, and insert them in this particular order:

  1. current working directory (build install tree)
  2. user config directory (user install tree)
  3. CamiTK SDK installation directory (global install tree)

Referenced by camitk::ExtensionManager::autoload(), getPaths(), and ImpMainWindow::initActions().

◆ getBugReport()

const QString camitk::Core::getBugReport ( )
static

get a well formed bug report with all necessary information

References getConfig().

Referenced by main(), and GenerateBugReportProcess::run().

◆ getComponentDirectories()

const QStringList camitk::Core::getComponentDirectories ( )
static

get all the component directories.

It gets all the valid directories where components are installed, and insert them in this particular order:

  1. current working directory (build install tree)
  2. user config directory (user install tree)
  3. CamiTK SDK installation directory (global install tree)

Referenced by camitk::ExtensionManager::autoload(), getPaths(), camitk::Application::open(), camitk::Application::openDirectory(), and camitk::Application::save().

◆ getConfig()

◆ getCurrentWorkingDir()

const QString camitk::Core::getCurrentWorkingDir ( )
static

get the current working directory (during dev, this should be the build directory, which is an installation directory)

Referenced by getConfig(), getInstallDirectories(), getPaths(), and camitk::Application::saveHistoryAsSXML().

◆ getGlobalInstallDir()

const QString camitk::Core::getGlobalInstallDir ( )
static

get the CAMITK_DIR (where camitk-config is installed)

References camitk::Application::getName(), and getUserInstallDir().

Referenced by getConfig(), getInstallDirectories(), getPaths(), camitk::ExtensionManager::loadExtension(), and main().

◆ getInstallDirectories()

const QStringList camitk::Core::getInstallDirectories ( QString  suffix,
bool  exitOnError = true 
)
static

get all installation directories, suffixed by the given word.

All the returned Strings are unique valid directories, sorted in this particular order:

  1. current working directory (build install tree)
  2. user config directory (user install tree)
  3. CamiTK SDK installation directory (global install tree)

It uses getExtensionDirectories() to take multiarch into account

If no directory is available and exitOnError is true, the application exits. There are situation (namely for checking testdata dir) where it not mandatory to find a directory. In this case, exitOnError should be set to false so that the application does not exit.

References CAMITK_ERROR_ALT, getCurrentWorkingDir(), getGlobalInstallDir(), and getUserInstallDir().

Referenced by getTestDataDir(), and SimpleElastixRegistrationAction::SimpleElastixRegistrationAction().

◆ getPaths()

◆ getTestDataDir()

const QString camitk::Core::getTestDataDir ( )
static

Get a valid camitk test data directory name.

It returns the first valid test data directory that is found. Checking is done in this particular order:

  1. current working directory (build install tree)
  2. user config directory (user install tree)
  3. CamiTK SDK installation directory (global install tree)

If none of this three directories is valid, return user's home directory.

A test data directory is valid if it exists and contains a least one file.

Returns
a null QString, checkable with isNull(), if no test data directory found

References getInstallDirectories(), and shortVersion.

Referenced by camitk::Application::Application(), SetPathToTestData::apply(), and getPaths().

◆ getUserInstallDir()

const QString camitk::Core::getUserInstallDir ( )
static

get the user config directory (this is the local installation directory)

References camitk::Application::getSettings().

Referenced by getConfig(), getGlobalInstallDir(), getInstallDirectories(), and getPaths().

◆ getViewerDirectories()

const QStringList camitk::Core::getViewerDirectories ( )
static

get all the viewers directories.

It gets all the valid directories where viewers are installed, and insert them in this particular order:

  1. current working directory (build install tree)
  2. user config directory (user install tree)
  3. CamiTK SDK installation directory (global install tree)

Referenced by camitk::ExtensionManager::autoload(), and getPaths().

◆ isDebugBuild()

const bool camitk::Core::isDebugBuild ( )
static

Referenced by getPaths().

Member Data Documentation

◆ debugPostfix

const char * camitk::Core::debugPostfix = "-debug"
static

debug postfix used on MSVC to distinguished between release and debug version

◆ libDir

const char * camitk::Core::libDir = "lib/x86_64-linux-gnu"
static

library folder set depending on the compiler and environment choice (it could be lib/ or lib64/ on Linux).

libDir value is set directly to the value of CMAKE_INSTALL_LIBDIR.

Although it can not be called a version variable per se, it is required for the extension manager to find the available extensions.

Referenced by camitk::ExtensionManager::getInstallationString(), and camitk::ExtensionManager::loadExtension().

◆ shortVersion

const char * camitk::Core::shortVersion = "camitk-5.2"
static

short version string (all in lower case, without the patch number)

Referenced by getPaths(), getTestDataDir(), camitk::ExtensionManager::loadExtension(), and main().

◆ soVersion

const char * camitk::Core::soVersion = "5"
static

version used for so name

Referenced by getPaths().

◆ version

const char * camitk::Core::version = "CamiTK 5.2.0"
static

The documentation for this class was generated from the following files: