Skip to content

Commit

Permalink
p11-kit: Expose version information through macros
Browse files Browse the repository at this point in the history
This provides P11_KIT_VERSION_{MAJOR,MINOR,MICRO} from the
<p11-kit/version.h> header, along with a helper macro
P11_KIT_CHECK_VERSION(major, minor, micro) for checking the version
requirement with `#if` directive.

Signed-off-by: Daiki Ueno <ueno@gnu.org>
  • Loading branch information
ueno committed Apr 26, 2024
1 parent f180636 commit 88be5ef
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ frob-*
/p11-kit/pkcs11.conf.example
/p11-kit/p11-kit-server.service
/p11-kit/proxy-generated.h
/p11-kit/version.h
/p11-kit/virtual-*-generated.h
/p11-kit/virtual-fixed-wrappers.h
/p11-kit/virtual-fixed-closures.h
Expand Down
1 change: 1 addition & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -711,6 +711,7 @@ AC_CONFIG_FILES([Makefile
po/Makefile.in
p11-kit/p11-kit-1.pc
p11-kit/pkcs11.conf.example
p11-kit/version.h
])
AC_OUTPUT

Expand Down
1 change: 1 addition & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ conf = configuration_data()
conf.set_quoted('PACKAGE_NAME', meson.project_name())
conf.set('PACKAGE_MAJOR', major_version)
conf.set('PACKAGE_MINOR', minor_version)
conf.set('PACKAGE_MICRO', micro_version)

host_system = host_machine.system()
if host_system == 'windows'
Expand Down
8 changes: 8 additions & 0 deletions p11-kit/meson.build
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
version_h = configure_file(
input: 'version.h.in',
output: '@BASENAME@.h',
configuration: conf,
)

install_headers('deprecated.h',
'iter.h',
'p11-kit.h',
'pin.h',
'remote.h',
'uri.h',
version_h,
subdir: 'p11-kit-1/p11-kit')

libp11_kit_internal_sources = [
Expand All @@ -13,6 +20,7 @@ libp11_kit_internal_sources = [
'rpc-transport.c',
'rpc-message.c',
'rpc-client.c'
version_h,
]

libp11_kit_internal_sources += custom_target('generate virtual-ffi-generated.h',
Expand Down
1 change: 1 addition & 0 deletions p11-kit/p11-kit.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ typedef struct ck_function_list CK_FUNCTION_LIST;
#endif

#include "p11-kit/deprecated.h"
#include "p11-kit/version.h"

/* For size_t. */
#include <stddef.h>
Expand Down
58 changes: 58 additions & 0 deletions p11-kit/version.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Copyright (c) 2024 Red Hat, Inc.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above
* copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the
* above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or
* other materials provided with the distribution.
* * The names of contributors to this software may not be
* used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*
* Author: Daiki Ueno
*/

#ifndef P11_KIT_VERSION_H
#define P11_KIT_VERSION_H

#ifdef __cplusplus
extern "C" {
#endif

#define P11_KIT_VERSION_MAJOR (@PACKAGE_MAJOR@)
#define P11_KIT_VERSION_MINOR (@PACKAGE_MINOR@)
#define P11_KIT_VERSION_MICRO (@PACKAGE_MICRO@)

#define P11_KIT_CHECK_VERSION(major, minor, micro) \
(P11_KIT_VERSION_MAJOR > (major) || \
(P11_KIT_VERSION_MAJOR == (major) && \
P11_KIT_VERSION_MINOR > (minor)) || \
(P11_KIT_VERSION_MAJOR == (major) && \
P11_KIT_VERSION_MINOR == (minor) && \
P11_KIT_VERSION_MINOR >= (micro)))

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /* P11_KIT_VERSION_H */

0 comments on commit 88be5ef

Please sign in to comment.