Files
sysprof/src/libsysprof-capture/sysprof-version.h.in
Christian Hergert 6ba408f073 shared: remove use of libshared
This moves everything into other places and simple includes the
files in the cases that it is necessary. In the future, we can
rewrite sysprofd to use GDBus and add GetProcFile() to allow
for client-side processing of kallsyms.
2019-05-29 15:12:59 -07:00

94 lines
2.6 KiB
C

/* sysprof-version.h.in
*
* Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
*
* This file is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* This file is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
/**
* SECTION:sysprof-version
* @short_description: sysprof version checking
*
* sysprof provides macros to check the version of the library
* at compile-time
*/
/**
* SYSPROF_MAJOR_VERSION:
*
* sysprof major version component (e.g. 1 if %SYSPROF_VERSION is 1.2.3)
*/
#define SYSPROF_MAJOR_VERSION (@MAJOR_VERSION@)
/**
* SYSPROF_MINOR_VERSION:
*
* sysprof minor version component (e.g. 2 if %SYSPROF_VERSION is 1.2.3)
*/
#define SYSPROF_MINOR_VERSION (@MINOR_VERSION@)
/**
* SYSPROF_MICRO_VERSION:
*
* sysprof micro version component (e.g. 3 if %SYSPROF_VERSION is 1.2.3)
*/
#define SYSPROF_MICRO_VERSION (@MICRO_VERSION@)
/**
* SYSPROF_VERSION
*
* sysprof version.
*/
#define SYSPROF_VERSION (@VERSION@)
/**
* SYSPROF_VERSION_S:
*
* sysprof version, encoded as a string, useful for printing and
* concatenation.
*/
#define SYSPROF_VERSION_S "@VERSION@"
#define SYSPROF_ENCODE_VERSION(major,minor,micro) \
((major) << 24 | (minor) << 16 | (micro) << 8)
/**
* SYSPROF_VERSION_HEX:
*
* sysprof version, encoded as an hexadecimal number, useful for
* integer comparisons.
*/
#define SYSPROF_VERSION_HEX \
(SYSPROF_ENCODE_VERSION (SYSPROF_MAJOR_VERSION, SYSPROF_MINOR_VERSION, SYSPROF_MICRO_VERSION))
/**
* SYSPROF_CHECK_VERSION:
* @major: required major version
* @minor: required minor version
* @micro: required micro version
*
* Compile-time version checking. Evaluates to %TRUE if the version
* of sysprof is greater than the required one.
*/
#define SYSPROF_CHECK_VERSION(major,minor,micro) \
(SYSPROF_MAJOR_VERSION > (major) || \
(SYSPROF_MAJOR_VERSION == (major) && SYSPROF_MINOR_VERSION > (minor)) || \
(SYSPROF_MAJOR_VERSION == (major) && SYSPROF_MINOR_VERSION == (minor) && \
SYSPROF_MICRO_VERSION >= (micro)))