diff options
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | RELEASING | 6 | ||||
-rw-r--r-- | cairo-version.h | 8 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/cairo-misc.c | 44 | ||||
-rw-r--r-- | src/cairo-version.c | 88 | ||||
-rw-r--r-- | src/cairo-version.h | 12 |
8 files changed, 113 insertions, 52 deletions
diff --git a/Makefile.am b/Makefile.am index b2eeccd8..a47cee4e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -5,7 +5,7 @@ if CAIRO_HAS_PNG_FUNCTIONS SUBDIRS += boilerplate test perf endif -configure: src/cairo-version.h +configure: cairo-version.h .PHONY: doc test retest recheck check-valgrind # We have some generated header files, so we really need to build the @@ -58,6 +58,7 @@ endif EXTRA_DIST = \ autogen.sh \ + cairo-version.h \ AUTHORS \ BIBLIOGRAPHY \ BUGS \ @@ -54,7 +54,7 @@ Here are the steps to follow to create a new cairo release: find src/ -name '*.h' ! -name '*-private.h' ! -name 'cairoint.h' ! -name 'cairo-features-win32.h' | \ xargs git diff X.Y.Z.. -- -4) Increment cairo_version_{minor|micro} in src/cairo-version.h: +4) Increment cairo_version_{minor|micro} in cairo-version.h: If there are backward-incompatible changes in the API, stop now and don't release. Go back and fix the API instead. Cairo @@ -70,7 +70,7 @@ Here are the steps to follow to create a new cairo release: Otherwise, (ie. there are only bug fixes), increment cairo_version_micro to the next larger (even) number. -5) Commit the changes to NEWS and src/cairo-version.h +5) Commit the changes to NEWS and cairo-version.h It's especially important to mention the new version number in your commit log. @@ -98,7 +98,7 @@ Here are the steps to follow to create a new cairo release: prints it for you. 7) Increment cairo_version_micro to the next larger (odd) number in - src/cairo-version.h, commit, and push. + cairo-version.h, commit, and push. 8) Push the newly created tag out to the central tree with a command something like: diff --git a/cairo-version.h b/cairo-version.h new file mode 100644 index 00000000..bfe4958d --- /dev/null +++ b/cairo-version.h @@ -0,0 +1,8 @@ +#ifndef CAIRO_VERSION_H +#define CAIRO_VERSION_H + +#define CAIRO_VERSION_MAJOR 1 +#define CAIRO_VERSION_MINOR 7 +#define CAIRO_VERSION_MICRO 5 + +#endif diff --git a/configure.in b/configure.in index 41dab9d3..7ab6d534 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ AC_PREREQ(2.58) dnl Parse Version.mk and declare m4 variables out of it m4_define([cairo_version_macro], m4_translit( - m4_bpatsubst(m4_include(src/cairo-version.h), + m4_bpatsubst(m4_include(cairo-version.h), [^.define \([a-zA-Z0-9_]*\) *\([0-9][0-9]*\)], [[m4_define(\1, \[\2\])]]), [A-Z], [a-z])) diff --git a/src/Makefile.am b/src/Makefile.am index 012f294a..444714b3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -79,6 +79,7 @@ cairo_base_sources = \ cairo-paginated-surface-private.h \ cairo-analysis-surface.c \ cairo-analysis-surface-private.h \ + cairo-version.c \ cairo-version.h \ cairoint.h cairo_all_sources = $(cairo_base_sources) $(cairo_base_headers) @@ -289,6 +290,7 @@ XRENDER_LIBS=@XRENDER_LIBS@ cairoincludedir = $(includedir)/cairo cairoinclude_HEADERS = \ cairo-deprecated.h \ + $(top_srcdir)/cairo-version.h \ $(cairo_headers) nodist_cairoinclude_HEADERS = \ diff --git a/src/cairo-misc.c b/src/cairo-misc.c index 960a8b60..9a0ede08 100644 --- a/src/cairo-misc.c +++ b/src/cairo-misc.c @@ -126,50 +126,6 @@ cairo_status_to_string (cairo_status_t status) /** - * cairo_version: - * - * Returns the version of the cairo library encoded in a single - * integer as per %CAIRO_VERSION_ENCODE. The encoding ensures that - * later versions compare greater than earlier versions. - * - * A run-time comparison to check that cairo's version is greater than - * or equal to version X.Y.Z could be performed as follows: - * - * <informalexample><programlisting> - * if (cairo_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...} - * </programlisting></informalexample> - * - * See also cairo_version_string() as well as the compile-time - * equivalents %CAIRO_VERSION and %CAIRO_VERSION_STRING. - * - * Return value: the encoded version. - **/ -int -cairo_version (void) -{ - return CAIRO_VERSION; -} - -/** - * cairo_version_string: - * - * Returns the version of the cairo library as a human-readable string - * of the form "X.Y.Z". - * - * See also cairo_version() as well as the compile-time equivalents - * %CAIRO_VERSION_STRING and %CAIRO_VERSION. - * - * Return value: a string containing the version. - **/ -const char* -cairo_version_string (void) -{ - return CAIRO_VERSION_STRING; -} -slim_hidden_def (cairo_version_string); - - -/** * cairo_glyph_allocate: * @num_glyphs: number of glyphs to allocate * diff --git a/src/cairo-version.c b/src/cairo-version.c new file mode 100644 index 00000000..a502988e --- /dev/null +++ b/src/cairo-version.c @@ -0,0 +1,88 @@ +/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */ +/* cairo - a vector graphics library with display and print output + * + * Copyright © 2002 University of Southern California + * Copyright © 2005 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it either under the terms of the GNU Lesser General Public + * License version 2.1 as published by the Free Software Foundation + * (the "LGPL") or, at your option, under the terms of the Mozilla + * Public License Version 1.1 (the "MPL"). If you do not alter this + * notice, a recipient may use your version of this file under either + * the MPL or the LGPL. + * + * You should have received a copy of the LGPL along with this library + * in the file COPYING-LGPL-2.1; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * You should have received a copy of the MPL along with this library + * in the file COPYING-MPL-1.1 + * + * The contents of this file are subject to the Mozilla Public License + * Version 1.1 (the "License"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY + * OF ANY KIND, either express or implied. See the LGPL or the MPL for + * the specific language governing rights and limitations. + * + * The Original Code is the cairo graphics library. + * + * The Initial Developer of the Original Code is University of Southern + * California. + * + * Contributor(s): + * Carl D. Worth <cworth@cworth.org> + */ + +#define CAIRO_VERSION_H 1 + +#include "cairoint.h" + +/* get the "real" version info instead of dummy cairo-version.h */ +#undef CAIRO_VERSION_H +#include "../cairo-version.h" + +/** + * cairo_version: + * + * Returns the version of the cairo library encoded in a single + * integer as per %CAIRO_VERSION_ENCODE. The encoding ensures that + * later versions compare greater than earlier versions. + * + * A run-time comparison to check that cairo's version is greater than + * or equal to version X.Y.Z could be performed as follows: + * + * <informalexample><programlisting> + * if (cairo_version() >= CAIRO_VERSION_ENCODE(X,Y,Z)) {...} + * </programlisting></informalexample> + * + * See also cairo_version_string() as well as the compile-time + * equivalents %CAIRO_VERSION and %CAIRO_VERSION_STRING. + * + * Return value: the encoded version. + **/ +int +cairo_version (void) +{ + return CAIRO_VERSION; +} + +/** + * cairo_version_string: + * + * Returns the version of the cairo library as a human-readable string + * of the form "X.Y.Z". + * + * See also cairo_version() as well as the compile-time equivalents + * %CAIRO_VERSION_STRING and %CAIRO_VERSION. + * + * Return value: a string containing the version. + **/ +const char* +cairo_version_string (void) +{ + return CAIRO_VERSION_STRING; +} +slim_hidden_def (cairo_version_string); diff --git a/src/cairo-version.h b/src/cairo-version.h index bfe4958d..51008003 100644 --- a/src/cairo-version.h +++ b/src/cairo-version.h @@ -1,8 +1,14 @@ +/* This is a dummy file. + * The actual version info is in toplevel cairo-version.h. + * The purpose of this file is to make most of the source files NOT depend + * on the real cairo-version.h, and as a result, changing library version + * would not cause a complete rebuild of all object files (just a relink). + * This is useful when bisecting. */ #ifndef CAIRO_VERSION_H #define CAIRO_VERSION_H -#define CAIRO_VERSION_MAJOR 1 -#define CAIRO_VERSION_MINOR 7 -#define CAIRO_VERSION_MICRO 5 +#define CAIRO_VERSION_MAJOR USE_cairo_version_OR_cairo_version_string_INSTEAD +#define CAIRO_VERSION_MINOR USE_cairo_version_OR_cairo_version_string_INSTEAD +#define CAIRO_VERSION_MICRO USE_cairo_version_OR_cairo_version_string_INSTEAD #endif |