X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbinarypackage.cpp;h=5415f257ef180cf17953e525123a9119e5168a03;hb=HEAD;hp=bc3e5c929ec41af7d6a5b515f2ac2a17501c50b1;hpb=45c778b1976de1a3093e0c6fb5e2a94c42073dcb;p=builder.git diff --git a/source/binarypackage.cpp b/source/binarypackage.cpp deleted file mode 100644 index bc3e5c9..0000000 --- a/source/binarypackage.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include "binarypackage.h" -#include "builder.h" - -using namespace std; -using namespace Msp; - -BinaryPackage::BinaryPackage(Builder &b, const string &n): - Package(b, n), - need_path(false) -{ - use_pkgconfig = false; -} - -void BinaryPackage::set_path(const FS::Path &p) -{ - path = builder.get_cwd()/p; -} - -void BinaryPackage::create_build_info() -{ - for(StringList::iterator i=export_binfo.incpath.begin(); i!=export_binfo.incpath.end(); ++i) - if((*i)[0]=='@') - *i = (path/i->substr(1)).str(); - - for(StringList::iterator i=export_binfo.libpath.begin(); i!=export_binfo.libpath.end(); ++i) - if((*i)[0]=='@') - *i = (path/i->substr(1)).str(); -} - -BinaryPackage *BinaryPackage::from_pkgconfig(Builder &builder, const string &name) -{ - string info = builder.run_pkgconfig(name, "flags"); - - BinaryPackage *pkg = new BinaryPackage(builder, name); - pkg->use_pkgconfig = true; - BuildInfo &binfo = pkg->export_binfo; - - vector flags = split(info); - for(vector::const_iterator i=flags.begin(); i!=flags.end(); ++i) - { - if(!i->compare(0, 2, "-I")) - binfo.incpath.push_back(i->substr(2)); - else if(!i->compare(0, 2, "-D")) - { - string::size_type equals = i->find('='); - if(equals!=string::npos) - binfo.defines[i->substr(2, equals-2)] = i->substr(equals+1); - else - binfo.defines[i->substr(2)] = string(); - } - else if(!i->compare(0, 2, "-L")) - binfo.libpath.push_back(i->substr(2)); - else if(!i->compare(0, 2, "-l")) - binfo.libs.push_back(i->substr(2)); - else if(*i=="-pthread") - binfo.threads = true; - } - - return pkg; -} - - -BinaryPackage::Loader::Loader(BinaryPackage &p): - Package::Loader(p) -{ - add("need_path", &BinaryPackage::need_path); - add("build_info", &Loader::build_info); -} - -void BinaryPackage::Loader::build_info() -{ - load_sub(static_cast(pkg).export_binfo); -}