]> git.tdb.fi Git - builder.git/blobdiff - source/gnucompiler.cpp
Make BuildInfo able to handle chained dependencies
[builder.git] / source / gnucompiler.cpp
index 62a7e32dcd1c879be0d55bb25075a2b04f676189..026ec8c8a015c08b40ef8e8b74edc37a8c12ed36 100644 (file)
@@ -1,5 +1,6 @@
 #include <msp/fs/dir.h>
 #include <msp/fs/utils.h>
+#include <msp/strings/format.h>
 #include "builder.h"
 #include "component.h"
 #include "externaltask.h"
@@ -50,6 +51,15 @@ Task *GnuCompiler::run(const Target &target) const
        for(list<string>::const_iterator i=binfo.defines.begin(); i!=binfo.defines.end(); ++i)
                argv.push_back("-D"+*i);
 
+       const Architecture &arch = builder.get_current_arch();
+       const Architecture &native_arch = builder.get_native_arch();
+       if(arch.get_bits()!=native_arch.get_bits())
+               argv.push_back(format("-m%d", arch.get_bits()));
+
+       const string &cpu = arch.get_cpu();
+       if(!cpu.empty())
+               argv.push_back("-march="+cpu);
+
        FS::Path obj_path = object.get_path();
        FS::Path src_path = object.get_source().get_path();
        FS::Path work_dir = comp.get_package().get_source();