blob: 34edd9f13412c86067bb4ef045758fbe2e52d38e [file] [log] [blame]
/*
* 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 <glib.h>
/**
* SECTION: version
* @section_id: version-macros
* @title: Version related macros
* @include: parquet-glib/parquet-glib.h
*
* Apache Parquet GLib provides macros that can be used by C pre-processor.
* They are useful to check version related things at compile time.
*/
/**
* GPARQUET_VERSION_MAJOR:
*
* The major version.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_MAJOR (@GPARQUET_VERSION_MAJOR@)
/**
* GPARQUET_VERSION_MINOR:
*
* The minor version.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_MINOR (@GPARQUET_VERSION_MINOR@)
/**
* GPARQUET_VERSION_MICRO:
*
* The micro version.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_MICRO (@GPARQUET_VERSION_MICRO@)
/**
* GPARQUET_VERSION_TAG:
*
* The version tag. Normally, it's an empty string. It's "SNAPSHOT"
* for snapshot version.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_TAG "@GPARQUET_VERSION_TAG@"
/**
* GPARQUET_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 Parquet GLib version is the
* same as or newer than the passed version, %FALSE otherwise.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_CHECK(major, minor, micro) \
(GPARQUET_MAJOR_VERSION > (major) || \
(GPARQUET_MAJOR_VERSION == (major) && \
GPARQUET_MINOR_VERSION > (minor)) || \
(GPARQUET_MAJOR_VERSION == (major) && \
GPARQUET_MINOR_VERSION == (minor) && \
GPARQUET_MICRO_VERSION >= (micro)))
/**
* GPARQUET_DISABLE_DEPRECATION_WARNINGS:
*
* If this macro is defined, no deprecated warnings are produced.
*
* You must define this macro before including the
* parquet-glib/parquet-glib.h header.
*
* Since: 0.16.0
*/
#ifdef GPARQUET_DISABLE_DEPRECATION_WARNINGS
# define GPARQUET_DEPRECATED
# define GPARQUET_DEPRECATED_FOR(function)
# define GPARQUET_UNAVAILABLE(major, minor)
#else
# define GPARQUET_DEPRECATED G_DEPRECATED
# define GPARQUET_DEPRECATED_FOR(function) G_DEPRECATED_FOR(function)
# define GPARQUET_UNAVAILABLE(major, minor) G_UNAVAILABLE(major, minor)
#endif
/**
* GPARQUET_VERSION_1_0:
*
* You can use this macro value for compile time API version check.
*
* Since: 1.0.0
*/
#define GPARQUET_VERSION_1_0 G_ENCODE_VERSION(1, 0)
/**
* GPARQUET_VERSION_0_16:
*
* You can use this macro value for compile time API version check.
*
* Since: 0.16.0
*/
#define GPARQUET_VERSION_0_16 G_ENCODE_VERSION(0, 16)
/**
* GPARQUET_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 %GPARQUET_VERSION_0_16.
*
* If you use any functions that is defined by newer version than
* %GPARQUET_VERSION_MIN_REQUIRED, deprecated warnings are produced at
* compile time.
*
* You must define this macro before including the
* parquet-glib/parquet-glib.h header.
*
* Since: 0.16.0
*/
#ifndef GPARQUET_VERSION_MIN_REQUIRED
# define GPARQUET_VERSION_MIN_REQUIRED \
G_ENCODE_VERSION(GPARQUET_VERSION_MAJOR, GPARQUET_VERSION_MINOR)
#endif
/**
* GPARQUET_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 %GPARQUET_VERSION_0_16.
*
* If you use any functions that is defined by newer version than
* %GPARQUET_VERSION_MAX_ALLOWED, deprecated warnings are produced at
* compile time.
*
* You must define this macro before including the
* parquet-glib/parquet-glib.h header.
*
* Since: 0.16.0
*/
#ifndef GPARQUET_VERSION_MAX_ALLOWED
# define GPARQUET_VERSION_MAX_ALLOWED \
G_ENCODE_VERSION(GPARQUET_VERSION_MAJOR, GPARQUET_VERSION_MINOR)
#endif
#define GPARQUET_AVAILABLE_IN_ALL
#if GPARQUET_VERSION_MIN_REQUIRED >= GPARQUET_VERSION_1_0
# define GPARQUET_DEPRECATED_IN_1_0 GPARQUET_DEPRECATED
# define GPARQUET_DEPRECATED_IN_1_0_FOR(function) GPARQUET_DEPRECATED_FOR(function)
#else
# define GPARQUET_DEPRECATED_IN_1_0
# define GPARQUET_DEPRECATED_IN_1_0_FOR(function)
#endif
#if GPARQUET_VERSION_MAX_ALLOWED < GPARQUET_VERSION_1_0
# define GPARQUET_AVAILABLE_IN_1_0 GPARQUET_UNAVAILABLE(1, 0)
#else
# define GPARQUET_AVAILABLE_IN_1_0
#endif
#if GPARQUET_VERSION_MIN_REQUIRED >= GPARQUET_VERSION_0_17
# define GPARQUET_DEPRECATED_IN_0_17 GPARQUET_DEPRECATED
# define GPARQUET_DEPRECATED_IN_0_17_FOR(function) GPARQUET_DEPRECATED_FOR(function)
#else
# define GPARQUET_DEPRECATED_IN_0_17
# define GPARQUET_DEPRECATED_IN_0_17_FOR(function)
#endif
#if GPARQUET_VERSION_MAX_ALLOWED < GPARQUET_VERSION_0_17
# define GPARQUET_AVAILABLE_IN_0_17 GPARQUET_UNAVAILABLE(0, 17)
#else
# define GPARQUET_AVAILABLE_IN_0_17
#endif
#if GPARQUET_VERSION_MIN_REQUIRED >= GPARQUET_VERSION_0_16
# define GPARQUET_DEPRECATED_IN_0_16 GPARQUET_DEPRECATED
# define GPARQUET_DEPRECATED_IN_0_16_FOR(function) GPARQUET_DEPRECATED_FOR(function)
#else
# define GPARQUET_DEPRECATED_IN_0_16
# define GPARQUET_DEPRECATED_IN_0_16_FOR(function)
#endif
#if GPARQUET_VERSION_MAX_ALLOWED < GPARQUET_VERSION_0_16
# define GPARQUET_AVAILABLE_IN_0_16 GPARQUET_UNAVAILABLE(0, 16)
#else
# define GPARQUET_AVAILABLE_IN_0_16
#endif