mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-19 21:03:30 -07:00
CMake: Don't split GUI code into several libraries
This commit is contained in:
parent
4a2d25b03b
commit
642bf7b8a6
13 changed files with 437 additions and 506 deletions
|
@ -47,7 +47,7 @@ set(requiredLibtorrentVersion 1.1.10)
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
include(winconf)
|
include(winconf)
|
||||||
endif(WIN32)
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# we need options here, at the top level, because they are used not only in "src" subdir, but in the "dist" dir too
|
# we need options here, at the top level, because they are used not only in "src" subdir, but in the "dist" dir too
|
||||||
|
|
9
dist/CMakeLists.txt
vendored
9
dist/CMakeLists.txt
vendored
|
@ -2,11 +2,8 @@ find_package(Qt5Widgets ${requiredQtVersion}) # to conditionally install desktop
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
add_subdirectory(mac)
|
add_subdirectory(mac)
|
||||||
else (APPLE)
|
elseif (UNIX)
|
||||||
if (UNIX)
|
|
||||||
add_subdirectory(unix)
|
add_subdirectory(unix)
|
||||||
endif (UNIX)
|
elseif (WIN32)
|
||||||
if (WIN32)
|
|
||||||
add_subdirectory(windows)
|
add_subdirectory(windows)
|
||||||
endif (WIN32)
|
endif()
|
||||||
endif (APPLE)
|
|
||||||
|
|
|
@ -18,10 +18,7 @@ upgrade.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(qBittorrent PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
target_include_directories(qBittorrent PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
target_link_libraries(qBittorrent
|
target_link_libraries(qBittorrent PRIVATE qbt_base)
|
||||||
PRIVATE
|
|
||||||
qbt_base
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(qBittorrent
|
set_target_properties(qBittorrent
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
|
@ -53,49 +50,53 @@ qt5_add_resources(QBT_APP_RESOURCE_SOURCE ${QBT_APP_RESOURCES})
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
target_sources(qBittorrent PRIVATE ../qbittorrent_mingw.rc)
|
target_sources(qBittorrent PRIVATE ../qbittorrent_mingw.rc)
|
||||||
else (MINGW)
|
else()
|
||||||
target_sources(qBittorrent PRIVATE ../qbittorrent.rc)
|
target_sources(qBittorrent PRIVATE ../qbittorrent.rc)
|
||||||
endif (MINGW)
|
endif()
|
||||||
|
|
||||||
target_sources(qBittorrent PRIVATE ../qbittorrent.exe.manifest)
|
target_sources(qBittorrent PRIVATE ../qbittorrent.exe.manifest)
|
||||||
endif (WIN32)
|
endif()
|
||||||
|
|
||||||
if (STACKTRACE)
|
if (STACKTRACE)
|
||||||
if (UNIX)
|
if (UNIX)
|
||||||
target_sources(qBittorrent PRIVATE stacktrace.h)
|
target_sources(qBittorrent PRIVATE stacktrace.h)
|
||||||
else (UNIX)
|
else()
|
||||||
target_sources(qBittorrent PRIVATE stacktrace_win.h)
|
target_sources(qBittorrent PRIVATE stacktrace_win.h)
|
||||||
if (Qt5Widgets_FOUND)
|
if (Qt5Widgets_FOUND)
|
||||||
target_sources(qBittorrent PRIVATE stacktracedialog.cpp stacktracedialog.h)
|
target_sources(qBittorrent PRIVATE stacktracedialog.cpp stacktracedialog.h)
|
||||||
endif (Qt5Widgets_FOUND)
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
if (NOT "${WINXXBITS}" STREQUAL "Win64")
|
if (NOT "${WINXXBITS}" STREQUAL "Win64")
|
||||||
# i686 arch requires frame pointer preservation
|
# i686 arch requires frame pointer preservation
|
||||||
add_compile_options(-Oy-)
|
add_compile_options(-Oy-)
|
||||||
endif (NOT "${WINXXBITS}" STREQUAL "Win64")
|
endif()
|
||||||
|
|
||||||
add_compile_options(-Zi)
|
add_compile_options(-Zi)
|
||||||
target_link_libraries(qBittorrent PUBLIC dbghelp -DEBUG)
|
target_link_libraries(qBittorrent PUBLIC dbghelp -DEBUG)
|
||||||
else (MSVC)
|
else()
|
||||||
if (NOT "${WINXXBITS}" STREQUAL "Win64")
|
if (NOT "${WINXXBITS}" STREQUAL "Win64")
|
||||||
add_compile_options(-fno-omit-frame-pointer)
|
add_compile_options(-fno-omit-frame-pointer)
|
||||||
endif (NOT "${WINXXBITS}" STREQUAL "Win64")
|
endif()
|
||||||
|
|
||||||
target_link_libraries(qBittorrent PUBLIC dbghelp -Wl,--export-all-symbols)
|
target_link_libraries(qBittorrent PUBLIC dbghelp -Wl,--export-all-symbols)
|
||||||
endif (MSVC)
|
endif()
|
||||||
endif (UNIX)
|
endif()
|
||||||
endif (STACKTRACE)
|
endif()
|
||||||
|
|
||||||
if (Qt5Widgets_FOUND)
|
if (Qt5Widgets_FOUND)
|
||||||
target_link_libraries(qBittorrent PRIVATE qbt_searchengine qbt_gui)
|
target_link_libraries(qBittorrent PRIVATE qbt_gui)
|
||||||
set_target_properties(qBittorrent
|
set_target_properties(qBittorrent
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME qbittorrent
|
OUTPUT_NAME qbittorrent
|
||||||
WIN32_EXECUTABLE True
|
WIN32_EXECUTABLE True
|
||||||
)
|
)
|
||||||
else(Qt5Widgets_FOUND)
|
else()
|
||||||
set_target_properties(qBittorrent
|
set_target_properties(qBittorrent
|
||||||
PROPERTIES
|
PROPERTIES
|
||||||
OUTPUT_NAME qbittorrent-nox
|
OUTPUT_NAME qbittorrent-nox
|
||||||
)
|
)
|
||||||
endif (Qt5Widgets_FOUND)
|
endif()
|
||||||
|
|
||||||
if (NOT DISABLE_WEBUI)
|
if (NOT DISABLE_WEBUI)
|
||||||
target_link_libraries(qBittorrent PRIVATE qbt_webui)
|
target_link_libraries(qBittorrent PRIVATE qbt_webui)
|
||||||
|
@ -127,9 +128,8 @@ if (APPLE)
|
||||||
${QT_TR_DIR}/qt_zh_CN.qm
|
${QT_TR_DIR}/qt_zh_CN.qm
|
||||||
)
|
)
|
||||||
list(APPEND QBT_APP_RESOURCE_SOURCE ${QT_TRANSLATIONS})
|
list(APPEND QBT_APP_RESOURCE_SOURCE ${QT_TRANSLATIONS})
|
||||||
set_source_files_properties(${QT_TRANSLATIONS}
|
set_source_files_properties(${QT_TRANSLATIONS} PROPERTIES MACOSX_PACKAGE_LOCATION translations)
|
||||||
PROPERTIES MACOSX_PACKAGE_LOCATION translations)
|
endif()
|
||||||
endif (APPLE)
|
|
||||||
|
|
||||||
target_sources(qBittorrent PRIVATE ${QBT_QM_FILES} ${QBT_APP_RESOURCE_SOURCE})
|
target_sources(qBittorrent PRIVATE ${QBT_QM_FILES} ${QBT_APP_RESOURCE_SOURCE})
|
||||||
|
|
||||||
|
@ -146,15 +146,16 @@ if (APPLE)
|
||||||
MACOSX_BUNDLE_BUNDLE_NAME "${qbt_BUNDLE_NAME}"
|
MACOSX_BUNDLE_BUNDLE_NAME "${qbt_BUNDLE_NAME}"
|
||||||
MACOSX_BUNDLE_INFO_PLIST ${qBittorrent_BINARY_DIR}/dist/mac/Info.plist
|
MACOSX_BUNDLE_INFO_PLIST ${qBittorrent_BINARY_DIR}/dist/mac/Info.plist
|
||||||
)
|
)
|
||||||
endif (APPLE)
|
endif()
|
||||||
|
|
||||||
# installation
|
# installation
|
||||||
install(TARGETS qBittorrent
|
install(TARGETS qBittorrent
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
BUNDLE DESTINATION .
|
BUNDLE DESTINATION .
|
||||||
COMPONENT runtime)
|
COMPONENT runtime
|
||||||
|
)
|
||||||
|
|
||||||
if (Qt5Widgets_FOUND AND APPLE)
|
if (Qt5Widgets_FOUND AND APPLE)
|
||||||
find_package(Qt5Svg REQUIRED)
|
find_package(Qt5Svg REQUIRED)
|
||||||
include(bundle)
|
include(bundle)
|
||||||
endif (Qt5Widgets_FOUND AND APPLE)
|
endif()
|
||||||
|
|
|
@ -164,10 +164,6 @@ target_link_libraries(qbt_base
|
||||||
Qt5::Core Qt5::Network Qt5::Xml
|
Qt5::Core Qt5::Network Qt5::Xml
|
||||||
)
|
)
|
||||||
|
|
||||||
if (Qt5Widgets_FOUND)
|
|
||||||
target_link_libraries(qbt_base PUBLIC Qt5::Gui Qt5::Widgets)
|
|
||||||
endif (Qt5Widgets_FOUND)
|
|
||||||
|
|
||||||
if (Qt5DBus_FOUND)
|
if (Qt5DBus_FOUND)
|
||||||
target_link_libraries(qbt_base PRIVATE Qt5::DBus)
|
target_link_libraries(qbt_base PRIVATE Qt5::DBus)
|
||||||
endif()
|
endif()
|
||||||
|
@ -177,4 +173,4 @@ if (APPLE)
|
||||||
find_library(Carbon_LIBRARY Carbon)
|
find_library(Carbon_LIBRARY Carbon)
|
||||||
find_library(AppKit_LIBRARY AppKit)
|
find_library(AppKit_LIBRARY AppKit)
|
||||||
target_link_libraries(qbt_base PRIVATE ${Carbon_LIBRARY} ${IOKit_LIBRARY} ${AppKit_LIBRARY})
|
target_link_libraries(qbt_base PRIVATE ${Carbon_LIBRARY} ${IOKit_LIBRARY} ${AppKit_LIBRARY})
|
||||||
endif (APPLE)
|
endif()
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <shlobj.h>
|
#include <shlobj.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
|
@ -47,12 +48,6 @@
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
#include <QVariant>
|
#include <QVariant>
|
||||||
|
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
#include <QApplication>
|
|
||||||
#else
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
#ifdef Q_OS_WIN
|
||||||
#include <QRegularExpression>
|
#include <QRegularExpression>
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,14 +1,6 @@
|
||||||
set(CMAKE_AUTORCC True)
|
set(CMAKE_AUTORCC True)
|
||||||
set(CMAKE_AUTOUIC True)
|
set(CMAKE_AUTOUIC True)
|
||||||
|
|
||||||
add_library(qbt_gui_headers INTERFACE)
|
|
||||||
target_include_directories(qbt_gui_headers INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
|
|
||||||
add_subdirectory(properties)
|
|
||||||
add_subdirectory(powermanagement)
|
|
||||||
add_subdirectory(rss)
|
|
||||||
add_subdirectory(search)
|
|
||||||
|
|
||||||
add_library(qbt_gui STATIC
|
add_library(qbt_gui STATIC
|
||||||
# headers
|
# headers
|
||||||
aboutdialog.h
|
aboutdialog.h
|
||||||
|
@ -28,9 +20,6 @@ fspathedit.h
|
||||||
hidabletabwidget.h
|
hidabletabwidget.h
|
||||||
ipsubnetwhitelistoptionsdialog.h
|
ipsubnetwhitelistoptionsdialog.h
|
||||||
lineedit.h
|
lineedit.h
|
||||||
log/logfiltermodel.h
|
|
||||||
log/loglistview.h
|
|
||||||
log/logmodel.h
|
|
||||||
mainwindow.h
|
mainwindow.h
|
||||||
optionsdialog.h
|
optionsdialog.h
|
||||||
previewlistdelegate.h
|
previewlistdelegate.h
|
||||||
|
@ -83,9 +72,6 @@ fspathedit.cpp
|
||||||
hidabletabwidget.cpp
|
hidabletabwidget.cpp
|
||||||
ipsubnetwhitelistoptionsdialog.cpp
|
ipsubnetwhitelistoptionsdialog.cpp
|
||||||
lineedit.cpp
|
lineedit.cpp
|
||||||
log/logfiltermodel.cpp
|
|
||||||
log/loglistview.cpp
|
|
||||||
log/logmodel.cpp
|
|
||||||
mainwindow.cpp
|
mainwindow.cpp
|
||||||
optionsdialog.cpp
|
optionsdialog.cpp
|
||||||
previewlistdelegate.cpp
|
previewlistdelegate.cpp
|
||||||
|
@ -140,37 +126,40 @@ torrentcategorydialog.ui
|
||||||
torrentcreatordialog.ui
|
torrentcreatordialog.ui
|
||||||
trackerentriesdialog.ui
|
trackerentriesdialog.ui
|
||||||
updownratiodialog.ui
|
updownratiodialog.ui
|
||||||
|
|
||||||
|
# resources
|
||||||
|
about.qrc
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(qbt_gui
|
if (WIN32 OR APPLE)
|
||||||
PRIVATE
|
target_sources(qbt_gui PRIVATE programupdater.h programupdater.cpp)
|
||||||
qbt_powermanagement qbt_rss qbt_properties qbt_searchengine
|
endif()
|
||||||
qbt_base
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(qbt_gui
|
add_subdirectory(log)
|
||||||
PRIVATE ../app
|
add_subdirectory(properties)
|
||||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
|
add_subdirectory(powermanagement)
|
||||||
)
|
add_subdirectory(rss)
|
||||||
|
add_subdirectory(search)
|
||||||
|
|
||||||
if (UNIX AND Qt5DBus_FOUND)
|
if (UNIX AND Qt5DBus_FOUND)
|
||||||
add_subdirectory(qtnotify)
|
add_subdirectory(qtnotify)
|
||||||
target_link_libraries(qbt_gui PRIVATE qbt_qtnotify)
|
target_link_libraries(qbt_gui PRIVATE Qt5::DBus)
|
||||||
endif (UNIX AND Qt5DBus_FOUND)
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(qbt_gui
|
||||||
|
PRIVATE
|
||||||
|
qbt_base
|
||||||
|
PUBLIC
|
||||||
|
Qt5::Gui Qt5::Widgets
|
||||||
|
)
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
target_sources(qbt_gui PRIVATE macutilities.h macutilities.mm)
|
target_sources(qbt_gui PRIVATE macutilities.h macutilities.mm)
|
||||||
find_package(Qt5 ${requiredQtVersion} REQUIRED COMPONENTS MacExtras)
|
find_package(Qt5 ${requiredQtVersion} REQUIRED COMPONENTS MacExtras)
|
||||||
target_link_libraries(qbt_gui PRIVATE Qt5::MacExtras objc)
|
target_link_libraries(qbt_gui PRIVATE Qt5::MacExtras objc)
|
||||||
endif (APPLE)
|
endif()
|
||||||
|
|
||||||
if (WIN32 OR APPLE)
|
|
||||||
target_sources(qbt_gui PRIVATE programupdater.h programupdater.cpp)
|
|
||||||
endif (WIN32 OR APPLE)
|
|
||||||
|
|
||||||
qbt_target_sources(qBittorrent PRIVATE about.qrc)
|
|
||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
find_package(Qt5 ${requiredQtVersion} REQUIRED COMPONENTS WinExtras)
|
find_package(Qt5 ${requiredQtVersion} REQUIRED COMPONENTS WinExtras)
|
||||||
target_link_libraries(qbt_gui PRIVATE Qt5::WinExtras)
|
target_link_libraries(qbt_gui PRIVATE Qt5::WinExtras PowrProf)
|
||||||
endif(WIN32)
|
endif()
|
||||||
|
|
11
src/gui/log/CMakeLists.txt
Normal file
11
src/gui/log/CMakeLists.txt
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
target_sources(qbt_gui PRIVATE
|
||||||
|
# headers
|
||||||
|
logfiltermodel.h
|
||||||
|
loglistview.h
|
||||||
|
logmodel.h
|
||||||
|
|
||||||
|
#sources
|
||||||
|
logfiltermodel.cpp
|
||||||
|
loglistview.cpp
|
||||||
|
logmodel.cpp
|
||||||
|
)
|
|
@ -1,23 +1,8 @@
|
||||||
add_library(qbt_powermanagement STATIC
|
target_sources(qbt_gui PRIVATE powermanagement.h powermanagement.cpp)
|
||||||
# headers
|
|
||||||
powermanagement.h
|
|
||||||
|
|
||||||
# sources
|
|
||||||
powermanagement.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(qbt_powermanagement PUBLIC Qt5::Core)
|
|
||||||
set_target_properties(qbt_powermanagement PROPERTIES AUTOUIC False AUTORCC False)
|
|
||||||
target_include_directories(qbt_powermanagement PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
|
|
||||||
if (UNIX AND Qt5DBus_FOUND)
|
if (UNIX AND Qt5DBus_FOUND)
|
||||||
find_package(X11)
|
find_package(X11)
|
||||||
if (X11_FOUND)
|
if (X11_FOUND)
|
||||||
target_sources(qbt_powermanagement PRIVATE powermanagement_x11.h powermanagement_x11.cpp)
|
target_sources(qbt_gui PRIVATE powermanagement_x11.h powermanagement_x11.cpp)
|
||||||
target_link_libraries(qbt_powermanagement PRIVATE Qt5::DBus)
|
endif()
|
||||||
endif (X11_FOUND)
|
endif()
|
||||||
endif (UNIX AND Qt5DBus_FOUND)
|
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
target_link_libraries(qbt_powermanagement PRIVATE PowrProf)
|
|
||||||
endif (WIN32)
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
add_library(qbt_properties STATIC
|
target_sources(qbt_gui PRIVATE
|
||||||
# headers
|
# headers
|
||||||
downloadedpiecesbar.h
|
downloadedpiecesbar.h
|
||||||
peerlistdelegate.h
|
peerlistdelegate.h
|
||||||
|
@ -36,17 +36,3 @@ peersadditiondialog.ui
|
||||||
propertieswidget.ui
|
propertieswidget.ui
|
||||||
trackersadditiondialog.ui
|
trackersadditiondialog.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(qbt_properties
|
|
||||||
PRIVATE
|
|
||||||
qbt_gui_headers
|
|
||||||
PUBLIC
|
|
||||||
qbt_base Qt5::Widgets
|
|
||||||
)
|
|
||||||
|
|
||||||
target_include_directories(qbt_properties
|
|
||||||
PRIVATE
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}
|
|
||||||
PUBLIC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,11 +1 @@
|
||||||
add_library(qbt_qtnotify STATIC
|
target_sources(qbt_gui PRIVATE notifications.h notifications.cpp)
|
||||||
# headers
|
|
||||||
notifications.h
|
|
||||||
|
|
||||||
# sources
|
|
||||||
notifications.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(qbt_qtnotify PROPERTIES AUTOUIC False AUTORCC False)
|
|
||||||
target_link_libraries(qbt_qtnotify PUBLIC Qt5::DBus)
|
|
||||||
target_include_directories(qbt_qtnotify PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
add_library(qbt_rss STATIC
|
target_sources(qbt_gui PRIVATE
|
||||||
# headers
|
# headers
|
||||||
articlelistwidget.h
|
articlelistwidget.h
|
||||||
automatedrssdownloader.h
|
automatedrssdownloader.h
|
||||||
|
@ -17,11 +17,3 @@ rsswidget.cpp
|
||||||
automatedrssdownloader.ui
|
automatedrssdownloader.ui
|
||||||
rsswidget.ui
|
rsswidget.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(qbt_rss PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
target_link_libraries(qbt_rss
|
|
||||||
PRIVATE
|
|
||||||
qbt_gui_headers
|
|
||||||
PUBLIC
|
|
||||||
qbt_base Qt5::Gui Qt5::Widgets Qt5::Network
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
add_library(qbt_searchengine STATIC
|
target_sources(qbt_gui PRIVATE
|
||||||
# headers
|
# headers
|
||||||
pluginselectdialog.h
|
pluginselectdialog.h
|
||||||
pluginsourcedialog.h
|
pluginsourcedialog.h
|
||||||
|
@ -20,14 +20,3 @@ pluginselectdialog.ui
|
||||||
pluginsourcedialog.ui
|
pluginsourcedialog.ui
|
||||||
searchwidget.ui
|
searchwidget.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
set(QBT_SEARCHENGINE_RESOURCES
|
|
||||||
# search.qrc
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(qbt_searchengine
|
|
||||||
PUBLIC
|
|
||||||
qbt_base
|
|
||||||
PRIVATE
|
|
||||||
qbt_gui_headers
|
|
||||||
)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue