Nick Bowler [Thu, 6 Feb 2020 05:05:59 +0000 (00:05 -0500)]
Expand the interface implementation test cases.
Test interface implementation for both dynamic and static types,
and test implementing the same interface in two classes, when one
class derives from another.
The cases where a dynamic class derives from another and both
implement the same interface are currently xfailing, as this
functionality is actually busted.
Nick Bowler [Tue, 4 Feb 2020 05:12:51 +0000 (00:12 -0500)]
Generate ChangeLog from git at packaging time.
Import the gitlog-to-changelog script from gnulib and add rules to
generate an up-to-date changelog from the git history, if available,
when running 'make dist'.
The ChangeLog is otherwise taken from srcdir as usual, so that
modified versions can be prepared from a release tarball without
requiring the full git history. In this scenario, the ChangeLog
would have to be manually edited.
In case the ChangeLog generation fails, a distcheck-hook is added to
hopefully catch issues before releasing tarballs with a broken
ChangeLog.
Nick Bowler [Mon, 25 Feb 2019 04:56:34 +0000 (23:56 -0500)]
Add support for simple dynamic types.
Defining types in runtime-loaded modules requires a slightly different
get_type implementation, and the type registration is done explicitly
using a different API. It's an extra pile of GObject boilerplate which
is a good fit for GOB to generate.
Add a (dynamic) flag which can be put on any class definition which
causes gob to spit out these alternate implementations.
Nick Bowler [Thu, 21 Feb 2019 16:26:58 +0000 (11:26 -0500)]
Pull in dxcommon for library tests.
Use the glib tests from dxcommon and hook up an initial Autotest-based
test suite which attempts to replicate the functionality of the old
(very basic) test functions.
Nick Bowler [Thu, 21 Feb 2019 16:15:06 +0000 (11:15 -0500)]
Build with libtool.
We link against glib, which is built using libtool, so using libtool
ourselves gives better results "out of the box". For example, if glib
is installed to a non-standard location libtool will automatically add
appropriate rpath options when linking.
Nick Bowler [Tue, 19 Feb 2019 21:40:10 +0000 (16:40 -0500)]
Modernize build system a bit.
Mostly rewrite the build system bits with the following changes:
- Convert to a non-recursive Automake setup.
- Convert to standard Automake variables where practical.
- Add rules to regenerate treefuncs as required.
- Avoid BUILT_SOURCES by adding accurate prerequisites.
- Remove NOINSTGLOB functionality as it seems pointless.
- Properly hook generated HTML documentation into Automake.
- Remove test bits for now, will be reintroduced later.
- Simplify configure.ac.