/* -----BEGIN QCMOD----- name: libmagick arg: with-libmagick-inc=[path], Path to libmagick++ include files arg: with-libmagick-lib=[path], Path to libmagick++ library files -----END QCMOD----- */ #include class qc_libmagick : public ConfObj { public: qc_libmagick(Conf *c) : ConfObj(c) {} QString name() const { return "ImageMagick library (libmagick++)"; } QString shortname() const { return "libmagick++"; } QString checkString() const { if(!conf->getenv("QC_DISABLE_libmagick").isEmpty()) return ""; return ConfObj::checkString(); } bool exec(){ if(!conf->getenv("QC_DISABLE_libmagick").isEmpty()) return false; QString s; s = conf->getenv("QC_WITH_LIBMAGICK_INC"); if(!s.isEmpty()) { if(!conf->checkHeader(s, "Magick++.h")) { return false; } }else{ QStringList sl; sl << "/usr/include"; sl << "/usr/local/include"; bool found = false; foreach(s, sl){ if(conf->checkHeader(s, "Magick++.h")){ found = true; break; } } if(!found) return false; } conf->addIncludePath(s); s = conf->getenv("QC_WITH_LIBMAGICK_LIB"); if(!s.isEmpty()) { if(!QFile::exists(s+QString("libMagick++.so"))){ return false; } }else{ QStringList sl; sl << "/usr/lib/"; sl << "/usr/lib64/"; sl << "/usr/local/lib/"; sl << "/usr/local/lib64/"; bool found = false; foreach(s, sl){ if(QFile::exists(s+QString("libMagick++.so"))){ found = true; break; } } if(!found) return false; } conf->addLib(QString("-L") + s); QProcess magickConfig; QStringList params; params << "--libs"; magickConfig.start("Magick++-config", params, QIODevice::ReadOnly); magickConfig.waitForStarted(); magickConfig.waitForFinished(); QByteArray result = magickConfig.readAll(); result = result.replace("\n", ""); conf->addLib(result.data()); conf->addDefine("HAVE_MAGICK"); return true; } };