dconf is split into a large number of small modules.  This is required
because of the client/server architecture as well as the wide variety of
situations that dconf is used in on the client side.

subprojects/gvdb/:

  This code implements the GVDB file format used for the on-disk
  database.  GVDB is shared with a number of other users and lives in a
  separate 'gvdb' module on git.gnome.org.

  To update, change the revision in gvdb.wrap and update the git submodule.

  The code is split into a reader and a writer (builder).

  This directory produces two libraries: libgvdb.a and libgvdb-shared.a.
  They are exactly the same, except that libgvdb-shared.a was compiled
  with -fPIC.

common/:

  Sources in this directory are used in both the dconf-service and
  client-side library implementations.

  This directory produces two libraries: libdconf-common.a and
  libdconf-common-shared.a.  They are exactly the same, except that
  libdconf-common-shared.a was compiled with -fPIC.

engine/:

  This directory contains most of the core logic for implementing the
  client-side of dconf.

  The engine code requires (but does not contain) glue code for speaking
  to D-Bus.  All users of the engine must therefore include a module
  that implements this glue.

  The engine also requires gvdb.

  This directory produces libdconf-engine.a and its -shared variant.

gdbus/:

  This directory contains the glue code for dconf over GDBus.

  There are two implementations of this code: a threaded approach and an
  approach based on GDBus filter functions.  The threaded one is in use
  by default, but both are built for testing purposes.

  This directory produces a library for each backend:
  libdconf-gdbus-thread.a and libdconf-gdbus-filter.a, plus their
  -shared variants.

client/:

  This is the standard GObject client-side library used for direct access to
  dconf.  It uses the GDBus glue from the gdbus/ directory above.

  This directory produces the libdconf.so shared library as well as
  libdconf-client.a which is used for testing.

gsettings/:

  This is the GSettings backend for dconf.  It also uses GDBus.

  This directory produces the libdconfsettings.so GIOModule.

dbus-1/:

  This directory contains a client-side library based on libdbus-1.  It
  also contains the D-Bus glue code for libdbus-1 (since it is the only
  client-side library that is using it).

  This directory produces the libdconf-dbus-1.so shared library.

  It also produces libdconf-libdbus-1.a (containing the D-Bus glue) for
  testing purposes, and its -shared variant.

bin/:

  This is the 'dconf' commandline tool.  It uses the library from
  client/ above.

editor/:

  This is the graphical dconf-editor.  It also uses the client/ library.

service/:

  This is the dconf-service required for any client side library to do
  writes.
