Skip to content
  • Allison Karlitskaya's avatar
    GResources: add support for resource overlays · 55ab3af0
    Allison Karlitskaya authored
    When debugging a program or testing a change to an installed version, it
    is often useful to be able to replace resources in the program or a
    library, without recompiling.
    
    To support this, for debugging and hacking purposes, it's now possible
    to define a G_RESOURCE_OVERLAYS environment variable as a
    colon-separated list of substitutions to perform when looking up
    GResources.
    
    A substitution has the form
    
      "/org/gtk/libgtk=/home/desrt/gtk-overlay"
    
    The part before the '=' is the resource subpath for which the overlay
    applies.  The part after is a filesystem path which contains files and
    subdirectories as you would like to be loaded as resources with the
    equivalent names.
    
    In the example above, if an application tried to load a resource with
    the resource path '/org/gtk/libgtk/ui/gtkdialog.ui' then GResource would
    check the filesystem path '/home/desrt/gtk-overlay/ui/gtkdialog.ui'.  If
    a file was found there, it would be used instead.
    
    Substitutions must start with a slash, and must not have a trailing
    slash before the '='.  It is possible to overlay the location of a
    single resource with an individual file.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765668
    55ab3af0