]> git.tdb.fi Git - builder.git/blob - source/binarypackage.cpp
Remove extraneous std:: qualifiers
[builder.git] / source / binarypackage.cpp
1 #include <msp/io/print.h>
2 #include <msp/strings/utils.h>
3 #include "binarypackage.h"
4 #include "builder.h"
5
6 using namespace std;
7 using namespace Msp;
8
9 BinaryPackage::BinaryPackage(Builder &b, const string &n):
10         Package(b, n),
11         need_path(false)
12 {
13         use_pkgconfig = false;
14 }
15
16 void BinaryPackage::set_path(const FS::Path &p)
17 {
18         path = builder.get_cwd()/p;
19 }
20
21 void BinaryPackage::create_build_info()
22 {
23         for(BuildInfo::PathList::iterator i=export_binfo.incpath.begin(); i!=export_binfo.incpath.end(); ++i)
24                 if((*i)[0]=="@")
25                         *i = path/i->subpath(1);
26
27         for(BuildInfo::PathList::iterator i=export_binfo.libpath.begin(); i!=export_binfo.libpath.end(); ++i)
28                 if((*i)[0]=="@")
29                         *i = path/i->subpath(1);
30 }
31
32 BinaryPackage *BinaryPackage::from_flags(Builder &builder, const string &name, const vector<string> &flags)
33 {
34         BinaryPackage *pkg = new BinaryPackage(builder, name);
35         pkg->use_pkgconfig = true;
36         BuildInfo &binfo = pkg->export_binfo;
37
38         for(vector<string>::const_iterator i=flags.begin(); i!=flags.end(); ++i)
39         {
40                 if(!i->compare(0, 2, "-I"))
41                         binfo.incpath.push_back(i->substr(2));
42                 else if(!i->compare(0, 2, "-D"))
43                 {
44                         string::size_type equals = i->find('=');
45                         if(equals!=string::npos)
46                                 binfo.defines[i->substr(2, equals-2)] = i->substr(equals+1);
47                         else
48                                 binfo.defines[i->substr(2)] = string();
49                 }
50                 else if(!i->compare(0, 2, "-L"))
51                         binfo.libpath.push_back(i->substr(2));
52                 else if(!i->compare(0, 2, "-l"))
53                         binfo.libs.push_back(i->substr(2));
54                 else if(*i=="-pthread")
55                         binfo.threads = true;
56         }
57
58         return pkg;
59 }
60
61
62 BinaryPackage::Loader::Loader(BinaryPackage &p):
63         Package::Loader(p)
64 {
65         add("need_path", &BinaryPackage::need_path);
66         add("build_info", &Loader::build_info);
67 }
68
69 void BinaryPackage::Loader::build_info()
70 {
71         load_sub(static_cast<BinaryPackage &>(pkg).export_binfo);
72 }