Version Information

Version Information — Compile-time and run-time version checks

Synopsis


#include <swfdec/swfdec.h>

#define             SWFDEC_VERSION_MAJOR
#define             SWFDEC_VERSION_MICRO
#define             SWFDEC_VERSION_MINOR
#define             SWFDEC_VERSION_ENCODE               (major, minor, micro)
#define             SWFDEC_VERSION
#define             SWFDEC_VERSION_STRING
guint               swfdec_version                      (void);
const char*         swfdec_version_string               (void);

Description

Swfdec has a three-part version number scheme. In this scheme, we use even vs. odd numbers to distinguish fixed points in the software vs. in-progress development, (such as from git instead of a tar file, or as a "snapshot" tar file as opposed to a "release" tar file).

 _____ Major. Always 1, until we invent a new scheme.
/  ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (git)
| /  _ Micro. Even/Odd = Tar-file/git
| | /
1.0.0

Here are a few examples of versions that one might see.

Releases
--------
 1.0.0 - A major release
 1.0.2 - A subsequent maintenance release
 1.2.0 - Another major release

Snapshots
---------
 1.1.2 - A snapshot (working toward the 1.2.0 release)

In-progress development (eg. from git)
--------------------------------------
 1.0.1 - Development on a maintenance branch (toward 1.0.2 release)
 1.1.1 - Development on head (toward 1.1.2 snapshot and 1.2.0 release)
 

Examining the version

Swfdec provides the ability to examine the version at either compile-time or run-time and in both a human-readable form as well as an encoded form suitable for direct comparison. Swfdec also provides the macro SWFDEC_VERSION_ENCODE() to perform the encoding.

Compile-time
------------
 SWFDEC_VERSION_STRING	Human-readable
 SWFDEC_VERSION		Encoded, suitable for comparison

Run-time
--------
 swfdec_version_string()	Human-readable
 swfdec_version()		Encoded, suitable for comparison

For example, checking that the Swfdec version is greater than or equal to 1.0.0 could be achieved at compile-time or run-time as follows:

#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 0, 0)
printf ("Compiling with suitable cairo version: %s\n", %CAIRO_VERSION_STRING);
#endif

if (cairo_version() >= CAIRO_VERSION_ENCODE(1, 0, 0))
  printf ("Running with suitable cairo version: %s\n", cairo_version_string ());

Details

SWFDEC_VERSION_MAJOR

#define SWFDEC_VERSION_MAJOR (0)

The major component of the version of Swfdec available at compile-time.


SWFDEC_VERSION_MICRO

#define SWFDEC_VERSION_MICRO (0)

The micro component of the version of Swfdec available at compile-time.


SWFDEC_VERSION_MINOR

#define SWFDEC_VERSION_MINOR (8)

The minor component of the version of Swfdec available at compile-time.


SWFDEC_VERSION_ENCODE()

#define             SWFDEC_VERSION_ENCODE(major, minor, micro)

This macro encodes the given Swfdec version into an integer. The numbers returned by SWFDEC_VERSION and swfdec_version() are encoded using this macro. Two encoded version numbers can be compared as integers. The encoding ensures that later versions compare greater than earlier versions.

major :

the major component of the version number

minor :

the minor component of the version number

micro :

the micro component of the version number

SWFDEC_VERSION

#define SWFDEC_VERSION SWFDEC_VERSION_ENCODE (SWFDEC_VERSION_MAJOR, SWFDEC_VERSION_MINOR, SWFDEC_VERSION_MICRO)

The version of Swfdec available at compile-time, encoded using SWFDEC_VERSION_ENCODE().


SWFDEC_VERSION_STRING

#define SWFDEC_VERSION_STRING "0.8.0"

A human-readable string literal containing the version of Swfdec available at compile-time, in the form of "X.Y.Z".


swfdec_version ()

guint               swfdec_version                      (void);

Returns the version of the Swfdec library encoded in a single integer as per SWFDEC_VERSION_ENCODE. The encoding ensures that later versions compare greater than earlier versions.

A run-time comparison to check that Swfdec's version is greater than or equal to version X.Y.Z could be performed as follows:

if (swfdec_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...}

See also swfdec_version_string() as well as the compile-time equivalents SWFDEC_VERSION and SWFDEC_VERSION_STRING.

Returns :

the encoded version.

swfdec_version_string ()

const char*         swfdec_version_string               (void);

Returns the version of the Swfdec library as a human-readable string of the form "X.Y.Z".

See also swfdec_version() as well as the compile-time equivalents SWFDEC_VERSION_STRING and SWFDEC_VERSION.

Returns :

a string containing the version.