-/* $Id$
-
-This file is part of builder
-Copyright © 2007-2010 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#include <cstdlib>
#include <msp/io/print.h>
#include <msp/strings/lexicalcast.h>
else if(mode=="none")
return DYNAMIC;
else
- throw Exception("Unknown library mode");
+ throw runtime_error("unknown library mode");
}
string SourcePackage::expand_string(const string &str) const
while((dollar = result.find('$'))!=string::npos)
{
if(n>1000)
- throw Exception("Too much variable expansions");
+ throw bad_expansion("nested too deep");
string::size_type end;
string var;
{
end = result.find('}', dollar+2);
if(end==string::npos)
- throw Exception("Unterminated variable reference");
+ throw bad_expansion("unterminated variable reference");
var = result.substr(dollar+2, end-dollar-2);
++end;
}
void SourcePackage::create_build_info()
{
- build_info.add(builder.get_current_arch().get_build_info());
-
// XXX Currently, a package-specific settings will override cmdline. This might or might not be desirable.
const StringList &warnings = builder.get_warnings();
build_info.warnings.insert(build_info.warnings.begin(), warnings.begin(), warnings.end());
for(ConditionList::iterator i=conditions.begin(); i!=conditions.end(); ++i)
if(i->eval())
- build_info.add(i->get_build_info());
+ build_info.update_from(i->get_build_info());
build_info.unique();