summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@gnome.org>2008-10-10 22:49:56 +0900
committerJonathon Jongsma <jjongsma@gnome.org>2008-10-10 22:49:56 +0900
commit4dfea66a05b8eb6c032797678ac98e51e913bb60 (patch)
tree2390176f940b9e64e9c7a15ec30ec3bc1d128d00
parente3ff8518c2b371cd27917ae195ef67a9ad3ea67b (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--.gitignore12
-rw-r--r--Makefile.am23
-rw-r--r--cairomm-1.0.pc.in2
-rw-r--r--cairomm-ft-1.0.pc.in4
-rw-r--r--cairomm-pdf-1.0.pc.in4
-rw-r--r--cairomm-png-1.0.pc.in4
-rw-r--r--cairomm-ps-1.0.pc.in4
-rw-r--r--cairomm-quartz-1.0.pc.in4
-rw-r--r--cairomm-quartz-font-1.0.pc.in4
-rw-r--r--cairomm-quartz-image-1.0.pc.in4
-rw-r--r--cairomm-svg-1.0.pc.in4
-rw-r--r--cairomm-win32-1.0.pc.in4
-rw-r--r--cairomm-win32-font-1.0.pc.in4
-rw-r--r--cairomm-xlib-1.0.pc.in4
-rw-r--r--cairomm-xlib-xrender-1.0.pc.in4
-rw-r--r--configure.in73
16 files changed, 152 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index 6192c3a..7e8b7f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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([