summaryrefslogtreecommitdiff
path: root/grc/scripts/freedesktop/CMakeLists.txt
blob: 70b15bcd819ce73833804f2d58b58cf0b1ec4f6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Copyright 2011-2012 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
# SPDX-License-Identifier: GPL-3.0-or-later
#

########################################################################
set(grc_freedesktop_path ${GR_PKG_DATA_DIR}/grc/freedesktop)

install(FILES
    grc-icon-256.png
    grc-icon-128.png
    grc-icon-64.png
    grc-icon-48.png
    grc-icon-32.png
    grc-icon-24.png
    grc-icon-16.png
    gnuradio-grc.xml
    gnuradio-grc.desktop
    DESTINATION ${grc_freedesktop_path}
)

# Install desktop
install(FILES gnuradio-grc.desktop DESTINATION share/applications)

# Install mime
install(FILES gnuradio-grc.xml DESTINATION share/mime/packages)

# Install appstream / metainfo file
install(FILES org.gnuradio.grc.metainfo.xml DESTINATION share/metainfo)

# Install icons
install(FILES grc-icon-256.png DESTINATION share/icons/hicolor/256x256/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-128.png DESTINATION share/icons/hicolor/128x128/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-64.png DESTINATION share/icons/hicolor/64x64/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-48.png DESTINATION share/icons/hicolor/48x48/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-32.png DESTINATION share/icons/hicolor/32x32/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-24.png DESTINATION share/icons/hicolor/24x24/apps RENAME gnuradio-grc.png)
install(FILES grc-icon-16.png DESTINATION share/icons/hicolor/16x16/apps RENAME gnuradio-grc.png)

find_program(HAVE_XDG_UTILS xdg-desktop-menu)

if(UNIX AND HAVE_XDG_UTILS)
    set(SRCDIR ${CMAKE_INSTALL_PREFIX}/${grc_freedesktop_path})
    configure_file(
        ${CMAKE_CURRENT_SOURCE_DIR}/grc_setup_freedesktop.in
        ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop
    @ONLY)
    install(
        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/grc_setup_freedesktop
        DESTINATION ${GR_PKG_LIBEXEC_DIR}
        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
    )
    if(ENABLE_POSTINSTALL)
        install (
            CODE "execute_process(COMMAND ${CMAKE_INSTALL_PREFIX}/${GR_PKG_LIBEXEC_DIR}/grc_setup_freedesktop install)"
    )
    endif(ENABLE_POSTINSTALL)
endif(UNIX AND HAVE_XDG_UTILS)