Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.9 KiB
78 lines
2.9 KiB
Due to our use of "libtool" to generate and install the FreeType 2 libraries |
|
on Unix systems, as well as other historical events, it is generally very |
|
difficult to know precisely which release of the font engine is installed |
|
on a given system. |
|
|
|
This file tries to explain why and to document ways to properly detect |
|
FreeType on Unix. |
|
|
|
|
|
I. Version & Release numbers: |
|
|
|
For each new public release of FreeType 2, there are generally *three* |
|
distinct "version" numbers to consider: |
|
|
|
* the official FT2 release number, like 2.0.9, or 2.1.3 |
|
|
|
* the libtool (and Unix) specific version number, like "9.2.3". This |
|
is what "freetype-config --version" will return |
|
|
|
* the platform-specific shared object number, used for example when |
|
the library is installed as "/usr/lib/libfreetype.so.6.3.2" |
|
|
|
|
|
the platform-specific number is, unsurprisingly, platform-specific and varies |
|
with the operating system you're using (several variants of Linux, FreeBSD, |
|
Solaris, etc...). You should thus _never_ use it, even for simple tests. |
|
|
|
the libtool-specific number does not equal the release number but is tied |
|
to it. |
|
|
|
the release number is available at *compile* time through the following |
|
macros defined in FT_FREETYPE_H: |
|
|
|
- FREETYPE_MAJOR : major release number |
|
- FREETYPE_MINOR : minor release number |
|
- FREETYPE_PATCH : patch release number |
|
|
|
see below for some Autoconf fragment to |
|
|
|
|
|
the release number is also available at *runtime* through the |
|
"FT_Library_Version" API. Unfortunately, this one wasn't available or |
|
working correctly before the 2.1.3 official release !! |
|
|
|
|
|
II. Table: |
|
|
|
the following is a simple table that gives, for each official release, |
|
the corresponding libtool number, as well as the shared object number |
|
found on _most_ systems, but not all of them: |
|
|
|
release libtool so |
|
------------------------------------- |
|
2.1.3 9.2.3 6.3.2 |
|
2.1.2 9.1.3 6.3.1 |
|
2.1.1 ? ? |
|
2.1.0 ? ? |
|
2.0.9 ? ? |
|
|
|
|
|
|
|
|
|
III. AutoConf Code Fragment: |
|
|
|
Lars Clausen contributed the following Autoconf fragment to detect at |
|
which version of FreeType is installed on your system. This one tests |
|
for a version that is at least 2.0.9, you should change the last line to |
|
check against other release numbers. |
|
|
|
AC_MSG_CHECKING([for version of FreeType]) |
|
FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-` |
|
FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3` |
|
FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3` |
|
FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3` |
|
FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 + $FREETYPE_PATCH;}"` |
|
AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH]) |
|
if test "$FREETYPE_VERSION" -ge 2000009; then |
|
|
|
|