PHengLEI-NCCR/API/Common/include/LIB_Macro.h

100 lines
3.8 KiB
C
Raw Normal View History

2024-10-14 09:32:17 +08:00
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// PPPPP H H EEEEE N N GGGGG L EEEEE III +
// P P H H E NN N G L E I +
// PPPPP HHHHH EEEEE N N N G GG L EEEEE I +
// P H H E N N N G G L E I +
// P H H EEEEE N N GGGGG LLLLL EEEEE III +
//------------------------------------------------------------------------+
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//! @file LIB_Macro.h
//! @brief This file is part of PHengLEI Technology software library.
//! This file is intended to be the first file #included to any
//! PHengLEI source. It defines platform-specific pre-processor
//! macros necessary for correct compilation of PHengLEI code
//! It's used to define the DLL/Static library.
//! @author Bell modified it from OCC.
#pragma once
#include <iostream>
using namespace std;
#if defined(__cplusplus) && (__cplusplus >= 201100L)
//! Part of C++11 standard.
#define Standard_OVERRIDE override
#elif defined(_MSC_VER) && (_MSC_VER >= 1700)
//! MSVC extension since VS2012.
#define Standard_OVERRIDE override
#else
#define Standard_OVERRIDE
#endif
//======================================================
// Windows-specific definitions
//======================================================
# if defined(_WIN32) && !defined(HAVE_NO_DLL)
# ifndef LIB_EXPORT
# define LIB_EXPORT __declspec(dllexport)
//! For global variables :
# define LIB_EXPORTEXTERN __declspec(dllexport) extern
# define LIB_EXPORTEXTERNC extern "C" __declspec(dllexport)
# endif /* LIB_EXPORT */
# ifndef LIB_IMPORT
# define LIB_IMPORT __declspec(dllimport) extern
# define LIB_IMPORTC extern "C" __declspec(dllimport)
# endif /* LIB_IMPORT */
# else /* WNT */
//======================================================
// UNIX definitions
//======================================================
# ifndef LIB_EXPORT
# define LIB_EXPORT
//! For global variables :
# define LIB_EXPORTEXTERN extern
# define LIB_EXPORTEXTERNC extern "C"
# endif /* Standard_EXPORT */
# ifndef LIB_IMPORT
# define LIB_IMPORT extern
# define LIB_IMPORTC extern "C"
# endif /* Standard_IMPORT */
//! Compatibility with old SUN compilers.
//! This preprocessor directive is a kludge to get around
//! a bug in the Sun Workshop 5.0 compiler, it keeps the
//! /usr/include/memory.h file from being #included
//! with an incompatible extern "C" definition of memchr
//! October 18, 2000 <rboehne@ricardo-us.com>.
#if __SUNPRO_CC_COMPAT == 5
#define _MEMORY_H
#endif
# endif /* WNT */
//======================================================
// Other
//======================================================
# ifndef __Standard_API
//# ifdef WNT
# if !defined(_WIN32) || defined(__Standard_DLL) || defined(__FSD_DLL) || defined(__MMgt_DLL) || defined(__OSD_DLL) || defined(__Plugin_DLL) || defined(__Quantity_DLL) || defined(__Resource_DLL) || defined(__SortTools_DLL) || defined(__StdFail_DLL) || defined(__Storage_DLL) || defined(__TColStd_DLL) || defined(__TCollection_DLL) || defined(__TShort_DLL) || defined(__Units_DLL) || defined(__UnitsAPI_DLL) || defined(__Dico_DLL)
# define __Standard_API Standard_EXPORT
# define __Standard_APIEXTERN Standard_EXPORTEXTERN
# else
# define __Standard_API Standard_IMPORT
# define __Standard_APIEXTERN Standard_IMPORT
# endif // __Standard_DLL
//# else
//# define __Standard_API
//# endif // WNT
# endif // __Standard_API