/* -----BEGIN QCMOD----- name: libtorrent arg: with-libtorrent-inc=[path], Path to libtorrent include files arg: with-libtorrent-lib=[path], Path to libtorrent library files arg: with-libtorrent-static-lib=[path], Path to libtorrent .a file -----END QCMOD----- */ class qc_libtorrent : public ConfObj { public: qc_libtorrent(Conf *c) : ConfObj(c) {} QString name() const { return "libtorrent >= 0.13"; } QString shortname() const { return "libtorrent"; } bool exec(){ QString s; s = conf->getenv("QC_WITH_LIBTORRENT_INC"); if(!s.isEmpty()) { if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) { return false; } }else{ QStringList sl; sl << "/usr/include"; sl << "/usr/local/include"; bool found = false; foreach(s, sl){ if(conf->checkHeader(s, "libtorrent/lsd.hpp")){ found = true; break; } } if(!found) { return false; } } conf->addIncludePath(s); conf->addIncludePath(s+QDir::separator()+"libtorrent"); s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB"); if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){ conf->addLib(s); return true; } s = conf->getenv("QC_WITH_LIBTORRENT_LIB"); if(!s.isEmpty()) { if(!conf->checkLibrary(s, "torrent")) { return false; } conf->addLib(QString("-L") + s); }else{ QStringList sl; sl << "/usr/lib/"; sl << "/usr/local/lib/"; bool found = false; foreach(s, sl){ if(conf->checkLibrary(s, "torrent")){ found = true; break; } } if(!found) return false; conf->addLib(QString("-L") + s); } // BUGFIX for Fedora (doesn't support pkg-config?) QFile issue_file("/etc/issue"); if(issue_file.open(QIODevice::ReadOnly | QIODevice::Text)){ QString content = issue_file.readAll(); issue_file.close(); if(content.indexOf("Fedora") != -1){ qWarning("Fedora detected. WORKAROUND for Fedora pkg-config problem enabled"); conf->addLib("-lssl -lcrypto -lboost_date_time -lboost_filesystem -lboost_thread -lz -ltorrent"); } } return true; } };