mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-25 10:46:15 +03:00
- Improved ImageMagick detection and it should be able to build without it too now
This commit is contained in:
parent
99268bfc06
commit
2ddcaf008b
5 changed files with 150 additions and 80 deletions
142
configure
vendored
142
configure
vendored
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Generated by qconf 1.3 ( http://delta.affinix.com/qconf/ )
|
||||
# Generated by qconf 1.4 ( http://delta.affinix.com/qconf/ )
|
||||
#
|
||||
|
||||
show_usage() {
|
||||
|
@ -189,7 +189,7 @@ while [ $# -gt 0 ]; do
|
|||
;;
|
||||
|
||||
--verbose)
|
||||
QC_DEBUG="Y"
|
||||
QC_VERBOSE="Y"
|
||||
shift
|
||||
;;
|
||||
--help) show_usage; exit ;;
|
||||
|
@ -203,7 +203,7 @@ DATADIR=${DATADIR:-$PREFIX/share}
|
|||
|
||||
echo "Configuring qbittorrent ..."
|
||||
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo
|
||||
echo PREFIX=$PREFIX
|
||||
echo BINDIR=$BINDIR
|
||||
|
@ -223,31 +223,50 @@ fi
|
|||
|
||||
printf "Verifying Qt 4 build environment ... "
|
||||
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
# run qmake -v and check version
|
||||
qmake_check_v4() {
|
||||
if [ -x "$1" ]; then
|
||||
if echo `$1 -v 2>&1` | grep "Qt version 4\." >/dev/null 2>&1; then
|
||||
return 0
|
||||
elif [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "Warning: $1 not for Qt 4"
|
||||
fi
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo
|
||||
fi
|
||||
|
||||
qm=""
|
||||
names="qmake-qt4 qmake4 qmake"
|
||||
|
||||
# qt4 check: --qtdir
|
||||
if [ -z "$qm" ]; then
|
||||
qstr=$EX_QTDIR/bin/qmake
|
||||
if [ -x "$qstr" ]; then
|
||||
qm=$qstr
|
||||
fi
|
||||
if [ -z "$qm" ] && [ ! -z "$EX_QTDIR" ]; then
|
||||
for n in $names; do
|
||||
qstr=$EX_QTDIR/bin/$n
|
||||
if qmake_check_v4 "$qstr"; then
|
||||
qm=$qstr
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "Warning: qmake not found via --qtdir"
|
||||
fi
|
||||
|
||||
# qt4 check: QTDIR
|
||||
if [ -z "$qm" ]; then
|
||||
qstr=$QTDIR/bin/qmake
|
||||
if [ -x "$qstr" ]; then
|
||||
qm=$qstr
|
||||
fi
|
||||
if [ -z "$qm" ] && [ ! -z "$QTDIR" ]; then
|
||||
for n in $names; do
|
||||
qstr=$QTDIR/bin/$n
|
||||
if qmake_check_v4 "$qstr"; then
|
||||
qm=$qstr
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "Warning: qmake not found via \$QTDIR"
|
||||
fi
|
||||
|
||||
|
@ -255,40 +274,46 @@ fi
|
|||
if [ -z "$qm" ]; then
|
||||
str=`pkg-config QtCore --variable=exec_prefix 2>/dev/null`
|
||||
if [ ! -z "$str" ]; then
|
||||
qstr=$str/bin/qmake
|
||||
if [ -x "$qstr" ]; then
|
||||
qm=$qstr
|
||||
fi
|
||||
for n in $names; do
|
||||
qstr=$str/bin/$n
|
||||
if qmake_check_v4 "$qstr"; then
|
||||
qm=$qstr
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "Warning: qmake not found via pkg-config"
|
||||
fi
|
||||
|
||||
# qt4 check: PATH
|
||||
if [ -z "$qm" ]; then
|
||||
qstr=`$WHICH qmake 2>/dev/null`
|
||||
if [ -x "$qstr" ]; then
|
||||
qm=$qstr
|
||||
fi
|
||||
for n in $names; do
|
||||
qstr=`$WHICH $n 2>/dev/null`
|
||||
if qmake_check_v4 "$qstr"; then
|
||||
qm=$qstr
|
||||
break;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "Warning: qmake not found via \$PATH"
|
||||
fi
|
||||
|
||||
if [ -z "$qm" ]; then
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo " -> fail"
|
||||
else
|
||||
echo "fail"
|
||||
fi
|
||||
printf "\n"
|
||||
printf "Reason: Unable to find the 'qmake' tool.\n"
|
||||
printf "Reason: Unable to find the 'qmake' tool for Qt 4.\n"
|
||||
printf "\n"
|
||||
show_qt_info
|
||||
exit 1;
|
||||
fi
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo qmake found in $qm
|
||||
fi
|
||||
|
||||
|
@ -535,13 +560,20 @@ 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(){
|
||||
QString s;
|
||||
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";
|
||||
|
@ -553,17 +585,17 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
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;
|
||||
conf->addLib(QString("-L") + s);
|
||||
if(!QFile::exists(s+QString("libMagick++.so"))){
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
|
@ -572,11 +604,14 @@ public:
|
|||
foreach(s, sl){
|
||||
if(QFile::exists(s+QString("libMagick++.so"))){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
if(!found)
|
||||
return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
conf->addDefine("HAVE_MAGICK");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@ -624,6 +659,8 @@ cat >$1/modules_new.cpp <<EOT
|
|||
|
||||
EOT
|
||||
cat >$1/conf4.h <<EOT
|
||||
// For license information, see the COPYING file in the qconf base directory.
|
||||
|
||||
#ifndef QC_CONF4_H
|
||||
#define QC_CONF4_H
|
||||
|
||||
|
@ -728,6 +765,8 @@ private:
|
|||
|
||||
EOT
|
||||
cat >$1/conf4.cpp <<EOT
|
||||
// For license information, see the COPYING file in the qconf base directory.
|
||||
|
||||
#include "conf4.h"
|
||||
|
||||
#include <stdio.h>
|
||||
|
@ -878,6 +917,18 @@ void qc_splitcflags(const QString &cflags, QStringList *incs, QStringList *other
|
|||
}
|
||||
}
|
||||
|
||||
QString qc_escapeArg(const QString &str)
|
||||
{
|
||||
QString out;
|
||||
for(int n = 0; n < (int)str.length(); ++n) {
|
||||
if(str[n] == '-')
|
||||
out += '_';
|
||||
else
|
||||
out += str[n];
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// ConfObj
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -994,14 +1045,14 @@ bool Conf::exec()
|
|||
// if this was a disabled-by-default option, check if it was enabled
|
||||
if(o->disabled)
|
||||
{
|
||||
QString v = QString("QC_ENABLE_") + o->shortname();
|
||||
QString v = QString("QC_ENABLE_") + qc_escapeArg(o->shortname());
|
||||
if(getenv(v) != "Y")
|
||||
continue;
|
||||
}
|
||||
// and the opposite?
|
||||
else
|
||||
{
|
||||
QString v = QString("QC_DISABLE_") + o->shortname();
|
||||
QString v = QString("QC_DISABLE_") + qc_escapeArg(o->shortname());
|
||||
if(getenv(v) == "Y")
|
||||
continue;
|
||||
}
|
||||
|
@ -1428,7 +1479,7 @@ int main()
|
|||
# include"modules_new.cpp"
|
||||
#endif
|
||||
|
||||
conf->debug_enabled = (qc_getenv("QC_DEBUG") == "Y") ? true: false;
|
||||
conf->debug_enabled = (qc_getenv("QC_VERBOSE") == "Y") ? true: false;
|
||||
if(conf->debug_enabled)
|
||||
printf(" -> ok\n");
|
||||
else
|
||||
|
@ -1484,6 +1535,9 @@ int main()
|
|||
var = qc_getenv("BINDIR");
|
||||
if(!var.isEmpty())
|
||||
str += QString("BINDIR = %1\n").arg(var);
|
||||
var = qc_getenv("INCDIR");
|
||||
if(!var.isEmpty())
|
||||
str += QString("INCDIR = %1\n").arg(var);
|
||||
var = qc_getenv("LIBDIR");
|
||||
if(!var.isEmpty())
|
||||
str += QString("LIBDIR = %1\n").arg(var);
|
||||
|
@ -1556,7 +1610,7 @@ export QC_WITH_LIBCOMMONCPP2_LIB
|
|||
export QC_DISABLE_libmagick
|
||||
export QC_WITH_LIBMAGICK_INC
|
||||
export QC_WITH_LIBMAGICK_LIB
|
||||
export QC_DEBUG
|
||||
export QC_VERBOSE
|
||||
rm -rf .qconftemp
|
||||
(
|
||||
mkdir .qconftemp
|
||||
|
@ -1569,7 +1623,7 @@ rm -rf .qconftemp
|
|||
|
||||
if [ "$?" != "0" ]; then
|
||||
rm -rf .qconftemp
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo " -> fail"
|
||||
else
|
||||
echo "fail"
|
||||
|
@ -1578,7 +1632,7 @@ if [ "$?" != "0" ]; then
|
|||
printf "Reason: There was an error compiling 'conf'. See conf.log for details.\n"
|
||||
printf "\n"
|
||||
show_qt_info
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo "conf.log:"
|
||||
cat conf.log
|
||||
fi
|
||||
|
@ -1602,7 +1656,7 @@ if [ "$ret" = "1" ]; then
|
|||
else
|
||||
if [ "$ret" != "0" ]; then
|
||||
rm -rf .qconftemp
|
||||
if [ "$QC_DEBUG" = "Y" ]; then
|
||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
||||
echo " -> fail"
|
||||
else
|
||||
echo "fail"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<name>qbittorrent</name>
|
||||
<profile>qbittorrent.pro</profile>
|
||||
<moddir>qcm</moddir>
|
||||
<datadir/>
|
||||
<dep type='qt42'>
|
||||
<required/>
|
||||
</dep>
|
||||
|
@ -14,9 +15,7 @@
|
|||
<dep type='libcommoncpp2'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libmagick'>
|
||||
<optional/>
|
||||
</dep>
|
||||
<dep type='libmagick'/>
|
||||
<dep type='python'>
|
||||
<required/>
|
||||
</dep>
|
||||
|
|
|
@ -11,13 +11,20 @@ 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(){
|
||||
QString s;
|
||||
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";
|
||||
|
@ -29,17 +36,17 @@ public:
|
|||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
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;
|
||||
conf->addLib(QString("-L") + s);
|
||||
if(!QFile::exists(s+QString("libMagick++.so"))){
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
|
@ -48,11 +55,14 @@ public:
|
|||
foreach(s, sl){
|
||||
if(QFile::exists(s+QString("libMagick++.so"))){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
if(!found)
|
||||
return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
conf->addDefine("HAVE_MAGICK");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "misc.h"
|
||||
#include "downloadThread.h"
|
||||
|
||||
#ifndef NO_MAGICK
|
||||
#ifdef HAVE_MAGICK
|
||||
#include <Magick++.h>
|
||||
using namespace Magick;
|
||||
#endif
|
||||
|
@ -389,7 +389,7 @@ class RssManager : public QObject{
|
|||
if(url.endsWith("favicon.ico")){
|
||||
// Icon downloaded
|
||||
QImage fileIcon;
|
||||
#ifndef NO_MAGICK
|
||||
#ifdef HAVE_MAGICK
|
||||
try{
|
||||
QFile::copy(path, path+".ico");
|
||||
Image image(QDir::cleanPath(path+".ico").toUtf8().data());
|
||||
|
|
53
src/src.pro
53
src/src.pro
|
@ -27,29 +27,6 @@ contains(DEBUG_MODE, 0){
|
|||
message(Release build!)
|
||||
}
|
||||
|
||||
QMAKE_CXXFLAGS_RELEASE += -fwrapv -O2
|
||||
QMAKE_CXXFLAGS_DEBUG += -fwrapv -O1
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libtorrent libccext2 libccgnu2 ImageMagick++
|
||||
QT += network xml
|
||||
|
||||
DEFINES += QT_NO_CAST_TO_ASCII
|
||||
#QT_NO_CAST_FROM_ASCII
|
||||
|
||||
contains(DEBUG_MODE, 0){
|
||||
contains(QT_VERSION, 4.2.0) {
|
||||
message(Qt 4.2.0 detected : enabling debug output because of a bug in this version of Qt)
|
||||
}else{
|
||||
contains(QT_VERSION, 4.2.1) {
|
||||
message(Qt 4.2.1 detected : enabling debug output because of a bug in this version of Qt)
|
||||
}else{
|
||||
DEFINES += QT_NO_DEBUG_OUTPUT
|
||||
}
|
||||
}
|
||||
CONFIG += release
|
||||
}
|
||||
|
||||
# Install
|
||||
|
||||
!win32 {
|
||||
|
@ -95,6 +72,36 @@ contains(DEBUG_MODE, 0){
|
|||
INSTALLS += icon16 icon22 icon24 icon32 icon36 icon48 icon64 icon72 icon96 icon128 icon192
|
||||
}
|
||||
|
||||
QMAKE_CXXFLAGS_RELEASE += -fwrapv -O2
|
||||
QMAKE_CXXFLAGS_DEBUG += -fwrapv -O1
|
||||
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libtorrent libccext2 libccgnu2
|
||||
|
||||
contains(DEFINES, HAVE_MAGICK){
|
||||
PKGCONFIG += ImageMagick++
|
||||
}else{
|
||||
message(ImageMagick disabled)
|
||||
}
|
||||
|
||||
QT += network xml
|
||||
|
||||
DEFINES += QT_NO_CAST_TO_ASCII
|
||||
#QT_NO_CAST_FROM_ASCII
|
||||
|
||||
contains(DEBUG_MODE, 0){
|
||||
contains(QT_VERSION, 4.2.0) {
|
||||
message(Qt 4.2.0 detected : enabling debug output because of a bug in this version of Qt)
|
||||
}else{
|
||||
contains(QT_VERSION, 4.2.1) {
|
||||
message(Qt 4.2.1 detected : enabling debug output because of a bug in this version of Qt)
|
||||
}else{
|
||||
DEFINES += QT_NO_DEBUG_OUTPUT
|
||||
}
|
||||
}
|
||||
CONFIG += release
|
||||
}
|
||||
|
||||
# Windows
|
||||
win32 {
|
||||
LIBS += -ltorrent -lccext2 -lccgnu2
|
||||
|
|
Loading…
Reference in a new issue