diff options
author | Jonathon Jongsma <jjongsma@gnome.org> | 2008-10-10 22:49:56 +0900 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@gnome.org> | 2008-10-10 22:49:56 +0900 |
commit | 4dfea66a05b8eb6c032797678ac98e51e913bb60 (patch) | |
tree | 2390176f940b9e64e9c7a15ec30ec3bc1d128d00 | |
parent | e3ff8518c2b371cd27917ae195ef67a9ad3ea67b (diff) |
Add a bunch of extra .pc files for additional functionality
This is done in a bit of a brute-force method at the moment. I have .pc.in
templates for all possible files. Then I check the underlying cairo-XXX.pc
files and if those exist, I generate the corresponding cairomm-XXX.pc file.
It's not the prettiest solution, but it seems to work.
So now, if you want to just use base cairo functionality, check for cairomm-1.0,
but if you want to use other functionality that requires that you link your
application against other libraries (e.g. freetype, xlib, etc), you should check
for cairomm-ft-1.0, cairomm-xlib-1.0, etc.
-rw-r--r-- | .gitignore | 12 | ||||
-rw-r--r-- | Makefile.am | 23 | ||||
-rw-r--r-- | cairomm-1.0.pc.in | 2 | ||||
-rw-r--r-- | cairomm-ft-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-pdf-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-png-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-ps-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-quartz-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-quartz-font-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-quartz-image-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-svg-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-win32-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-win32-font-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-xlib-1.0.pc.in | 4 | ||||
-rw-r--r-- | cairomm-xlib-xrender-1.0.pc.in | 4 | ||||
-rw-r--r-- | configure.in | 73 |
16 files changed, 152 insertions, 6 deletions
@@ -4,6 +4,18 @@ Makefile.in aclocal.m4 autom4te.cache cairomm-1.0.pc +cairomm-ft-1.0.pc +cairomm-pdf-1.0.pc +cairomm-png-1.0.pc +cairomm-ps-1.0.pc +cairomm-svg-1.0.pc +cairomm-xlib-1.0.pc +cairomm-xlib-xrender-1.0.pc +cairomm-win32-1.0.pc +cairomm-win32-font-1.0.pc +cairomm-quartz-1.0.pc +cairomm-quartz-font-1.0.pc +cairomm-quartz-image-1.0.pc cairomm-1.3.0.tar.gz .deps .libs diff --git a/Makefile.am b/Makefile.am index 6223f8c..5807200 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,13 +4,30 @@ SUBDIRS = cairomm examples MSVC_Net2005 $(DOCS_SUBDIR) tests #docs examples ACLOCAL_AMFLAGS = -I m4 -EXTRA_DIST = MAINTAINERS cairomm-1.0.pc.in +# This is a list of all of the possible pkg-config files that can be generated. +# Specific ones to be installed are determined in configure.in +ALL_PC_IN = cairomm-1.0.pc.in \ + cairomm-ft-1.0.pc.in \ + cairomm-pdf-1.0.pc.in \ + cairomm-png-1.0.pc.in \ + cairomm-ps-1.0.pc.in \ + cairomm-quartz-1.0.pc.in \ + cairomm-quartz-font-1.0.pc.in \ + cairomm-quartz-image-1.0.pc.in \ + cairomm-svg-1.0.pc.in \ + cairomm-win32-1.0.pc.in \ + cairomm-win32-font-1.0.pc.in \ + cairomm-xlib-1.0.pc.in \ + cairomm-xlib-xrender-1.0.pc.in + +EXTRA_DIST = MAINTAINERS $(ALL_PC_IN) DIST_SUBDIRS = $(SUBDIRS) -# Install the pkg-config file: +# Install the pkg-config files: pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = cairomm-1.0.pc +# $INSTALLED_PC is computed in configure.in +pkgconfig_DATA = cairomm-1.0.pc $(INSTALLED_PC) # Copied from cairo/Makefile.am: # diff --git a/cairomm-1.0.pc.in b/cairomm-1.0.pc.in index c283225..4a19e83 100644 --- a/cairomm-1.0.pc.in +++ b/cairomm-1.0.pc.in @@ -5,7 +5,7 @@ includedir=@includedir@ Name: cairomm Description: C++ wrapper for cairo -Requires: cairo +Requires: cairo sigc++-2.0 Version: @VERSION@ Libs: -L${libdir} -lcairomm-1.0 Cflags: -I${includedir}/cairomm-1.0 diff --git a/cairomm-ft-1.0.pc.in b/cairomm-ft-1.0.pc.in new file mode 100644 index 0000000..13326ab --- /dev/null +++ b/cairomm-ft-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-ft +Description: C++ wrapper for cairo - ft support +Requires: cairomm-1.0 cairo-ft +Version: @VERSION@ diff --git a/cairomm-pdf-1.0.pc.in b/cairomm-pdf-1.0.pc.in new file mode 100644 index 0000000..5a14a54 --- /dev/null +++ b/cairomm-pdf-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-pdf +Description: C++ wrapper for cairo - pdf support +Requires: cairomm-1.0 cairo-pdf +Version: @VERSION@ diff --git a/cairomm-png-1.0.pc.in b/cairomm-png-1.0.pc.in new file mode 100644 index 0000000..8566f8e --- /dev/null +++ b/cairomm-png-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-png +Description: C++ wrapper for cairo - png support +Requires: cairomm-1.0 cairo-png +Version: @VERSION@ diff --git a/cairomm-ps-1.0.pc.in b/cairomm-ps-1.0.pc.in new file mode 100644 index 0000000..ad5e735 --- /dev/null +++ b/cairomm-ps-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-ps +Description: C++ wrapper for cairo - postscript support +Requires: cairomm-1.0 cairo-ps +Version: @VERSION@ diff --git a/cairomm-quartz-1.0.pc.in b/cairomm-quartz-1.0.pc.in new file mode 100644 index 0000000..ebb30bf --- /dev/null +++ b/cairomm-quartz-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-quartz +Description: C++ wrapper for cairo - quartz support +Requires: cairomm-1.0 cairo-quartz +Version: @VERSION@ diff --git a/cairomm-quartz-font-1.0.pc.in b/cairomm-quartz-font-1.0.pc.in new file mode 100644 index 0000000..14913ce --- /dev/null +++ b/cairomm-quartz-font-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-quartz-font +Description: C++ wrapper for cairo - quartz font support +Requires: cairomm-1.0 cairo-quartz-font +Version: @VERSION@ diff --git a/cairomm-quartz-image-1.0.pc.in b/cairomm-quartz-image-1.0.pc.in new file mode 100644 index 0000000..25bd8c7 --- /dev/null +++ b/cairomm-quartz-image-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-quartz-image +Description: C++ wrapper for cairo - quartz image support +Requires: cairomm-1.0 cairo-quartz-image +Version: @VERSION@ diff --git a/cairomm-svg-1.0.pc.in b/cairomm-svg-1.0.pc.in new file mode 100644 index 0000000..151c576 --- /dev/null +++ b/cairomm-svg-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-svg +Description: C++ wrapper for cairo - svg support +Requires: cairomm-1.0 cairo-svg +Version: @VERSION@ diff --git a/cairomm-win32-1.0.pc.in b/cairomm-win32-1.0.pc.in new file mode 100644 index 0000000..99c1285 --- /dev/null +++ b/cairomm-win32-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-win32 +Description: C++ wrapper for cairo - win32 support +Requires: cairomm-1.0 cairo-win32 +Version: @VERSION@ diff --git a/cairomm-win32-font-1.0.pc.in b/cairomm-win32-font-1.0.pc.in new file mode 100644 index 0000000..eaa73f0 --- /dev/null +++ b/cairomm-win32-font-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-win32-font +Description: C++ wrapper for cairo - win32 font support +Requires: cairomm-1.0 cairo-win32-font +Version: @VERSION@ diff --git a/cairomm-xlib-1.0.pc.in b/cairomm-xlib-1.0.pc.in new file mode 100644 index 0000000..6713254 --- /dev/null +++ b/cairomm-xlib-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-xlib +Description: C++ wrapper for cairo - xlib support +Requires: cairomm-1.0 cairo-xlib +Version: @VERSION@ diff --git a/cairomm-xlib-xrender-1.0.pc.in b/cairomm-xlib-xrender-1.0.pc.in new file mode 100644 index 0000000..9484884 --- /dev/null +++ b/cairomm-xlib-xrender-1.0.pc.in @@ -0,0 +1,4 @@ +Name: cairomm-xlib-xrender +Description: C++ wrapper for cairo - xlib-xrender support +Requires: cairomm-1.0 cairo-xlib-xrender +Version: @VERSION@ diff --git a/configure.in b/configure.in index 8746277..20c93a2 100644 --- a/configure.in +++ b/configure.in @@ -108,9 +108,77 @@ dnl some platforms (e.g. Solaris) need additional C headers included so dnl that there are always prototypes and defines available. AC_CHECK_HEADERS(math.h) +######################## +# Determine Dependencies +######################## +dnl first just make sure that our base requirements are met PKG_CHECK_MODULES(CAIROMM, - cairo >= 1.6.0 - sigc++-2.0) + [cairo >= 1.6.0 + sigc++-2.0]) + +dnl then check and add additional dependencies +PKG_CHECK_MODULES(CAIROFT, cairo-ft, [HAS_FT=yes], [HAS_FT=no]) +if test x$HAS_FT = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-ft-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROPDF, cairo-pdf, [HAS_PDF=yes], [HAS_PDF=no]) +if test x$HAS_PDF = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-pdf-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROPNG, cairo-png, [HAS_PNG=yes], [HAS_PNG=no]) +if test x$HAS_PNG = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-png-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROPS, cairo-ps, [HAS_PS=yes], [HAS_PS=no]) +if test x$HAS_PS = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-ps-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROSVG, cairo-svg, [HAS_SVG=yes], [HAS_SVG=no]) +if test x$HAS_SVG = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-svg-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROXLIB, cairo-xlib, [HAS_XLIB=yes], [HAS_XLIB=no]) +if test x$HAS_XLIB = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-xlib-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROXLIBXRENDER, cairo-xlib-xrender, [HAS_XLIBXRENDER=yes], [HAS_XLIBXRENDER=no]) +if test x$HAS_XLIBXRENDER = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-xlib-xrender-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROWIN32, cairo-win32, [HAS_WIN32=yes], [HAS_WIN32=no]) +if test x$HAS_WIN32 = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-win32-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROWIN32FONT, cairo-win32-font, [HAS_WIN32FONT=yes], [HAS_WIN32FONT=no]) +if test x$HAS_WIN32FONT = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-win32-font-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROQUARTZ, cairo-quartz, [HAS_QUARTZ=yes], [HAS_QUARTZ=no]) +if test x$HAS_QUARTZ = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-quartz-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROQUARTZFONT, cairo-quartz-font, [HAS_QUARTZFONT=yes], [HAS_QUARTZFONT=no]) +if test x$HAS_QUARTZFONT = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-quartz-font-1.0.pc" +fi + +PKG_CHECK_MODULES(CAIROQUARTZIMAGE, cairo-quartz-image, [HAS_QUARTZIMAGE=yes], [HAS_QUARTZIMAGE=no]) +if test x$HAS_QUARTZIMAGE = xyes; then + INSTALLED_PC="$INSTALLED_PC cairomm-quartz-image-1.0.pc" +fi + +AC_SUBST(INSTALLED_PC) + AC_ARG_ENABLE(tests, AC_HELP_STRING([--enable-tests=yes|no], @@ -205,6 +273,7 @@ AC_CONFIG_FILES( tests/Makefile cairomm-1.0.pc + $INSTALLED_PC ) AC_CONFIG_FILES([ |