[tracker/wip/carlosg/batches-and-resources: 2/11] libtracker-sparql: Add macro scaffolding for 3.1 new API




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]