From: Mikko Rasa Date: Sun, 20 Sep 2009 18:08:05 +0000 (+0000) Subject: Don't b0rk if C++ compiler is not found while trying to determine its version X-Git-Tag: 1.0~5 X-Git-Url: http://git.tdb.fi/?p=builder.git;a=commitdiff_plain;h=190b83af0103e3ed7ae244a617ac15fb90fa5776 Don't b0rk if C++ compiler is not found while trying to determine its version --- diff --git a/source/builder.cpp b/source/builder.cpp index 5fb918c..3a9f3d4 100644 --- a/source/builder.cpp +++ b/source/builder.cpp @@ -384,16 +384,21 @@ Target *Builder::get_header(const string &include, const FS::Path &from, const l StringList argv; argv.push_back(current_arch->get_tool("CXX")); argv.push_back("--version"); - cxx_ver=Regex("[0-9]\\.[0-9.]+").match(run_command(argv))[0].str; - while(!cxx_ver.empty() && !FS::is_dir(FS::Path("/usr/include/c++")/cxx_ver)) + if(RegMatch m=Regex("[0-9]\\.[0-9.]+").match(run_command(argv))) { - string::size_type dot=cxx_ver.rfind('.'); - if(dot==string::npos) - break; - cxx_ver.erase(dot); + cxx_ver=m[0].str; + while(!cxx_ver.empty() && !FS::is_dir(FS::Path("/usr/include/c++")/cxx_ver)) + { + string::size_type dot=cxx_ver.rfind('.'); + if(dot==string::npos) + break; + cxx_ver.erase(dot); + } + if(verbose>=5) + IO::print("C++ version is %s\n", cxx_ver); } - if(verbose>=5) - IO::print("C++ version is %s\n", cxx_ver); + else + cxx_ver="-"; } string fn=include.substr(1); @@ -405,7 +410,8 @@ Target *Builder::get_header(const string &include, const FS::Path &from, const l syspath.push_back("/usr/include"); else syspath.push_back("/usr/"+current_arch->get_prefix()+"/include"); - syspath.push_back((FS::Path("/usr/include/c++/")/cxx_ver).str()); + if(cxx_ver!="-") + syspath.push_back((FS::Path("/usr/include/c++/")/cxx_ver).str()); Target *tgt=0; if(include[0]=='\"')