mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-12-21 08:09:35 +08:00
commit
a8ade3a04b
@ -12,7 +12,8 @@ project(qBittorrent
|
||||
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
|
||||
# version requirements - older versions may work, but you are on your own
|
||||
set(minBoostVersion 1.65)
|
||||
set(minQtVersion 5.15.2)
|
||||
set(minQt5Version 5.15.2)
|
||||
set(minQt6Version 6.2)
|
||||
set(minOpenSSLVersion 1.1.1)
|
||||
set(minLibtorrent1Version 1.2.14)
|
||||
set(minLibtorrentVersion 2.0.4)
|
||||
@ -22,6 +23,7 @@ set(minZlibVersion 1.2.11)
|
||||
include(CheckCXXSourceCompiles) # TODO: migrate to CheckSourceCompiles in CMake >= 3.19
|
||||
include(FeatureSummary)
|
||||
include(FeatureOptionsSetup)
|
||||
feature_option(QT6 "Use Qt6" OFF)
|
||||
feature_option(STACKTRACE "Enable stacktraces" ON)
|
||||
feature_option(GUI "Build GUI application" ON)
|
||||
feature_option(WEBUI "Enables built-in HTTP server for headless use" ON)
|
||||
|
@ -43,13 +43,24 @@ set_property(CACHE LibtorrentRasterbar_DIR PROPERTY TYPE PATH)
|
||||
find_package(Boost ${minBoostVersion} REQUIRED)
|
||||
find_package(OpenSSL ${minOpenSSLVersion} REQUIRED)
|
||||
find_package(ZLIB ${minZlibVersion} REQUIRED)
|
||||
find_package(Qt5 ${minQtVersion} REQUIRED COMPONENTS Core Network Sql Xml LinguistTools)
|
||||
if (DBUS)
|
||||
find_package(Qt5 ${minQtVersion} REQUIRED COMPONENTS DBus)
|
||||
set_package_properties(Qt5DBus PROPERTIES
|
||||
DESCRIPTION "Qt5 module for inter-process communication over the D-Bus protocol"
|
||||
PURPOSE "Required by the DBUS feature"
|
||||
)
|
||||
if (QT6)
|
||||
find_package(Qt6 ${minQt6Version} REQUIRED COMPONENTS Core Network Sql Xml LinguistTools)
|
||||
if (DBUS)
|
||||
find_package(Qt6 ${minQt6Version} REQUIRED COMPONENTS DBus)
|
||||
set_package_properties(Qt6DBus PROPERTIES
|
||||
DESCRIPTION "Qt6 module for inter-process communication over the D-Bus protocol"
|
||||
PURPOSE "Required by the DBUS feature"
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS Core Network Sql Xml LinguistTools)
|
||||
if (DBUS)
|
||||
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS DBus)
|
||||
set_package_properties(Qt5DBus PROPERTIES
|
||||
DESCRIPTION "Qt5 module for inter-process communication over the D-Bus protocol"
|
||||
PURPOSE "Required by the DBUS feature"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# automatically call Qt moc, rcc and uic as needed for all targets by default
|
||||
@ -68,10 +79,15 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
add_subdirectory(base)
|
||||
|
||||
if (GUI)
|
||||
find_package(Qt5 ${minQtVersion} REQUIRED COMPONENTS Widgets Svg)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
find_package(Qt5 ${minQtVersion} REQUIRED COMPONENTS WinExtras)
|
||||
if (QT6)
|
||||
find_package(Qt6 ${minQt6Version} REQUIRED COMPONENTS Widgets Svg)
|
||||
else()
|
||||
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS Widgets Svg)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
find_package(Qt5 ${minQt5Version} REQUIRED COMPONENTS WinExtras)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_subdirectory(gui)
|
||||
endif()
|
||||
|
||||
|
@ -4,14 +4,14 @@
|
||||
# Based on https://gist.github.com/giraldeau/546ba5512a74dfe9d8ea0862d66db412
|
||||
file(GLOB QBT_TS_FILES "${qBittorrent_SOURCE_DIR}/src/lang/*.ts")
|
||||
set_source_files_properties(${QBT_TS_FILES} PROPERTIES OUTPUT_LOCATION "${qBittorrent_BINARY_DIR}/src/lang")
|
||||
qt5_add_translation(QBT_QM_FILES ${QBT_TS_FILES} OPTIONS -silent)
|
||||
qt_add_translation(QBT_QM_FILES ${QBT_TS_FILES} OPTIONS -silent)
|
||||
configure_file("${qBittorrent_SOURCE_DIR}/src/lang/lang.qrc" "${qBittorrent_BINARY_DIR}/src/lang/lang.qrc" COPYONLY)
|
||||
|
||||
if (WEBUI)
|
||||
file(GLOB QBT_WEBUI_TS_FILES "${qBittorrent_SOURCE_DIR}/src/webui/www/translations/*.ts")
|
||||
set_source_files_properties(${QBT_WEBUI_TS_FILES}
|
||||
PROPERTIES OUTPUT_LOCATION "${qBittorrent_BINARY_DIR}/src/webui/www/translations")
|
||||
qt5_add_translation(QBT_WEBUI_QM_FILES ${QBT_WEBUI_TS_FILES} OPTIONS -silent)
|
||||
qt_add_translation(QBT_WEBUI_QM_FILES ${QBT_WEBUI_TS_FILES} OPTIONS -silent)
|
||||
configure_file("${qBittorrent_SOURCE_DIR}/src/webui/www/translations/webui_translations.qrc"
|
||||
"${qBittorrent_BINARY_DIR}/src/webui/www/translations/webui_translations.qrc" COPYONLY)
|
||||
endif()
|
||||
@ -139,7 +139,7 @@ endif()
|
||||
if (GUI)
|
||||
target_link_libraries(qbt_app PRIVATE qbt_gui)
|
||||
if ((CMAKE_SYSTEM_NAME STREQUAL "Windows") OR (CMAKE_SYSTEM_NAME STREQUAL "Darwin"))
|
||||
qt_import_plugins(qbt_app INCLUDE Qt5::QSvgIconPlugin Qt5::QSvgPlugin)
|
||||
qt_import_plugins(qbt_app INCLUDE Qt::QSvgIconPlugin Qt::QSvgPlugin)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -177,7 +177,7 @@ target_link_libraries(qbt_base
|
||||
ZLIB::ZLIB
|
||||
PUBLIC
|
||||
LibtorrentRasterbar::torrent-rasterbar
|
||||
Qt5::Core Qt5::Network Qt5::Sql Qt5::Xml
|
||||
Qt::Core Qt::Network Qt::Sql Qt::Xml
|
||||
qbt_common_cfg
|
||||
)
|
||||
|
||||
@ -204,5 +204,5 @@ if (NOT WEBUI)
|
||||
endif()
|
||||
|
||||
if (DBUS)
|
||||
target_link_libraries(qbt_base PUBLIC Qt5::DBus)
|
||||
target_link_libraries(qbt_base PUBLIC Qt::DBus)
|
||||
endif()
|
||||
|
@ -199,7 +199,7 @@ target_link_libraries(qbt_gui
|
||||
PRIVATE
|
||||
qbt_base
|
||||
PUBLIC
|
||||
Qt5::Gui Qt5::Widgets
|
||||
Qt::Gui Qt::Widgets
|
||||
)
|
||||
|
||||
if (DBUS)
|
||||
@ -219,10 +219,10 @@ if ((CMAKE_SYSTEM_NAME STREQUAL "Windows") OR (CMAKE_SYSTEM_NAME STREQUAL "Darwi
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
||||
target_link_libraries(qbt_gui PRIVATE
|
||||
Qt5::WinExtras
|
||||
PowrProf
|
||||
)
|
||||
target_link_libraries(qbt_gui PRIVATE PowrProf)
|
||||
if (NOT QT6)
|
||||
target_link_libraries(qbt_gui PRIVATE Qt5::WinExtras)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
@ -230,7 +230,5 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||
macutilities.h
|
||||
macutilities.mm
|
||||
)
|
||||
target_link_libraries(qbt_gui PRIVATE
|
||||
objc
|
||||
)
|
||||
target_link_libraries(qbt_gui PRIVATE objc)
|
||||
endif()
|
||||
|
@ -55,7 +55,6 @@
|
||||
|
||||
#include "base/bittorrent/session.h"
|
||||
#include "base/bittorrent/sessionstatus.h"
|
||||
#include "base/bittorrent/torrent.h"
|
||||
#include "base/global.h"
|
||||
#include "base/logger.h"
|
||||
#include "base/net/downloadmanager.h"
|
||||
|
@ -35,6 +35,8 @@
|
||||
#include <QSystemTrayIcon>
|
||||
#endif
|
||||
|
||||
#include "base/bittorrent/torrent.h"
|
||||
|
||||
class QCloseEvent;
|
||||
class QFileSystemWatcher;
|
||||
class QSplitter;
|
||||
@ -57,11 +59,6 @@ class TorrentCreatorDialog;
|
||||
class TransferListFiltersWidget;
|
||||
class TransferListWidget;
|
||||
|
||||
namespace BitTorrent
|
||||
{
|
||||
class Torrent;
|
||||
}
|
||||
|
||||
namespace Net
|
||||
{
|
||||
struct DownloadResult;
|
||||
|
@ -38,10 +38,8 @@
|
||||
#include <QUrl>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#include "base/bittorrent/infohash.h"
|
||||
#include "base/bittorrent/session.h"
|
||||
#include "base/bittorrent/torrent.h"
|
||||
#include "base/bittorrent/trackerentry.h"
|
||||
#include "base/global.h"
|
||||
#include "base/logger.h"
|
||||
#include "base/net/downloadmanager.h"
|
||||
|
@ -32,6 +32,9 @@
|
||||
#include <QListWidget>
|
||||
#include <QtContainerFwd>
|
||||
|
||||
#include "base/bittorrent/infohash.h"
|
||||
#include "base/bittorrent/trackerentry.h"
|
||||
|
||||
class QCheckBox;
|
||||
class QResizeEvent;
|
||||
|
||||
@ -40,8 +43,6 @@ class TransferListWidget;
|
||||
namespace BitTorrent
|
||||
{
|
||||
class Torrent;
|
||||
class TorrentID;
|
||||
struct TrackerEntry;
|
||||
}
|
||||
|
||||
namespace Net
|
||||
|
@ -44,7 +44,6 @@
|
||||
#include <QWheelEvent>
|
||||
|
||||
#include "base/bittorrent/common.h"
|
||||
#include "base/bittorrent/infohash.h"
|
||||
#include "base/bittorrent/session.h"
|
||||
#include "base/bittorrent/torrent.h"
|
||||
#include "base/bittorrent/trackerentry.h"
|
||||
|
@ -29,9 +29,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <functional>
|
||||
|
||||
#include <QtContainerFwd>
|
||||
#include <QTreeView>
|
||||
|
||||
#include "base/bittorrent/infohash.h"
|
||||
|
||||
class MainWindow;
|
||||
class TransferListModel;
|
||||
class TransferListSortModel;
|
||||
@ -39,7 +42,6 @@ class TransferListSortModel;
|
||||
namespace BitTorrent
|
||||
{
|
||||
class Torrent;
|
||||
class TorrentID;
|
||||
}
|
||||
|
||||
enum class CopyInfohashPolicy
|
||||
|
@ -23,7 +23,7 @@ nogui {
|
||||
DEFINES += QBT_STATIC_QT
|
||||
QTPLUGIN += qico
|
||||
}
|
||||
win32 {
|
||||
win32: lessThan(QT_VERSION_MAJOR, 6) {
|
||||
QT += winextras
|
||||
}
|
||||
macx {
|
||||
|
Loading…
Reference in New Issue
Block a user