SUMMARY = "Access, organize and share your photos on GNOME"
SECTION = "x11/gnome"
LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"

DEPENDS = " \
    cairo \
    glib-2.0-native \
    gdk-pixbuf-native \
    librsvg-native \
    gtk+3 \
    babl \
    dbus \
    gegl \
    geocode-glib \
    gexiv2 \
    gnome-online-accounts \
    gsettings-desktop-schemas \
    libdazzle \
    tracker \
    libhandy \
    libportal \
"

RDEPENDS:${PN} = "tracker-miners"

GNOMEBASEBUILDCLASS = "meson"

inherit gnomebase gettext gnome-help features_check

def gnome_verdir(v):
    return oe.utils.trim_version(v, 1)

REQUIRED_DISTRO_FEATURES = "x11 opengl"

PACKAGECONFIG ?= ""
PACKAGECONFIG[doc] = "-Dmanuals=true,-Dmanuals=false,libxslt-native docbook-xsl-stylesheets-native"

SRC_URI[archive.sha256sum] = "c7ac7458d533f29d955011c74b76224d79ea31bcc12e9d6d0ce7b6c3704d08e1"

do_install:append() {
    # make gnome-photos available on all desktops
    sed -i 's:OnlyShowIn=:#OnlyShowIn=:g' ${D}${datadir}/applications/org.gnome.Photos.desktop
}

FILES:${PN} += " \
    ${datadir}/dbus-1 \
    ${datadir}/metainfo \
    ${datadir}/gnome-shell \
"

do_compile:append() {
    # glib-mkenums is embedding full paths into this file. There's no
    # option to it to use a sysroot style variable. So to avoid QA
    # errors, we sed WORKDIR out and make its includes relative
    sed -i "s|${B}||" src/photos-enums.h
    sed -i "s|${B}||" src/photos-enums.c
    sed -i "s|${B}||" src/photos-enums-gegl.c
    sed -i "s|${B}||" src/photos-enums-gegl.h
}
