diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-23 09:41:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-07-23 11:00:43 +0000 |
commit | d0b1bae8c5c70c5d06f3dcecc450a75e7f7cb5af (patch) | |
tree | 7ea7c5e622a5d7c9c989057a1eca8954c4d7fefb /src/ly_config.h.in | |
parent | Initial commit. (diff) | |
download | libyang3-d0b1bae8c5c70c5d06f3dcecc450a75e7f7cb5af.tar.xz libyang3-d0b1bae8c5c70c5d06f3dcecc450a75e7f7cb5af.zip |
Adding upstream version 3.1.0+dfsg.upstream/3.1.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/ly_config.h.in')
-rw-r--r-- | src/ly_config.h.in | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/ly_config.h.in b/src/ly_config.h.in new file mode 100644 index 0000000..ca7552f --- /dev/null +++ b/src/ly_config.h.in @@ -0,0 +1,75 @@ +/** + * @file ly_config.h + * @author Radek Krejci <rkrejci@cesnet.cz> + * @uathor Michal Vasko <mvasko@cesnet.cz> + * @brief Various variables provided by cmake and compile time options. + * + * Copyright (c) 2021 - 2024 CESNET, z.s.p.o. + * + * This source code is licensed under BSD 3-Clause License (the "License"). + * You may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://opensource.org/licenses/BSD-3-Clause + */ + +#ifndef LY_CONFIG_H_ +#define LY_CONFIG_H_ + +#ifdef _WIN32 +/* headers are broken on Windows, which means that some of them simply *have* to come first */ +# include <winsock2.h> +# include <ws2tcpip.h> +#endif + +/** size of fixed_mem in lyd_value, minimum is 8 (B) */ +#define LYD_VALUE_FIXED_MEM_SIZE @LYD_VALUE_SIZE@ + +/** plugins */ +#define LYPLG_SUFFIX "@CMAKE_SHARED_MODULE_SUFFIX@" +#define LYPLG_SUFFIX_LEN (sizeof LYPLG_SUFFIX - 1) +#define LYPLG_TYPE_DIR "@PLUGINS_DIR_TYPES@" +#define LYPLG_EXT_DIR "@PLUGINS_DIR_EXTENSIONS@" + +/** atomic compiler operations, to be able to use uint32_t */ +#ifndef _WIN32 +# define LY_ATOMIC_INC_BARRIER(var) __sync_fetch_and_add(&(var), 1) +# define LY_ATOMIC_DEC_BARRIER(var) __sync_fetch_and_sub(&(var), 1) +#else +# include <windows.h> +# define LY_ATOMIC_INC_BARRIER(var) InterlockedExchangeAdd(&(var), 1) +# define LY_ATOMIC_DEC_BARRIER(var) InterlockedExchangeAdd(&(var), -1) +#endif + +/** printf compiler attribute */ +#ifdef __GNUC__ +# define _FORMAT_PRINTF(FORM, ARGS) __attribute__((format (printf, FORM, ARGS))) +#else +# define _FORMAT_PRINTF(FORM, ARGS) +#endif + +/** Exporting symbols to a shared library and importing back afterwards + * + * - use LIBYANG_API_DECL to mark a declaration in the public header + * - use LIBYANG_API_DEF to mark a definition (in the source code for the actual implementaiton) + * */ +#ifdef _MSC_VER +# ifndef STATIC +# define LIBYANG_API_DEF __declspec(dllexport) +# ifdef LIBYANG_BUILD +# define LIBYANG_API_DECL __declspec(dllexport) +# else +# define LIBYANG_API_DECL __declspec(dllimport) +# endif +# endif +#else +/* + * If the compiler supports attribute to mark objects as hidden, mark all + * objects as hidden and export only objects explicitly marked to be part of + * the public API. + */ +# define LIBYANG_API_DEF __attribute__((visibility("default"))) +# define LIBYANG_API_DECL +#endif + +#endif /* LY_CONFIG_H_ */ |