mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-02-03 23:00:26 +01:00
Improve backend .pc files generation:
- Add all non-pkgconfig libs to Libs.private in cairo.pc - Make cairo-xlib-xrender.pc Require cairo-xlib.pc
This commit is contained in:
parent
973d3a3d14
commit
f79a9f5a52
4 changed files with 39 additions and 26 deletions
56
configure.in
56
configure.in
|
|
@ -122,6 +122,7 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
|
|||
$1[]_LIBS=""
|
||||
$1[]_NONPKGCONFIG_CFLAGS=""
|
||||
$1[]_NONPKGCONFIG_LIBS=""
|
||||
$1[]_BASE=cairo
|
||||
$6
|
||||
cairo_cv_backend_[]$1[]_use=$use_[]$1
|
||||
cairo_cv_backend_[]$1[]_requires=$[]$1[]_REQUIRES
|
||||
|
|
@ -129,15 +130,25 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
|
|||
cairo_cv_backend_[]$1[]_libs=$[]$1[]_LIBS
|
||||
cairo_cv_backend_[]$1[]_nonpkgconfig_cflags=$[]$1[]_NONPKGCONFIG_CFLAGS
|
||||
cairo_cv_backend_[]$1[]_nonpkgconfig_libs=$[]$1[]_NONPKGCONFIG_LIBS
|
||||
cairo_cv_backend_[]$1[]_base=$[]$1[]_BASE
|
||||
AC_MSG_CHECKING([whether cairo's $2 backend could be enabled])])
|
||||
|
||||
# split the backend spec into its components
|
||||
use_[]$1=$cairo_cv_backend_[]$1[]_use
|
||||
$1[]_REQUIRES=$cairo_cv_backend_[]$1[]_requires
|
||||
$1[]_CFLAGS=$cairo_cv_backend_[]$1[]_cflags
|
||||
$1[]_LIBS=$cairo_cv_backend_[]$1[]_libs
|
||||
$1[]_NONPKGCONFIG_CFLAGS=$cairo_cv_backend_[]$1[]_nonpkgconfig_cflags
|
||||
$1[]_NONPKGCONFIG_LIBS=$cairo_cv_backend_[]$1[]_nonpkgconfig_libs
|
||||
$1[]_BASE=$cairo_cv_backend_[]$1[]_base
|
||||
|
||||
$1[]_REQUIRES="$cairo_cv_backend_[]$1[]_requires "
|
||||
$1[]_CFLAGS="$cairo_cv_backend_[]$1[]_cflags "
|
||||
$1[]_LIBS="$cairo_cv_backend_[]$1[]_libs "
|
||||
$1[]_NONPKGCONFIG_CFLAGS="$cairo_cv_backend_[]$1[]_nonpkgconfig_cflags "
|
||||
$1[]_NONPKGCONFIG_LIBS="$cairo_cv_backend_[]$1[]_nonpkgconfig_libs "
|
||||
|
||||
# null the ones that only have space
|
||||
test "x$$1[]_REQUIRES" = "x " && $1[]_REQUIRES=""
|
||||
test "x$$1[]_CFLAGS" = "x " && $1[]_CFLAGS=""
|
||||
test "x$$1[]_LIBS" = "x " && $1[]_LIBS=""
|
||||
test "x$$1[]_NONPKGCONFIG_CFLAGS" = "x " && $1[]_NONPKGCONFIG_CFLAGS=""
|
||||
test "x$$1[]_NONPKGCONFIG_LIBS" = "x " && $1[]_NONPKGCONFIG_LIBS=""
|
||||
|
||||
case $enable_[]$1 in
|
||||
yes)
|
||||
|
|
@ -152,16 +163,19 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
|
|||
;;
|
||||
esac
|
||||
if test "x$use_[]$1" = xyes; then
|
||||
CAIRO_FEATURES="$CAIRO_FEATURES $4"
|
||||
CAIRO_REQUIRES="$CAIRO_REQUIRES $$1_REQUIRES"
|
||||
CAIRO_CFLAGS="$CAIRO_CFLAGS $$1_CFLAGS $$1_NONPKGCONFIG_CFLAGS"
|
||||
CAIRO_LIBS="$CAIRO_LIBS $$1_LIBS $$1_NONPKGCONFIG_LIBS"
|
||||
CAIRO_FEATURES="$4 $CAIRO_FEATURES"
|
||||
CAIRO_REQUIRES="$$1_REQUIRES$CAIRO_REQUIRES"
|
||||
CAIRO_CFLAGS="$$1_NONPKGCONFIG_CFLAGS$$1_CFLAGS$CAIRO_CFLAGS"
|
||||
CAIRO_LIBS="$$1_NONPKGCONFIG_LIBS$$1_LIBS$CAIRO_LIBS"
|
||||
CAIRO_NONPKGCONFIG_CFLAGS="$$1_NONPKGCONFIG_CFLAGS$CAIRO_NONPKGCONFIG_CFLAGS"
|
||||
CAIRO_NONPKGCONFIG_LIBS="$$1_NONPKGCONFIG_LIBS$CAIRO_NONPKGCONFIG_LIBS"
|
||||
outfile=`echo src/cairo-$1.pc | sed -e s/_/-/g`
|
||||
AC_MSG_NOTICE([creating $outfile])
|
||||
mkdir -p src
|
||||
AS_IF([sed \
|
||||
-e "s,@backend_name@,$1,g" \
|
||||
-e "s,@Backend_Name@,$2,g" \
|
||||
-e "s,@BACKEND_BASE@,$$1_BASE,g" \
|
||||
-e "s,@BACKEND_REQUIRES@,$$1_REQUIRES,g" \
|
||||
-e "s%@BACKEND_NONPKGCONFIG_LIBS@%$$1_NONPKGCONFIG_LIBS%g" \
|
||||
-e "s,@BACKEND_NONPKGCONFIG_CFLAGS@,$$1_NONPKGCONFIG_CFLAGS,g" \
|
||||
|
|
@ -181,8 +195,10 @@ AC_DEFUN([CAIRO_BACKEND_ENABLE],
|
|||
|
||||
CAIRO_FEATURES=""
|
||||
CAIRO_REQUIRES=""
|
||||
CAIRO_CFLAGS=""
|
||||
CAIRO_LIBS="-lm"
|
||||
CAIRO_NONPKGCONFIG_CFLAGS=""
|
||||
CAIRO_NONPKGCONFIG_LIBS="-lm"
|
||||
CAIRO_CFLAGS=$CAIRO_NONPKGCONFIG_CFLAGS
|
||||
CAIRO_LIBS=$CAIRO_NONPKGCONFIG_LIBS
|
||||
|
||||
dnl ===========================================================================
|
||||
|
||||
|
|
@ -191,8 +207,8 @@ CAIRO_BACKEND_ENABLE(xlib, Xlib, xlib, XLIB_SURFACE, auto, [
|
|||
if test "x$no_x" = xyes; then
|
||||
use_xlib="no (requires Xlib)"
|
||||
else
|
||||
xlib_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
xlib_CFLAGS=$X_CFLAGS
|
||||
xlib_NONPKGCONFIG_LIBS="$X_PRE_LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
|
||||
xlib_NONPKGCONFIG_CFLAGS=$X_CFLAGS
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -204,14 +220,13 @@ CAIRO_BACKEND_ENABLE(xlib_xrender, Xlib Xrender, xlib-xrender, XLIB_XRENDER_SURF
|
|||
use_xlib_xrender=$use_xlib
|
||||
if test "x$use_xlib_xrender" = xyes; then
|
||||
dnl Check for Xrender header files if the Xrender package is not installed:
|
||||
xlib_xrender_BASE=cairo-xlib
|
||||
xlib_xrender_REQUIRES="xrender >= 0.6"
|
||||
PKG_CHECK_MODULES(xlib_xrender, $xlib_xrender_REQUIRES, ,
|
||||
[xlib_xrender_REQUIRES=""
|
||||
AC_CHECK_HEADER(X11/extensions/Xrender.h,
|
||||
[xlib_xrender_LIBS="-lXrender"],
|
||||
[use_xlib_xrender="no (requires Xrender http://freedesktop.org/Software/xlibs)"])])
|
||||
xlib_xrender_CFLAGS="$xlib_CFLAGS $xlib_xrender_CFLAGS"
|
||||
xlib_xrender_LIBS="$xlib_LIBS $xlib_xrender_LIBS"
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -407,11 +422,6 @@ CAIRO_BACKEND_ENABLE(ft, FreeType font, freetype, FT_FONT, auto, [
|
|||
have_ft_load_sfnt_table=no
|
||||
|
||||
if test "x$use_ft" = "xyes"; then
|
||||
FREETYPE_CONFIG_CFLAGS=$cairo_cv_ft_config_CFLAGS
|
||||
FREETYPE_CONFIG_LIBS=$cairo_cv_ft_config_LIBS
|
||||
AC_SUBST(FREETYPE_CONFIG_CFLAGS)
|
||||
AC_SUBST(FREETYPE_CONFIG_LIBS)
|
||||
|
||||
temp_save_libs="$LIBS"
|
||||
temp_save_cflags="$CFLAGS"
|
||||
LIBS="$LIBS $ft_LIBS"
|
||||
|
|
@ -447,7 +457,7 @@ CAIRO_BACKEND_ENABLE(ps, PostScript, ps, PS_SURFACE, auto, [], [
|
|||
[AC_CHECK_HEADER(zlib.h, [],
|
||||
[use_ps="no (requires zlib http://www.gzip.org/zlib/)"])],
|
||||
[use_ps="no (requires zlib http://www.gzip.org/zlib/)"])
|
||||
ps_LIBS=-lz
|
||||
ps_NONPKGCONFIG_LIBS=-lz
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -462,7 +472,7 @@ CAIRO_BACKEND_ENABLE(pdf, PDF, pdf, PDF_SURFACE, auto, [], [
|
|||
[AC_CHECK_HEADER(zlib.h, [],
|
||||
[use_ps="no (requires zlib http://www.gzip.org/zlib/)"])],
|
||||
[use_ps="no (requires zlib http://www.gzip.org/zlib/)"])
|
||||
pdf_LIBS=-lz
|
||||
pdf_NONPKGCONFIG_LIBS=-lz
|
||||
fi
|
||||
])
|
||||
|
||||
|
|
@ -533,6 +543,8 @@ AC_SUBST(WARN_CFLAGS)
|
|||
CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS"
|
||||
|
||||
AC_SUBST(CAIRO_REQUIRES)
|
||||
AC_SUBST(CAIRO_NONPKGCONFIG_CFLAGS)
|
||||
AC_SUBST(CAIRO_NONPKGCONFIG_LIBS)
|
||||
AC_SUBST(CAIRO_CFLAGS)
|
||||
AC_SUBST(CAIRO_LIBS)
|
||||
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ pkgconfig_DATA = cairo.pc $(backend_pkgconfigs)
|
|||
DISTCLEANFILES = $(backend_pkgconfigs)
|
||||
EXTRA_DIST = cairo-backend.pc.in
|
||||
$(backend_pkgconfigs): $(top_srcdir)/configure
|
||||
$(top_builddir)/config.status --recheck
|
||||
cd $(top_builddir) && ./config.status --recheck
|
||||
|
||||
$(top_builddir)/config.h: $(top_srcdir)/config.h.in
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h
|
||||
|
|
|
|||
|
|
@ -7,6 +7,6 @@ Name: @backend_name@
|
|||
Description: @Backend_Name@ backend for cairo graphics library
|
||||
Version: @VERSION@
|
||||
|
||||
Requires: cairo @BACKEND_REQUIRES@
|
||||
Requires: @BACKEND_BASE@ @BACKEND_REQUIRES@
|
||||
Libs: @BACKEND_NONPKGCONFIG_LIBS@
|
||||
Cflags: -I${includedir}/cairo @BACKEND_NONPKGCONFIG_CFLAGS@
|
||||
|
|
|
|||
|
|
@ -8,5 +8,6 @@ Description: Multi-platform 2D graphics library
|
|||
Version: @VERSION@
|
||||
|
||||
@PKGCONFIG_REQUIRES@: @CAIRO_REQUIRES@
|
||||
Libs: @FREETYPE_CONFIG_LIBS@ -L${libdir} -lcairo
|
||||
Cflags: @FREETYPE_CONFIG_CFLAGS@ -I${includedir}/cairo
|
||||
Libs: -L${libdir} -lcairo
|
||||
Libs.private: @CAIRO_NONPKGCONFIG_LIBS@
|
||||
Cflags: -I${includedir}/cairo
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue