📄 cairo-version.sgml
字号:
<!-- ##### SECTION Title ##### -->Version Information<!-- ##### SECTION Short_Description ##### -->Compile-time and run-time version checks.<!-- ##### SECTION Long_Description ##### --><para>Cairo has a three-part version number scheme. In this scheme, we useeven vs. odd numbers to distinguish fixed points in the softwarevs. in-progress development, (such as from CVS instead of a tar file,or as a "snapshot" tar file as opposed to a "release" tar file).</para><para><informalexample><programlisting> _____ Major. Always 1, until we invent a new scheme./ ___ Minor. Even/Odd = Release/Snapshot (tar files) or Branch/Head (CVS)| / _ Micro. Even/Odd = Tar-file/CVS| | /1.0.0</programlisting></informalexample></para><para>Here are a few examples of versions that one might see.<informalexample><programlisting>Releases--------1.0.0 - A major release1.0.2 - A subsequent maintenance release1.2.0 - Another major releaseSnapshots---------1.1.2 - A snapshot (working toward the 1.2.0 release)In-progress development (eg. from CVS)--------------------------------------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)</programlisting></informalexample></para><refsect2><title>Compatibility</title><para>The API/ABI compatibility guarantees for various versions are asfollows. First, let's assume some cairo-using application code that issuccessfully using the API/ABI "from" one version of cairo. Then let'sask the question whether this same code can be moved "to" the API/ABIof another version of cairo.</para><para>Moving from a release to any later version (release, snapshot,development) is always guaranteed to provide compatibility.</para><para>Moving from a snapshot to any later version is not guaranteed toprovide compatibility, since snapshots may introduce new API that endsup being removed before the next release.</para><para>Moving from an in-development version (odd micro component) to anylater version is not guaranteed to provide compatibility. In fact,there's not even a guarantee that the code will even continue to workwith the same in-development version number. This is because thesenumbers don't correspond to any fixed state of the software, butrather the many states between snapshots and releases.</para></refsect2><refsect2><title>Examining the version</title><para>Cairo provides the ability to examine the version at eithercompile-time or run-time and in both a human-readable form as well asan encoded form suitable for direct comparison. Cairo also provides amacro (CAIRO_VERSION_ENCODE) to perform the encoding.</para><para><informalexample><programlisting>Compile-time------------%CAIRO_VERSION_STRING Human-readable%CAIRO_VERSION Encoded, suitable for comparisonRun-time--------cairo_version_string() Human-readablecairo_version() Encoded, suitable for comparison</programlisting></informalexample></para><para>For example, checking that the cairo version is greater than or equalto 1.0.0 could be achieved at compile-time or run-time as follows:<informalexample><programlisting>##if %CAIRO_VERSION >= %CAIRO_VERSION_ENCODE(1, 0, 0)printf ("Compiling with suitable cairo version: %%s\n", CAIRO_VERSION_STRING);##endifif (cairo_version() >= %CAIRO_VERSION_ENCODE(1, 0, 0)) printf ("Running with suitable cairo version: %%s\n", cairo_version_string ());</programlisting></informalexample></para></refsect2><!-- ##### SECTION See_Also ##### --><para></para><!-- ##### SECTION Stability_Level ##### --><!-- ##### MACRO CAIRO_VERSION ##### --><para></para><!-- ##### MACRO CAIRO_VERSION_STRING ##### --><para></para><!-- ##### MACRO CAIRO_VERSION_ENCODE ##### --><para></para>@major: @minor: @micro:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -