Currently, spice-gtk tests are disabled if build of static libraries is disabled. This commit introduces an intermediate spice-client-glib-impl.la convenience library which does not have its internal symbols hidden, and can thus be used instead of static linking when building the tests. The installed spice-client-glib-2.0.la library is just this library with the version script applied to hide non exported symbols.
This was inspired by similar work Fabiano Fidencio did in libosinfo: https://www.redhat.com/archives/libosinfo/2018-November/msg00231.html Signed-off-by: Christophe Fergeau <cferg...@redhat.com> --- Makefile.am | 6 +----- configure.ac | 2 -- src/Makefile.am | 34 +++++++++++++++++++--------------- tests/Makefile.am | 4 ++-- 4 files changed, 22 insertions(+), 24 deletions(-) diff --git a/Makefile.am b/Makefile.am index e9dfbe4d..68810075 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,11 +1,7 @@ ACLOCAL_AMFLAGS = -I m4 NULL = -SUBDIRS = subprojects/spice-common src man po doc data tools - -if BUILD_TESTS -SUBDIRS += tests -endif +SUBDIRS = subprojects/spice-common src man po doc data tools tests if HAVE_INTROSPECTION if WITH_VALA diff --git a/configure.ac b/configure.ac index e686d76a..69c03dab 100644 --- a/configure.ac +++ b/configure.ac @@ -571,8 +571,6 @@ AC_SUBST(SPICE_GTK_REQUIRES) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) -AM_CONDITIONAL([BUILD_TESTS], [test x"$enable_static" = xyes]) - AC_OUTPUT([ Makefile spice-client-glib-2.0.pc diff --git a/src/Makefile.am b/src/Makefile.am index 1bb6f9bf..b876530c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -44,6 +44,7 @@ acldir = $(ACL_HELPER_DIR) acl_PROGRAMS = spice-client-glib-usb-acl-helper endif +noinst_LTLIBRARIES = libspice-client-glib-impl.la lib_LTLIBRARIES = libspice-client-glib-2.0.la if WITH_GTK @@ -175,7 +176,9 @@ libspice_client_glib_2_0_la_LDFLAGS = \ $(GLIB_SYMBOLS_LDFLAGS) \ $(NULL) -libspice_client_glib_2_0_la_LIBADD = \ +libspice_client_glib_2_0_la_LIBADD = libspice-client-glib-impl.la + +libspice_client_glib_impl_la_LIBADD = \ $(SPICE_COMMON_DIR)/common/libspice-common.la \ $(SPICE_COMMON_DIR)/common/libspice-common-client.la \ $(GLIB2_LIBS) \ @@ -208,7 +211,8 @@ else USB_ACL_HELPER_SRCS = endif -libspice_client_glib_2_0_la_SOURCES = \ +libspice_client_glib_2_0_la_SOURCES = +libspice_client_glib_impl_la_SOURCES = \ bio-gio.c \ bio-gio.h \ spice-audio.c \ @@ -270,7 +274,7 @@ libspice_client_glib_2_0_la_SOURCES = \ spice-glib-main.c \ $(NULL) -nodist_libspice_client_glib_2_0_la_SOURCES = \ +nodist_libspice_client_glib_impl_la_SOURCES = \ spice-glib-enums.c \ spice-marshal.c \ spice-marshal.h \ @@ -308,49 +312,49 @@ nodist_libspice_client_glibinclude_HEADERS = \ $(NULL) if HAVE_PULSE -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ spice-pulse.c \ spice-pulse.h \ $(NULL) endif if HAVE_GSTAUDIO -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ spice-gstaudio.c \ spice-gstaudio.h \ $(NULL) endif if HAVE_BUILTIN_MJPEG -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ channel-display-mjpeg.c \ $(NULL) endif if HAVE_GSTVIDEO -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ channel-display-gst.c \ $(NULL) endif if WITH_PHODAV -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ giopipe.c \ giopipe.h \ $(NULL) endif if WITH_UCONTEXT -libspice_client_glib_2_0_la_SOURCES += continuation.h continuation.c coroutine_ucontext.c +libspice_client_glib_impl_la_SOURCES += continuation.h continuation.c coroutine_ucontext.c endif if WITH_WINFIBER -libspice_client_glib_2_0_la_SOURCES += coroutine_winfibers.c +libspice_client_glib_impl_la_SOURCES += coroutine_winfibers.c endif if WITH_GTHREAD -libspice_client_glib_2_0_la_SOURCES += coroutine_gthread.c -libspice_client_glib_2_0_la_LIBADD += $(GTHREAD_LIBS) +libspice_client_glib_impl_la_SOURCES += coroutine_gthread.c +libspice_client_glib_impl_la_LIBADD += $(GTHREAD_LIBS) endif @@ -363,10 +367,10 @@ WIN_USB_FILES= \ if OS_WIN32 if WITH_USBREDIR -libspice_client_glib_2_0_la_SOURCES += \ +libspice_client_glib_impl_la_SOURCES += \ $(WIN_USB_FILES) endif -libspice_client_glib_2_0_la_LIBADD += -lws2_32 -lgdi32 +libspice_client_glib_impl_la_LIBADD += -lws2_32 -lgdi32 endif if WITH_POLKIT @@ -397,7 +401,7 @@ install-data-hook: endif -$(libspice_client_glib_2_0_la_SOURCES): spice-glib-enums.h spice-marshal.h +$(libspice_client_glib_impl_la_SOURCES): spice-glib-enums.h spice-marshal.h if WITH_GTK $(libspice_client_gtk_3_0_la_SOURCES): spice-glib-enums.h spice-widget-enums.h diff --git a/tests/Makefile.am b/tests/Makefile.am index bfa43a37..1bb0a259 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -30,10 +30,10 @@ AM_CPPFLAGS = \ -DG_LOG_DOMAIN=\"GSpice\" \ $(NULL) -AM_LDFLAGS = $(GIO_LIBS) -static +AM_LDFLAGS = $(GIO_LIBS) LDADD = \ - $(top_builddir)/src/libspice-client-glib-2.0.la \ + $(top_builddir)/src/libspice-client-glib-impl.la\ $(NULL) test_util_SOURCES = util.c -- 2.19.1 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/spice-devel