Skip to content
Commits on Source (13)
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.
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.
Changes should never be made to this directory. Instead, they should
be made against the 'gvdb' module and merged using git.
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.
include Makefile.gtester
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = shm gvdb common engine service gdbus gsettings client bin docs tests
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
EXTRA_DIST = trim-lcov.py m4
clean-am: lcov-clean gcno-clean
.PHONY: lcov lcov-clean gcno-clean
lcov: lcov-clean
$(MAKE) $(AM_MAKEFLAGS) check
lcov --directory $(top_builddir) --capture --test-name dconf | $(top_srcdir)/trim-lcov.py > dconf-lcov.info
LANG=C genhtml --prefix $(top_builddir) --output-directory lcov-html --legend --show-details dconf-lcov.info
@echo
@echo " file://$(abs_top_builddir)/lcov-html/index.html"
@echo
gcno-clean:
-find . -name '*.gcno' -delete
lcov-clean:
-lcov --directory $(top_builddir) -z
find . -name '*.gcda' -delete
rm -rf lcov-html dconf-lcov.info
# initialize variables for unconditional += appending
TEST_PROGS =
### testing rules
# test: run all tests in cwd and subdirs
test: test-nonrecursive
@ for subdir in $(SUBDIRS) . ; do \
test "$$subdir" = "." -o "$$subdir" = "po" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done
# test-nonrecursive: run tests only in cwd
test-nonrecursive: ${TEST_PROGS}
@test -z "${TEST_PROGS}" || G_DEBUG=gc-friendly MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) gtester --verbose ${TEST_PROGS}
# test-report: run tests in subdirs and generate report
# perf-report: run tests in subdirs with -m perf and generate report
# full-report: like test-report: with -m perf and -m slow
test-report perf-report full-report: ${TEST_PROGS}
@test -z "${TEST_PROGS}" || { \
case $@ in \
test-report) test_options="-k";; \
perf-report) test_options="-k -m=perf";; \
full-report) test_options="-k -m=perf -m=slow";; \
esac ; \
if test -z "$$GTESTER_LOGDIR" ; then \
gtester --verbose $$test_options -o test-report.xml ${TEST_PROGS} ; \
elif test -n "${TEST_PROGS}" ; then \
gtester --verbose $$test_options -o `mktemp "$$GTESTER_LOGDIR/log-XXXXXX"` ${TEST_PROGS} ; \
fi ; \
}
@ ignore_logdir=true ; \
if test -z "$$GTESTER_LOGDIR" ; then \
GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
ignore_logdir=false ; \
fi ; \
if test -d "$(top_srcdir)/.git" ; then \
REVISION=`git describe` ; \
else \
REVISION=$(VERSION) ; \
fi ; \
for subdir in $(SUBDIRS) . ; do \
test "$$subdir" = "." -o "$$subdir" = "po" || \
( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
done ; \
$$ignore_logdir || { \
echo '<?xml version="1.0"?>' > $@.xml ; \
echo '<report-collection>' >> $@.xml ; \
echo '<info>' >> $@.xml ; \
echo ' <package>$(PACKAGE)</package>' >> $@.xml ; \
echo ' <version>$(VERSION)</version>' >> $@.xml ; \
echo " <revision>$$REVISION</revision>" >> $@.xml ; \
echo '</info>' >> $@.xml ; \
for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
done ; \
echo >> $@.xml ; \
echo '</report-collection>' >> $@.xml ; \
rm -rf "$$GTESTER_LOGDIR"/ ; \
gtester-report --version 2>/dev/null 1>&2 ; test "$$?" != 0 || gtester-report $@.xml >$@.html ; \
}
.PHONY: test test-report perf-report full-report test-nonrecursive
# run tests in cwd as part of make check
check-local: test-nonrecursive
This diff is collapsed.
Changes in dconf 0.28.0
=======================
- Update README
Changes in dconf 0.27.1
=======================
- Port to meson build system (#784910)
Changes in dconf 0.26.1
========================
......
......@@ -21,9 +21,7 @@ typically involve zero system calls and are comparable to a hashtable
lookup in terms of speed. Practically speaking, in simple non-layered
setups, dconf is less than 10 times slower than GHashTable.
Writes are assumed only to happen in response to explicit user
interaction (like clicking on a checkbox in a preferences dialog) and
are therefore not optimised at all. On some file systems, dconf-service
Writes are not optimised at all. On some file systems, dconf-service
will call fsync() for every write, which can introduce a latency of up
to 100ms. This latency is hidden by the client libraries through a
clever "fast" mechanism that records the outstanding changes locally (so
......@@ -48,9 +46,9 @@ graphical applications.
dconf itself attempts to maintain a rather low profile with respect to
dependencies. For the most part, there is only a dependency on GLib.
With the exception of the bin/ and editor/ directories, dconf is written
in C using libglib. This is a very strong dependency due to the fact
that dconf's type system is GVariant.
With the exception of the bin/ directory, dconf is written in C using
libglib. This is a very strong dependency due to the fact that dconf's
type system is GVariant.
The dconf-service has a dependency on libgio, as do the client libraries
that make use of GDBus (and the utilities that make use of those
......@@ -64,18 +62,12 @@ but still depends on libglib. It is not recommended to use this library
unless you have a legacy dependency on libdbus-1 (such as in Qt
applications).
bin/ and editor/ are written in Vala. The Vala compiler is not required
to compile tarball releases but is required for building out of git.
bin/ is written in Vala, hence the Vala compiler is required.
The editor also has a dependency on Gtk+ 3 and libxml2. The libxml2
dependency should disappear at some point in the near future. In any
case, building the editor is optional (and can be switched off using
--disable-editor).
Installing dconf follows the typical meson dance:
Installing dconf follows the typical automake dance:
./configure (or autogen.sh from git)
make
make install
meson builddir
ninja -C builddir
ninja -C builddir install
If you plan to contribute to dconf, please see the HACKING file.
This diff is collapsed.
include $(top_srcdir)/Makefile.gtester
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/client
bin_PROGRAMS = dconf
dconf_VALAFLAGS = --vapidir ../client --pkg=gio-2.0 --pkg=posix --pkg=dconf
dconf_CFLAGS = \
$(gio_CFLAGS) \
-w
dconf_LDADD = \
../client/libdconf.so.1 \
$(gio_LIBS)
dconf_SOURCES = \
../gvdb/gvdb-builder.c \
gvdb.vapi \
dconf-update.vala \
dconf-dump.vala \
dconf.vala
completiondir = $(datadir)/bash-completion/completions
completion_DATA = completion/dconf
EXTRA_DIST = $(completion_DATA)
This diff is collapsed.
/* dconf-dump.c generated by valac 0.37.1, the Vala compiler
* generated from dconf-dump.vala, do not modify */
#include <glib.h>
#include <glib-object.h>
#include <dconf.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_key_file_unref0(var) ((var == NULL) ? NULL : (var = (g_key_file_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_string_free0(var) ((var == NULL) ? NULL : (var = (g_string_free (var, TRUE), NULL)))
#define _dconf_changeset_unref0(var) ((var == NULL) ? NULL : (var = (dconf_changeset_unref (var), NULL)))
void add_to_keyfile (GKeyFile* kf, DConfClient* client, const gchar* topdir, const gchar* rel);
void dconf_dump (gchar** args, int args_length1, GError** error);
GKeyFile* keyfile_from_stdin (GError** error);
void dconf_load (gchar** args, int args_length1, GError** error);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
static gchar* string_slice (const gchar* self, glong start, glong end) {
gchar* result = NULL;
glong string_length = 0L;
gint _tmp0_;
gint _tmp1_;
glong _tmp2_;
glong _tmp5_;
gboolean _tmp8_ = FALSE;
glong _tmp9_;
gboolean _tmp12_ = FALSE;
glong _tmp13_;
glong _tmp16_;
glong _tmp17_;
glong _tmp18_;
glong _tmp19_;
glong _tmp20_;
gchar* _tmp21_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = strlen (self);
_tmp1_ = _tmp0_;
string_length = (glong) _tmp1_;
_tmp2_ = start;
if (_tmp2_ < ((glong) 0)) {
glong _tmp3_;
glong _tmp4_;
_tmp3_ = string_length;
_tmp4_ = start;
start = _tmp3_ + _tmp4_;
}
_tmp5_ = end;
if (_tmp5_ < ((glong) 0)) {
glong _tmp6_;
glong _tmp7_;
_tmp6_ = string_length;
_tmp7_ = end;
end = _tmp6_ + _tmp7_;
}
_tmp9_ = start;
if (_tmp9_ >= ((glong) 0)) {
glong _tmp10_;
glong _tmp11_;
_tmp10_ = start;
_tmp11_ = string_length;
_tmp8_ = _tmp10_ <= _tmp11_;
} else {
_tmp8_ = FALSE;
}
g_return_val_if_fail (_tmp8_, NULL);
_tmp13_ = end;
if (_tmp13_ >= ((glong) 0)) {
glong _tmp14_;
glong _tmp15_;
_tmp14_ = end;
_tmp15_ = string_length;
_tmp12_ = _tmp14_ <= _tmp15_;
} else {
_tmp12_ = FALSE;
}
g_return_val_if_fail (_tmp12_, NULL);
_tmp16_ = start;
_tmp17_ = end;
g_return_val_if_fail (_tmp16_ <= _tmp17_, NULL);
_tmp18_ = start;
_tmp19_ = end;
_tmp20_ = start;
_tmp21_ = g_strndup (((gchar*) self) + _tmp18_, (gsize) (_tmp19_ - _tmp20_));
result = _tmp21_;
return result;
}
void add_to_keyfile (GKeyFile* kf, DConfClient* client, const gchar* topdir, const gchar* rel) {
gchar* this_dir = NULL;
const gchar* _tmp0_;
const gchar* _tmp1_;
gchar* _tmp2_;
gchar* this_group = NULL;
const gchar* _tmp3_;
DConfClient* _tmp7_;
const gchar* _tmp8_;
gint _tmp9_;
gchar** _tmp10_;
g_return_if_fail (kf != NULL);
g_return_if_fail (client != NULL);
g_return_if_fail (topdir != NULL);
_tmp0_ = topdir;
_tmp1_ = rel;
_tmp2_ = g_strconcat (_tmp0_, _tmp1_, NULL);
this_dir = _tmp2_;
_tmp3_ = rel;
if (g_strcmp0 (_tmp3_, "") != 0) {
const gchar* _tmp4_;
gchar* _tmp5_;
_tmp4_ = rel;
_tmp5_ = string_slice (_tmp4_, (glong) 0, (glong) -1);
_g_free0 (this_group);
this_group = _tmp5_;
} else {
gchar* _tmp6_;
_tmp6_ = g_strdup ("/");
_g_free0 (this_group);
this_group = _tmp6_;
}
_tmp7_ = client;
_tmp8_ = this_dir;
_tmp10_ = dconf_client_list (_tmp7_, _tmp8_, &_tmp9_);
{
gchar** item_collection = NULL;
gint item_collection_length1 = 0;
gint _item_collection_size_ = 0;
gint item_it = 0;
item_collection = _tmp10_;
item_collection_length1 = _tmp9_;
for (item_it = 0; item_it < _tmp9_; item_it = item_it + 1) {
gchar* _tmp11_;
gchar* item = NULL;
_tmp11_ = g_strdup (item_collection[item_it]);
item = _tmp11_;
{
const gchar* _tmp12_;
gboolean _tmp13_;
_tmp12_ = item;
_tmp13_ = g_str_has_suffix (_tmp12_, "/");
if (_tmp13_) {
GKeyFile* _tmp14_;
DConfClient* _tmp15_;
const gchar* _tmp16_;
const gchar* _tmp17_;
const gchar* _tmp18_;
gchar* _tmp19_;
gchar* _tmp20_;
_tmp14_ = kf;
_tmp15_ = client;
_tmp16_ = topdir;
_tmp17_ = rel;
_tmp18_ = item;
_tmp19_ = g_strconcat (_tmp17_, _tmp18_, NULL);
_tmp20_ = _tmp19_;
add_to_keyfile (_tmp14_, _tmp15_, _tmp16_, _tmp20_);
_g_free0 (_tmp20_);
} else {
GVariant* val = NULL;
DConfClient* _tmp21_;
const gchar* _tmp22_;
const gchar* _tmp23_;
gchar* _tmp24_;
gchar* _tmp25_;
GVariant* _tmp26_;
GVariant* _tmp27_;
GVariant* _tmp28_;
_tmp21_ = client;
_tmp22_ = this_dir;
_tmp23_ = item;
_tmp24_ = g_strconcat (_tmp22_, _tmp23_, NULL);
_tmp25_ = _tmp24_;
_tmp26_ = dconf_client_read (_tmp21_, _tmp25_);
_tmp27_ = _tmp26_;
_g_free0 (_tmp25_);
val = _tmp27_;
_tmp28_ = val;
if (_tmp28_ != NULL) {
GKeyFile* _tmp29_;
const gchar* _tmp30_;
const gchar* _tmp31_;
GVariant* _tmp32_;
gchar* _tmp33_;
gchar* _tmp34_;
_tmp29_ = kf;
_tmp30_ = this_group;
_tmp31_ = item;
_tmp32_ = val;
_tmp33_ = g_variant_print (_tmp32_, TRUE);
_tmp34_ = _tmp33_;
g_key_file_set_value (_tmp29_, _tmp30_, _tmp31_, _tmp34_);
_g_free0 (_tmp34_);
}
_g_variant_unref0 (val);
}
_g_free0 (item);
}
}
item_collection = (_vala_array_free (item_collection, item_collection_length1, (GDestroyNotify) g_free), NULL);
}
_g_free0 (this_group);
_g_free0 (this_dir);
}
void dconf_dump (gchar** args, int args_length1, GError** error) {
DConfClient* client = NULL;
DConfClient* _tmp0_;
GKeyFile* kf = NULL;
GKeyFile* _tmp1_;
gchar* dir = NULL;
gchar** _tmp2_;
gint _tmp2__length1;
const gchar* _tmp3_;
gchar* _tmp4_;
gchar* _tmp5_;
gchar* _tmp6_;
GError * _inner_error_ = NULL;
_tmp0_ = dconf_client_new ();
client = _tmp0_;
_tmp1_ = g_key_file_new ();
kf = _tmp1_;
_tmp2_ = args;
_tmp2__length1 = args_length1;
_tmp3_ = _tmp2_[2];
_tmp4_ = g_strdup (_tmp3_);
dir = _tmp4_;
dconf_is_dir (dir, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (dir);
_g_key_file_unref0 (kf);
_g_object_unref0 (client);
return;
}
add_to_keyfile (kf, client, dir, "");
_tmp5_ = g_key_file_to_data (kf, NULL, NULL);
_tmp6_ = _tmp5_;
g_print ("%s", _tmp6_);
_g_free0 (_tmp6_);
_g_free0 (dir);
_g_key_file_unref0 (kf);
_g_object_unref0 (client);
}
GKeyFile* keyfile_from_stdin (GError** error) {
GKeyFile* result = NULL;
const gchar* tmp = NULL;
gchar buffer[1024] = {0};
GString* s = NULL;
GString* _tmp0_;
GKeyFile* kf = NULL;
GKeyFile* _tmp6_;
GString* _tmp7_;
const gchar* _tmp8_;
GString* _tmp9_;
gssize _tmp10_;
GError * _inner_error_ = NULL;
_tmp0_ = g_string_new ("");
s = _tmp0_;
while (TRUE) {
FILE* _tmp1_;
const gchar* _tmp2_;
const gchar* _tmp3_;
GString* _tmp4_;
const gchar* _tmp5_;
_tmp1_ = stdin;
_tmp2_ = fgets (buffer, 1024, _tmp1_);
tmp = _tmp2_;
_tmp3_ = tmp;
if (!(_tmp3_ != NULL)) {
break;
}
_tmp4_ = s;
_tmp5_ = tmp;
g_string_append (_tmp4_, _tmp5_);
}
_tmp6_ = g_key_file_new ();
kf = _tmp6_;
_tmp7_ = s;
_tmp8_ = _tmp7_->str;
_tmp9_ = s;
_tmp10_ = _tmp9_->len;
g_key_file_load_from_data (kf, _tmp8_, (gsize) _tmp10_, 0, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_key_file_unref0 (kf);
_g_string_free0 (s);
return NULL;
}
result = kf;
_g_string_free0 (s);
return result;
}
void dconf_load (gchar** args, int args_length1, GError** error) {
gchar* dir = NULL;
gchar** _tmp0_;
gint _tmp0__length1;
const gchar* _tmp1_;
gchar* _tmp2_;
const gchar* _tmp3_;
DConfChangeset* changeset = NULL;
DConfChangeset* _tmp4_;
GKeyFile* kf = NULL;
GKeyFile* _tmp5_;
GKeyFile* _tmp6_;
gsize _tmp7_;
gchar** _tmp8_;
DConfClient* client = NULL;
DConfClient* _tmp38_;
DConfClient* _tmp39_;
DConfChangeset* _tmp40_;
GError * _inner_error_ = NULL;
_tmp0_ = args;
_tmp0__length1 = args_length1;
_tmp1_ = _tmp0_[2];
_tmp2_ = g_strdup (_tmp1_);
dir = _tmp2_;
_tmp3_ = dir;
dconf_is_dir (_tmp3_, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (dir);
return;
}
_tmp4_ = dconf_changeset_new ();
changeset = _tmp4_;
_tmp5_ = keyfile_from_stdin (&_inner_error_);
kf = _tmp5_;
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_tmp6_ = kf;
_tmp8_ = g_key_file_get_groups (_tmp6_, &_tmp7_);
{
gchar** group_collection = NULL;
gint group_collection_length1 = 0;
gint _group_collection_size_ = 0;
gint group_it = 0;
group_collection = _tmp8_;
group_collection_length1 = _tmp7_;
for (group_it = 0; group_it < _tmp7_; group_it = group_it + 1) {
gchar* _tmp9_;
gchar* group = NULL;
_tmp9_ = g_strdup (group_collection[group_it]);
group = _tmp9_;
{
gchar** _tmp10_ = NULL;
GKeyFile* _tmp11_;
const gchar* _tmp12_;
gsize _tmp13_;
gchar** _tmp14_;
gint _tmp10__length1;
gint __tmp10__size_;
gchar** _tmp15_;
gint _tmp15__length1;
_tmp11_ = kf;
_tmp12_ = group;
_tmp14_ = g_key_file_get_keys (_tmp11_, _tmp12_, &_tmp13_, &_inner_error_);
_tmp10_ = _tmp14_;
_tmp10__length1 = _tmp13_;
__tmp10__size_ = _tmp10__length1;
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (group);
group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_tmp15_ = _tmp10_;
_tmp15__length1 = _tmp10__length1;
_tmp10_ = NULL;
_tmp10__length1 = 0;
{
gchar** key_collection = NULL;
gint key_collection_length1 = 0;
gint _key_collection_size_ = 0;
gint key_it = 0;
key_collection = _tmp15_;
key_collection_length1 = _tmp15__length1;
for (key_it = 0; key_it < _tmp15__length1; key_it = key_it + 1) {
gchar* _tmp16_;
gchar* key = NULL;
_tmp16_ = g_strdup (key_collection[key_it]);
key = _tmp16_;
{
gchar* _tmp17_ = NULL;
const gchar* _tmp18_;
gchar* path = NULL;
const gchar* _tmp22_;
gchar* _tmp23_;
gchar* _tmp24_;
const gchar* _tmp25_;
gchar* _tmp26_;
gchar* _tmp27_;
const gchar* _tmp28_;
gchar* _tmp29_ = NULL;
GKeyFile* _tmp30_;
const gchar* _tmp31_;
const gchar* _tmp32_;
gchar* _tmp33_;
GVariant* _tmp34_ = NULL;
GVariant* _tmp35_;
DConfChangeset* _tmp36_;
const gchar* _tmp37_;
_tmp18_ = group;
if (g_strcmp0 (_tmp18_, "/") == 0) {
gchar* _tmp19_;
_tmp19_ = g_strdup ("");
_g_free0 (_tmp17_);
_tmp17_ = _tmp19_;
} else {
const gchar* _tmp20_;
gchar* _tmp21_;
_tmp20_ = group;
_tmp21_ = g_strconcat (_tmp20_, "/", NULL);
_g_free0 (_tmp17_);
_tmp17_ = _tmp21_;
}
_tmp22_ = dir;
_tmp23_ = g_strconcat (_tmp22_, _tmp17_, NULL);
_tmp24_ = _tmp23_;
_tmp25_ = key;
_tmp26_ = g_strconcat (_tmp24_, _tmp25_, NULL);
_tmp27_ = _tmp26_;
_g_free0 (_tmp24_);
path = _tmp27_;
_tmp28_ = path;
dconf_is_key (_tmp28_, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (path);
_g_free0 (_tmp17_);
_g_free0 (key);
key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL);
_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
_g_free0 (group);
group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_tmp30_ = kf;
_tmp31_ = group;
_tmp32_ = key;
_tmp33_ = g_key_file_get_value (_tmp30_, _tmp31_, _tmp32_, &_inner_error_);
_tmp29_ = _tmp33_;
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (path);
_g_free0 (_tmp17_);
_g_free0 (key);
key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL);
_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
_g_free0 (group);
group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_tmp35_ = g_variant_parse (NULL, _tmp29_, NULL, NULL, &_inner_error_);
_tmp34_ = _tmp35_;
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_free0 (_tmp29_);
_g_free0 (path);
_g_free0 (_tmp17_);
_g_free0 (key);
key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL);
_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
_g_free0 (group);
group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_tmp36_ = changeset;
_tmp37_ = path;
dconf_changeset_set (_tmp36_, _tmp37_, _tmp34_);
_g_variant_unref0 (_tmp34_);
_g_free0 (_tmp29_);
_g_free0 (path);
_g_free0 (_tmp17_);
_g_free0 (key);
}
}
key_collection = (_vala_array_free (key_collection, key_collection_length1, (GDestroyNotify) g_free), NULL);
}
_tmp10_ = (_vala_array_free (_tmp10_, _tmp10__length1, (GDestroyNotify) g_free), NULL);
_g_free0 (group);
}
}
group_collection = (_vala_array_free (group_collection, group_collection_length1, (GDestroyNotify) g_free), NULL);
}
_tmp38_ = dconf_client_new ();
client = _tmp38_;
_tmp39_ = client;
_tmp40_ = changeset;
dconf_client_change_sync (_tmp39_, _tmp40_, NULL, NULL, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_propagate_error (error, _inner_error_);
_g_object_unref0 (client);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
return;
}
_g_object_unref0 (client);
_g_key_file_unref0 (kf);
_dconf_changeset_unref0 (changeset);
_g_free0 (dir);
}
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
if ((array != NULL) && (destroy_func != NULL)) {
int i;
for (i = 0; i < array_length; i = i + 1) {
if (((gpointer*) array)[i] != NULL) {
destroy_func (((gpointer*) array)[i]);
}
}
}
}
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
_vala_array_destroy (array, array_length, destroy_func);
g_free (array);
}
This diff is collapsed.
This diff is collapsed.
sources = gvdb_builder + libdconf_vapi + files(
'dconf-dump.vala',
'dconf-update.vala',
'dconf.vala',
'gvdb.vapi'
)
deps = [
libdconf_dep,
valac.find_library('posix')
]
executable(
meson.project_name(),
sources,
include_directories: top_inc,
dependencies: deps,
c_args: '-w',
install: true,
install_dir: dconf_bindir
)
install_data(
'completion/dconf',
install_dir: join_paths(dconf_datadir, 'bash-completion', 'completions')
)
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2016-01-11.22; # UTC
# Copyright (C) 1999-2017 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2016-01-11.22; # UTC
# Copyright (C) 1996-2017 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=http://www.perl.org/
flex_URL=http://flex.sourceforge.net/
gnu_software_URL=http://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
#! /bin/sh
# test-driver - basic testsuite driver script.
scriptversion=2016-01-11.22; # UTC
# Copyright (C) 2011-2017 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# Make unconditional expansion of undefined variables an error. This
# helps a lot in preventing typo-related bugs.
set -u
usage_error ()
{
echo "$0: $*" >&2
print_usage >&2
exit 2
}
print_usage ()
{
cat <<END
Usage:
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
[--expect-failure={yes|no}] [--color-tests={yes|no}]
[--enable-hard-errors={yes|no}] [--]
TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
END
}
test_name= # Used for reporting.
log_file= # Where to save the output of the test script.
trs_file= # Where to save the metadata of the test run.
expect_failure=no
color_tests=no
enable_hard_errors=yes
while test $# -gt 0; do
case $1 in
--help) print_usage; exit $?;;
--version) echo "test-driver $scriptversion"; exit $?;;
--test-name) test_name=$2; shift;;
--log-file) log_file=$2; shift;;
--trs-file) trs_file=$2; shift;;
--color-tests) color_tests=$2; shift;;
--expect-failure) expect_failure=$2; shift;;
--enable-hard-errors) enable_hard_errors=$2; shift;;
--) shift; break;;
-*) usage_error "invalid option: '$1'";;
*) break;;
esac
shift
done
missing_opts=
test x"$test_name" = x && missing_opts="$missing_opts --test-name"
test x"$log_file" = x && missing_opts="$missing_opts --log-file"
test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
if test x"$missing_opts" != x; then
usage_error "the following mandatory options are missing:$missing_opts"
fi
if test $# -eq 0; then
usage_error "missing argument"
fi
if test $color_tests = yes; then
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
red='' # Red.
grn='' # Green.
lgn='' # Light green.
blu='' # Blue.
mgn='' # Magenta.
std='' # No color.
else
red= grn= lgn= blu= mgn= std=
fi
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
trap "st=129; $do_exit" 1
trap "st=130; $do_exit" 2
trap "st=141; $do_exit" 13
trap "st=143; $do_exit" 15
# Test script is run here.
"$@" >$log_file 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
tweaked_estatus=1
else
tweaked_estatus=$estatus
fi
case $tweaked_estatus:$expect_failure in
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
0:*) col=$grn res=PASS recheck=no gcopy=no;;
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
esac
# Report the test outcome and exit status in the logs, so that one can
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
echo "$res $test_name (exit status: $estatus)" >>$log_file
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
# Register the test result, and other relevant metadata.
echo ":test-result: $res" > $trs_file
echo ":global-test-result: $res" >> $trs_file
echo ":recheck: $recheck" >> $trs_file
echo ":copy-in-global-log: $gcopy" >> $trs_file
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
include $(top_srcdir)/Makefile.gtester
shlibdir=$(libdir)
shlib_PROGRAMS = libdconf.so.1.0.0
nodist_noinst_DATA = libdconf.so.1 libdconf.so
noinst_LIBRARIES = libdconf-client.a
libdconf.so.1 libdconf.so: libdconf.so.1.0.0
$(AM_V_GEN) ln -fs libdconf.so.1.0.0 $@
install-data-hook:
ln -fs libdconf.so.1.0.0 $(DESTDIR)$(shlibdir)/libdconf.so.1
ln -fs libdconf.so.1.0.0 $(DESTDIR)$(shlibdir)/libdconf.so
uninstall-hook:
rm -f $(DESTDIR)$(shlibdir)/libdconf.so.1
rm -f $(DESTDIR)$(shlibdir)/libdconf.so
dconfinclude_HEADERS = dconf.h
dconfclientinclude_HEADERS = dconf-client.h
dconfclientincludedir = $(dconfincludedir)/client
libdconf_client_a_CFLAGS = $(gio_CFLAGS) -DG_LOG_DOMAIN=\"dconf\"
libdconf_client_a_SOURCES = \
dconf-client.c
libdconf_so_1_0_0_CFLAGS = $(libdconf_client_a_CFLAGS) -fPIC -DPIC
libdconf_so_1_0_0_LDADD = \
../engine/libdconf-engine-shared.a \
../common/libdconf-common-shared.a \
../gdbus/libdconf-gdbus-thread-shared.a \
../gvdb/libgvdb-shared.a \
../shm/libdconf-shm-shared.a \
$(gio_LIBS)
libdconf_so_1_0_0_LDFLAGS = -shared -Wl,-soname=libdconf.so.1
libdconf_so_1_0_0_SOURCES = $(libdconf_client_a_SOURCES)
EXTRA_DIST = dconf.vapi dconf.deps
vapi_DATA = dconf.vapi dconf.deps
vapidir = $(datadir)/vala/vapi
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = dconf.pc
CLEANFILES = libdconf.so.1 libdconf.so