2007-07-21 01:11:02 +08:00
|
|
|
/*
|
|
|
|
-----BEGIN QCMOD-----
|
|
|
|
name: libcommoncpp2
|
|
|
|
arg: with-libcommoncpp2-inc=[path], Path to libcommoncpp2 include files
|
|
|
|
arg: with-libcommoncpp2-lib=[path], Path to libcommoncpp2 library files
|
|
|
|
-----END QCMOD-----
|
|
|
|
*/
|
|
|
|
class qc_libcommoncpp2 : public ConfObj
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
qc_libcommoncpp2(Conf *c) : ConfObj(c) {}
|
2007-07-25 15:00:14 +08:00
|
|
|
QString name() const { return "GNU Common C++ library (libcommoncpp2)"; }
|
2007-07-21 01:11:02 +08:00
|
|
|
QString shortname() const { return "libcommoncpp2"; }
|
|
|
|
bool exec(){
|
|
|
|
QString s;
|
|
|
|
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_INC");
|
|
|
|
if(!s.isEmpty()) {
|
2007-07-23 17:48:51 +08:00
|
|
|
if(!conf->checkHeader(s, "cc++/url.h")) {
|
2007-07-21 01:11:02 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
QStringList sl;
|
|
|
|
sl << "/usr/include";
|
|
|
|
sl << "/usr/local/include";
|
|
|
|
bool found = false;
|
|
|
|
foreach(s, sl){
|
2007-07-23 17:48:51 +08:00
|
|
|
if(conf->checkHeader(s, "cc++/url.h")){
|
2007-07-21 01:11:02 +08:00
|
|
|
found = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!found) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
conf->addIncludePath(s);
|
|
|
|
|
|
|
|
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB");
|
|
|
|
if(!s.isEmpty()) {
|
|
|
|
if(!QFile::exists(s+QString("libccext2.so")))
|
|
|
|
return false;
|
|
|
|
if(!QFile::exists(s+QString("libccgnu2.so")))
|
|
|
|
return false;
|
|
|
|
conf->addLib(QString("-L") + s);
|
|
|
|
}else{
|
|
|
|
QStringList sl;
|
|
|
|
sl << "/usr/lib/";
|
|
|
|
sl << "/usr/local/lib/";
|
|
|
|
bool found = false;
|
|
|
|
foreach(s, sl){
|
|
|
|
if(QFile::exists(s+QString("libccext2.so"))){
|
|
|
|
if(QFile::exists(s+QString("libccgnu2.so"))){
|
|
|
|
found = true;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!found) return false;
|
|
|
|
conf->addLib(QString("-L") + s);
|
|
|
|
}
|
2007-07-24 13:08:02 +08:00
|
|
|
// 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("-pthread -lccext2 -lz -lccgnu2 -ldl -lrt");
|
|
|
|
}
|
|
|
|
}
|
2007-07-21 01:11:02 +08:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
};
|