initial commit
This commit is contained in:
commit
9d20827c46
2469 changed files with 470994 additions and 0 deletions
376
qcm/jingle.qcm
Normal file
376
qcm/jingle.qcm
Normal file
|
|
@ -0,0 +1,376 @@
|
|||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: Jingle
|
||||
arg: enable-jingle,Enable Jingle support
|
||||
arg: with-expat-inc=[path],Path to Expat include files (for Jingle)
|
||||
arg: with-expat-lib=[path],Path to Expat library files (for Jingle)
|
||||
arg: with-speex-inc=[path],Path to Speex include files (for Jingle)
|
||||
arg: with-speex-lib=[path],Path to Speex library files (for Jingle)
|
||||
arg: with-ilbc-inc=[path],Path to iLBC include files (for Jingle)
|
||||
arg: with-ilbc-lib=[path],Path to iLBC library files (for Jingle)
|
||||
arg: with-ortp-inc=[path],Path to ORTP include files (for Jingle)
|
||||
arg: with-ortp-lib=[path],Path to ORTP library files (for Jingle)
|
||||
arg: with-alsa-inc=[path],Path to Alsa include files (for Jingle)
|
||||
arg: with-alsa-lib=[path],Path to Alsa library files (for Jingle)
|
||||
arg: with-portaudio-inc=[path],Path to PortAudio include files (for Jingle)
|
||||
arg: with-portaudio-lib=[path],Path to PortAudio library files (for Jingle)
|
||||
arg: with-glib-inc=[path],Path to GLib include files (for Jingle)
|
||||
arg: with-glib-lib=[path],Path to GLib library files (for Jingle)
|
||||
arg: with-glibconfig-inc=[path],Path to glibconfig include file (for Jingle)
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// qc_jingle
|
||||
//----------------------------------------------------------------------------
|
||||
class qc_jingle : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_jingle(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "Jingle"; }
|
||||
QString shortname() const { return "Jingle"; }
|
||||
bool exec()
|
||||
{
|
||||
QString s;
|
||||
|
||||
// Check if Jingle was enabled explicitly
|
||||
s = conf->getenv("QC_ENABLE_JINGLE");
|
||||
if(s.isEmpty())
|
||||
return false;
|
||||
|
||||
// Expat
|
||||
s = conf->getenv("QC_WITH_EXPAT_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "expat.h")) {
|
||||
qWarning("Expat includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
if(!conf->findHeader("expat.h", QStringList(), &s)) {
|
||||
qWarning("Expat includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_EXPAT_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "expat")) {
|
||||
qWarning("Expat library not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
if(!conf->findLibrary("expat", &s)) {
|
||||
qWarning("Expat library not found!");
|
||||
return false;
|
||||
}
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
|
||||
conf->addLib("-lexpat");
|
||||
|
||||
|
||||
// Speex
|
||||
s = conf->getenv("QC_WITH_SPEEX_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "speex.h")) {
|
||||
qWarning("Speex includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
QStringList sl;
|
||||
sl += "/usr/include/speex";
|
||||
sl += "/usr/local/include/speex";
|
||||
if(!conf->findHeader("speex.h", sl, &s)) {
|
||||
qWarning("Speex includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_SPEEX_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "speex")) {
|
||||
qWarning("Speex libraries not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
if(!conf->findLibrary("speex", &s)) {
|
||||
qWarning("Speex libraries not found!");
|
||||
return false;
|
||||
}
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
|
||||
conf->addDefine("HAVE_SPEEX");
|
||||
conf->addLib("-lspeex");
|
||||
|
||||
|
||||
// ILBC (optional)
|
||||
QString ilbc_include, ilbc_lib;
|
||||
s = conf->getenv("QC_WITH_ILBC_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkHeader(s, "iLBC_encode.h")) {
|
||||
ilbc_include = s;
|
||||
}
|
||||
}
|
||||
else {
|
||||
QStringList sl;
|
||||
sl += "/usr/include/ilbc";
|
||||
sl += "/usr/local/include/ilbc";
|
||||
if(conf->findHeader("iLBC_encode.h", sl, &s)) {
|
||||
ilbc_include = s;
|
||||
}
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_ILBC_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkLibrary(s, "ilbc")) {
|
||||
ilbc_lib = s;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(conf->findLibrary("ilbc", &s)) {
|
||||
ilbc_lib = s;
|
||||
}
|
||||
}
|
||||
|
||||
if (!ilbc_include.isEmpty() && !ilbc_lib.isEmpty()) {
|
||||
conf->addIncludePath(ilbc_include);
|
||||
conf->addLib(QString("-L") + ilbc_lib);
|
||||
conf->addLib("-lilbc");
|
||||
conf->addDefine("HAVE_ILBC");
|
||||
}
|
||||
|
||||
|
||||
// ORTP
|
||||
s = conf->getenv("QC_WITH_ORTP_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkHeader(s, "ortp/ortp.h")) {
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
qWarning("ORTP includes not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
QStringList sl;
|
||||
sl += "/usr/include";
|
||||
sl += "/usr/local/include";
|
||||
if(conf->findHeader("ortp/ortp.h", sl, &s)) {
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
qWarning("ORTP includes not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_ORTP_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkLibrary(s, "ortp")) {
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("ORTP libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(conf->findLibrary("ortp", &s)) {
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("ORTP libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
conf->addLib("-lortp");
|
||||
conf->addDefine("HAVE_ORTP");
|
||||
|
||||
|
||||
#if defined(Q_WS_X11)
|
||||
s = conf->getenv("QC_WITH_ALSA_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkHeader(s, "alsa/asoundlib.h")) {
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
qWarning("Alsa includes not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
QStringList sl;
|
||||
sl += "/usr/include";
|
||||
sl += "/usr/local/include";
|
||||
if(conf->findHeader("alsa/asoundlib.h", sl, &s)) {
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
qWarning("Alsa includes not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_ALSA_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(conf->checkLibrary(s, "asound")) {
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("Alsa libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(conf->findLibrary("asound", &s)) {
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("Alsa libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
conf->addLib("-lasound");
|
||||
conf->addDefine("HAVE_ALSA_ASOUNDLIB_H");
|
||||
conf->addDefine("__ALSA_ENABLED__");
|
||||
#elif defined(Q_WS_MAC)
|
||||
// Check for PortAudio
|
||||
s = conf->getenv("QC_WITH_PORTAUDIO_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "portaudio.h")) {
|
||||
qWarning("Portaudio includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
if(!conf->findHeader("portaudio.h", QStringList(), &s)) {
|
||||
qWarning("Portaudio includes not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
|
||||
s = conf->getenv("QC_WITH_PORTAUDIO_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "portaudio")) {
|
||||
qWarning("PortAudio library not found!");
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
if(!conf->findLibrary("portaudio", &s)) {
|
||||
qWarning("PortAudio library not found!");
|
||||
return false;
|
||||
}
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
|
||||
conf->addLib("-lportaudio");
|
||||
conf->addDefine("HAVE_PORTAUDIO");
|
||||
#endif
|
||||
QFile file("third-party/libjingle/config.h");
|
||||
if (file.open(QIODevice::WriteOnly))
|
||||
file.close();
|
||||
|
||||
// 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-2.0";
|
||||
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-2.0")) {
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("GLib 2.0 libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(conf->findLibrary("glib-2.0", &s)) {
|
||||
if (!s.isEmpty())
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
else {
|
||||
qWarning("GLib 2.0 libraries not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
conf->addLib("-lglib-2.0 -lgmodule-2.0 -lgthread-2.0");
|
||||
conf->addDefine("HAVE_GLIB");
|
||||
|
||||
// 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-2.0/include"), &s)) {
|
||||
conf->addIncludePath(s);
|
||||
}
|
||||
else {
|
||||
qWarning("glibconfig.h not found!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Finish
|
||||
conf->addExtra("CONFIG += jingle");
|
||||
|
||||
qWarning("");
|
||||
qWarning("");
|
||||
qWarning(" !!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!!");
|
||||
qWarning(" LIBJINGLE SUPPORT IS STILL EXPERIMENTAL !!!");
|
||||
qWarning(" USE AT YOUR OWN RISK !!!");
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
Reference in a new issue