Commit 02fa26f4cdb6b2da96afddb56d4482c67ba6ff78

Werner Lemberg 2022-01-03T17:48:36

[builds/unix] Handle 'librsvg' for demo programs. * builds/unix/configure.raw: Check for 'librsvg'. (LIB_CLOCK_GETTIME): Don't call `AC_SUBST` on this but on... (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables. * builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): Replaced by... (FT_DEMO_CFLAGS, FT_DEMO_LDFLAGS): ... these two new variables.

diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw
index fc32172..08ec21a 100644
--- a/builds/unix/configure.raw
+++ b/builds/unix/configure.raw
@@ -514,19 +514,36 @@ if test x"$with_brotli" = xyes -a "$have_brotli" = no; then
 fi
 
 
-# check for librt
+# Checks for the demo programs.
 #
-# We need `clock_gettime' for the `ftbench' demo program.
+# FreeType doesn't need this.  However, since the demo program repository
+# doesn't come with a `configure` script of its own, we integrate the tests
+# here for simplicity.
+
+# We need `clock_gettime` from 'librt' for the `ftbench` demo program.
 #
-# The code is modeled after gnulib's file `clock_time.m4', ignoring
+# The code is modeled after gnulib's file `clock_time.m4`, ignoring
 # very old Solaris systems.
-
 LIB_CLOCK_GETTIME=
 AC_SEARCH_LIBS([clock_gettime],
                [rt],
                [test "$ac_cv_search_clock_gettime" = "none required" \
                 || LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime])
-AC_SUBST([LIB_CLOCK_GETTIME])
+
+# 'librsvg' is needed to demonstrate SVG support.
+PKG_CHECK_MODULES([LIBRSVG], [librsvg-2.0],
+                  [have_librsvg="yes (pkg-config)"], [have_librsvg=no])
+
+FT_DEMO_CFLAGS=""
+FT_DEMO_LDFLAGS="$LIB_CLOCK_GETTIME"
+
+if test "$have_librsvg" != no; then
+  FT_DEMO_CFLAGS="$FT_DEMO_CFLAGS $LIBRSVG_CFLAGS"
+  FT_DEMO_LDFLAGS="$FT_DEMO_LDFLAGS $LIBRSVG_LIBS"
+fi
+
+AC_SUBST([FT_DEMO_CFLAGS])
+AC_SUBST([FT_DEMO_LDFLAGS])
 
 
 # Some options handling SDKs/archs in CFLAGS should be copied
diff --git a/builds/unix/unix-cc.in b/builds/unix/unix-cc.in
index 13f1d14..d5ae467 100644
--- a/builds/unix/unix-cc.in
+++ b/builds/unix/unix-cc.in
@@ -106,9 +106,7 @@ endif
 
 # Linker flags.
 #
-LDFLAGS           := @LDFLAGS@
-LIB_CLOCK_GETTIME := @LIB_CLOCK_GETTIME@  # for ftbench
-
+LDFLAGS := @LDFLAGS@
 
 # export symbols
 #
@@ -118,11 +116,15 @@ EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym
 CCexe        := $(CCraw_build)	# used to compile `apinames' only
 
 
-# Library linking
+# Library linking.
 #
 LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
                           -rpath $(libdir) -version-info $(version_info) \
                           $(LDFLAGS) -no-undefined \
                           -export-symbols $(EXPORTS_LIST)
 
+# For the demo programs.
+FT_DEMO_CFLAGS := @FT_DEMO_CFLAGS@
+FT_DEMO_LDFLAGS := @FT_DEMO_LDFLAGS@
+
 # EOF