[tracker/wip/carlosg/batches-and-resources: 2/11] libtracker-sparql: Add macro scaffolding for 3.1 new API
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/batches-and-resources: 2/11] libtracker-sparql: Add macro scaffolding for 3.1 new API
- Date: Thu, 26 Nov 2020 22:28:27 +0000 (UTC)
commit 611cec3422ab26aa854cc339c1ab513eea61ed68
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Nov 15 21:23:16 2020 +0100
libtracker-sparql: Add macro scaffolding for 3.1 new API
Add checks for both minimum/maximum versions checks and deprecated checks.
.../libtracker-sparql-sections.txt | 8 +++++
src/libtracker-sparql/tracker-version.h | 34 ++++++++++++++++++++++
2 files changed, 42 insertions(+)
---
diff --git a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
index efa6ee820..0054c0f58 100644
--- a/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
+++ b/docs/reference/libtracker-sparql/libtracker-sparql-sections.txt
@@ -280,4 +280,12 @@ TRACKER_MICRO_VERSION
TRACKER_CHECK_VERSION
<SUBSECTION Private>
TRACKER_AVAILABLE_IN_ALL
+TRACKER_AVAILABLE_IN_3_1
+TRACKER_DEPRECATED_IN_3_1
+TRACKER_DEPRECATED_IN_3_1_FOR
+TRACKER_VERSION_MAX_ALLOWED
+TRACKER_VERSION_MIN_REQUIRED
+TRACKER_VERSION_CUR
+TRACKER_VERSION_3_0
+TRACKER_VERSION_3_1
</SECTION>
diff --git a/src/libtracker-sparql/tracker-version.h b/src/libtracker-sparql/tracker-version.h
index fe18f24ef..5419cdfc0 100644
--- a/src/libtracker-sparql/tracker-version.h
+++ b/src/libtracker-sparql/tracker-version.h
@@ -33,8 +33,42 @@ G_BEGIN_DECLS
#define _TRACKER_EXTERN __attribute__((visibility("default"))) extern
#endif
+#define _TRACKER_UNAVAILABLE(maj, min) G_UNAVAILABLE(maj, min) _TRACKER_EXTERN
+#define _TRACKER_DEPRECATED G_DEPRECATED _TRACKER_EXTERN
+#define _TRACKER_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _TRACKER_EXTERN
+
+#define TRACKER_VERSION_3_0 G_ENCODE_VERSION (3, 0)
+#define TRACKER_VERSION_3_1 G_ENCODE_VERSION (3, 1)
+#define TRACKER_VERSION_CUR G_ENCODE_VERSION (TRACKER_MAJOR_VERSION, TRACKER_MINOR_VERSION)
+
+#ifndef TRACKER_VERSION_MIN_REQUIRED
+#define TRACKER_VERSION_MIN_REQUIRED TRACKER_VERSION_CUR
+#endif
+
+#ifndef TRACKER_VERSION_MAX_ALLOWED
+#define TRACKER_VERSION_MAX_ALLOWED TRACKER_VERSION_CUR
+#endif
+
+#if TRACKER_VERSION_MIN_REQUIRED > TRACKER_VERSION_MAX_ALLOWED
+#error "TRACKER_VERSION_MAX_ALLOWED must be >= TRACKER_VERSION_MIN_REQUIRED"
+#endif
+
#define TRACKER_AVAILABLE_IN_ALL _TRACKER_EXTERN
+#if TRACKER_VERSION_MIN_REQUIRED >= TRACKER_VERSION_3_1
+#define TRACKER_DEPRECATED_IN_3_1 _TRACKER_DEPRECATED
+#define TRACKER_DEPRECATED_IN_3_1_FOR(f) _TRACKER_DEPRECATED_FOR(f)
+#else
+#define TRACKER_DEPRECATED_IN_3_1 _TRACKER_EXTERN
+#define TRACKER_DEPRECATED_IN_3_1_FOR(f) _TRACKER_EXTERN
+#endif
+
+#if TRACKER_VERSION_MAX_ALLOWED < TRACKER_VERSION_3_1
+#define TRACKER_AVAILABLE_IN_3_1 _TRACKER_UNAVAILABLE(3, 1)
+#else
+#define TRACKER_AVAILABLE_IN_3_1 _TRACKER_EXTERN
+#endif
+
/**
* tracker_major_version:
*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]