libsigrokdecode  unreleased development snapshot
sigrok protocol decoding library
version.c
Go to the documentation of this file.
1 /*
2  * This file is part of the libsigrokdecode project.
3  *
4  * Copyright (C) 2012-2013 Uwe Hermann <uwe@hermann-uwe.de>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include <config.h>
21 #include "libsigrokdecode-internal.h" /* First, so we avoid a _POSIX_C_SOURCE warning. */
22 #include "libsigrokdecode.h"
23 
24 /**
25  * @file
26  *
27  * Version number querying functions, definitions, and macros.
28  */
29 
30 /**
31  * @defgroup grp_versions Versions
32  *
33  * Version number querying functions, definitions, and macros.
34  *
35  * This set of API calls returns two different version numbers related
36  * to libsigrokdecode. The "package version" is the release version number
37  * of the libsigrokdecode tarball in the usual "major.minor.micro" format,
38  * e.g. "0.1.0".
39  *
40  * The "library version" is independent of that; it is the libtool version
41  * number in the "current:revision:age" format, e.g. "2:0:0".
42  * See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning for details.
43  *
44  * Both version numbers (and/or individual components of them) can be
45  * retrieved via the API calls at runtime, and/or they can be checked at
46  * compile/preprocessor time using the respective macros.
47  *
48  * @{
49  */
50 
51 /**
52  * Get the major libsigrokdecode package version number.
53  *
54  * @return The major package version number.
55  *
56  * @since 0.1.0
57  */
59 {
60  return SRD_PACKAGE_VERSION_MAJOR;
61 }
62 
63 /**
64  * Get the minor libsigrokdecode package version number.
65  *
66  * @return The minor package version number.
67  *
68  * @since 0.1.0
69  */
71 {
72  return SRD_PACKAGE_VERSION_MINOR;
73 }
74 
75 /**
76  * Get the micro libsigrokdecode package version number.
77  *
78  * @return The micro package version number.
79  *
80  * @since 0.1.0
81  */
83 {
84  return SRD_PACKAGE_VERSION_MICRO;
85 }
86 
87 /**
88  * Get the libsigrokdecode package version number as a string.
89  *
90  * @return The package version number string. The returned string is
91  * static and thus should NOT be free'd by the caller.
92  *
93  * @since 0.1.0
94  */
96 {
97  return SRD_PACKAGE_VERSION_STRING;
98 }
99 
100 /**
101  * Get the "current" part of the libsigrokdecode library version number.
102  *
103  * @return The "current" library version number.
104  *
105  * @since 0.1.0
106  */
108 {
109  return SRD_LIB_VERSION_CURRENT;
110 }
111 
112 /**
113  * Get the "revision" part of the libsigrokdecode library version number.
114  *
115  * @return The "revision" library version number.
116  *
117  * @since 0.1.0
118  */
120 {
121  return SRD_LIB_VERSION_REVISION;
122 }
123 
124 /**
125  * Get the "age" part of the libsigrokdecode library version number.
126  *
127  * @return The "age" library version number.
128  *
129  * @since 0.1.0
130  */
132 {
133  return SRD_LIB_VERSION_AGE;
134 }
135 
136 /**
137  * Get the libsigrokdecode library version number as a string.
138  *
139  * @return The library version number string. The returned string is
140  * static and thus should NOT be free'd by the caller.
141  *
142  * @since 0.1.0
143  */
145 {
146  return SRD_LIB_VERSION_STRING;
147 }
148 
150 {
151  GSList *l = NULL, *m = NULL;
152 
153  m = g_slist_append(NULL, g_strdup("glib"));
154  m = g_slist_append(m, g_strdup_printf("%d.%d.%d (rt: %d.%d.%d/%d:%d)",
155  GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION,
156  glib_major_version, glib_minor_version, glib_micro_version,
157  glib_binary_age, glib_interface_age));
158  l = g_slist_append(l, m);
159 
160  m = g_slist_append(NULL, g_strdup("Python"));
161  m = g_slist_append(m, g_strdup_printf("%s / 0x%x (API %s, ABI %s)",
162  PY_VERSION, PY_VERSION_HEX, PYTHON_API_STRING, PYTHON_ABI_STRING));
163  l = g_slist_append(l, m);
164 
165  return l;
166 }
167 
169 {
170  return g_strdup_printf("%s, %s-endian", CONF_HOST,
171 #ifdef WORDS_BIGENDIAN
172  "big"
173 #else
174  "little"
175 #endif
176  );
177 }
178 
179 /** @} */
char * srd_buildinfo_host_get(void)
Definition: version.c:168
const char * srd_package_version_string_get(void)
Get the libsigrokdecode package version number as a string.
Definition: version.c:95
int srd_lib_version_age_get(void)
Get the "age" part of the libsigrokdecode library version number.
Definition: version.c:131
int srd_lib_version_current_get(void)
Get the "current" part of the libsigrokdecode library version number.
Definition: version.c:107
int srd_package_version_major_get(void)
Get the major libsigrokdecode package version number.
Definition: version.c:58
int srd_lib_version_revision_get(void)
Get the "revision" part of the libsigrokdecode library version number.
Definition: version.c:119
#define SRD_API
int srd_package_version_micro_get(void)
Get the micro libsigrokdecode package version number.
Definition: version.c:82
const char * srd_lib_version_string_get(void)
Get the libsigrokdecode library version number as a string.
Definition: version.c:144
GSList * srd_buildinfo_libs_get(void)
Definition: version.c:149
int srd_package_version_minor_get(void)
Get the minor libsigrokdecode package version number.
Definition: version.c:70
The public libsigrokdecode header file to be used by frontends.