Move from valadoc generation to GTK-Doc

This commit is contained in:
Gergely Polonkai 2017-11-30 15:32:17 +01:00
parent f7e2a647cf
commit 8e6044407b
14 changed files with 1648 additions and 114 deletions

1
.gitignore vendored
View File

@ -40,7 +40,6 @@ Makefile.in
/src/matrix-enumtypes.[ch]
/src/matrix-marshalers.[ch]
/src/stamp-matrix-marshalers
/docs/valadoc/gtk-doc/gtk-doc
# Vala related files
/src/Matrix-0.0.vapi

View File

@ -3,8 +3,8 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
# Set up subdirectories to traverse
SUBDIRS = src
if ENABLE_DOCS
SUBDIRS += docs
if ENABLE_GTK_DOC
SUBDIRS += docs/reference/matrix-glib-sdk
endif
# Specify files to include in dist

View File

@ -15,6 +15,15 @@ PKG_NAME="matrix-glib"
exit 1
}
(gtkdocize --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`gtkdocize' installed."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnome.org/"
DIE=1
}
(autoconf --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "**Error**: You must have \`autoconf' installed."
@ -96,6 +105,11 @@ fi
echo "Running aclocal $aclocalinclude ..."
aclocal $m4dir $ACLOCAL_FLAGS $aclocalinclude || exit $?
if grep "^GTK_DOC_CHECK" "$coin" > /dev/null; then
echo "Running gtkdocize ..."
gtkdocize || exit $?
fi
if grep "^A[CM]_CONFIG_HEADER" "$coin" > /dev/null; then
echo "Running autoheader ..."
autoheader || exit $?

View File

@ -93,13 +93,18 @@ LIBVALA_REQUIRED=0.30
GIO_REQUIRED=2.22
SOUP_REQUIRED=2.44.2
JSON_REQUIRED=0.16.2
VALADOC_REQUIRED=0.3.1
# Check GLib
PKG_CHECK_MODULES([GLIB],
[glib-2.0 >= $GLIB_REQUIRED
gobject-2.0 >= $GLIB_REQUIRED])
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.25], [--flavour no-tmpl])
], [
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])
# Check for vala
VALAC_CHECK
@ -115,52 +120,6 @@ PKG_CHECK_MODULES([JSON], [json-glib-1.0 >= $JSON_REQUIRED])
# Check for GObject Introspection
GOBJECT_INTROSPECTION_CHECK([1.32.0])
# Documentation with Valadoc
AC_ARG_ENABLE([docs],
AS_HELP_STRING([--enable-docs],
[Enable documentation generation]),
[enable_docs=$enableval], [enable_docs=no])
AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes])
have_valadoc=no
if test x$enable_docs = xyes; then
# Make sure the library is new enough and the program exists
AC_PATH_PROG([VALADOC], [valadoc], [no])
if test "x$VALADOC" = "xno"; then
AC_MSG_RESULT([valadoc documentation will not build because valadoc is not found])
else
VAPIDIR=`$PKG_CONFIG --variable=vapidir libvala-$LIBVALA_REQUIRED`
have_valadoc="yes"
AC_SUBST([VALADOC])
fi
fi
AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes])
AC_ARG_ENABLE([gtk-doc],
AS_HELP_STRING([--enable-gtk-doc],
[Enable GTK-Doc documentation generation]),
[enable_gtk_docs=$enableval], [enable_gtk_docs=no])
have_gtkdoc=no
if test x$enable_gtk_docs = xyes; then
if test x$have_valadoc = xyes; then
PKG_CHECK_MODULES([GTKDOC], gtk-doc)
have_gtkdoc=yes
else
AC_MSG_ERROR([valadoc is required to generate GTK-Doc documentation. Use --enable-valadoc])
fi
fi
gtkdocs=no
if test x$enable_docs = xyes; then
if test x$enable_gtk_docs = xyes; then
gtkdocs=yes
fi
fi
AM_CONDITIONAL([ENABLE_GTK_DOCS], [test "x$gtkdocs" = "xyes"])
debug=no
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],
@ -202,9 +161,7 @@ AC_CONFIG_FILES([
src/matrix-version.h
src/matrix-glib-0.0.pc
src/namespace-info.vala
docs/Makefile
docs/valadoc/Makefile
docs/valadoc/gtk-doc/Makefile
docs/reference/matrix-glib-sdk/Makefile
])
AC_OUTPUT
@ -212,7 +169,6 @@ AC_OUTPUT
echo ""
echo " Configuration summary for Matrix-$MATRIX_GLIB_VERSION"
echo " Installation prefix: $prefix"
echo " Documentation: ${enable_docs}"
echo " Gtk-Doc: `if test x${gtkdocs} = xyes; then echo yes; else echo no; fi`"
echo " Documentation: ${enable_gtk_doc}"
echo " Debug: $debug"
echo ""

View File

@ -1,5 +1 @@
SUBDIRS =
if HAVE_VALADOC
SUBDIRS += valadoc
endif

View File

@ -0,0 +1,85 @@
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=matrix-glib-sdk
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level XML file.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
# Directories containing the source code.
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk
DOC_SOURCE_DIR=$(top_srcdir)/src
# Extra options to pass to gtkdoc-scangobj. Normally not needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=
# Extra options to supply to gtkdoc-mkdb
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Normally not needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES=utils.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.xml building.xml changes-2.0.xml
content_files=
# Files where gtk-doc abbrevations (#GtkWidget) are expanded
# e.g. expand_content_files=running.xml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_srcdir)/src
GTKDOC_LIBS=$(top_builddir)/src/libmatrix-glib-0.0.la
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@ -0,0 +1,98 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent">
%gtkdocentities;
]>
<book id="index">
<bookinfo>
<title>&package_name; Reference Manual</title>
<releaseinfo>
for &package_string;.
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>.
</releaseinfo>
</bookinfo>
<chapter id="matrix-glib-sdk-basic-types">
<title>Basic types</title>
<xi:include href="xml/matrix-enumtypes.xml"/>
<xi:include href="xml/matrix-compacts.xml"/>
<xi:include href="xml/matrix-profile.xml"/>
<xi:include href="xml/matrix-room.xml"/>
<xi:include href="xml/matrix-types.xml"/>
<xi:include href="xml/matrix-version.xml"/>
</chapter>
<chapter id="matrix-glib-sdk-events">
<title>Event types</title>
<xi:include href="xml/event-handling.xml"/>
<xi:include href="xml/matrix-event-base.xml"/>
<xi:include href="xml/matrix-event-call-base.xml"/>
<xi:include href="xml/matrix-event-call-answer.xml"/>
<xi:include href="xml/matrix-event-call-candidates.xml"/>
<xi:include href="xml/matrix-event-call-hangup.xml"/>
<xi:include href="xml/matrix-event-call-invite.xml"/>
<xi:include href="xml/matrix-event-presence.xml"/>
<xi:include href="xml/matrix-event-receipt.xml"/>
<xi:include href="xml/matrix-event-room-aliases.xml"/>
<xi:include href="xml/matrix-event-room-avatar.xml"/>
<xi:include href="xml/matrix-event-room-base.xml"/>
<xi:include href="xml/matrix-event-room-canonical-alias.xml"/>
<xi:include href="xml/matrix-event-room-create.xml"/>
<xi:include href="xml/matrix-event-room-guest-access.xml"/>
<xi:include href="xml/matrix-event-room-history-visibility.xml"/>
<xi:include href="xml/matrix-event-room-join-rules.xml"/>
<xi:include href="xml/matrix-event-room-member.xml"/>
<xi:include href="xml/matrix-event-room-message.xml"/>
<xi:include href="xml/matrix-event-room-message-feedback.xml"/>
<xi:include href="xml/matrix-event-room-name.xml"/>
<xi:include href="xml/matrix-event-room-power-levels.xml"/>
<xi:include href="xml/matrix-event-room-redaction.xml"/>
<xi:include href="xml/matrix-event-room-third-party-invite.xml"/>
<xi:include href="xml/matrix-event-room-topic.xml"/>
<xi:include href="xml/matrix-event-state-base.xml"/>
<xi:include href="xml/matrix-event-tag.xml"/>
<xi:include href="xml/matrix-event-typing.xml"/>
</chapter>
<chapter id="matrix-glib-sdk-messages">
<title>Message types</title>
<xi:include href="xml/message-handling.xml"/>
<xi:include href="xml/matrix-message-base.xml"/>
<xi:include href="xml/matrix-message-text.xml"/>
<xi:include href="xml/matrix-message-emote.xml"/>
<xi:include href="xml/matrix-message-notice.xml"/>
<xi:include href="xml/matrix-message-file.xml"/>
<xi:include href="xml/matrix-message-audio.xml"/>
<xi:include href="xml/matrix-message-image.xml"/>
<xi:include href="xml/matrix-message-video.xml"/>
<xi:include href="xml/matrix-message-location.xml"/>
</chapter>
<chapter>
<title>Communicating with homeservers</title>
<xi:include href="xml/matrix-api.xml"/>
<xi:include href="xml/matrix-client.xml"/>
<xi:include href="xml/matrix-http-api.xml"/>
<xi:include href="xml/matrix-http-client.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="deprecated-api-index" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +0,0 @@
SUBDIRS =
if ENABLE_GTK_DOCS
SUBDIRS += gtk-doc
endif

View File

@ -1,28 +0,0 @@
include $(top_srcdir)/vala-globals.mk
CLEANFILES =
sources = $(top_srcdir)/src/*.vala
gtkdocdir = $(datadir)/gtk-doc/html/matrix-glib
gtkdoc_DATA = \
gtk-doc/matrix-glib/*.txt \
gtk-doc/matrix-glib/*.xml \
gtk-doc/matrix-glib/xml/*.xml \
gtk-doc/matrix-glib/xml/*.top \
gtk-doc/matrix-glib/xml/*.bottom \
gtk-doc/matrix-glib/*.types \
gtk-doc/matrix-glib/sgml.stamp \
$(NULL)
$(gtkdoc_DATA): matrix-glib-gtk-doc
matrix-glib-gtk-doc:
$(VALADOC) -o gtk-doc/matrix-glib --doclet=gtkdoc \
-X $(top_builddir)/src/matrix-glib.h \
$(VALADOC_FLAGS) $(sources)
all: matrix-glib-gtk-doc
clean-local:
rm -rf gtk-doc
rm -rf matrix-glib

227
git.mk Normal file
View File

@ -0,0 +1,227 @@
# git.mk
#
# Copyright 2009, Red Hat, Inc.
# Copyright 2010,2011 Behdad Esfahbod
# Written by Behdad Esfahbod
#
# Copying and distribution of this file, with or without modification,
# is permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
#
# The latest version of this file can be downloaded from:
# https://raw.github.com/behdad/git.mk/master/git.mk
# Bugs, etc, should be reported upstream at:
# https://github.com/behdad/git.mk
#
# To use in your project, import this file in your git repo's toplevel,
# then do "make -f git.mk". This modifies all Makefile.am files in
# your project to -include git.mk. Remember to add that line to new
# Makefile.am files you create in your project, or just rerun the
# "make -f git.mk".
#
# This enables automatic .gitignore generation. If you need to ignore
# more files, add them to the GITIGNOREFILES variable in your Makefile.am.
# But think twice before doing that. If a file has to be in .gitignore,
# chances are very high that it's a generated file and should be in one
# of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES.
#
# The only case that you need to manually add a file to GITIGNOREFILES is
# when remove files in one of mostlyclean-local, clean-local, distclean-local,
# or maintainer-clean-local make targets.
#
# Note that for files like editor backup, etc, there are better places to
# ignore them. See "man gitignore".
#
# If "make maintainer-clean" removes the files but they are not recognized
# by this script (that is, if "git status" shows untracked files still), send
# me the output of "git status" as well as your Makefile.am and Makefile for
# the directories involved and I'll diagnose.
#
# For a list of toplevel files that should be in MAINTAINERCLEANFILES, see
# Makefile.am.sample in the git.mk git repo.
#
# Don't EXTRA_DIST this file. It is supposed to only live in git clones,
# not tarballs. It serves no useful purpose in tarballs and clutters the
# build dir.
#
# This file knows how to handle autoconf, automake, libtool, gtk-doc,
# gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu.
#
# This makefile provides the following targets:
#
# - all: "make all" will build all gitignore files.
# - gitignore: makes all gitignore files in the current dir and subdirs.
# - .gitignore: make gitignore file for the current dir.
# - gitignore-recurse: makes all gitignore files in the subdirs.
#
# KNOWN ISSUES:
#
# - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the
# submodule doesn't find us. If you have configure.{in,ac} files in
# subdirs, add a proxy git.mk file in those dirs that simply does:
# "include $(top_srcdir)/../git.mk". Add more ..'s to your taste.
# And add those files to git. See vte/gnome-pty-helper/git.mk for
# example.
#
git-all: git-mk-install
git-mk-install:
@echo Installing git makefile
@any_failed=; \
find "`test -z "$(top_srcdir)" && echo . || echo "$(top_srcdir)"`" -name Makefile.am | while read x; do \
if grep 'include .*/git.mk' $$x >/dev/null; then \
echo $$x already includes git.mk; \
else \
failed=; \
echo "Updating $$x"; \
{ cat $$x; \
echo ''; \
echo '-include $$(top_srcdir)/git.mk'; \
} > $$x.tmp || failed=1; \
if test x$$failed = x; then \
mv $$x.tmp $$x || failed=1; \
fi; \
if test x$$failed = x; then : else \
echo Failed updating $$x; >&2 \
any_failed=1; \
fi; \
fi; done; test -z "$$any_failed"
.PHONY: git-all git-mk-install
### .gitignore generation
$(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk
$(AM_V_GEN) \
{ \
if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \
for x in \
$(DOC_MODULE)-decl-list.txt \
$(DOC_MODULE)-decl.txt \
tmpl/$(DOC_MODULE)-unused.sgml \
"tmpl/*.bak" \
xml html \
; do echo /$$x; done; \
fi; \
if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \
for lc in $(DOC_LINGUAS); do \
for x in \
$(if $(DOC_MODULE),$(DOC_MODULE).xml) \
$(DOC_PAGES) \
$(DOC_INCLUDES) \
; do echo /$$lc/$$x; done; \
done; \
for x in \
$(_DOC_OMF_ALL) \
$(_DOC_DSK_ALL) \
$(_DOC_HTML_ALL) \
$(_DOC_MOFILES) \
$(DOC_H_FILE) \
"*/.xml2po.mo" \
"*/*.omf.out" \
; do echo /$$x; done; \
fi; \
if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \
for lc in $(HELP_LINGUAS); do \
for x in \
$(HELP_FILES) \
"$$lc.stamp" \
"$$lc.mo" \
; do echo /$$lc/$$x; done; \
done; \
fi; \
if test "x$(gsettings_SCHEMAS)" = x; then :; else \
for x in \
$(gsettings_SCHEMAS:.xml=.valid) \
$(gsettings__enum_file) \
; do echo /$$x; done; \
fi; \
if test -f $(srcdir)/po/Makefile.in.in; then \
for x in \
po/Makefile.in.in \
po/Makefile.in \
po/Makefile \
po/POTFILES \
po/stamp-it \
po/.intltool-merge-cache \
"po/*.gmo" \
"po/*.mo" \
po/$(GETTEXT_PACKAGE).pot \
intltool-extract.in \
intltool-merge.in \
intltool-update.in \
; do echo /$$x; done; \
fi; \
if test -f $(srcdir)/configure; then \
for x in \
autom4te.cache \
configure \
config.h \
stamp-h1 \
libtool \
config.lt \
; do echo /$$x; done; \
fi; \
if test "x$(DEJATOOL)" = x; then :; else \
for x in \
$(DEJATOOL) \
; do echo /$$x.sum; echo /$$x.log; done; \
echo /site.exp; \
fi; \
for x in \
.gitignore \
$(GITIGNOREFILES) \
$(CLEANFILES) \
$(PROGRAMS) $(check_PROGRAMS) $(EXTRA_PROGRAMS) \
$(LIBRARIES) $(check_LIBRARIES) $(EXTRA_LIBRARIES) \
$(LTLIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LTLIBRARIES) \
so_locations \
.libs _libs \
$(MOSTLYCLEANFILES) \
"*.$(OBJEXT)" \
"*.lo" \
$(DISTCLEANFILES) \
$(am__CONFIG_DISTCLEAN_FILES) \
$(CONFIG_CLEAN_FILES) \
TAGS ID GTAGS GRTAGS GSYMS GPATH tags \
"*.tab.c" \
$(MAINTAINERCLEANFILES) \
$(BUILT_SOURCES) \
$(DEPDIR) \
Makefile \
Makefile.in \
"*.orig" \
"*.rej" \
"*.bak" \
"*~" \
".*.sw[nop]" \
".dirstamp" \
; do echo /$$x; done; \
} | \
sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \
sed 's@/[.]/@/@g' | \
LC_ALL=C sort | uniq > $@.tmp && \
mv $@.tmp $@;
all: $(srcdir)/.gitignore gitignore-recurse-maybe
gitignore: $(srcdir)/.gitignore gitignore-recurse
gitignore-recurse-maybe:
@for subdir in $(DIST_SUBDIRS); do \
case " $(SUBDIRS) " in \
*" $$subdir "*) :;; \
*) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse-maybe || echo "Skipping $$subdir");; \
esac; \
done
gitignore-recurse:
@for subdir in $(DIST_SUBDIRS); do \
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir"); \
done
maintainer-clean: gitignore-clean
gitignore-clean:
-rm -f $(srcdir)/.gitignore
.PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe

View File

@ -18,6 +18,54 @@
#include "matrix-version.h"
/**
* SECTION:matrix-version
* @short_description: Library version information
* @title: Version information for the SDK
*
* Version information macros and functions for the Matrix GLib SDK
*/
/**
* MATRIX_GLIB_MAJOR_VERSION:
*
* The major version number of the Matrix.org GLib SDK.
*/
/**
* MATRIX_GLIB_MINOR_VERSION:
*
* The minor version number of the Matrix.org GLib SDK.
*/
/**
* MATRIX_GLIB_MICRO_VERSION:
*
* The micro (patch) version number of the Matrix.org GLib SDK.
*/
/**
* MATRIX_GLIB_CHECK_VERSION:
* @required_major: the required major version
* @required_minor: the required minor version
* @required_micro: the required micro version
*
* Macro to check that the Matrix.org GLib SDK being compiled against is compatible with the given
* version.
*
* Returns: TRUE if the required version is satisfied; FALSE otherwise.
*/
/**
* matrix_glib_check_version:
* @required_major: the required major version
* @required_minor: the required minor version
* @required_micro: the required micro version
*
* Check that the Matrix.org GLib SDK in use is compatible with the given version.
*
* Returns: TRUE if the required version is satisfied; FALSE otherwise.
*/
gboolean
matrix_glib_check_version(guint required_major,
guint required_minor,

View File

@ -30,9 +30,9 @@ matrix_glib_check_version(guint required_major,
guint required_minor,
guint required_micro);
#define MATRIX_GLIB_CHECK_VERSION(major, minor, micro) \
(MATRIX_GLIB_MAJOR_VERSION > (major) || \
(MATRIX_GLIB_MAJOR_VERSION == (major) && MATRIX_GLIB_MINOR_VERSION > (minor)) || \
(MATRIX_GLIB_MAJOR_VERSION == (major) && MATRIX_GLIB_MINOR_VERSION == (minor) && MATRIX_GLIB_MICRO_VERSION >= (micro)))
#define MATRIX_GLIB_CHECK_VERSION(required_major, required_minor, required_micro) \
(MATRIX_GLIB_MAJOR_VERSION > (required_major) || \
(MATRIX_GLIB_MAJOR_VERSION == (required_major) && MATRIX_GLIB_MINOR_VERSION > (required_minor)) || \
(MATRIX_GLIB_MAJOR_VERSION == (required_major) && MATRIX_GLIB_MINOR_VERSION == (required_minor) && MATRIX_GLIB_MICRO_VERSION >= (required_micro)))
#endif /* __MATRIX_VERSION_H__ */

View File

@ -1060,33 +1060,16 @@ namespace Matrix {
public void load_state(string filename)
throws Matrix.Error, GLib.Error;
}
/**
* The major version number of the Matrix.org GLib SDK.
*/
[CCode (cheader_filename = "matrix-version.h", cname = "MATRIX_GLIB_MAJOR_VERSION")]
public const int GLIB_MAJOR_VERSION;
/**
* The micro (patch) version number of the Matrix.org GLib SDK.
*/
[CCode (cheader_filename = "matrix-version.h", cname = "MATRIX_GLIB_MINOR_VERSION")]
public const int GLIB_MINOR_VERSION;
/**
* The minor version number of the Matrix.org GLib SDK.
*/
[CCode (cheader_filename = "matrix-version.h", cname = "MATRIX_GLIB_MICRO_VERSION")]
public const int GLIB_MICRO_VERSION;
/**
* Check that the Matrix.org GLib SDK in use is compatible with
* the given version.
*
* @param required_major the required major version
* @param required_minor the required minor version
* @param required_micro the required micro version
* @return {{{true}}} if the required version is satisfied; {{{false}}} otherwise.
*/
[CCode (cheader_filename = "matrix-version.h", cname = "matrix_glib_check_version")]
public bool glib_check_version(uint required_major,
uint required_minor,