mirror of
https://github.com/transmission/transmission
synced 2024-12-30 19:46:56 +00:00
01ffcd5dcf
The -symbolic icon variant (if available) is used in the GNOME top bar, and when the high contrast theme is in use. This icon was created by Jakub Steiner, and comes from the gnome-icons repository: https://github.com/gnome-design-team/gnome-icons/blob/master/apps-symbolic/Adwaita/scalable/apps/transmission-symbolic.svg https://bugzilla.redhat.com/show_bug.cgi?id=1221292 There is some confusion over whether symbolic app icons should be installed to icons/hicolor/scalable/apps (alongside the regular scalable icon) or to icons/hicolor/symbolic/apps. On the one hand, https://wiki.gnome.org/Initiatives/GnomeGoals/HighContrastAppIcons has this to say: > […] obtain a suitable symbolic style icon […] and install it to the > hicolor prefix, the same way you would for the full color variant. > > cp myapp-symbolic.svg /usr/share/icons/hicolor/scalable/apps/myapp-symbolic.svg On the other hand, the Fedora package at https://src.fedoraproject.org/rpms/transmission/blob/master/f/transmission.spec ships this icon in icons/hicolor/symbolic/apps: > # Install the symbolic icon > mkdir -p %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps > cp %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/symbolic/apps/transmission-symbolic.svg Anecdotally, icons in scalable/ have minimum size 64×64 on openSUSE, so symbolic/ is the safer location (given the GNOME top bar uses 32×32 icons). This has the advantage of matching the location used in the distribution which already ships this file. https://github.com/transmission/transmission/issues/414
205 lines
5.7 KiB
CMake
205 lines
5.7 KiB
CMake
project(trgtk)
|
|
|
|
if(WITH_LIBAPPINDICATOR)
|
|
add_definitions(-DHAVE_LIBAPPINDICATOR)
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND
|
|
${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_resources
|
|
OUTPUT_VARIABLE
|
|
GLIB_COMPILE_RESOURCES_EXECUTABLE
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
)
|
|
|
|
if(NOT GLIB_COMPILE_RESOURCES_EXECUTABLE)
|
|
message(SEND_ERROR "Unable to find glib-compile-resources executable")
|
|
endif()
|
|
|
|
add_custom_command(
|
|
OUTPUT
|
|
${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c
|
|
${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.h
|
|
COMMAND
|
|
${GLIB_COMPILE_RESOURCES_EXECUTABLE}
|
|
--target=${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c
|
|
--sourcedir=${CMAKE_CURRENT_SOURCE_DIR}
|
|
--generate-source
|
|
--c-name transmission
|
|
transmission.gresource.xml
|
|
COMMAND
|
|
${GLIB_COMPILE_RESOURCES_EXECUTABLE}
|
|
--target=${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.h
|
|
--sourcedir=${CMAKE_CURRENT_SOURCE_DIR}
|
|
--generate-header
|
|
--c-name transmission
|
|
transmission.gresource.xml
|
|
DEPENDS
|
|
icons/hicolor_apps_24x24_transmission.png
|
|
icons/hicolor_apps_48x48_transmission.png
|
|
icons/lock.png
|
|
icons/ratio.png
|
|
icons/turtle-blue.png
|
|
icons/turtle-grey.png
|
|
icons/utilities.png
|
|
transmission.gresource.xml
|
|
transmission-ui.xml
|
|
WORKING_DIRECTORY
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
|
|
if(ENABLE_NLS)
|
|
find_program(INTLTOOL_MERGE_EXECUTABLE intltool-merge REQUIRED)
|
|
|
|
set(${PROJECT_NAME}_DESKTOP_FILE "${PROJECT_BINARY_DIR}/${TR_NAME}-gtk.desktop")
|
|
add_custom_command(
|
|
OUTPUT ${${PROJECT_NAME}_DESKTOP_FILE}
|
|
COMMAND ${INTLTOOL_MERGE_EXECUTABLE} --desktop-style --utf8 ${CMAKE_SOURCE_DIR}/po ${PROJECT_SOURCE_DIR}/transmission-gtk.desktop.in ${${PROJECT_NAME}_DESKTOP_FILE}
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/transmission-gtk.desktop.in
|
|
VERBATIM
|
|
)
|
|
|
|
set(${PROJECT_NAME}_APPDATA_FILE "${PROJECT_BINARY_DIR}/${TR_NAME}-gtk.appdata.xml")
|
|
add_custom_command(
|
|
OUTPUT ${${PROJECT_NAME}_APPDATA_FILE}
|
|
COMMAND ${INTLTOOL_MERGE_EXECUTABLE} --xml-style --utf8 ${CMAKE_SOURCE_DIR}/po ${PROJECT_SOURCE_DIR}/transmission-gtk.appdata.xml.in ${${PROJECT_NAME}_APPDATA_FILE}
|
|
DEPENDS ${PROJECT_SOURCE_DIR}/transmission-gtk.appdata.xml.in
|
|
VERBATIM
|
|
)
|
|
endif()
|
|
|
|
set(${PROJECT_NAME}_SOURCES
|
|
actions.c
|
|
conf.c
|
|
details.c
|
|
dialogs.c
|
|
favicon.c
|
|
file-list.c
|
|
filter.c
|
|
hig.c
|
|
icons.c
|
|
main.c
|
|
makemeta-ui.c
|
|
msgwin.c
|
|
notify.c
|
|
open-dialog.c
|
|
relocate.c
|
|
stats.c
|
|
torrent-cell-renderer.c
|
|
tr-core.c
|
|
tr-icon.c
|
|
tr-prefs.c
|
|
tr-window.c
|
|
util.c
|
|
${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c
|
|
)
|
|
|
|
set(${PROJECT_NAME}_HEADERS
|
|
actions.h
|
|
conf.h
|
|
details.h
|
|
dialogs.h
|
|
favicon.h
|
|
file-list.h
|
|
filter.h
|
|
hig.h
|
|
icons.h
|
|
makemeta-ui.h
|
|
msgwin.h
|
|
notify.h
|
|
open-dialog.h
|
|
relocate.h
|
|
stats.h
|
|
torrent-cell-renderer.h
|
|
tr-core.h
|
|
tr-icon.h
|
|
tr-prefs.h
|
|
tr-window.h
|
|
util.h
|
|
${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.h
|
|
)
|
|
|
|
include_directories(
|
|
${CMAKE_SOURCE_DIR}
|
|
${PROJECT_BINARY_DIR}
|
|
${LIBAPPINDICATOR_INCLUDE_DIRS}
|
|
${GTK_INCLUDE_DIRS}
|
|
${CURL_INCLUDE_DIRS}
|
|
${EVENT2_INCLUDE_DIRS}
|
|
)
|
|
|
|
link_directories(
|
|
${GTK_LIBRARY_DIRS}
|
|
)
|
|
|
|
add_definitions(
|
|
"-DTRANSMISSIONLOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\""
|
|
"-DGETTEXT_PACKAGE=\"${TR_NAME}-gtk\""
|
|
-DG_DISABLE_DEPRECATED
|
|
-DGDK_PIXBUF_DISABLE_DEPRECATED
|
|
-DGDK_DISABLE_DEPRECATED
|
|
# FIXME: migrate from GtkUIManager to GtkBuilder in 2.90
|
|
# -DGTK_DISABLE_DEPRECATED
|
|
-DPANGO_DISABLE_DEPRECATED
|
|
# FIXME: these break libnotify's headers
|
|
# -DG_DISABLE_SINGLE_INCLUDES
|
|
# -DGTK_DISABLE_SINGLE_INCLUDES
|
|
${GTK_CFLAGS_OTHER}
|
|
)
|
|
|
|
tr_win32_app_info(${PROJECT_NAME}_WIN32_RC_FILE
|
|
"Transmission GTK+ Client"
|
|
"${TR_NAME}-gtk"
|
|
"${TR_NAME}-gtk.exe"
|
|
"${TR_NAME}.ico")
|
|
|
|
add_executable(${TR_NAME}-gtk WIN32
|
|
${${PROJECT_NAME}_SOURCES}
|
|
${${PROJECT_NAME}_HEADERS}
|
|
${${PROJECT_NAME}_DESKTOP_FILE}
|
|
${${PROJECT_NAME}_APPDATA_FILE}
|
|
${${PROJECT_NAME}_WIN32_RC_FILE}
|
|
)
|
|
|
|
target_link_libraries(${TR_NAME}-gtk
|
|
${TR_NAME}
|
|
${LIBAPPINDICATOR_LIBRARIES}
|
|
${GTK_LIBRARIES}
|
|
${CURL_LIBRARIES}
|
|
${EVENT2_LIBRARIES}
|
|
)
|
|
|
|
if(MSVC)
|
|
tr_append_target_property(${TR_NAME}-gtk LINK_FLAGS "/ENTRY:mainCRTStartup")
|
|
endif()
|
|
|
|
install(TARGETS ${TR_NAME}-gtk DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
|
|
set(${PROJECT_NAME}_PUBLIC_ICONS
|
|
hicolor_apps_16x16_transmission.png
|
|
hicolor_apps_22x22_transmission.png
|
|
hicolor_apps_24x24_transmission.png
|
|
hicolor_apps_32x32_transmission.png
|
|
hicolor_apps_48x48_transmission.png
|
|
hicolor_apps_256x256_transmission.png
|
|
hicolor_apps_scalable_transmission.svg
|
|
hicolor_apps_symbolic_transmission-symbolic.svg
|
|
)
|
|
|
|
set(ICON_NAME_REGEX "^([^_]+)_([^_]+)_([^_]+)_(.+)$")
|
|
foreach(ICON ${${PROJECT_NAME}_PUBLIC_ICONS})
|
|
string(REGEX REPLACE ${ICON_NAME_REGEX} "\\1/\\3/\\2" ICON_DIR ${ICON})
|
|
string(REGEX REPLACE ${ICON_NAME_REGEX} "\\4" ICON_NAME ${ICON})
|
|
install(FILES icons/${ICON} DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/${ICON_DIR}/ RENAME ${ICON_NAME})
|
|
endforeach()
|
|
|
|
if(INSTALL_DOC)
|
|
install(FILES ${TR_NAME}-gtk.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
|
endif()
|
|
|
|
if(ENABLE_NLS)
|
|
install(FILES ${${PROJECT_NAME}_DESKTOP_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
|
install(FILES ${${PROJECT_NAME}_APPDATA_FILE} DESTINATION ${CMAKE_INSTALL_DATADIR}/appdata)
|
|
else()
|
|
install(FILES transmission-gtk.desktop.in DESTINATION ${CMAKE_INSTALL_DATADIR}/applications RENAME ${TR_NAME}-gtk.desktop)
|
|
endif()
|