HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Library/include/charls/api_abi.h
// Copyright (c) Team CharLS.
// SPDX-License-Identifier: BSD-3-Clause

#pragma once

// The macros below are needed to export/import the Application Binary Interface of the charls library.

#if defined(CHARLS_STATIC)

// CharLS is used as a static library, just define the entry points as extern.
#define CHARLS_API_IMPORT_EXPORT extern
#define CHARLS_API_CALLING_CONVENTION

#else

// CharLS is used as a DLL \ shared library, define the entry points as required.
#if defined(_WIN32)

#if defined(CHARLS_LIBRARY_BUILD)
#define CHARLS_API_IMPORT_EXPORT __declspec(dllexport)
#else
#define CHARLS_API_IMPORT_EXPORT __declspec(dllimport)
#endif

// Ensure that the exported functions of a 32 bit Windows DLL use the __stdcall convention.
#if defined(_M_IX86) || defined(__MINGW32__)
#define CHARLS_API_CALLING_CONVENTION __stdcall
#else
#define CHARLS_API_CALLING_CONVENTION
#endif

#else

#if defined(CHARLS_LIBRARY_BUILD)
#define CHARLS_API_IMPORT_EXPORT __attribute__((visibility("default")))
#else
#define CHARLS_API_IMPORT_EXPORT extern
#endif

#define CHARLS_API_CALLING_CONVENTION

#endif

#endif

#if defined(__cplusplus) && __cplusplus >= 201703
#define CHARLS_NO_DISCARD [[nodiscard]]
#else
#define CHARLS_NO_DISCARD
#endif

#ifdef __cplusplus

#define CHARLS_FINAL final
#define CHARLS_NOEXCEPT noexcept
#define CHARLS_C_VOID

#ifdef CHARLS_NO_DEPRECATED_WARNING
#define CHARLS_DEPRECATED
#else
#define CHARLS_DEPRECATED \
    [[deprecated("Functionality will be removed in the next major version, use CHARLS_NO_DEPRECATED_WARNING to suppress " \
                 "this deprecation.")]]
#endif

#else
#define CHARLS_FINAL
#define CHARLS_NOEXCEPT
#define CHARLS_DEPRECATED
#define CHARLS_C_VOID void
#endif