This repository has been archived on 2025-12-24. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
yachat/qcm/xmms.qcm

155 lines
3.7 KiB
Text
Raw Permalink Normal View History

2025-12-25 01:37:49 +05:00
/*
-----BEGIN QCMOD-----
name: XMMS
arg: with-xmms-inc=[path],Path to XMMS include files (for XMMS)
arg: with-xmms-lib=[path],Path to XMMS library files (for XMMS)
arg: with-glib-inc=[path],Path to GLib include files (for XMMS)
arg: with-glib-lib=[path],Path to GLib library files (for XMMS)
arg: with-glibconfig-inc=[path],Path to glibconfig include file (for XMMS)
-----END QCMOD-----
*/
//----------------------------------------------------------------------------
// qc_xmms
//----------------------------------------------------------------------------
class qc_xmms : public ConfObj
{
public:
qc_xmms(Conf *c) : ConfObj(c) {}
QString name() const { return "XMMS"; }
QString shortname() const { return "xmms"; }
bool exec()
{
QString str =
"extern \"C\" void g_source_set_callback();"
"\n"
"int main()\n"
"{\n"
" g_source_set_callback();\n"
" return 0;\n"
"}\n";
int ret;
if (conf->doCompileAndLink(str, QStringList(), QString(), "CONFIG += qt", 0)) {
qWarning("XMMS is not compatible with a QT linked with glib 2.x");
return false;
}
QString s;
// XMMS
s = conf->getenv("QC_WITH_XMMS_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "xmms/util.h")) {
qWarning("XMMS includes not found!");
return false;
}
conf->addIncludePath(s);
}
else {
QStringList sl;
sl += "/usr/include";
sl += "/usr/local/include";
sl += "/sw/include";
if(!conf->findHeader("xmms/util.h", sl, &s)) {
qWarning("XMMS includes not found!");
return false;
}
conf->addIncludePath(s);
}
s = conf->getenv("QC_WITH_XMMS_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "xmms")) {
qWarning("XMMS libraries not found!");
return false;
}
conf->addLib(QString("-L") + s);
}
else {
if(!conf->findLibrary("xmms", &s)) {
qWarning("XMMS libraries not found!");
return false;
}
if (!s.isEmpty())
conf->addLib(QString("-L") + s);
}
conf->addLib("-lxmms");
// GLib
s = conf->getenv("QC_WITH_GLIB_INC");
if(!s.isEmpty()) {
if(conf->checkHeader(s, "glib.h")) {
conf->addIncludePath(s);
}
else {
qWarning("GLib includes not found!");
return false;
}
}
else {
QStringList sl;
sl += "/usr/include/glib";
sl += "/usr/local/include/glib";
sl += "/usr/include/glib-1.2";
sl += "/sw/include/glib-1.2";
if(conf->findHeader("glib.h", sl, &s)) {
conf->addIncludePath(s);
}
else {
qWarning("GLib includes not found!");
return false;
}
}
s = conf->getenv("QC_WITH_GLIB_LIB");
if(!s.isEmpty()) {
if(conf->checkLibrary(s, "glib")) {
conf->addLib(QString("-L") + s);
}
else {
qWarning("GLib 1.2.0 libraries not found!");
return false;
}
}
else {
if(conf->findLibrary("glib", &s)) {
if (!s.isEmpty())
conf->addLib(QString("-L") + s);
}
else {
qWarning("GLib 1.2 libraries not found!");
return false;
}
}
conf->addLib("-lglib");
// Glibconfig
s = conf->getenv("QC_WITH_GLIBCONFIG_INC");
if(!s.isEmpty()) {
if(conf->checkHeader(s, "glibconfig.h")) {
conf->addIncludePath(s);
}
else {
qWarning("glibconfig.h includes not found!");
return false;
}
}
else {
if(conf->findHeader("glibconfig.h", QStringList("/usr/lib/glib/include"), &s)) {
conf->addIncludePath(s);
}
else {
qWarning("glibconfig.h not found!");
return false;
}
}
// Finish
conf->addExtra("CONFIG += tc_xmms");
return true;
}
};