Version Information

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

Functions

Types and Values

Includes

#include <swfdec/swfdec.h>

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).

1
2
3
4
5
_____ 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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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.

1
2
3
4
5
6
7
8
9
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:

1
2
3
4
5
6
#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 ());

Functions

SWFDEC_VERSION_MAJOR

#define             SWFDEC_VERSION_MAJOR

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


SWFDEC_VERSION_MICRO

#define             SWFDEC_VERSION_MICRO

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


SWFDEC_VERSION_MINOR

#define             SWFDEC_VERSION_MINOR

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.

Parameters

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 ()

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:

1
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.

Types and Values

SWFDEC_VERSION

#define             SWFDEC_VERSION

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


SWFDEC_VERSION_STRING

#define             SWFDEC_VERSION_STRING

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