4ebc55f2b3
In order to minimize the amount of breakage, while at the same time making it easier to make backward incompatible changes needed to continue turning libmutter into a capable Wayland compositor, make the libmutter and friends (libmutter-clutter, libmutter-cogl*) parallel installable by adding a version number to the name. This changes various filenames, for example what previously was libmutter.so is now libmutter-0.so (assuming the version for now is 0), and libmutter-clutter-1.0.so is now libmutter-clutter-0.so. The pkg-config filenames and GObject introspection has been renamed to reflect this as well. This enables a downstream compositor rely on a specific version of the libmutter API, while gracefully handling API/ABI changes by having to update to the new version at their own pace. https://bugzilla.gnome.org/show_bug.cgi?id=777317
85 lines
2.5 KiB
Makefile
85 lines
2.5 KiB
Makefile
NULL =
|
|
|
|
noinst_PROGRAMS = test-unit
|
|
|
|
test_unit_SOURCES = test-unit-main.c
|
|
|
|
SHEXT = $(EXEEXT)
|
|
|
|
# For convenience, this provides a way to easily run individual unit tests:
|
|
.PHONY: wrappers clean-wrappers
|
|
|
|
wrappers: stamp-test-unit
|
|
@true
|
|
stamp-test-unit: Makefile test-unit$(EXEEXT)
|
|
@mkdir -p wrappers
|
|
. $(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la ; \
|
|
$(NM) $(top_builddir)/cogl/.libs/"$$dlname"| \
|
|
grep '[DR] _\?unit_test_'|sed 's/.\+ [DR] _\?//' > unit-tests
|
|
@chmod +x $(top_srcdir)/tests/test-launcher.sh
|
|
@( echo "/stamp-test-unit" ; \
|
|
echo "/test-unit$(EXEEXT)" ; \
|
|
echo "*.o" ; \
|
|
echo ".gitignore" ; \
|
|
echo "unit-tests" ; ) > .gitignore
|
|
@for i in `cat unit-tests`; \
|
|
do \
|
|
unit=`echo $$i | sed -e s/_/-/g | sed s/unit-test-//`; \
|
|
echo " GEN $$unit"; \
|
|
( echo "#!/bin/sh" ; echo "$(top_srcdir)/tests/test-launcher.sh $(abs_builddir)/test-unit$(EXEEXT) 'unit_test_' '$$i' \"\$$@\"" ) > $$unit$(SHEXT) ; \
|
|
chmod +x $$unit$(SHEXT); \
|
|
echo "/$$unit$(SHEXT)" >> .gitignore; \
|
|
done \
|
|
&& echo timestamp > $(@F)
|
|
|
|
clean-wrappers:
|
|
@for i in `cat unit-tests`; \
|
|
do \
|
|
unit=`echo $$i | sed -e s/_/-/g | sed s/unit-test-//`; \
|
|
echo " RM $$unit"; \
|
|
rm -f $$unit$(SHEXT) ; \
|
|
done \
|
|
&& rm -f unit-tests \
|
|
&& rm -f stamp-test-unit
|
|
|
|
# NB: BUILT_SOURCES here a misnomer. We aren't building source, just inserting
|
|
# a phony rule that will generate symlink scripts for running individual tests
|
|
BUILT_SOURCES = wrappers
|
|
|
|
# The include of the $(buildir)/cogl directory here is to make it so
|
|
# that tests that directly include Cogl source code for whitebox
|
|
# testing (such as test-bitmask) will still compile
|
|
AM_CPPFLAGS = \
|
|
-I$(top_srcdir) \
|
|
-I$(top_srcdir)/test-fixtures \
|
|
-I$(top_builddir)/cogl
|
|
|
|
AM_CPPFLAGS += \
|
|
-DCOGL_DISABLE_DEPRECATED \
|
|
-DTESTS_DATADIR=\""$(top_srcdir)/tests/data"\" \
|
|
-DCOGL_COMPILATION
|
|
|
|
test_unit_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
|
|
test_unit_LDADD = \
|
|
$(COGL_DEP_LIBS) \
|
|
$(top_builddir)/cogl/libmutter-cogl-$(LIBMUTTER_API_VERSION).la \
|
|
$(LIBM)
|
|
test_unit_LDFLAGS = -export-dynamic
|
|
|
|
# XXX: uncomment when tests get fixed
|
|
#test: wrappers
|
|
# @$(top_srcdir)/tests/run-tests.sh $(abs_builddir)/../config.env $(abs_builddir)/test-unit$(EXEEXT)
|
|
|
|
# XXX: we could prevent the unit test suite from running
|
|
# by simply defining this variable conditionally
|
|
TEST_PROGS = test-unit
|
|
|
|
.PHONY: test
|
|
|
|
DISTCLEANFILES = .gitignore
|
|
|
|
# we override the clean-generic target to clean up the wrappers so
|
|
# we cannot use CLEANFILES
|
|
clean-generic: clean-wrappers
|
|
$(QUIET_RM)rm -f .log
|