CAPS Universe documentation  1.0.4
All you need to know to be successful
Features
Provider API description

Talk to the printing coordinator from the printing provider/printer driver side. More...

Features

 Version info
 Info for user's code to do the right thing.
 
 Printing service provisioning
 Register a printing service and define its capabilities.
 
 Printing Provider States
 Report printing provider's state.
 
 Handle print jobs
 Retrieve job to print or report a printing is done.
 

Detailed Description

Intended audience

Printer driver/provider developers

Overview

This library and its API is at most a thin layer to enable printing providers to communicate with the CAPS printing coordinator. You shouldn't do this by by your own, even if it currently uses DBUS via libdbus as the communication channel (which may change in the future).

Use pkg-config

Don't try to be smart, use pkg-config instead to retrieve the information you need to compile and link your application against libcapsprovider.

To compile your code, just include its header:

Printing provisioning for printing providers/printer drivers.

And ask pkg-config what include path is required to find this header file.

pkg-config --cflags libcapsprovider

To link your application against libcapsprovider ask pkg-config as well. Use the output of this command to parametrize the linker:

pkg-config --libs libcapsprovider
Note
Whenever you call a function from libcapsprovider in your application you also must link it against libcapsprovider. Different libraries you use may already be linked against libcapsprovider, but that does not work for your application when the linker option --as-needed is in use (which is the default in the CAPS universe).

Use autotools

Don't invent your own Makefile to build your package. Use the autotools or something similar to manage your buildsystem.

For the autotools just use the PKG_CHECK_MODULES m4 macro in your configure.ac to get the information you need to use libcapsprovider:

PKG_CHECK_MODULES([LIBCAPSPROVIDER], [libcapsprovider >= 1])
Attention
Select the required version carefully, e.g. the lowest version which meets your demands.

And then just refer this information in your Makefile.am:

my_application_CXXFLAGS = \
     @LIBCAPSPROVIDER_CFLAGS@
my_application_CFLAGS = \
     @LIBCAPSPROVIDER_CFLAGS@
my_application_LDADD = \
     @LIBCAPSPROVIDER_LIBS@
Note
my_application_CXXLAGS for C++ language and my_application_CFLAGS for C language