start = newline+1;
}
}
- catch(const runtime_error &e)
+ catch(const runtime_error &)
{ }
}
string tag_for_std = (tag=="OBJC" ? "CC" : tag);
if(binfo.standards.count(tag_for_std))
- argv.push_back("-std="+get_item(binfo.standards, tag_for_std));
+ argv.push_back("-std="+get_item(binfo.standards, tag_for_std).str());
if(tag=="OBJC" && binfo.standards.count(tag))
- argv.push_back("-fobjc-std="+get_item(binfo.standards, tag));
+ argv.push_back("-fobjc-std="+get_item(binfo.standards, tag).str());
if(binfo.warning_level>=1)
{
const FS::Path &sysroot = binfo.sysroot;
if(!sysroot.empty())
argv.push_back("--sysroot="+sysroot.str());
- for(BuildInfo::PathList::const_iterator i=binfo.local_incpath.begin(); i!=binfo.local_incpath.end(); ++i)
+ for(const FS::Path &p: binfo.local_incpath)
{
argv.push_back("-iquote");
- argv.push_back(i->str());
+ argv.push_back(p.str());
}
- for(BuildInfo::PathList::const_iterator i=binfo.incpath.begin(); i!=binfo.incpath.end(); ++i)
- argv.push_back("-I"+i->str());
+ for(const FS::Path &p: binfo.incpath)
+ argv.push_back("-I"+p.str());
- for(BuildInfo::DefineMap::const_iterator i=binfo.defines.begin(); i!=binfo.defines.end(); ++i)
+ for(const auto &kvp: binfo.defines)
{
- if(i->second.empty())
- argv.push_back(format("-D%s", i->first));
+ if(kvp.second.empty())
+ argv.push_back(format("-D%s", kvp.first));
else
- argv.push_back(format("-D%s=%s", i->first, i->second));
+ argv.push_back(format("-D%s=%s", kvp.first, kvp.second));
}
if(binfo.debug)
argv.push_back("-Os");
else
argv.push_back(format("-O%d", binfo.optimize));
+ if(binfo.debug)
+ argv.push_back("-fno-omit-frame-pointer");
}
if(binfo.threads && architecture->get_system()!="windows" && architecture->get_system()!="darwin")
argv.push_back("-pthread");
if(object.is_used_in_shared_library() && architecture->get_system()!="windows")
argv.push_back("-fPIC");
- const Architecture &native_arch = builder.get_native_arch();
- if(architecture->is_native() && architecture->get_bits()!=native_arch.get_bits())
+ if((architecture->get_type()=="x86" || architecture->get_type()=="ppc") && !architecture->is_native())
argv.push_back(format("-m%d", architecture->get_bits()));
string cpu = architecture->get_cpu();
{
if(architecture->get_type()=="x86")
{
- argv.push_back("-mfpmath="+architecture->get_fpu());
+ if(architecture->get_fpu()=="387")
+ argv.push_back("-mfpmath=387");
+ else if(!architecture->get_fpu().compare(0, 3, "sse"))
+ argv.push_back("-mfpmath=sse");
+
if(architecture->get_fpu()=="sse")
argv.push_back("-msse2");
+ else if(architecture->get_fpu()=="sse3")
+ argv.push_back("-msse3");
+ else if(architecture->get_fpu()=="sse4.1")
+ argv.push_back("-msse4.1");
}
else if(architecture->get_type()=="arm")
{