]> git.tdb.fi Git - builder.git/blobdiff - source/package.cpp
Output cleanup
[builder.git] / source / package.cpp
index fcbe9f7a6208fe8c10f3bac150f78d5c6986138c..e6e3b5099c1814a46ab02586e750f936843e3c27 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/strconv.h>
 #include <msp/strutils.h>
 #include "builder.h"
 #include "misc.h"
@@ -79,6 +80,18 @@ void Package::create_build_info()
        if(flags&LIB)
                export_binfo.libpath.push_back((Path::Path(config.get_option("prefix").value)/"lib").str());
 
+       string optimize=config.get_option("optimize").value;
+       if(strtol(optimize))
+       {
+               build_info.cflags.push_back("-O"+optimize);
+               string cpu=config.get_option("cpu").value;
+               if(cpu!="auto")
+                       build_info.cflags.push_back("-march="+cpu);
+       }
+
+       if(strtobool(config.get_option("debug").value))
+               build_info.cflags.push_back("-ggdb");
+
        build_info.unique();
        export_binfo.unique();
 
@@ -117,9 +130,11 @@ void Package::init_buildable()
 {
        buildable=true;
 
-       config.add_option("tempdir",  "temp", "Directory for storing temporary files");
-       config.add_option("optimize", "0",    "Apply compiler optimizations");
-       config.add_option("debug",    "0",    "Produce debugging symbols");
+       config.add_option("tempdir",  "temp",   "Directory for storing temporary files");
+       config.add_option("optimize", "0",      "Apply compiler optimizations");
+       config.add_option("debug",    "0",      "Produce debugging symbols");
+       config.add_option("cpu",      "auto",   "CPU type to optimize for");
+       config.add_option("arch",     "native", "Architecture for cross-compiling");
 
        const char *home=getenv("HOME");
        unsigned flags=get_install_flags();