# ============================================================================ # Copyright (c) 2011-2012 University of Pennsylvania # Copyright (c) 2013-2016 Andreas Schuh # All rights reserved. # # See COPYING file for license information or visit # https://cmake-basis.github.io/download.html#license # ============================================================================ ############################################################################## # @file DirectoriesSettings.cmake # @brief CMake variables of project directories. # # This file configures the project directory structure as defined by the # Filesystem Hierarchy Standard for BASIS packages. # # @sa https://cmake-basis.github.io/standard/fhs/ # # The project must follow the directory structure as defined by the # PROJECT_<*>_DIR variables. # # Ideally, when changing the name of one of these directories, only the # directory structure of the template needs to be updated. The BASIS CMake # functions should not be required to change as they are supposed to use these # variables instead of the actual names. Any change of the project directory # structure has to be made with care, however, and backwards compatibility to # previous releases of BASIS shall be maintained. Consider the use of the # @c TEMPLATE_VERSION if required. # # @note The documentation of the variables can be found in Directories.cmake.in. ############################################################################## # ============================================================================ # root directories of top-level project # ============================================================================ if (NOT PROJECT_IS_MODULE) set (TOPLEVEL_PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}") set (TOPLEVEL_PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}") endif () # ============================================================================ # local variables # ============================================================================ if (BUNDLE_NAME AND NOT BUNDLE_NAME MATCHES "${PROJECT_PACKAGE_NAME_RE}") set (_BUNDLE "/${BUNDLE_NAME}") else () set (_BUNDLE) endif () if (PROJECT_PACKAGE_VENDOR) set (_VENDOR "/${PROJECT_PACKAGE_VENDOR}") else () set (_VENDOR) endif () set (_PACKAGE "/${PROJECT_PACKAGE_NAME}") if (PROJECT_IS_SUBPROJECT) set (_MODULE "/${PROJECT_NAME}") else () set (_MODULE) endif () if (UNIX) string (TOLOWER "${_VENDOR}" _VENDOR) string (TOLOWER "${_PACKAGE}" _PACKAGE) string (TOLOWER "${_MODULE}" _MODULE) string (TOLOWER "${_BUNDLE}" _BUNDLE) endif () # ============================================================================ # directories of site packages of script interpreters # ============================================================================ # ---------------------------------------------------------------------------- set (PYTHON_SITELIB) if (PYTHON_EXECUTABLE) execute_process ( COMMAND "${PYTHON_EXECUTABLE}" "${BASIS_MODULE_PATH}/get_python_lib.py" RESULT_VARIABLE _RV OUTPUT_VARIABLE PYTHON_SITELIB OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if (NOT _RV EQUAL 0) set (PYTHON_SITELIB) endif () endif () # ---------------------------------------------------------------------------- set (JYTHON_SITELIB) if (JYTHON_EXECUTABLE) execute_process ( COMMAND "${JYTHON_EXECUTABLE}" "${BASIS_MODULE_PATH}/get_python_lib.py" RESULT_VARIABLE _RV OUTPUT_VARIABLE JYTHON_SITELIB OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET ) if (NOT _RV EQUAL 0) set (JYTHON_SITELIB) endif () endif () # ---------------------------------------------------------------------------- # Perl find_package (PerlLibs QUIET) if (NOT PerlLibs_FOUND) set (PERL_SITELIB) endif () # ============================================================================ # testing tree # ============================================================================ set (TESTING_OUTPUT_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/Temporary${_MODULE}") set (TESTING_RUNTIME_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/bin${_MODULE}") set (TESTING_LIBEXEC_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/lib${_MODULE}") set (TESTING_LIBRARY_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/lib${_MODULE}") set (TESTING_ARCHIVE_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/lib${_MODULE}") foreach (_L IN ITEMS python jython perl matlab bash) string (TOUPPER "${_L}" _U) set (TESTING_${_U}_LIBRARY_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/Testing/lib/${_L}") endforeach () # ============================================================================ # build tree # ============================================================================ # set directories corresponding to the source tree directories foreach (_P CODE CONFIG DATA DOC EXAMPLE MODULES TESTING) basis_get_relative_path (_D "${PROJECT_SOURCE_DIR}" "${PROJECT_${_P}_DIR}") set (BINARY_${_P}_DIR "${PROJECT_BINARY_DIR}/${_D}") endforeach () set (BINARY_INCLUDE_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/include") set (BINARY_RUNTIME_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/bin") set (BINARY_LIBEXEC_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/lib${_MODULE}") set (BINARY_LIBRARY_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/lib${_MODULE}") set (BINARY_ARCHIVE_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/lib${_MODULE}") if (WIN32) set (BINARY_LIBCONF_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/CMake") else () set (BINARY_LIBCONF_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/lib/cmake${_PACKAGE}") endif () foreach (_L IN ITEMS python jython perl matlab bash) string (TOUPPER "${_L}" _U) set (BINARY_${_U}_LIBRARY_DIR "${TOPLEVEL_PROJECT_BINARY_DIR}/lib/${_L}") endforeach () # set default CMake variables which are, however, not used by BASIS set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${BINARY_RUNTIME_DIR}") set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${BINARY_LIBRARY_DIR}") set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${BINARY_ARCHIVE_DIR}") # ============================================================================ # install tree # ============================================================================ # Attention: In order for CPack to work correctly, the destination paths have # to be given relative to CMAKE_INSTALL_PREFIX. Therefore, this # prefix must be excluded from the following paths! # ---------------------------------------------------------------------------- # default installation prefix string (REGEX REPLACE "[\\/]+$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") # change default installation prefix used by CMake if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX) # //[-] if (WIN32) get_filename_component (CMAKE_INSTALL_PREFIX "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion;ProgramFilesDir]" ABSOLUTE) if (NOT CMAKE_INSTALL_PREFIX OR CMAKE_INSTALL_PREFIX MATCHES "/registry") set (CMAKE_INSTALL_PREFIX "C:/Program Files") endif () set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}${_VENDOR}${_PACKAGE}") if (NOT PROJECT_VERSION MATCHES "^0\\.0\\.0$") set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}-${PROJECT_VERSION}") endif () # /opt//[-] else () set (CMAKE_INSTALL_PREFIX "/opt${_VENDOR}${_PACKAGE}") if (NOT PROJECT_VERSION MATCHES "^0\\.0\\.0$") set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}-${PROJECT_VERSION}") endif () endif () endif () set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Installation prefix." FORCE) # ---------------------------------------------------------------------------- # installation scheme - non-cached, can be preset using -D option of CMake set (BASIS_INSTALL_SCHEME "default" CACHE STRING "default, opt, usr, win") set_property(CACHE BASIS_INSTALL_SCHEME PROPERTY STRINGS default opt usr win) mark_as_advanced (BASIS_INSTALL_SCHEME) if (BASIS_INSTALL_SCHEME MATCHES "default") string (TOLOWER "${CMAKE_INSTALL_PREFIX}" _CMAKE_INSTALL_PREFIX_L) basis_sanitize_for_regex (_BUNDLE_NAME_RE "${BUNDLE_NAME}") string (TOLOWER "{_BUNDLE_NAME_RE}" _BUNDLE_NAME_RE_L) string (TOUPPER "{_BUNDLE_NAME_RE}" _BUNDLE_NAME_RE_U) if (WIN32) set (BASIS_INSTALL_SCHEME win) elseif (NOT _BUNDLE AND _CMAKE_INSTALL_PREFIX_L MATCHES "/(.*[_-])?(${PROJECT_PACKAGE_NAME_RE}|${PROJECT_PACKAGE_NAME_RE_L}|${PROJECT_PACKAGE_NAME_RE_U})[_-]?") # e.g. /opt/[-] set (BASIS_INSTALL_SCHEME opt) elseif (_BUNDLE AND _CMAKE_INSTALL_PREFIX_L MATCHES "/(.*[_-])?(${_BUNDLE_NAME_RE}|${_BUNDLE_NAME_RE_L}|${_BUNDLE_NAME_RE_U})[_-]?") # e.g. /opt/[-] set (BASIS_INSTALL_SCHEME opt) else () set (BASIS_INSTALL_SCHEME usr) endif () unset (_CMAKE_INSTALL_PREFIX_L) unset (_BUNDLE_NAME_RE) unset (_BUNDLE_NAME_RE_L) unset (_BUNDLE_NAME_RE_U) endif () if (NOT BASIS_INSTALL_SCHEME MATCHES "^(opt|usr|win|bundle)$") message (FATAL_ERROR "Invalid BASIS_INSTALL_SCHEME! Valid values are 'default', 'opt', 'usr', 'win'.") endif () # ---------------------------------------------------------------------------- # installation directories if (BASIS_INSTALL_SCHEME MATCHES "win") # e.g., CMAKE_INSTALL_PREFIX := // # -------------------------------------------------------------------------- # bundled dependency if (_BUNDLE) # package configuration set (INSTALL_CONFIG_DIR "CMake") # executables set (INSTALL_RUNTIME_DIR "Lib${_PACKAGE}${_MODULE}") set (INSTALL_LIBEXEC_DIR "Lib${_PACKAGE}${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "Include") set (INSTALL_LIBRARY_DIR "Lib${_PACKAGE}${_MODULE}") set (INSTALL_ARCHIVE_DIR "Lib${_PACKAGE}${_MODULE}") # shared data set (INSTALL_SHARE_DIR "Share${_PACKAGE}${_MODULE}") set (INSTALL_DATA_DIR "Data${_PACKAGE}${_MODULE}") set (INSTALL_EXAMPLE_DIR "Example${_PACKAGE}${_MODULE}") # documentation set (INSTALL_DOC_DIR "Doc${_PACKAGE}${_MODULE}") set (INSTALL_MAN_DIR) set (INSTALL_TEXINFO_DIR) # -------------------------------------------------------------------------- # main package else () # package configuration set (INSTALL_CONFIG_DIR "CMake") # executables set (INSTALL_RUNTIME_DIR "Bin") set (INSTALL_LIBEXEC_DIR "Lib${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "Include") set (INSTALL_LIBRARY_DIR "Lib${_MODULE}") set (INSTALL_ARCHIVE_DIR "Lib${_MODULE}") # shared data set (INSTALL_SHARE_DIR "Share${_MODULE}") set (INSTALL_DATA_DIR "Data${_MODULE}") set (INSTALL_EXAMPLE_DIR "Example${_MODULE}") # documentation set (INSTALL_DOC_DIR "Doc${_MODULE}") set (INSTALL_MAN_DIR) set (INSTALL_TEXINFO_DIR) endif () elseif (BASIS_INSTALL_SCHEME MATCHES "usr") # e.g., CMAKE_INSTALL_PREFIX := /usr/local # -------------------------------------------------------------------------- # bundled dependency if (_BUNDLE) # package configuration set (INSTALL_CONFIG_DIR "lib/cmake${_BUNDLE}") # executables set (INSTALL_RUNTIME_DIR "lib${_BUNDLE}${_PACKAGE}${_MODULE}") set (INSTALL_LIBEXEC_DIR "lib${_BUNDLE}${_PACKAGE}${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "include") set (INSTALL_LIBRARY_DIR "lib${_BUNDLE}${_PACKAGE}${_MODULE}") set (INSTALL_ARCHIVE_DIR "lib${_BUNDLE}${_PACKAGE}${_MODULE}") # shared data set (INSTALL_SHARE_DIR "share${_BUNDLE}${_PACKAGE}${_MODULE}") set (INSTALL_DATA_DIR "share${_BUNDLE}${_PACKAGE}${_MODULE}/data") set (INSTALL_EXAMPLE_DIR "share${_BUNDLE}${_PACKAGE}${_MODULE}/example") # documentation set (INSTALL_DOC_DIR "doc${_BUNDLE}${_PACKAGE}${_MODULE}") set (INSTALL_MAN_DIR "share${_BUNDLE}${_PACKAGE}${_MODULE}/man") set (INSTALL_TEXINFO_DIR "share${_BUNDLE}${_PACKAGE}${_MODULE}/info") # -------------------------------------------------------------------------- # main package else () # package configuration set (INSTALL_CONFIG_DIR "lib/cmake${_PACKAGE}") # executables set (INSTALL_RUNTIME_DIR "bin") set (INSTALL_LIBEXEC_DIR "lib${_PACKAGE}${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "include") set (INSTALL_LIBRARY_DIR "lib${_PACKAGE}${_MODULE}") set (INSTALL_ARCHIVE_DIR "lib${_PACKAGE}${_MODULE}") # shared data set (INSTALL_SHARE_DIR "share${_PACKAGE}${_MODULE}") set (INSTALL_DATA_DIR "share${_PACKAGE}${_MODULE}/data") set (INSTALL_EXAMPLE_DIR "share${_PACKAGE}${_MODULE}/example") # documentation set (INSTALL_DOC_DIR "doc${_PACKAGE}${_MODULE}") set (INSTALL_MAN_DIR "share/man") set (INSTALL_TEXINFO_DIR "share/info") endif () else () # e.g., CMAKE_INSTALL_PREFIX := /opt// # -------------------------------------------------------------------------- # bundled dependency if (_BUNDLE) # package configuration set (INSTALL_CONFIG_DIR "lib/cmake${_BUNDLE}") # executables set (INSTALL_RUNTIME_DIR "lib${_PACKAGE}${_MODULE}") set (INSTALL_LIBEXEC_DIR "lib${_PACKAGE}${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "include") set (INSTALL_LIBRARY_DIR "lib${_PACKAGE}${_MODULE}") set (INSTALL_ARCHIVE_DIR "lib${_PACKAGE}${_MODULE}") # shared data set (INSTALL_SHARE_DIR "share${_PACKAGE}${_MODULE}") set (INSTALL_DATA_DIR "share${_PACKAGE}${_MODULE}/data") set (INSTALL_EXAMPLE_DIR "share${_PACKAGE}${_MODULE}/example") # documentation set (INSTALL_DOC_DIR "doc${_PACKAGE}${_MODULE}") set (INSTALL_MAN_DIR "share${_PACKAGE}${_MODULE}/man") set (INSTALL_TEXINFO_DIR "share${_PACKAGE}${_MODULE}/info") else () # package configuration set (INSTALL_CONFIG_DIR "lib/cmake${_PACKAGE}") # executables set (INSTALL_RUNTIME_DIR "bin") set (INSTALL_LIBEXEC_DIR "lib${_MODULE}") # libraries set (INSTALL_INCLUDE_DIR "include") set (INSTALL_LIBRARY_DIR "lib${_MODULE}") set (INSTALL_ARCHIVE_DIR "lib${_MODULE}") # shared data set (INSTALL_SHARE_DIR "share${_MODULE}") set (INSTALL_DATA_DIR "share${_MODULE}/data") set (INSTALL_EXAMPLE_DIR "share${_MODULE}/example") # documentation set (INSTALL_DOC_DIR "doc${_MODULE}") set (INSTALL_MAN_DIR "man") set (INSTALL_TEXINFO_DIR "info") endif () endif () # ---------------------------------------------------------------------------- # private script libraries # # The modules of script libraries which are only intended for use by this # package itself are installed within the package own installation # prefix/subdirectories. if (BASIS_INSTALL_SCHEME MATCHES "win") foreach (_L IN ITEMS Python Jython Perl Matlab Bash) string (TOUPPER "${_L}" _U) if (BASIS_COMPILE_SCRIPTS) if (_U MATCHES "PERL") set (INSTALL_${_U}_LIBRARY_DIR "Lib/Perl5") elseif (NOT _U MATCHES "MATLAB|BASH" AND ${_U}_VERSION_MAJOR AND DEFINED ${_U}_VERSION_MINOR) set (INSTALL_${_U}_LIBRARY_DIR "Lib/${_L}${${_U}_VERSION_MAJOR}.${${_U}_VERSION_MINOR}") else () set (INSTALL_${_U}_LIBRARY_DIR "Lib/${_L}") endif () else () set (INSTALL_${_U}_LIBRARY_DIR "Lib/${_L}") endif () endforeach () elseif (BASIS_INSTALL_SCHEME MATCHES "usr") if (_BUNDLE) set (_P "${_BUNDLE}") else () set (_P "${_PACKAGE}") endif () foreach (_L IN ITEMS python jython perl matlab bash) string (TOUPPER "${_L}" _U) if (BASIS_COMPILE_SCRIPTS) if (_U MATCHES "PERL") set (INSTALL_${_U}_LIBRARY_DIR "lib${_P}/perl5") elseif (NOT _U MATCHES "MATLAB|BASH" AND ${_U}_VERSION_MAJOR AND DEFINED ${_U}_VERSION_MINOR) set (INSTALL_${_U}_LIBRARY_DIR "lib${_P}/${_L}${${_U}_VERSION_MAJOR}.${${_U}_VERSION_MINOR}") else () set (INSTALL_${_U}_LIBRARY_DIR "lib${_P}/${_L}") endif () else () set (INSTALL_${_U}_LIBRARY_DIR "lib${_P}/${_L}") endif () endforeach () else () # opt foreach (_L IN ITEMS python jython perl matlab bash) string (TOUPPER "${_L}" _U) if (BASIS_COMPILE_SCRIPTS) if (_U MATCHES "PERL") set (INSTALL_${_U}_LIBRARY_DIR "lib/perl5") elseif (NOT _U MATCHES "MATLAB|BASH" AND ${_U}_VERSION_MAJOR AND DEFINED ${_U}_VERSION_MINOR) set (INSTALL_${_U}_LIBRARY_DIR "lib/${_L}${${_U}_VERSION_MAJOR}.${${_U}_VERSION_MINOR}") else () set (INSTALL_${_U}_LIBRARY_DIR "lib/${_L}") endif () else () set (INSTALL_${_U}_LIBRARY_DIR "lib/${_L}") endif () endforeach () endif () # ---------------------------------------------------------------------------- # public script libraries # # The modules of script libraries which are intended for use by external packages # are installed in the respective installation directories of the particular # interpreter. For example, in case of Python, the public Python modules are # installed in the site-packages directory of the found PYTHON_EXECUTABLE. # In particular the modules in the PROJECT_LIBRARY_DIR are intended for use # by external packages. Other modules added using the basis_add_script_library() # and basis_add_script() CMake functions are by default considered to be intended # for internal use by the other modules and executable scripts. # # Note: For those interpreters of scripting languages which by themselves do # not define a common installation directory for site packages, the # installation directory for public modules may be identical to the # one for private modules. Moreover, the user has the option to disable # the installation of public modules in the system default site directories # in order to prevent the installation of files outside the CMAKE_INSTALL_PREFIX. # reset directories if BASIS_INSTALL_SITE_PACKAGES option has been changed if (DEFINED _BASIS_INSTALL_SITE_PACKAGES) set (_RESET FALSE) if (BASIS_INSTALL_SITE_PACKAGES AND NOT _BASIS_INSTALL_SITE_PACKAGES) set (_RESET TRUE) elseif (NOT BASIS_INSTALL_SITE_PACKAGES AND _BASIS_INSTALL_SITE_PACKAGES) set (_RESET TRUE) endif () if (_RESET) foreach (_L IN ITEMS PYTHON JYTHON PERL) # do not reset if BASIS_INSTALL_SITE_PACKAGES is OFF and path is already relative if (IS_ABSOLUTE "${INSTALL_${_L}_SITE_DIR}" OR BASIS_INSTALL_SITE_PACKAGES) basis_update_value (INSTALL_${_L}_SITE_DIR) endif () endforeach () endif () unset (_RESET) endif () set (_BASIS_INSTALL_SITE_PACKAGES "${BASIS_INSTALL_SITE_PACKAGES}" CACHE INTERNAL "Previous value of BASIS_INSTALL_SITE_PACKAGES option." FORCE) # try to determine default installation directories if (BASIS_INSTALL_SITE_PACKAGES) # Python if (NOT INSTALL_PYTHON_SITE_DIR) set (INSTALL_PYTHON_SITE_DIR "${PYTHON_SITELIB}") endif () # Jython if (NOT INSTALL_JYTHON_SITE_DIR) set (INSTALL_JYTHON_SITE_DIR "${JYTHON_SITELIB}") endif () # Perl if (NOT INSTALL_PERL_SITE_DIR) set (INSTALL_PERL_SITE_DIR "${PERL_SITELIB}") endif () endif () # if it failed to determine the default installation directories by executing some # code or command, use the directories used for private libraries instead foreach (_U IN ITEMS PYTHON JYTHON PERL MATLAB BASH) if (NOT INSTALL_${_U}_SITE_DIR) set (INSTALL_${_U}_SITE_DIR "${INSTALL_${_U}_LIBRARY_DIR}") endif () endforeach () # cache directories - also so users can edit them foreach (_L IN ITEMS Python Jython Perl MATLAB Bash) string (TOUPPER "${_L}" _U) set (INSTALL_${_U}_SITE_DIR "${INSTALL_${_U}_SITE_DIR}" CACHE PATH "Installation directory for public ${_L} modules." FORCE) mark_as_advanced (INSTALL_${_U}_SITE_DIR) endforeach () # ============================================================================ # top-level references # ============================================================================ if (NOT PROJECT_IS_MODULE) # source tree foreach (_D CODE CONFIG DATA DOC EXAMPLE INCLUDE MODULES TESTING) set (TOPLEVEL_PROJECT_${_D}_DIR "${PROJECT_${_D}_DIR}") endforeach () # build tree foreach (_D CODE CONFIG DATA DOC EXAMPLE INCLUDE MODULES TESTING RUNTIME LIBEXEC LIBRARY ARCHIVE LIBCONF) set (TOPLEVEL_BINARY_${_D}_DIR "${BINARY_${_D}_DIR}") endforeach () foreach (_L IN ITEMS PYTHON JYTHON PERL MATLAB BASH) set (TOPLEVEL_BINARY_${_L}_LIBRARY_DIR "${BINARY_${_L}_LIBRARY_DIR}") endforeach () # installation foreach (_D IN ITEMS CONFIG INCLUDE RUNTIME LIBEXEC LIBRARY ARCHIVE DATA DOC EXAMPLE SHARE) set (TOPLEVEL_INSTALL_${_D}_DIR "${INSTALL_${_D}_DIR}") endforeach () foreach (_L IN ITEMS PYTHON JYTHON PERL MATLAB BASH) set (TOPLEVEL_INSTALL_${_L}_LIBRARY_DIR "${INSTALL_${_L}_LIBRARY_DIR}") endforeach () endif () # ============================================================================ # clean up # ============================================================================ unset (_D) unset (_L) unset (_U) unset (_P) unset (_RV) unset (_VENDOR) unset (_PACKAGE) unset (_MODULE) unset (_DEFAULT_SCHEME) ## @} # end of Doxygen group