Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <sbia/basis/path.h>
00016 #include <sbia/basis/config.h>
00017
00018 #include "ExecutableTargetInfo.h"
00019
00020
00021
00022 using namespace std;
00023
00024
00025 namespace sbia
00026 {
00027
00028 namespace basis
00029 {
00030
00031
00032
00033
00034
00035
00036 ExecutableTargetInfo::ExecutableTargetInfo()
00037 {
00038
00039
00040
00041
00042 _exec_names ["sbia.basis.basisproject"] = "basisproject";
00043 _build_dirs ["sbia.basis.basisproject"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00044 _install_dirs["sbia.basis.basisproject"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00045
00046
00047 _exec_names ["sbia.basis.which"] = "which";
00048 _build_dirs ["sbia.basis.which"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00049 _install_dirs["sbia.basis.which"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00050
00051
00052 _exec_names ["sbia.basis.doxyfilter"] = "doxyfilter";
00053 _build_dirs ["sbia.basis.doxyfilter"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/lib";
00054 _install_dirs["sbia.basis.doxyfilter"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/lib";
00055
00056
00057 _exec_names ["sbia.basis.doxyfilter-matlab"] = "doxyfilter-matlab";
00058 _build_dirs ["sbia.basis.doxyfilter-matlab"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/lib";
00059 _install_dirs["sbia.basis.doxyfilter-matlab"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/lib";
00060
00061
00062 _exec_names ["sbia.basis.doxyfilter-bash"] = "doxyfilter-bash";
00063 _build_dirs ["sbia.basis.doxyfilter-bash"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/lib";
00064 _install_dirs["sbia.basis.doxyfilter-bash"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/lib";
00065
00066
00067 _exec_names ["sbia.basis.doxyfilter-cmake"] = "doxyfilter-cmake";
00068 _build_dirs ["sbia.basis.doxyfilter-cmake"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/lib";
00069 _install_dirs["sbia.basis.doxyfilter-cmake"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/lib";
00070
00071
00072 _exec_names ["sbia.basis.doxyfilter-python"] = "doxyfilter-python";
00073 _build_dirs ["sbia.basis.doxyfilter-python"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/lib";
00074 _install_dirs["sbia.basis.doxyfilter-python"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/lib";
00075
00076
00077 _exec_names ["sbia.basis.testdriver"] = "basistest-driver";
00078 _build_dirs ["sbia.basis.testdriver"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00079 _install_dirs["sbia.basis.testdriver"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00080
00081
00082 _exec_names ["sbia.basis.basistest-svn"] = "basistest-svn";
00083 _build_dirs ["sbia.basis.basistest-svn"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00084 _install_dirs["sbia.basis.basistest-svn"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00085
00086
00087 _exec_names ["sbia.basis.basistest-slave"] = "basistest-slave";
00088 _build_dirs ["sbia.basis.basistest-slave"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00089 _install_dirs["sbia.basis.basistest-slave"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00090
00091
00092 _exec_names ["sbia.basis.basistest-master"] = "basistest-master";
00093 _build_dirs ["sbia.basis.basistest-master"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00094 _install_dirs["sbia.basis.basistest-master"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00095
00096
00097 _exec_names ["sbia.basis.basistest-cron"] = "basistest-cron";
00098 _build_dirs ["sbia.basis.basistest-cron"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00099 _install_dirs["sbia.basis.basistest-cron"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00100
00101
00102 _exec_names ["sbia.basis.basistest"] = "basistest";
00103 _build_dirs ["sbia.basis.basistest"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00104 _install_dirs["sbia.basis.basistest"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00105
00106
00107 _exec_names ["sbia.basis.make_html_verbatim"] = "make_html_verbatim";
00108 _build_dirs ["sbia.basis.make_html_verbatim"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/bin";
00109 _install_dirs["sbia.basis.make_html_verbatim"] = "/sbia/sbiasfw/lab/basis/1.2.3/centos5/bin";
00110
00111
00112 _exec_names ["sbia.basis.dummy_command"] = "dummy_command";
00113 _build_dirs ["sbia.basis.dummy_command"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00114 _install_dirs["sbia.basis.dummy_command"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00115
00116
00117 _exec_names ["sbia.basis.test_matlabtools"] = "test_matlabtools";
00118 _build_dirs ["sbia.basis.test_matlabtools"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00119 _install_dirs["sbia.basis.test_matlabtools"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00120
00121
00122 _exec_names ["sbia.basis.test_basisproject"] = "test_basisproject";
00123 _build_dirs ["sbia.basis.test_basisproject"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00124 _install_dirs["sbia.basis.test_basisproject"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00125
00126
00127 _exec_names ["sbia.basis.test_path"] = "test_path";
00128 _build_dirs ["sbia.basis.test_path"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00129 _install_dirs["sbia.basis.test_path"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00130
00131
00132 _exec_names ["sbia.basis.test_subprocess"] = "test_subprocess";
00133 _build_dirs ["sbia.basis.test_subprocess"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00134 _install_dirs["sbia.basis.test_subprocess"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00135
00136
00137 _exec_names ["sbia.basis.test_core"] = "test_core";
00138 _build_dirs ["sbia.basis.test_core"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00139 _install_dirs["sbia.basis.test_core"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00140
00141
00142 _exec_names ["sbia.basis.test_shtap"] = "test_shtap";
00143 _build_dirs ["sbia.basis.test_shtap"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00144 _install_dirs["sbia.basis.test_shtap"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00145
00146
00147 _exec_names ["sbia.basis.parseargs"] = "parseargs";
00148 _build_dirs ["sbia.basis.parseargs"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00149 _install_dirs["sbia.basis.parseargs"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00150
00151
00152 _exec_names ["sbia.basis.test_utilities"] = "test_utilities";
00153 _build_dirs ["sbia.basis.test_utilities"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00154 _install_dirs["sbia.basis.test_utilities"] = "/sbia/home/schuha/sandbox/build/basis-1.2.3/Testing/bin";
00155 }
00156
00157 ExecutableTargetInfo::~ExecutableTargetInfo()
00158 {
00159 }
00160
00161
00162
00163
00164
00165
00166 const ExecutableTargetInfo& ExecutableTargetInfo::instance()
00167 {
00168 static ExecutableTargetInfo instance;
00169 return instance;
00170 }
00171
00172
00173 string ExecutableTargetInfo::get_target_uid(const string& target) const
00174 {
00175
00176 if (target.empty()) return "";
00177
00178 if (target[0] == '.') return target;
00179
00180 string prefix = string("sbia.basis");
00181
00182 for (;;) {
00183 if (_exec_names.find(prefix + "." + target) != _exec_names.end()) {
00184 return prefix + "." + target;
00185 }
00186 string::size_type pos = prefix.rfind('.');
00187 if (pos == string::npos) break;
00188 prefix = prefix.substr(0, pos);
00189 }
00190
00191 return target;
00192 }
00193
00194
00195 bool ExecutableTargetInfo::is_known_target(const string& target) const
00196 {
00197 if (target.empty()) return false;
00198 string uid;
00199 if (target[0] == '.') uid = target.substr(1);
00200 else uid = get_target_uid(target);
00201 return _exec_names.find(uid) != _exec_names.end();
00202 }
00203
00204
00205 string ExecutableTargetInfo::get_executable_name(const string& target) const
00206 {
00207 if (target.empty()) return "";
00208 string uid;
00209 if (target[0] == '.') uid = target.substr(1);
00210 else uid = get_target_uid(target);
00211 MapIterator it = _exec_names.find(uid);
00212 if (it == _exec_names.end ()) return "";
00213 return it->second;
00214 }
00215
00216
00217 string ExecutableTargetInfo::get_build_directory(const string& target) const
00218 {
00219 if (target.empty()) return "";
00220 string uid;
00221 if (target[0] == '.') uid = target.substr(1);
00222 else uid = get_target_uid(target);
00223 MapIterator it = _build_dirs.find(uid);
00224 if (it == _build_dirs.end()) return "";
00225 #if defined CMAKE_INTDIR
00226
00227 return join_paths(it->second, CMAKE_INTDIR);
00228 #else
00229 return it->second;
00230 #endif
00231 }
00232
00233
00234 string ExecutableTargetInfo::get_installation_directory(const string& target) const
00235 {
00236 if (target.empty()) return "";
00237 string uid;
00238 if (target[0] == '.') uid = target.substr(1);
00239 else uid = get_target_uid(target);
00240 MapIterator it = _install_dirs.find(uid);
00241 if (it == _install_dirs.end()) return "";
00242 #ifdef LIBEXEC
00243 return join_paths(join_paths(get_executable_directory(), cLibexecPathPrefix), it->second);
00244 #else
00245 return join_paths(join_paths(get_executable_directory(), cRuntimePathPrefix), it->second);
00246 #endif
00247 }
00248
00249
00250 }
00251
00252 }