Compiling with libsoupCompiling with libsoup — Notes on compiling |
Using pkg-config
Like other GNOME libraries, libsoup uses
pkg-config to provide compiler options. The
package name is "libsoup-2.4
". So in your
configure
script, you might specify something like:
1 2 3 |
PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.26]) AC_SUBST(LIBSOUP_CFLAGS) AC_SUBST(LIBSOUP_LIBS) |
The "2.4
" in the package name is the "API version"
(indicating "the version of the libsoup API
that first appeared in version 2.4") and is essentially just part of
the package name.
API Availability and Deprecation Warnings
If you want to restrict your program to a particular
libsoup version or range of versions, you
can define SOUP_VERSION_MIN_REQUIRED
and/or SOUP_VERSION_MAX_ALLOWED
.
Eg:
1 2 |
LIBSOUP_CFLAGS="$LIBSOUP_CFLAGS -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_36" LIBSOUP_CFLAGS="$LIBSOUP_CFLAGS -DSOUP_VERSION_MAX_ALLOWED=SOUP_VERSION_2_40" |
The SOUP_VERSION_MIN_REQUIRED
declaration states
that the code is not expected to compile on versions of
libsoup older than the indicated version
(here, 2.36), and so the compiler should print warnings if the code
uses functions that were deprecated as of that release.
The SOUP_VERSION_MAX_ALLOWED
declaration states
that the code is expected to compile on versions
of libsoup up to the indicated version
(here, 2.40), and so, when compiling the program against a newer
version than that, the compiler should print warnings if the code uses
functions that did not yet exist in the max-allowed release.
You can use SOUP_CHECK_VERSION
to check the version of libsoup at compile time, to compile different
code for different libsoup versions. (If
you are setting SOUP_VERSION_MIN_REQUIRED
and
SOUP_VERSION_MAX_ALLOWED
to different versions, as
in the example above, then you almost certainly need to be doing
this.)