inlib
1.2.0
|
Functions | |
std::string | remove_versions (const std::string &aString) |
bool | osc_home_dir (std::string &a_dir) |
bool | find_resource (const std::string &aFile, const std::string &aWhat, std::string &a_value) |
bool | find_cxx (const std::string &, const std::string &aFile, std::string &a_value) |
bool | find_incs (const std::string &, const std::string &aFile, std::string &a_value) |
bool | find_flags (const std::string &, const std::string &aFile, std::string &a_value) |
bool | find_libs (const std::string &, const std::string &aFile, std::string &a_value) |
bool | find_incdir (const std::string &, const std::string &aFile, std::string &a_value) |
bool inlib::config::find_cxx | ( | const std::string & | , |
const std::string & | aFile, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 97 of file config.
{ std::string home_dir; if(!osc_home_dir(home_dir)) {a_value.clear();return false;} std::string file = home_dir+sep()+"bin"+sep()+aFile; return find_resource(file,"obuild_cxx_command",a_value); }
bool inlib::config::find_flags | ( | const std::string & | , |
const std::string & | aFile, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 114 of file config.
{ std::string home_dir; if(!osc_home_dir(home_dir)) {a_value.clear();return false;} std::string file = home_dir+sep()+"bin"+sep()+aFile; std::string opts; if(!find_resource(file,"obuild_cxx_options",opts)) { a_value.clear(); return false; } std::string macs; if(!find_resource(file,"obuild_cxx_macros",macs)) { a_value.clear(); return false; } std::string incs; if(!find_resource(file,"obuild_cxx_includes",incs)) { a_value.clear(); return false; } incs = remove_versions(incs); replace(incs,"@@top@@",home_dir+sep()+"Resources"); //if(home_dir.find(" ")==std::string::npos) { // replace(incs,"\"",""); //} a_value= opts+" "+macs+" "+incs; return true; }
bool inlib::config::find_incdir | ( | const std::string & | , |
const std::string & | aFile, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 175 of file config.
{ std::string home_dir; if(!osc_home_dir(home_dir)) {a_value.clear();return false;} std::string file = home_dir+sep()+"bin"+sep()+aFile; std::string package; if(!find_resource(file,"obuild_package",package)) { a_value.clear(); return false; } std::string version; if(!find_resource(file,"obuild_version",version)) { a_value.clear(); return false; } a_value = home_dir+sep()+"Resources"+sep()+package+sep()+"include"; return true; }
bool inlib::config::find_incs | ( | const std::string & | , |
const std::string & | aFile, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 104 of file config.
{ std::string home_dir; if(!osc_home_dir(home_dir)) {a_value.clear();return false;} std::string file = home_dir+sep()+"bin"+sep()+aFile; if(!find_resource(file,"obuild_cxx_includes",a_value)) return false; a_value = remove_versions(a_value); replace(a_value,"@@top@@",home_dir+sep()+"Resources"); return true; }
bool inlib::config::find_libs | ( | const std::string & | , |
const std::string & | aFile, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 148 of file config.
{ std::string home_dir; if(!osc_home_dir(home_dir)) {a_value.clear();return false;} std::string file = home_dir+sep()+"bin"+sep()+aFile; std::string spaths; #ifdef WIN32 spaths = "/LIBPATH:\""+home_dir+"\\lib\""; #else spaths = "-L\""+home_dir+"/lib\""; #endif std::string slibs; if(!find_resource(file,"obuild_linked_libraries",slibs)) { a_value.clear(); return false; } //if(home_dir.find(" ")==std::string::npos) { // replace(spaths,"\"",""); //} a_value = spaths+" "+slibs; return true; }
bool inlib::config::find_resource | ( | const std::string & | aFile, |
const std::string & | aWhat, | ||
std::string & | a_value | ||
) | [inline] |
Definition at line 46 of file config.
{ std::vector<std::string> txt; if(!inlib::file::read(aFile,txt)) { ::fprintf(stderr,"Can't read the file :\n"); ::fprintf(stderr,"%s\n",aFile.c_str()); ::fprintf(stderr, "containing the platform dependant incs and libs infos.\n"); a_value.clear(); return false; } if(!txt.size()) { ::fprintf(stderr,"The file :\n"); ::fprintf(stderr,"%s\n",aFile.c_str()); ::fprintf(stderr,"is empty. We expect to find in it\n"); ::fprintf(stderr,"the platform dependant incs and libs infos.\n"); a_value.clear(); return false; } {unsigned int number = txt.size(); for(unsigned int index=0;index<number;index++){ const std::string& line = txt[index]; std::string::size_type pos = line.find('='); if(pos==std::string::npos) { ::fprintf(stderr,"Syntax error in file :\n"); ::fprintf(stderr,"%s\n",aFile.c_str()); ::fprintf(stderr,"for line :\n"); ::fprintf(stderr,"%s\n",line.c_str()); ::fprintf(stderr,"We expect line with : <key>=<value>\n"); a_value.clear(); return false; } if(aWhat==line.substr(0,pos)) { a_value = line.substr(pos+1,line.size()-(pos+1)); return true; } }} ::fprintf(stderr,"The file :\n"); ::fprintf(stderr,"%s\n",aFile.c_str()); ::fprintf(stderr,"does not contain the %s infos.\n",aWhat.c_str()); a_value.clear(); return false; }
bool inlib::config::osc_home_dir | ( | std::string & | a_dir | ) | [inline] |
Definition at line 35 of file config.
{ if(!getenv("OSC_HOME_DIR",a_dir)) { ::fprintf(stderr," Environment variable OSC_HOME_DIR not defined.\n"); ::fprintf(stderr," You have to setup the kit by sourcing \n"); ::fprintf(stderr," the setup script found in the distribution.\n"); a_dir.clear(); return false; } return true; }
std::string inlib::config::remove_versions | ( | const std::string & | aString | ) | [inline] |
Definition at line 17 of file config.
{ std::vector<std::string> words = inlib::words(aString," "); unsigned int wordn = words.size(); std::string snew; for(unsigned int index=0;index<wordn;index++) { const std::string& word = words[index]; if(word.find("@@top@@")!=std::string::npos) { std::string s = remove_version(word); if(snew.size()) snew += " "; snew += s; } else { if(snew.size()) snew += " "; snew += word; } } return snew; }