Commit Graph

50 Commits

Author SHA1 Message Date
Emmanuele Bassi
2a660fa298 Fully rework the conformance test suite
The current conformance test suite is suboptimal in many ways.

All tests are built into the same binary, which makes adding new tests,
builting tests, and running groups of tests much more awkward than it
needs to be. The first issue, especially, raises the bar of contribution
in a significant way, while the other two take their toll on the
maintainer. All of these changes were introduced back when we had both
Clutter and Cogl tests in tree, and because we were building the test
suite for every single change; since then, Cogl moved out of tree with
all its tests, and we build the conformance test suite only when running
the `check` make target.

This admittedly large-ish commit changes the way the conformance test
suite works, taking advantage of the changes in the GTest API and test
harness.

First of all, all tests are now built separately, using their own test
suite as defined by each separate file. All tests run under the TAP
harness provided by GTest and Automake, to gather a proper report using
the Test Anything Protocol without using the `gtester` harness and the
`gtester-report` script. We also use the Makefile rules provided by GLib
to vastly simplify the build environment for the conformance test suite.

On top of the changes for the build and harness, we also provide new API
for creating and running test suites for Clutter. The API is public,
because the test suite has to use it, but it's minimal and mostly
provides convenience wrappers around GTest that make writing test units
for Clutter easier.

This commit disables all tests in the conformance test suite, as well as
moving the data files outside of the tests/data directory; the next few
commits will re-establish the conformance test suite separately so we
can check that everything works in a reliable way.
2013-12-12 18:51:11 +00:00
Emmanuele Bassi
c9583792cb build: Fix up the silent rules prefixes
Automake increased the whitespace, so we need to do that for our "I
Can't Believe It's Not Autotool™" rules.
2013-05-15 15:07:15 +01:00
Emmanuele Bassi
700a9be836 build: Clean output of the release rules 2012-06-29 11:21:06 +01:00
Emmanuele Bassi
c4acae7752 build: Remove gcov from the build
We want to switch to lcov, so let's start with a clean slate.
2012-06-19 14:55:10 +01:00
Emmanuele Bassi
6597245912 build: Remove tarball upload to clutter-project.org
Without being on the Intel network, you can't upload the tarball on
clutter-project.org, so it'll have to be done manually from now on.
2012-06-19 09:38:01 +01:00
Emmanuele Bassi
9d46c47997 build: Fix up the release rules
Highlight actions and errors, and update the release message.
2011-09-06 08:32:07 +01:00
Emmanuele Bassi
2fc8fa82f0 build: Fix up the tarball target used when releasing 2011-07-04 22:13:23 +01:00
Emmanuele Bassi
86d96dbcc1 build: Put back ChangeLog.pre-git-import to unbreak distcheck 2011-06-13 23:15:17 +01:00
Emmanuele Bassi
e8bd46b82b build: Fix up ChangeLog build generation
Since the pre-git-import ChangeLog has been moved, we need to put it
back in the list temporarily when generating the rest.
2011-06-13 17:41:52 +01:00
Emmanuele Bassi
fbdc967575 release rules: Add note for snapshots 2011-06-13 16:32:24 +01:00
Emmanuele Bassi
161e64aae7 build: Fix typo in the docs URI variable name 2011-04-07 15:09:15 +01:00
Emmanuele Bassi
280165333d build: Cosmetic fixes for release targets
• Use $(SED) and $(GREP) consistently
• Do not point to the template README.in
• Eliminate the '===' separator in the NEWS extractor
• List all download URIs for the tarballs
2011-04-05 11:24:03 +01:00
Emmanuele Bassi
144aa4d9ba build: Fix remote docs URI in the release-message 2011-04-04 23:16:46 +01:00
Emmanuele Bassi
b8047b5471 build: Generate the release announcement
Update the release-message target to generate the full release
announcement out of the standard blurb and the NEWS file. We use
a pretty evil sed incantation, courtesy of Neil Roberts.
2011-04-04 22:34:10 +01:00
Emmanuele Bassi
6aa0919ba6 build: Fix typo in Makefile.am.release 2011-04-04 15:11:20 +01:00
Emmanuele Bassi
564765c45c build: Update the release rules 2011-04-01 16:31:49 +01:00
Emmanuele Bassi
f4ca82fc6d build: Remove MAINTAINERCLEANFILES from ChangeLog rules 2011-02-23 00:07:12 +00:00
Emmanuele Bassi
f5c240a50b build: Use all-am, not all as the gitignore target 2011-02-21 12:46:34 +00:00
Emmanuele Bassi
8c7298b0c1 build: Check NEWS file during release, not distcheck
The check-news option in configure.ac conflicts with the idea of using a
buildbot to do a distcheck.

Since we're doing some validation on the state of the build during the
release-check phase we should add the NEWS file check there.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2468
2010-12-09 13:49:01 +00:00
Emmanuele Bassi
cd7df1b421 build: Fix the release-message target
Generate the SHA256 checksum file during release-upload and then copy it
to the build directory.
2010-10-04 15:47:53 +01:00
Emmanuele Bassi
ba09e9c6df build: Generate a stub announcement email when releasing 2010-10-03 17:21:10 +01:00
Emmanuele Bassi
96db215ed3 build: Automate the release process 2010-10-03 14:54:36 +01:00
Emmanuele Bassi
5e57539f3b build: Update introspection.m4 2010-09-07 21:10:40 +01:00
Emmanuele Bassi
287b3ba542 Makefile.am.enums: Forgot an AM_V_GEN 2010-09-07 15:23:35 +01:00
Emmanuele Bassi
368b24b420 build: Fix up rules for enums and marshallers
• Use addprefix instead of manually concatenating $(srcdir)
• Use AM_V_GEN instead of QUIET_GEN, to avoid inter-dependencies
• Do basic checks on GLIB_MKENUMS and GLIB_GENMARSHAL being defined
• Do checks on the required variables being defined
2010-09-07 15:01:50 +01:00
Damien Lespiau
d7e5e9247b build: Make the generated glib-mkenums c file depend on the headers
What happens now if you rename an enum inside a header:

  • glib-mkenums generates the header file
  • a comparison is made with the previous version of the heade is made
    and no difference is found as you don't remove or create enums
  • the compilation of the generated mkenums c file fails because it has
    not been regenerated with the new, renamed, enum.

That's why the generated clutter-enum-types.c needs to depend on the
headers too.

Of course such scenario should not happen in stable releases as enums
are part of the API, but renaming enums happens in the development cycle
and create compilation errors (very annoying when doing git bissects for
instance).
2010-09-07 14:17:18 +01:00
Emmanuele Bassi
50f4bfd7f7 build: Remove dolt remnants
We don't use Dolt any more, since we depend on libtool 2.2.
2010-08-17 12:22:51 +01:00
Emmanuele Bassi
3142b15a9f build: Use maintainer-clean for the ignore files removal
Instead of distclean.
2010-08-15 18:42:54 +01:00
Emmanuele Bassi
94c8635d0f build: Autogenerate more ignore files
The tests/accessibility, tests/micro-bench and the examples directory
in the coobook create a lot of non-installed binaries. Since we know who
they are, and we ignore them, we can auto-generate the ignore files as
well.

The rest of Clutter is covered by the main ignore file.
2010-08-14 08:43:16 +01:00
Emmanuele Bassi
2bf01dd959 build: Make the introspection generation quiet (again) 2010-08-12 09:03:58 +01:00
Emmanuele Bassi
292597a9e1 build: Use AS_ALL_LINGUAS
The AS_ALL_LINGUAS m4 macro allows configure-time generation of the
ALL_LINGUAS variable from the translations inside po/ instead of using
the LINGUAS file.
2010-07-15 11:36:25 +01:00
Emmanuele Bassi
5f6a3d2543 build: Remove shave files from EXTRA_DIST
We don't use Shave any more, and require automake 1.11 instead.
2010-05-24 15:34:43 +01:00
Emmanuele Bassi
755625c758 build: Clean up build dependencies
• Depend on autoconf 2.63
• Depend on automake 1.11
• Depend on gobject-introspection 0.6.7
• Depend on gtk-doc 1.13
• Remove Shave from the build
2010-05-05 11:52:20 +01:00
Emmanuele Bassi
a076e0e11d build: Add a script to format gcov report lines
Instead of using echo let's try Perl and the format() built-in.
2010-01-13 17:15:06 +00:00
Emmanuele Bassi
948db40c87 Add gcov support to the build
Using gcov it's possible to get a coverage report, that is a break down
of how much the exposed API is exercised by the conformance test suite.
2010-01-13 17:15:06 +00:00
Emmanuele Bassi
d11343532d build: Generate per-cycle ChangeLog files
We should generate a ChangeLog for each minor version cycle, starting
from the Git import date (since before that we used ChangeLog-style
commit messages that don't really look good with the Git ones).

For this reason we can take Cairo's Makefile.am.changelog file and,
after tweaking it to fit our use case, let it generate the correct
ChangeLogs on dist.
2009-11-18 14:43:46 +00:00
Emmanuele Bassi
18e9d0db6f build: Move ChangeLog rules in a separate file
The ChangeLog creation rules should be moved to their own file, to
make it easier to fix or change them in the future.
2009-11-18 14:43:46 +00:00
Damien Lespiau
ac9f65cb92 build: Make the glib-mkenums generated files depend on their templates
With this, if one changes the underlying template files, we run
glib-mkenums again to generate updated glib_enum_[ch] files.

Reviewed-by: Emmanuele Bassi <ebassi@linux.intel.com>
2009-11-09 16:54:03 +00:00
Robert Bragg
35f11d863c [build] more Makefile.am.{enums,marshal} fixes for out of tree builds
for the marshal files $(srcdir) was getting prefixed twice since my last
commit (2cc88f1140) since it was already being prefixed including
Makefile.am.  The problem with prefixing it in the includer file though is
that the Make variable substitutions like :.list=.h mean we end up
generating into the $(srcdir).  This removes the prefix added in
clutter/Makefile.am

We were also missing a $(srcdir) prefix when setting EXTRA_DIST
2009-10-16 18:46:44 +01:00
Robert Bragg
2cc88f1140 [build] fix Makefile.am.{enums,marshal} to support out of tree builds
Out of tree builds were broken in commit 46b736f42e since we didn't
explicitly use $(srcdir) to find the input files for glib-mkenums and
glib-genmarshal.
2009-10-15 19:53:56 +01:00
Emmanuele Bassi
46b736f42e build: Move marshallers and enum types rules out
The rules to create signal marshallers and enumeration GTypes are
usually copied and pasted all over different projects, though they
are pretty generic and, given a little bit of parametrization, can
be put in separate Makefile.am files and included whenever needed.
2009-10-14 09:07:11 +01:00
Emmanuele Bassi
ecfa0c4f92 [build] Split out the custom silent rules
The silent rules we use for custom targets should be moved into a
separate Makefile.am that gets included from all the others.
2009-09-16 17:47:59 +01:00
Emmanuele Bassi
8728afa2ee [build] Add as-compiler-flag.m4 to the dist 2009-06-09 12:45:23 +01:00
Emmanuele Bassi
54b5d07682 [build] Add AS_COMPILER_FLAGS
Use the AS_COMPILER_FLAGS to check whether the maintainer compiler flags
we use are supported; this should fail gracefully and only use the ones
that the compiler actually understands.

Fixes bug:

  http://bugzilla.openedhand.com/show_bug.cgi?id=1639
2009-06-08 02:22:26 +01:00
Damien Lespiau
168499742a Update shave
This update fixes a few issues:
  - the use of shave with mingw32 bash on windows,
  - fix the unmangling of libtool names
  - fix build on solaris
  - add an --enable/disable-shave configure option (while still
    defaulting to enabled)
2009-03-11 18:44:33 +00:00
Emmanuele Bassi
21aa09748c Add build machinery for gobject-introspection data
configure.ac: Check for gobject-introspection

build/introspection.m4: Include the file that defines the
GOBJECT_CHECK_INTROSPECTION m4 macro in case we want to disable
the introspection data generation.

clutter/json/Makefile.am: Build the .gir for "ClutterJson"
  (json-glib as part of the Clutter library)

clutter/Makefile.am: Build the .gir for clutter, compile the
  Clutter and ClutterJson girs into typelibs, and install them.
  Also move GCC_FLAGS from $(INCLUDES) to $(AM_CFLAGS) since it includes
  non-preprocessor flag like -Wall.

See also:

  http://bugzilla.openedhand.com/show_bug.cgi?id=1450

Based on a patch by: Owen W. Taylor <otaylor@fishsoup.net>

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2009-02-20 14:39:51 +00:00
Emmanuele Bassi
01cf52c44c [build] Update the EXTRA_DIST list
Remove the files we don't ship or have, to avoid distcheck failing.
2009-02-19 17:22:21 +00:00
Damien Lespiau
3794324e8b [build] Fix dist for the newly introduced m4 macro directory 2009-02-19 10:59:50 +00:00
Damien Lespiau
21768fb957 [build] Add dolt
From the homepage (http://dolt.freedesktop.org): Dolt provides a drop-in
replacement for libtool that significantly decreases compile times on
the platforms it supports.
2009-02-18 17:38:34 +00:00
Damien Lespiau
8eec75efde [build] Beautify autotools' output
Use shave (http://git.lespiau.name/cgit/shave) to make compilation more
human friendly.
2009-02-18 17:38:34 +00:00