]> git.tdb.fi Git - builder.git/blobdiff - source/package.cpp
Add command line options (not all of them work yet)
[builder.git] / source / package.cpp
index e6e3b5099c1814a46ab02586e750f936843e3c27..3072fd6a65ccd1d6a6303d54b80ffdb789ca35da 100644 (file)
@@ -114,13 +114,21 @@ Package *Package::create(Builder &b, const string &name)
 {
        list<string> argv;
        argv.push_back("pkg-config");
+       argv.push_back("--silence-errors");
        argv.push_back("--cflags");
        argv.push_back("--libs");
        argv.push_back(name);
        vector<string> info=split(run_command(argv));
        
        if(info.empty())
-               return 0;
+       {
+               if(name=="opengl")
+                       info.push_back("-lGL");
+               else if(name=="pthread")
+                       info.push_back("-lpthread");
+               else
+                       return 0;
+       }
        
        Package *pkg=new Package(b, name, info);
        return pkg;
@@ -177,6 +185,7 @@ Package::Loader::Loader(Package &p):
        add("require",     &Loader::require);
        add("program",     &Loader::program);
        add("library",     &Loader::library);
+       add("headers",     &Loader::headers);
 }
 
 Package::Loader::~Loader()
@@ -189,16 +198,23 @@ void Package::Loader::require(const string &n)
        pkg.requires.push_back(PackageRef(pkg.builder, n));
 }
 
-void Package::Loader::program(const std::string &n)
+void Package::Loader::program(const string &n)
 {
        Component prog(pkg, Component::PROGRAM, n);
        load_sub(prog);
        pkg.components.push_back(prog);
 }
 
-void Package::Loader::library(const std::string &n)
+void Package::Loader::library(const string &n)
 {
        Component prog(pkg, Component::LIBRARY, n);
        load_sub(prog);
        pkg.components.push_back(prog);
 }
+
+void Package::Loader::headers(const string &n)
+{
+       Component prog(pkg, Component::HEADERS, n);
+       load_sub(prog);
+       pkg.components.push_back(prog);
+}