Restructured the project file

Move OS specific configuration to separate project files
This commit is contained in:
Christophe Dumez 2010-11-20 17:21:40 +00:00
parent 1ca084038c
commit 8a1e79d22f
34 changed files with 323 additions and 342 deletions

2
configure vendored
View file

@ -338,7 +338,7 @@ public:
bool exec()
{
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addDefine("DISABLE_GUI");
conf->addExtra("CONFIG += nox");
}
return(QT_VERSION >= 0x040500);
}

16
macxconf.pri Normal file
View file

@ -0,0 +1,16 @@
PREFIX = /usr/local
BINDIR = /usr/local/bin
DATADIR = /usr/local/share
INCLUDEPATH += /usr/local/include/libtorrent /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
LIBS += -ltorrent-rasterbar -lcrypto -L/opt/local/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -framework Cocoa -framework Carbon
document_icon.path = Contents/Resources
document_icon.files = Icons/qBitTorrentDocument.icns
QMAKE_BUNDLE_DATA += document_icon
ICON = Icons/qbittorrent_mac.icns
QMAKE_INFO_PLIST = Info.plist
DEFINES += WITH_GEOIP_EMBEDDED
message("On Mac OS X, GeoIP database must be embedded.")

10
os2conf.pri Normal file
View file

@ -0,0 +1,10 @@
LIBS += -ltorrent-rasterbar \
-lboost_thread \
-lboost_system \
-lboost_filesystem \
-lssl -lcrypto -lidn -lpthread
RC_FILE = qbittorrent_os2.rc
DEFINES += WITH_GEOIP_EMBEDDED
message("On eCS(OS/2), GeoIP database must be embedded.")

View file

@ -13,7 +13,7 @@ public:
bool exec()
{
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addDefine("DISABLE_GUI");
conf->addExtra("CONFIG += nox");
}
return(QT_VERSION >= 0x040500);
}

View file

@ -1,5 +0,0 @@
<RCC>
<qresource>
<file>geoip/GeoIP.dat</file>
</qresource>
</RCC>

19
src/geoip/geoip.pri Normal file
View file

@ -0,0 +1,19 @@
INCLUDEPATH += $$PWD
HEADERS += $$PWD/geoipmanager.h
SOURCES += $$PWD/geoipmanager.cpp
# Add GeoIP resource file if the GeoIP database
# should be embedded in qBittorrent executable
contains(DEFINES, WITH_GEOIP_EMBEDDED) {
exists("geoip/GeoIP.dat") {
message("GeoIP.dat was found in src/geoip/.")
RESOURCES += $$PWD/geoip.qrc
} else {
DEFINES -= WITH_GEOIP_EMBEDDED
error("GeoIP.dat was not found in src/geoip/ folder, please follow instructions in src/geoip/README.")
}
} else {
message("GeoIP database will not be embedded in qBittorrent executable.")
}

5
src/geoip/geoip.qrc Normal file
View file

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/geoip">
<file>GeoIP.dat</file>
</qresource>
</RCC>

View file

@ -0,0 +1,13 @@
INCLUDEPATH += $$PWD
!contains(DEFINES, DISABLE_GUI) {
HEADERS += $$PWD/options_imp.h \
$$PWD/advancedsettings.h
SOURCES += $$PWD/options_imp.cpp
FORMS += $$PWD/options.ui
}
HEADERS += $$PWD/preferences.h

View file

@ -1,6 +1,8 @@
INCLUDEPATH += $$PWD
FORMS += $$PWD/propertieswidget.ui
FORMS += $$PWD/propertieswidget.ui \
$$PWD/trackersadditiondlg.ui \
$$PWD/peer.ui
HEADERS += $$PWD/propertieswidget.h \
$$PWD/peerlistwidget.h \

View file

@ -1,7 +1,8 @@
INCLUDEPATH += $$PWD
FORMS += $$PWD/search.ui \
$$PWD/engineselect.ui
$$PWD/engineselect.ui \
$$PWD/pluginsource.ui
HEADERS += $$PWD/searchengine.h \
$$PWD/searchtab.h \

View file

@ -1,244 +1,177 @@
# Global
TEMPLATE = app
CONFIG += qt thread
unix:macx {
exists(../conf.pri) {
# generated by configure
include(../conf.pri)
}
}
nox {
QT = core
TARGET = qbittorrent-nox
DEFINES += DISABLE_GUI
} else {
QT += xml
TARGET = qbittorrent
}
QT += network
# Vars
LANG_PATH = lang
ICONS_PATH = Icons
# Set the following variable to 1 to enable debug
DEBUG_MODE = 1
# use "CONFIG -= debug" to disable debug
CONFIG += debug
# Global
TEMPLATE = app
CONFIG += qt \
thread
# Update this VERSION for each release
os2 {
DEFINES += VERSION=\'\"v2.5.0beta4\"\'
} else {
DEFINES += VERSION=\\\"v2.5.0beta4\\\"
# Disable debug output in release mode
!debug {
DEFINES += QT_NO_DEBUG_OUTPUT
}
DEFINES += VERSION_MAJOR=2
DEFINES += VERSION_MINOR=5
DEFINES += VERSION_BUGFIX=0
# NORMAL,ALPHA,BETA,RELEASE_CANDIDATE,DEVEL
DEFINES += VERSION_TYPE=BETA
# VERSION DEFINES
include(../version.pri)
# Windows specific configuration
win32 {
exists(../winconf.pri) {
include(../winconf.pri)
}
#DEFINES += _WIN32_WINNT=0x0601
#DEFINES += _WIN32_IE=0x0400
#DEFINES += _WIN32_WINDOWS
#QMAKE_CXXFLAGS_STL_ON = -EHs
#QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHs
DEFINES += BOOST_ALL_NO_LIB BOOST_ASIO_HASH_MAP_BUCKETS=1021 BOOST_EXCEPTION_DISABLE
DEFINES += BOOST_FILESYSTEM_STATIC_LINK=1 BOOST_MULTI_INDEX_DISABLE_SERIALIZATION
DEFINES += BOOST_SYSTEM_STATIC_LINK=1 BOOST_THREAD_USE_LIB BOOST_THREAD_USE_LIB=1
DEFINES += TORRENT_USE_OPENSSL UNICODE WIN32 WIN32_LEAN_AND_MEAN
DEFINES += _CRT_SECURE_NO_DEPRECATE _FILE_OFFSET_BITS=64 _SCL_SECURE_NO_DEPRECATE
DEFINES += _UNICODE _WIN32 _WIN32_WINNT=0x0500 __USE_W32_SOCKETS
contains(DEBUG_MODE, 1) {
DEFINES += TORRENT_DEBUG
}
contains(DEBUG_MODE, 0) {
DEFINES += NDEBUG
}
}
# !mac:QMAKE_LFLAGS += -Wl,--as-needed
contains(DEBUG_MODE, 1) {
CONFIG += debug
CONFIG -= release
message(Debug build!)
}
contains(DEBUG_MODE, 0) {
CONFIG -= debug
CONFIG += release
DEFINES += QT_NO_DEBUG_OUTPUT
message(Release build!)
include(../winconf.pri)
}
# Mac specific configuration
macx {
PREFIX = /usr/local
BINDIR = /usr/local/bin
DATADIR = /usr/local/share
INCLUDEPATH += /usr/local/include/libtorrent /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
LIBS += -ltorrent-rasterbar -lcrypto -L/opt/local/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -framework Cocoa -framework Carbon
document_icon.path = Contents/Resources
document_icon.files = Icons/qBitTorrentDocument.icns
QMAKE_BUNDLE_DATA += document_icon
ICON = Icons/qbittorrent_mac.icns
QMAKE_INFO_PLIST = Info.plist
include(../macxconf.pri)
}
# Install
!win32 {
# Binary
exists(../conf.pri) {
include(../conf.pri)
# Target
# target.path = $$BINDIR
target.path = $$PREFIX/bin/
INSTALLS += target
}
# Man page
contains(DEFINES, DISABLE_GUI):man.files = ../doc/qbittorrent-nox.1
else:man.files = ../doc/qbittorrent.1
man.path = $$PREFIX/share/man/man1/
INSTALLS += man
# Menu Icon
!contains(DEFINES, DISABLE_GUI) {
menuicon.files = Icons/qBittorrent.desktop
menuicon.path = $$PREFIX/share/applications/
INSTALLS += menuicon
icon16.files = menuicons/16x16/apps/qbittorrent.png
icon16.path = $$PREFIX/share/icons/hicolor/16x16/apps/
icon22.files = menuicons/22x22/apps/qbittorrent.png
icon22.path = $$PREFIX/share/icons/hicolor/22x22/apps/
icon24.files = menuicons/24x24/apps/qbittorrent.png
icon24.path = $$PREFIX/share/icons/hicolor/24x24/apps/
icon32.files = menuicons/32x32/apps/qbittorrent.png
icon32.path = $$PREFIX/share/icons/hicolor/32x32/apps/
icon36.files = menuicons/36x36/apps/qbittorrent.png
icon36.path = $$PREFIX/share/icons/hicolor/36x36/apps/
icon48.files = menuicons/48x48/apps/qbittorrent.png
icon48.path = $$PREFIX/share/icons/hicolor/48x48/apps/
icon64.files = menuicons/64x64/apps/qbittorrent.png
icon64.path = $$PREFIX/share/icons/hicolor/64x64/apps/
icon72.files = menuicons/72x72/apps/qbittorrent.png
icon72.path = $$PREFIX/share/icons/hicolor/72x72/apps/
icon96.files = menuicons/96x96/apps/qbittorrent.png
icon96.path = $$PREFIX/share/icons/hicolor/96x96/apps/
icon128.files = menuicons/128x128/apps/qbittorrent.png
icon128.path = $$PREFIX/share/icons/hicolor/128x128/apps/
icon192.files = menuicons/192x192/apps/qbittorrent.png
icon192.path = $$PREFIX/share/icons/hicolor/192x192/apps/
INSTALLS += icon16 \
icon22 \
icon24 \
icon32 \
icon36 \
icon48 \
icon64 \
icon72 \
icon96 \
icon128 \
icon192
}
}
contains(DEFINES, DISABLE_GUI) {
QT = core
TARGET = qbittorrent-nox
} else {
TARGET = qbittorrent
}
unix:QMAKE_LFLAGS_APP += -rdynamic
unix {
CONFIG += link_pkgconfig
PKGCONFIG += "libtorrent-rasterbar"
}
QT += network
!contains(DEFINES, DISABLE_GUI):QT += xml
# Unix specific configuration
unix:!macx {
QT += dbus
include(../unixconf.pri)
}
# eCS(OS/2) specific configuration
os2 {
include(../os2conf.pri)
}
DEFINES += QT_NO_CAST_TO_ASCII
# Fast concatenation (Qt >= 4.6)
DEFINES += QT_USE_FAST_CONCATENATION QT_USE_FAST_OPERATOR_PLUS
# Windows
win32 {
RC_FILE = qbittorrent.rc
#LIBS += "/nodefaultlib:"msvcrt.lib"
#LIBS += "/nodefaultlib:"msvcrtd.lib"
#contains(DEBUG_MODE, 1) {
# LIBS += "/nodefaultlib:"libcmt.lib"
#}
contains(DEBUG_MODE, 1) {
LIBS += libtorrentd.lib \
libboost_system-vc90-mt-gd.lib \
libboost_filesystem-vc90-mt-gd.lib \
libboost_thread-vc90-mt-gd.lib
}
contains(DEBUG_MODE, 0) {
LIBS += libtorrent.lib \
libboost_system-vc90-mt.lib \
libboost_filesystem-vc90-mt.lib \
libboost_thread-vc90-mt.lib
}
LIBS += advapi32.lib shell32.lib
LIBS += libeay32MD.lib ssleay32MD.lib
}
os2 {
LIBS += -ltorrent-rasterbar \
-lboost_thread \
-lboost_system \
-lboost_filesystem \
-lssl -lcrypto -lidn -lpthread
RC_FILE = qbittorrent_os2.rc
}
!contains(DEFINES, DISABLE_GUI) {
win32 {
DEFINES += WITH_GEOIP_EMBEDDED
message("On Windows, GeoIP database must be embedded.")
}
os2 {
DEFINES += WITH_GEOIP_EMBEDDED
message("On eCS(OS/2), GeoIP database must be embedded.")
}
macx {
DEFINES += WITH_GEOIP_EMBEDDED
message("On Mac OS X, GeoIP database must be embedded.")
}
unix:!macx:contains(DEFINES, WITH_GEOIP_EMBEDDED):message("You chose to embed GeoIP database in qBittorrent executable.")
}
# Resource files
RESOURCES += icons.qrc \
lang.qrc \
about.qrc
# Add GeoIP resource file if the GeoIP database
# should be embedded in qBittorrent executable
contains(DEFINES, WITH_GEOIP_EMBEDDED) {
exists("geoip/GeoIP.dat") {
message("GeoIP.dat was found in src/geoip/.")
RESOURCES += geoip.qrc
}
else {
DEFINES -= WITH_GEOIP_EMBEDDED
error("GeoIP.dat was not found in src/geoip/ folder, please follow instructions in src/geoip/README.")
# Source code
contains(DEFINES, USE_SYSTEM_QTSINGLEAPPLICATION) {
nox {
CONFIG += qtsinglecoreapplication
} else {
CONFIG += qtsingleapplication
}
} else {
message("GeoIP database will not be embedded in qBittorrent executable.")
nox {
include(qtsingleapp/qtsinglecoreapplication.pri)
} else {
include(qtsingleapp/qtsingleapplication.pri)
}
}
include(qtlibtorrent/qtlibtorrent.pri)
include(webui/webui.pri)
include(tracker/tracker.pri)
include (preferences/preferences.pri)
!nox {
include(lineedit/lineedit.pri)
include(properties/properties.pri)
include(searchengine/searchengine.pri)
include(rss/rss.pri)
include(torrentcreator/torrentcreator.pri)
include(geoip/geoip.pri)
}
HEADERS += misc.h \
downloadthread.h \
filterparserthread.h \
stacktrace.h \
torrentpersistentdata.h \
filesystemwatcher.h \
scannedfoldersmodel.h \
qinisettings.h \
smtp.h
SOURCES += main.cpp \
downloadthread.cpp \
scannedfoldersmodel.cpp \
misc.cpp \
smtp.cpp
nox {
HEADERS += headlessloader.h
} else {
HEADERS += mainwindow.h\
transferlistwidget.h \
transferlistdelegate.h \
transferlistfilterswidget.h \
torrentfilesmodel.h \
deletionconfirmationdlg.h \
statusbar.h \
reverseresolution.h \
console_imp.h \
ico.h \
speedlimitdlg.h \
about_imp.h \
previewselect.h \
previewlistdelegate.h \
downloadfromurldlg.h \
torrentadditiondlg.h \
trackerlogin.h \
hidabletabwidget.h \
sessionapplication.h \
torrentimportdlg.h
SOURCES += mainwindow.cpp \
ico.cpp \
transferlistwidget.cpp \
torrentadditiondlg.cpp \
sessionapplication.cpp \
torrentimportdlg.cpp
win32 {
HEADERS += programupdater.h
SOURCES += programupdater.cpp
}
macx {
HEADERS += qmacapplication.h \
programupdater.h
SOURCES += qmacapplication.cpp \
programupdater.cpp
}
FORMS += mainwindow.ui \
about.ui \
preview.ui \
login.ui \
downloadfromurldlg.ui \
torrentadditiondlg.ui \
bandwidth_limit.ui \
console.ui \
confirmdeletiondlg.ui \
torrentimportdlg.ui
}
DESTDIR = .
# OS specific config
OTHER_FILES += ../winconf.pri ../macxconf.pri ../unixconf.pri ../os2conf.pri
# version file
OTHER_FILES += ../version.pri
# Translations
TRANSLATIONS = $$LANG_PATH/qbittorrent_fr.ts \
$$LANG_PATH/qbittorrent_zh.ts \
@ -270,127 +203,3 @@ TRANSLATIONS = $$LANG_PATH/qbittorrent_fr.ts \
$$LANG_PATH/qbittorrent_sr.ts \
$$LANG_PATH/qbittorrent_ar.ts \
$$LANG_PATH/qbittorrent_hr.ts
# Source code
HEADERS += misc.h \
downloadthread.h \
filterparserthread.h \
stacktrace.h \
torrentpersistentdata.h \
filesystemwatcher.h \
preferences.h \
scannedfoldersmodel.h \
qinisettings.h \
smtp.h
contains(DEFINES, DISABLE_GUI) {
HEADERS += headlessloader.h
} else {
HEADERS += mainwindow.h\
transferlistwidget.h \
transferlistdelegate.h \
transferlistfilterswidget.h \
torrentfilesmodel.h \
deletionconfirmationdlg.h \
statusbar.h \
reverseresolution.h \
console_imp.h \
ico.h \
speedlimitdlg.h \
options_imp.h \
about_imp.h \
previewselect.h \
previewlistdelegate.h \
downloadfromurldlg.h \
torrentadditiondlg.h \
trackerlogin.h \
advancedsettings.h \
hidabletabwidget.h \
sessionapplication.h \
torrentimportdlg.h \
geoipmanager.h
win32 {
HEADERS += programupdater.h
}
macx {
HEADERS += qmacapplication.h \
programupdater.h
}
}
contains(DEFINES, USE_SYSTEM_QTSINGLEAPPLICATION) {
message("Using the system's qtsingleapplication library")
contains(DEFINES, DISABLE_GUI) {
CONFIG += qtsinglecoreapplication
} else {
CONFIG += qtsingleapplication
}
} else {
message("Using the shipped qtsingleapplication library")
contains(DEFINES, DISABLE_GUI) {
include(qtsingleapp/qtsinglecoreapplication.pri)
} else {
include(qtsingleapp/qtsingleapplication.pri)
}
}
!contains(DEFINES, DISABLE_GUI) {
include(lineedit/lineedit.pri)
}
include(qtlibtorrent/qtlibtorrent.pri)
include(webui/webui.pri)
include(tracker/tracker.pri)
!contains(DEFINES, DISABLE_GUI) {
include(properties/properties.pri)
include(searchengine/searchengine.pri)
include(rss/rss.pri)
include(torrentcreator/torrentcreator.pri)
}
!contains(DEFINES, DISABLE_GUI) {
FORMS += ui/mainwindow.ui \
ui/options.ui \
ui/about.ui \
ui/preview.ui \
ui/login.ui \
ui/downloadfromurldlg.ui \
ui/torrentadditiondlg.ui \
ui/bandwidth_limit.ui \
ui/pluginsource.ui \
ui/trackersadditiondlg.ui \
ui/console.ui \
ui/peer.ui \
ui/confirmdeletiondlg.ui \
ui/torrentimportdlg.ui
}
SOURCES += main.cpp \
downloadthread.cpp \
scannedfoldersmodel.cpp \
misc.cpp \
smtp.cpp
!contains(DEFINES, DISABLE_GUI) {
SOURCES += mainwindow.cpp \
options_imp.cpp \
ico.cpp \
transferlistwidget.cpp \
torrentadditiondlg.cpp \
sessionapplication.cpp \
torrentimportdlg.cpp \
geoipmanager.cpp
win32 {
SOURCES += programupdater.cpp
}
macx {
SOURCES += qmacapplication.cpp \
programupdater.cpp
}
}
DESTDIR = .

66
unixconf.pri Normal file
View file

@ -0,0 +1,66 @@
# COMPILATION SPECIFIC
QT += dbus
QMAKE_LFLAGS_APP += -rdynamic
CONFIG += link_pkgconfig
PKGCONFIG += libtorrent-rasterbar
# Man page
nox {
man.files = ../doc/qbittorrent-nox.1
} else {
man.files = ../doc/qbittorrent.1
}
man.path = $$PREFIX/share/man/man1/
INSTALLS += man
# Menu Icon
!nox {
menuicon.files = Icons/qBittorrent.desktop
menuicon.path = $$PREFIX/share/applications/
INSTALLS += menuicon
icon16.files = menuicons/16x16/apps/qbittorrent.png
icon16.path = $$PREFIX/share/icons/hicolor/16x16/apps/
icon22.files = menuicons/22x22/apps/qbittorrent.png
icon22.path = $$PREFIX/share/icons/hicolor/22x22/apps/
icon24.files = menuicons/24x24/apps/qbittorrent.png
icon24.path = $$PREFIX/share/icons/hicolor/24x24/apps/
icon32.files = menuicons/32x32/apps/qbittorrent.png
icon32.path = $$PREFIX/share/icons/hicolor/32x32/apps/
icon36.files = menuicons/36x36/apps/qbittorrent.png
icon36.path = $$PREFIX/share/icons/hicolor/36x36/apps/
icon48.files = menuicons/48x48/apps/qbittorrent.png
icon48.path = $$PREFIX/share/icons/hicolor/48x48/apps/
icon64.files = menuicons/64x64/apps/qbittorrent.png
icon64.path = $$PREFIX/share/icons/hicolor/64x64/apps/
icon72.files = menuicons/72x72/apps/qbittorrent.png
icon72.path = $$PREFIX/share/icons/hicolor/72x72/apps/
icon96.files = menuicons/96x96/apps/qbittorrent.png
icon96.path = $$PREFIX/share/icons/hicolor/96x96/apps/
icon128.files = menuicons/128x128/apps/qbittorrent.png
icon128.path = $$PREFIX/share/icons/hicolor/128x128/apps/
icon192.files = menuicons/192x192/apps/qbittorrent.png
icon192.path = $$PREFIX/share/icons/hicolor/192x192/apps/
INSTALLS += icon16 \
icon22 \
icon24 \
icon32 \
icon36 \
icon48 \
icon64 \
icon72 \
icon96 \
icon128 \
icon192
}
# INSTALL
target.path = $$PREFIX/bin/
INSTALLS += target
!nox {
# DEFINE added by configure
contains(DEFINES, WITH_GEOIP_EMBEDDED) {
message("You chose to embed GeoIP database in qBittorrent executable.")
}
}

11
version.pri Normal file
View file

@ -0,0 +1,11 @@
os2 {
DEFINES += VERSION=\'\"v2.5.0beta5\"\'
} else {
DEFINES += VERSION=\\\"v2.5.0beta5\\\"
}
DEFINES += VERSION_MAJOR=2
DEFINES += VERSION_MINOR=5
DEFINES += VERSION_BUGFIX=0
# NORMAL,ALPHA,BETA,RELEASE_CANDIDATE,DEVEL
DEFINES += VERSION_TYPE=BETA

View file

@ -6,3 +6,37 @@ INCLUDEPATH += $$quote(C:/OpenSSL/include)
LIBS += $$quote(-LC:/OpenSSL/lib/VC)
LIBS += $$quote(-L$$PWD/libs)
# LIBTORRENT DEFINES
DEFINES += BOOST_ALL_NO_LIB BOOST_ASIO_HASH_MAP_BUCKETS=1021 BOOST_EXCEPTION_DISABLE
DEFINES += BOOST_FILESYSTEM_STATIC_LINK=1 BOOST_MULTI_INDEX_DISABLE_SERIALIZATION
DEFINES += BOOST_SYSTEM_STATIC_LINK=1 BOOST_THREAD_USE_LIB BOOST_THREAD_USE_LIB=1
DEFINES += TORRENT_USE_OPENSSL UNICODE WIN32 WIN32_LEAN_AND_MEAN
DEFINES += _CRT_SECURE_NO_DEPRECATE _FILE_OFFSET_BITS=64 _SCL_SECURE_NO_DEPRECATE
DEFINES += _UNICODE _WIN32 _WIN32_WINNT=0x0500 __USE_W32_SOCKETS
debug {
DEFINES += TORRENT_DEBUG
} else {
DEFINES += NDEBUG
}
RC_FILE = qbittorrent.rc
debug {
LIBS += libtorrentd.lib \
libboost_system-vc90-mt-gd.lib \
libboost_filesystem-vc90-mt-gd.lib \
libboost_thread-vc90-mt-gd.lib
} else {
LIBS += libtorrent.lib \
libboost_system-vc90-mt.lib \
libboost_filesystem-vc90-mt.lib \
libboost_thread-vc90-mt.lib
}
LIBS += advapi32.lib shell32.lib
LIBS += libeay32MD.lib ssleay32MD.lib
DEFINES += WITH_GEOIP_EMBEDDED
message("On Windows, GeoIP database must be embedded.")