CMake: Enable/disable GUI application via option

This commit is contained in:
Vladimir Golovnev (Glassez)
2020-04-30 16:37:07 +03:00
parent fb42434946
commit ad0ee0cd36
4 changed files with 9 additions and 13 deletions

View File

@@ -12,19 +12,13 @@ if (Boost_VERSION VERSION_LESS 106000)
endif()
find_package(Qt5 ${requiredQtVersion} REQUIRED COMPONENTS Core Network Xml LinguistTools)
find_package(Qt5Widgets ${requiredQtVersion})
if (Qt5Widgets_FOUND)
if (NOT DISABLE_GUI)
find_package(Qt5Widgets ${requiredQtVersion} REQUIRED)
find_package(Qt5DBus ${requiredQtVersion})
else()
add_definitions(-DDISABLE_GUI)
endif()
set_package_properties(Qt5Widgets PROPERTIES
DESCRIPTION "Set of components for creating classic desktop-style UIs for the Qt5 framework"
PURPOSE "Enables qBittorrent GUI. Unneeded for headless configuration."
TYPE OPTIONAL
)
set_package_properties(Qt5DBus PROPERTIES
DESCRIPTION "Qt5 module for inter-process communication over the D-Bus protocol"
PURPOSE "Enables communication with other system components (e.g. notification service) via D-Bus. "
@@ -60,7 +54,7 @@ configure_file(config.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_subdirectory(app)
add_subdirectory(base)
if (Qt5Widgets_FOUND)
if (NOT DISABLE_GUI)
add_subdirectory(gui)
endif ()

View File

@@ -63,7 +63,7 @@ if (STACKTRACE)
target_sources(qBittorrent PRIVATE stacktrace.h)
else()
target_sources(qBittorrent PRIVATE stacktrace_win.h)
if (Qt5Widgets_FOUND)
if (NOT DISABLE_GUI)
target_sources(qBittorrent PRIVATE stacktracedialog.cpp stacktracedialog.h)
endif()
@@ -85,7 +85,7 @@ if (STACKTRACE)
endif()
endif()
if (Qt5Widgets_FOUND)
if (NOT DISABLE_GUI)
target_link_libraries(qBittorrent PRIVATE qbt_gui)
set_target_properties(qBittorrent
PROPERTIES
@@ -156,7 +156,7 @@ install(TARGETS qBittorrent
COMPONENT runtime
)
if (Qt5Widgets_FOUND AND APPLE)
if (NOT DISABLE_GUI AND APPLE)
find_package(Qt5Svg REQUIRED)
include(bundle)
endif()