/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #pragma once #include /** * SECTION: version * @section_id: version-macros * @title: Version related macros * @include: arrow-glib/arrow-glib.h * * Apache Arrow GLib provides macros that can be used by C pre-processor. * They are useful to check version related things at compile time. */ /** * GARROW_VERSION_MAJOR: * * The major version. * * Since: 0.10.0 */ #define GARROW_VERSION_MAJOR (@GARROW_VERSION_MAJOR@) /** * GARROW_VERSION_MINOR: * * The minor version. * * Since: 0.10.0 */ #define GARROW_VERSION_MINOR (@GARROW_VERSION_MINOR@) /** * GARROW_VERSION_MICRO: * * The micro version. * * Since: 0.10.0 */ #define GARROW_VERSION_MICRO (@GARROW_VERSION_MICRO@) /** * GARROW_VERSION_TAG: * * The version tag. Normally, it's an empty string. It's "SNAPSHOT" * for snapshot version. * * Since: 0.10.0 */ #define GARROW_VERSION_TAG "@GARROW_VERSION_TAG@" /** * GARROW_VERSION_CHECK: * @major: A major version to check for. * @minor: A minor version to check for. * @micro: A micro version to check for. * * You can use this macro in C pre-processor. * * Returns: %TRUE if the compile time Apache Arrow GLib version is the * same as or newer than the passed version, %FALSE otherwise. * * Since: 0.10.0 */ #define GARROW_VERSION_CHECK(major, minor, micro) \ (GARROW_VERSION_MAJOR > (major) || \ (GARROW_VERSION_MAJOR == (major) && \ GARROW_VERSION_MINOR > (minor)) || \ (GARROW_VERSION_MAJOR == (major) && \ GARROW_VERSION_MINOR == (minor) && \ GARROW_VERSION_MICRO >= (micro))) /** * GARROW_DISABLE_DEPRECATION_WARNINGS: * * If this macro is defined, no deprecated warnings are produced. * * You must define this macro before including the * arrow-glib/arrow-glib.h header. * * Since: 0.10.0 */ #ifdef GARROW_DISABLE_DEPRECATION_WARNINGS # define GARROW_DEPRECATED # define GARROW_DEPRECATED_FOR(function) # define GARROW_UNAVAILABLE(major, minor) #else # define GARROW_DEPRECATED G_DEPRECATED # define GARROW_DEPRECATED_FOR(function) G_DEPRECATED_FOR(function) # define GARROW_UNAVAILABLE(major, minor) G_UNAVAILABLE(major, minor) #endif /** * GARROW_VERSION_6_0: * * You can use this macro value for compile time API version check. * * Since: 6.0.0 */ #define GARROW_VERSION_6_0 G_ENCODE_VERSION(6, 0) /** * GARROW_VERSION_5_0: * * You can use this macro value for compile time API version check. * * Since: 5.0.0 */ #define GARROW_VERSION_5_0 G_ENCODE_VERSION(5, 0) /** * GARROW_VERSION_4_0: * * You can use this macro value for compile time API version check. * * Since: 4.0.0 */ #define GARROW_VERSION_4_0 G_ENCODE_VERSION(4, 0) /** * GARROW_VERSION_3_0: * * You can use this macro value for compile time API version check. * * Since: 3.0.0 */ #define GARROW_VERSION_3_0 G_ENCODE_VERSION(3, 0) /** * GARROW_VERSION_2_0: * * You can use this macro value for compile time API version check. * * Since: 2.0.0 */ #define GARROW_VERSION_2_0 G_ENCODE_VERSION(2, 0) /** * GARROW_VERSION_1_0: * * You can use this macro value for compile time API version check. * * Since: 1.0.0 */ #define GARROW_VERSION_1_0 G_ENCODE_VERSION(1, 0) /** * GARROW_VERSION_0_17: * * You can use this macro value for compile time API version check. * * Since: 0.17.0 */ #define GARROW_VERSION_0_17 G_ENCODE_VERSION(0, 17) /** * GARROW_VERSION_0_16: * * You can use this macro value for compile time API version check. * * Since: 0.16.0 */ #define GARROW_VERSION_0_16 G_ENCODE_VERSION(0, 16) /** * GARROW_VERSION_0_15: * * You can use this macro value for compile time API version check. * * Since: 0.15.0 */ #define GARROW_VERSION_0_15 G_ENCODE_VERSION(0, 15) /** * GARROW_VERSION_0_14: * * You can use this macro value for compile time API version check. * * Since: 0.14.0 */ #define GARROW_VERSION_0_14 G_ENCODE_VERSION(0, 14) /** * GARROW_VERSION_0_13: * * You can use this macro value for compile time API version check. * * Since: 0.13.0 */ #define GARROW_VERSION_0_13 G_ENCODE_VERSION(0, 13) /** * GARROW_VERSION_0_12: * * You can use this macro value for compile time API version check. * * Since: 0.12.0 */ #define GARROW_VERSION_0_12 G_ENCODE_VERSION(0, 12) /** * GARROW_VERSION_0_10: * * You can use this macro value for compile time API version check. * * Since: 0.10.0 */ #define GARROW_VERSION_0_10 G_ENCODE_VERSION(0, 10) /** * GARROW_VERSION_MIN_REQUIRED: * * You can use this macro for compile time API version check. * * This macro value must be one of the predefined version macros such * as %GARROW_VERSION_0_10. * * If you use any functions that is defined by newer version than * %GARROW_VERSION_MIN_REQUIRED, deprecated warnings are produced at * compile time. * * You must define this macro before including the * arrow-glib/arrow-glib.h header. * * Since: 0.10.0 */ #ifndef GARROW_VERSION_MIN_REQUIRED # define GARROW_VERSION_MIN_REQUIRED \ G_ENCODE_VERSION(GARROW_VERSION_MAJOR, GARROW_VERSION_MINOR) #endif /** * GARROW_VERSION_MAX_ALLOWED: * * You can use this macro for compile time API version check. * * This macro value must be one of the predefined version macros such * as %GARROW_VERSION_0_10. * * If you use any functions that is defined by newer version than * %GARROW_VERSION_MAX_ALLOWED, deprecated warnings are produced at * compile time. * * You must define this macro before including the * arrow-glib/arrow-glib.h header. * * Since: 0.10.0 */ #ifndef GARROW_VERSION_MAX_ALLOWED # define GARROW_VERSION_MAX_ALLOWED \ G_ENCODE_VERSION(GARROW_VERSION_MAJOR, GARROW_VERSION_MINOR) #endif #define GARROW_AVAILABLE_IN_ALL #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_6_0 # define GARROW_DEPRECATED_IN_6_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_6_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_6_0 # define GARROW_DEPRECATED_IN_6_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_6_0 # define GARROW_AVAILABLE_IN_6_0 GARROW_UNAVAILABLE(6, 0) #else # define GARROW_AVAILABLE_IN_6_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_5_0 # define GARROW_DEPRECATED_IN_5_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_5_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_5_0 # define GARROW_DEPRECATED_IN_5_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_5_0 # define GARROW_AVAILABLE_IN_5_0 GARROW_UNAVAILABLE(5, 0) #else # define GARROW_AVAILABLE_IN_5_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_4_0 # define GARROW_DEPRECATED_IN_4_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_4_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_4_0 # define GARROW_DEPRECATED_IN_4_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_4_0 # define GARROW_AVAILABLE_IN_4_0 GARROW_UNAVAILABLE(4, 0) #else # define GARROW_AVAILABLE_IN_4_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_3_0 # define GARROW_DEPRECATED_IN_3_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_3_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_3_0 # define GARROW_DEPRECATED_IN_3_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_3_0 # define GARROW_AVAILABLE_IN_3_0 GARROW_UNAVAILABLE(3, 0) #else # define GARROW_AVAILABLE_IN_3_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_2_0 # define GARROW_DEPRECATED_IN_2_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_2_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_2_0 # define GARROW_DEPRECATED_IN_2_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_2_0 # define GARROW_AVAILABLE_IN_2_0 GARROW_UNAVAILABLE(2, 0) #else # define GARROW_AVAILABLE_IN_2_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_1_0 # define GARROW_DEPRECATED_IN_1_0 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_1_0_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_1_0 # define GARROW_DEPRECATED_IN_1_0_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_1_0 # define GARROW_AVAILABLE_IN_1_0 GARROW_UNAVAILABLE(1, 0) #else # define GARROW_AVAILABLE_IN_1_0 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_17 # define GARROW_DEPRECATED_IN_0_17 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_17_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_17 # define GARROW_DEPRECATED_IN_0_17_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_17 # define GARROW_AVAILABLE_IN_0_17 GARROW_UNAVAILABLE(0, 17) #else # define GARROW_AVAILABLE_IN_0_17 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_16 # define GARROW_DEPRECATED_IN_0_16 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_16_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_16 # define GARROW_DEPRECATED_IN_0_16_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_16 # define GARROW_AVAILABLE_IN_0_16 GARROW_UNAVAILABLE(0, 16) #else # define GARROW_AVAILABLE_IN_0_16 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_15 # define GARROW_DEPRECATED_IN_0_15 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_15_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_15 # define GARROW_DEPRECATED_IN_0_15_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_15 # define GARROW_AVAILABLE_IN_0_15 GARROW_UNAVAILABLE(0, 15) #else # define GARROW_AVAILABLE_IN_0_15 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_14 # define GARROW_DEPRECATED_IN_0_14 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_14_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_14 # define GARROW_DEPRECATED_IN_0_14_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_14 # define GARROW_AVAILABLE_IN_0_14 GARROW_UNAVAILABLE(0, 14) #else # define GARROW_AVAILABLE_IN_0_14 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_13 # define GARROW_DEPRECATED_IN_0_13 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_13_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_13 # define GARROW_DEPRECATED_IN_0_13_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_13 # define GARROW_AVAILABLE_IN_0_13 GARROW_UNAVAILABLE(0, 13) #else # define GARROW_AVAILABLE_IN_0_13 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_12 # define GARROW_DEPRECATED_IN_0_12 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_12_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_12 # define GARROW_DEPRECATED_IN_0_12_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_12 # define GARROW_AVAILABLE_IN_0_12 GARROW_UNAVAILABLE(0, 12) #else # define GARROW_AVAILABLE_IN_0_12 #endif #if GARROW_VERSION_MIN_REQUIRED >= GARROW_VERSION_0_10 # define GARROW_DEPRECATED_IN_0_10 GARROW_DEPRECATED # define GARROW_DEPRECATED_IN_0_10_FOR(function) GARROW_DEPRECATED_FOR(function) #else # define GARROW_DEPRECATED_IN_0_10 # define GARROW_DEPRECATED_IN_0_10_FOR(function) #endif #if GARROW_VERSION_MAX_ALLOWED < GARROW_VERSION_0_10 # define GARROW_AVAILABLE_IN_0_10 GARROW_UNAVAILABLE(0, 10) #else # define GARROW_AVAILABLE_IN_0_10 #endif