// Copyright 2020 Siemens Digital Industries Software
// ==================================================
// Copyright 2009.
// Siemens Product Lifecycle Management Software Inc.
// All Rights Reserved.
// ==================================================
// Copyright 2020 Siemens Digital Industries Software

/**
    @file
    Preprocessor macros for specifying export symbols in base utilities library.
*/

#include <common/library_indicators.h>

#ifdef EXPORTLIBRARY
#define EXPORTLIBRARY something else
#error ExportLibrary was already defined
#endif

#define EXPORTLIBRARY            libbase_utils

#if !defined(IPLIB)
#   error IPLIB is not defined
#endif

/* Handwritten code should use BASE_UTILS_API, not BASE_UTILSEXPORT */
#define BASE_UTILS_API BASE_UTILSEXPORT

/* Support BASE_UTILSEXPORT for autogenerated schema/pif code only */
#if IPLIB==libbase_utils
#   if defined(__lint)
#       define BASE_UTILSEXPORT       __export(base_utils)
#       define BASE_UTILSGLOBAL       extern __global(base_utils)
#       define BASE_UTILSPRIVATE      extern __private(base_utils)
#   elif defined(_WIN32)
#       define BASE_UTILSEXPORT       __declspec(dllexport)
#       define BASE_UTILSGLOBAL       extern __declspec(dllexport)
#       define BASE_UTILSPRIVATE      extern
#   else
#       define BASE_UTILSEXPORT
#       define BASE_UTILSGLOBAL       extern
#       define BASE_UTILSPRIVATE      extern
#   endif
#else
#   if defined(__lint)
#       define BASE_UTILSEXPORT       __export(base_utils)
#       define BASE_UTILSGLOBAL       extern __global(base_utils)
#   elif defined(_WIN32) && !defined(WNT_STATIC_LINK)
#       define BASE_UTILSEXPORT      __declspec(dllimport)
#       define BASE_UTILSGLOBAL       extern __declspec(dllimport)
#   else
#       define BASE_UTILSEXPORT
#       define BASE_UTILSGLOBAL       extern
#   endif
#endif
