[cairo-commit] 2 commits - cairo-version.h configure.in Makefile.am RELEASING src/cairoint.h src/cairo-misc.c src/cairo-version.c src/cairo-version.h src/Makefile.am
Behdad Esfahbod
behdad at kemper.freedesktop.org
Thu Aug 28 15:20:15 PDT 2008
Makefile.am | 3 +
RELEASING | 6 +--
cairo-version.h | 8 ++++
configure.in | 2 -
src/Makefile.am | 2 +
src/cairo-misc.c | 44 --------------------------
src/cairo-version.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/cairo-version.h | 12 +++++--
src/cairoint.h | 7 ++++
9 files changed, 120 insertions(+), 52 deletions(-)
New commits:
commit 894940b81f0272a2993d3a785fd505b3a4375e6e
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Thu Aug 28 18:18:23 2008 -0400
Some nasty tracks to make changing version number not cause a total rebuild
Quite slick! This comes handy when git-bisect'ing. The canonical version
number is in toplevel cairo-version.h now.
diff --git a/Makefile.am b/Makefile.am
index b2eeccd..a47cee4 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 \
diff --git a/RELEASING b/RELEASING
index ac306fc..1672f46 100644
--- a/RELEASING
+++ b/RELEASING
@@ -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 0000000..bfe4958
--- /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 41dab9d..7ab6d53 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 012f294..444714b 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 960a8b6..9a0ede0 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 0000000..a502988
--- /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 at 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 bfe4958..5100800 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
commit ab5c528de2fc744d77c44ea1a9a3467f1ec5f81d
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Thu Aug 28 17:36:43 2008 -0400
Undefine PACKAGE* macros defined by autotools
We use our own macros. This makes it easier for other build systems.
diff --git a/src/cairoint.h b/src/cairoint.h
index d5515a4..e4c3369 100644
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -50,6 +50,13 @@
#include "config.h"
#endif
+/* We use our own macros */
+#undef PACKAGE
+#undef PACKAGE_NAME
+#undef PACKAGE_STRING
+#undef PACKAGE_TARNAME
+#undef PACKAGE_VERSION
+
#include <assert.h>
#include <stdlib.h>
#include <string.h>
More information about the cairo-commit
mailing list