fatal_warnings(false)
{ }
+BuildInfo::LibraryMode BuildInfo::get_libmode_for(const string &lib) const
+{
+ LibModeMap::const_iterator i = libmodes.find(lib);
+ if(i!=libmodes.end())
+ return i->second;
+ return libmode;
+}
+
void BuildInfo::update_from(const BuildInfo &bi, UpdateLevel level)
{
for(DefineMap::const_iterator i=bi.defines.begin(); i!=bi.defines.end(); ++i)
threads = bi.threads;
if(level==LOCAL)
{
+ local_incpath.insert(local_incpath.end(), bi.local_incpath.begin(), bi.local_incpath.end());
libmode = bi.libmode;
+ for(LibModeMap::const_iterator i=bi.libmodes.begin(); i!=bi.libmodes.end(); ++i)
+ libmodes[i->first] = i->second;
debug = bi.debug;
optimize = bi.optimize;
strip = bi.strip;
add("libpath", &Loader::libpath);
add("library", &Loader::library);
add("libmode", &BuildInfo::libmode);
+ add("libmode", &Loader::libmode_for_lib);
+ add("local_incpath", &Loader::local_incpath);
add("optimize", &BuildInfo::optimize);
add("strip", &BuildInfo::strip);
add("threads", &BuildInfo::threads);
obj.defines[d] = v;
}
+void BuildInfo::Loader::libmode_for_lib(const string &l, LibraryMode m)
+{
+ obj.libmodes[l] = m;
+}
+
void BuildInfo::Loader::libpath(const string &s)
{
obj.libpath.push_back(s);
obj.libs.push_back(s);
}
+void BuildInfo::Loader::local_incpath(const string &s)
+{
+ obj.local_incpath.push_back(s);
+}
+
-void operator>>(LexicalConverter &conv, BuildInfo::LibraryMode &libmode)
+void operator>>(const LexicalConverter &conv, BuildInfo::LibraryMode &libmode)
{
if(conv.get()=="FORCE_STATIC")
libmode = BuildInfo::FORCE_STATIC;