mirror of
https://github.com/transmission/transmission
synced 2025-02-22 22:20:39 +00:00
Prefer ayatana-appindicator over appindicator, if present (#4001)
This commit is contained in:
parent
5564d9eb46
commit
da27c3d18d
4 changed files with 54 additions and 18 deletions
|
@ -32,7 +32,6 @@ set(EVENT2_MINIMUM 2.1.0)
|
|||
set(GIOMM_MINIMUM 2.26.0)
|
||||
set(GLIBMM_MINIMUM 2.60.0)
|
||||
set(GTKMM_MINIMUM 3.24.0)
|
||||
set(LIBAPPINDICATOR_MINIMUM 0.4.90)
|
||||
set(OPENSSL_MINIMUM 0.9.7)
|
||||
set(POLARSSL_MINIMUM 1.3)
|
||||
set(PSL_MINIMUM 0.21.1)
|
||||
|
@ -65,7 +64,7 @@ tr_list_option(USE_QT_VERSION "Use specific Qt version" AUTO 5 6)
|
|||
tr_list_option(WITH_CRYPTO "Use specified crypto library" AUTO ccrypto cyassl mbedtls openssl polarssl wolfssl)
|
||||
tr_auto_option(WITH_INOTIFY "Enable inotify support (on systems that support it)" AUTO)
|
||||
tr_auto_option(WITH_KQUEUE "Enable kqueue support (on systems that support it)" AUTO)
|
||||
tr_auto_option(WITH_LIBAPPINDICATOR "Use libappindicator in GTK+ client" AUTO)
|
||||
tr_auto_option(WITH_APPINDICATOR "Use appindicator for system tray icon in GTK client (GTK+ 3 only)" AUTO)
|
||||
tr_auto_option(WITH_SYSTEMD "Add support for systemd startup notification (on systems that support it)" AUTO)
|
||||
|
||||
set(TR_NAME ${PROJECT_NAME})
|
||||
|
@ -291,15 +290,15 @@ if(ENABLE_GTK)
|
|||
|
||||
tr_fixup_auto_option(ENABLE_GTK GTK_FOUND GTK_IS_REQUIRED)
|
||||
|
||||
if(ENABLE_GTK AND WITH_LIBAPPINDICATOR AND GTK_VERSION EQUAL 3)
|
||||
tr_get_required_flag(WITH_LIBAPPINDICATOR LIBAPPINDICATOR_IS_REQUIRED)
|
||||
pkg_check_modules(LIBAPPINDICATOR appindicator3-0.1>=${LIBAPPINDICATOR_MINIMUM})
|
||||
tr_fixup_auto_option(WITH_LIBAPPINDICATOR LIBAPPINDICATOR_FOUND LIBAPPINDICATOR_IS_REQUIRED)
|
||||
if(ENABLE_GTK AND WITH_APPINDICATOR AND GTK_VERSION EQUAL 3)
|
||||
tr_get_required_flag(WITH_APPINDICATOR APPINDICATOR_IS_REQUIRED)
|
||||
find_package(APPINDICATOR ${APPINDICATOR_IS_REQUIRED})
|
||||
tr_fixup_auto_option(WITH_APPINDICATOR APPINDICATOR_FOUND APPINDICATOR_IS_REQUIRED)
|
||||
else()
|
||||
set(WITH_LIBAPPINDICATOR OFF)
|
||||
set(WITH_APPINDICATOR OFF)
|
||||
endif()
|
||||
else()
|
||||
set(WITH_LIBAPPINDICATOR OFF)
|
||||
set(WITH_APPINDICATOR OFF)
|
||||
endif()
|
||||
|
||||
if(ENABLE_QT)
|
||||
|
|
30
cmake/FindAPPINDICATOR.cmake
Normal file
30
cmake/FindAPPINDICATOR.cmake
Normal file
|
@ -0,0 +1,30 @@
|
|||
find_package(PkgConfig QUIET)
|
||||
|
||||
pkg_check_modules(PC_AYATANA_APPINDICATOR QUIET ayatana-appindicator3-0.1)
|
||||
find_path(AYATANA_APPINDICATOR_INCLUDE_DIR NAMES libayatana-appindicator/app-indicator.h HINTS ${PC_AYATANA_APPINDICATOR_INCLUDE_DIRS})
|
||||
find_library(AYATANA_APPINDICATOR_LIBRARY NAMES ayatana-appindicator3 ayatana-appindicator HINTS ${PC_AYATANA_APPINDICATOR_LIBRARY_DIRS})
|
||||
|
||||
if(AYATANA_APPINDICATOR_INCLUDE_DIR AND AYATANA_APPINDICATOR_LIBRARY)
|
||||
set(APPINDICATOR_INCLUDE_DIR ${AYATANA_APPINDICATOR_INCLUDE_DIR})
|
||||
set(APPINDICATOR_LIBRARY ${AYATANA_APPINDICATOR_LIBRARY})
|
||||
set(APPINDICATOR_IS_AYATANA ON)
|
||||
else()
|
||||
pkg_check_modules(PC_APPINDICATOR QUIET appindicator3-0.1)
|
||||
find_path(APPINDICATOR_INCLUDE_DIR NAMES libappindicator/app-indicator.h HINTS ${PC_APPINDICATOR_INCLUDE_DIRS})
|
||||
find_library(APPINDICATOR_LIBRARY NAMES appindicator3 appindicator HINTS ${PC_APPINDICATOR_LIBRARY_DIRS})
|
||||
set(APPINDICATOR_IS_AYATANA OFF)
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package_handle_standard_args(APPINDICATOR
|
||||
REQUIRED_VARS
|
||||
APPINDICATOR_LIBRARY
|
||||
APPINDICATOR_INCLUDE_DIR
|
||||
)
|
||||
|
||||
mark_as_advanced(AYATANA_APPINDICATOR_INCLUDE_DIR AYATANA_APPINDICATOR_LIBRARY)
|
||||
mark_as_advanced(APPINDICATOR_INCLUDE_DIR APPINDICATOR_LIBRARY)
|
||||
|
||||
set(APPINDICATOR_INCLUDE_DIRS ${APPINDICATOR_INCLUDE_DIR})
|
||||
set(APPINDICATOR_LIBRARIES ${APPINDICATOR_LIBRARY})
|
|
@ -2,10 +2,6 @@ project(trgtk)
|
|||
|
||||
add_compile_options(${C_WARNING_FLAGS})
|
||||
|
||||
if(WITH_LIBAPPINDICATOR)
|
||||
add_definitions(-DHAVE_LIBAPPINDICATOR)
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND
|
||||
${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_resources
|
||||
|
@ -170,8 +166,8 @@ include_directories(
|
|||
${EVENT2_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
if(WITH_LIBAPPINDICATOR)
|
||||
include_directories(SYSTEM ${LIBAPPINDICATOR_INCLUDE_DIRS})
|
||||
if(WITH_APPINDICATOR)
|
||||
include_directories(SYSTEM ${APPINDICATOR_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
link_directories(
|
||||
|
@ -198,6 +194,13 @@ add_definitions(
|
|||
${GTK${GTK_VERSION}_CFLAGS_OTHER}
|
||||
)
|
||||
|
||||
if(WITH_APPINDICATOR)
|
||||
set_property(SOURCE SystemTrayIcon.cc APPEND PROPERTY COMPILE_DEFINITIONS HAVE_APPINDICATOR)
|
||||
if(APPINDICATOR_IS_AYATANA)
|
||||
set_property(SOURCE SystemTrayIcon.cc APPEND PROPERTY COMPILE_DEFINITIONS APPINDICATOR_IS_AYATANA)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE
|
||||
"Transmission GTK+ Client"
|
||||
"${TR_NAME}-gtk"
|
||||
|
@ -219,8 +222,8 @@ target_link_libraries(${TR_NAME}-gtk
|
|||
${EVENT2_LIBRARIES}
|
||||
)
|
||||
|
||||
if(WITH_LIBAPPINDICATOR)
|
||||
target_link_libraries(${TR_NAME}-gtk ${LIBAPPINDICATOR_LIBRARIES})
|
||||
if(WITH_APPINDICATOR)
|
||||
target_link_libraries(${TR_NAME}-gtk ${APPINDICATOR_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
|
|
|
@ -13,9 +13,13 @@
|
|||
#include <glibmm.h>
|
||||
#include <glibmm/i18n.h>
|
||||
|
||||
#ifdef HAVE_LIBAPPINDICATOR
|
||||
#ifdef HAVE_APPINDICATOR
|
||||
#ifdef APPINDICATOR_IS_AYATANA
|
||||
#include <libayatana-appindicator/app-indicator.h>
|
||||
#else
|
||||
#include <libappindicator/app-indicator.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <libtransmission/transmission.h>
|
||||
#include <libtransmission/utils.h>
|
||||
|
@ -29,7 +33,7 @@
|
|||
#define TR_SYS_TRAY_IMPL_APPINDICATOR 1
|
||||
#define TR_SYS_TRAY_IMPL_STATUS_ICON 2
|
||||
|
||||
#ifdef HAVE_LIBAPPINDICATOR
|
||||
#ifdef HAVE_APPINDICATOR
|
||||
#define TR_SYS_TRAY_IMPL TR_SYS_TRAY_IMPL_APPINDICATOR
|
||||
#elif !GTKMM_CHECK_VERSION(4, 0, 0)
|
||||
#define TR_SYS_TRAY_IMPL TR_SYS_TRAY_IMPL_STATUS_ICON
|
||||
|
|
Loading…
Reference in a new issue