-/* $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>
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());
string optimize = config.get_option("optimize").value;
if(!optimize.empty() && optimize!="0")
{
- build_info.cflags.push_back("-O"+optimize);
- build_info.ldflags.push_back("-O"+optimize);
+ if(optimize=="s" || optimize=="size")
+ build_info.optimize = -1;
+ else
+ build_info.optimize = lexical_cast<unsigned>(optimize);
}
if(lexical_cast<bool>(config.get_option("debug").value))
{
- build_info.cflags.push_back("-ggdb");
- build_info.defines.push_back("DEBUG");
+ build_info.debug = true;
+ build_info.defines["DEBUG"] = "1";
}
for(FeatureList::iterator i=features.begin(); i!=features.end(); ++i)
if(lexical_cast<bool>(config.get_option("with_"+i->name).value))
- build_info.cflags.push_back("-DWITH_"+toupper(i->name));
+ build_info.defines["WITH_"+toupper(i->name)] = "1";
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();