Elements
5.12
A C++ base framework for the Euclid Software.
|
Go to the documentation of this file.
30 #include <boost/filesystem.hpp>
31 #include <boost/algorithm/string.hpp>
45 {Type::executable,
"PATH"},
47 {Type::python,
"PYTHONPATH"},
48 {Type::configuration,
"ELEMENTS_CONF_PATH"},
53 {Type::executable, {
"scripts",
"bin"}},
54 {Type::library, {
"lib"}},
55 {Type::python, {
"python"}},
56 {Type::configuration, {
"conf",
"share/conf"}},
61 {Type::executable, {}},
62 {Type::library, {
"/usr/lib64",
"/usr/lib"}},
64 {Type::configuration, {
"/usr/share/conf"}},
69 {Type::executable,
false},
70 {Type::library,
false},
72 {Type::configuration,
true},
80 string env_content =
getEnv(path_variable);
88 return (not boost::filesystem::exists(p));
90 found_list.
erase(new_end, found_list.
end());
This file is intended to iron out all the differences between systems (currently Linux and MacOSX)
ELEMENTS_API std::string getEnv(const std::string &var)
get a particular environment variable
ELEMENTS_API const std::map< Type, const std::vector< std::string > > DEFAULT_LOCATIONS
map containing the default external locations for each variable
ELEMENTS_API auto split(Args &&... args) -> decltype(splitPath(std::forward< Args >(args)...))
alias for the splitPath function
provide functions to retrieve resources pointed by environment variables
ELEMENTS_API const std::map< Type, const std::vector< std::string > > SUFFIXES
map containing the default project installation suffixes for each variable
boost::filesystem::path Item
ELEMENTS_API const std::map< Type, const bool > HAS_SUBLEVELS
map containing the sub-level property of the path components
ELEMENTS_API std::vector< Item > getLocations(const Type &path_type, bool exist_only=false)
function to get the locations for the specific type
ELEMENTS_API Item getPathFromLocations(const T &file_name, const std::vector< U > &locations)
retrieve path from a file name and a set of location to look into
ELEMENTS_API std::vector< Item > getAllPathFromLocations(const T &file_name, const std::vector< U > &locations)
retrieve all the paths from a file name and a set of location to look into
template Item getPathFromEnvVariable< string >(const string &file_name, const string &path_variable)
ELEMENTS_API const std::string PATH_SEP
Separator of path entries. Usually ":" on Unix.
ELEMENTS_API std::string joinPath(const std::vector< T > &path_list)
collate a vector of path into a string using PATH_SEP
ELEMENTS_API std::vector< Item > splitPath(const std::string &path_string)
split a string into a vector of path using PATH_SEP
const std::string SHLIB_VAR_NAME
name of the shared dynamic library path
ELEMENTS_API std::vector< Item > getLocationsFromEnv(const std::string &path_variable, bool exist_only=false)
function to get the locations from an environment variable
ELEMENTS_API std::vector< Item > multiPathAppend(const std::vector< T > &initial_locations, const std::vector< U > &suffixes)
path join each suffix to each initial locations
template ELEMENTS_API Item getPathFromEnvVariable< Item >(const Item &file_name, const std::string &path_variable)
ELEMENTS_API const std::map< Type, const std::string > VARIABLE
map containing the name of the path variable for each type
ELEMENTS_API std::vector< Item > removeDuplicates(const std::vector< T > &path_list)
remove duplicated paths keeping the order