X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpackagemanager.cpp;h=9ca11bae94e3b80dd07e94b6509da26b67403561;hb=878f5e0572a561c1fc342228970889a192d06256;hp=ee07987d0186e86641cf43cf8aa11f801d3ea18f;hpb=0d95fee118a3fcd78f153dca5721d9fe19b6f6bf;p=builder.git diff --git a/source/packagemanager.cpp b/source/packagemanager.cpp index ee07987..9ca11ba 100644 --- a/source/packagemanager.cpp +++ b/source/packagemanager.cpp @@ -5,7 +5,7 @@ #include #include #include -#include +#include #include #include "binarypackage.h" #include "builder.h" @@ -109,8 +109,10 @@ Package *PackageManager::find_package(const string &name) { // Package source not found - create a binary package string flags_str = run_pkgconfig(name, "flags"); - vector flags = split(flags_str); - Package *pkg = BinaryPackage::from_flags(builder, name, flags); + BinaryPackage::Flags flags = split(flags_str); + flags_str = run_pkgconfig(name, "staticflags"); + BinaryPackage::Flags static_flags = split(flags_str); + Package *pkg = BinaryPackage::from_flags(builder, name, flags, static_flags); packages.insert(PackageMap::value_type(name, pkg)); return pkg; } @@ -150,10 +152,12 @@ string PackageManager::run_pkgconfig(const string &pkg, const string &what) argv.push_back("pkg-config"); if(what=="cflags" || what=="libs") argv.push_back("--"+what); - else if(what=="flags") + else if(what=="flags" || what=="staticflags") { argv.push_back("--cflags"); argv.push_back("--libs"); + if(what=="staticflags") + argv.push_back("--static"); } else argv.push_back("--variable="+what);