Itasca C++ Interface
Toggle main menu visibility
Loading...
Searching...
No Matches
export.h
Go to the documentation of this file.
1
#pragma once
2
3
//#ifdef _DEBUG
4
//# define _CTRDBG_MAP_ALLOC
5
//# include <stdlib.h>
6
//# include <crtdbg.h>
7
//#endif
13
#ifdef _WIN32
// Identify compilers on Win32
14
# define EXPORT_TAG __declspec(dllexport)
15
# define IMPORT_TAG __declspec(dllimport)
16
# if _MSC_VER >= 1910
17
# define VS2017
18
# endif
19
# if _MSC_VER >= 1920
20
# define VS2019
21
# endif
22
#if defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__INTEL_LLVM_COMPILER)
23
# define VSCOMP
24
# endif
25
# if defined(__clang__) && !defined(__INTEL_LLVM_COMPILER)
26
# define CLANGCOMP
27
# endif
28
# ifdef __INTEL_LLVM_COMPILER
29
# define INTELLLVMCOMP
// Intel identifies itself as clang
30
# endif
31
# ifdef __INTEL_COMPILER
32
# define INTELCOMP
33
# endif
34
#endif
35
#ifdef __LINUX
// Identify compilers on Linux
36
# define EXPORT_TAG
37
# define IMPORT_TAG
38
# if defined(__clang__) && !defined(__INTEL_LLVM_COMPILER)
39
# define CLANGCOMP
40
# endif
41
# if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER)
42
# define GNUCOMP
43
# endif
44
# if defined(__INTEL_COMPILER)
45
# define INTELCOMP
46
# endif
47
# ifdef __INTEL_LLVM_COMPILER
48
# define INTELLLVMCOMP
49
# endif
50
#endif
51
52
// NOTE: Conventions on which compiler
53
// INTELCOMP means Intel C++ classic (icl)
54
// INTELLLVMCOMP means oneAPI Intel C++ (icx)
55
// VSCOMP means Visual Studio (MSVC)
56
// CLANGCOMP means Clang
57
// GNUCOMP means GCC
58
59
#define DOPRAGMA(x) _Pragma(#x)
60
61
#define INTELWARNING(x)
62
#define INTELLLVMWARNING(x)
63
#define GNUWARNING(x)
64
#define CLANGWARNING(x)
65
#define VSWARNING(x)
66
67
#ifdef INTELCOMP
68
# define PUSHWARNING DOPRAGMA(warning(push))
69
# define POPWARNING DOPRAGMA(warning(pop))
70
# undef INTELWARNING
71
# define INTELWARNING(x) DOPRAGMA(warning(disable:x))
72
# include <iso646.h>
// and not or macros
73
#endif
74
75
#ifdef VSCOMP
76
# define PUSHWARNING DOPRAGMA(warning(push))
77
# define POPWARNING DOPRAGMA(warning(pop))
78
# undef VSWARNING
79
# define VSWARNING(x) DOPRAGMA(warning(disable:x))
80
#endif
81
82
#ifdef CLANGCOMP
83
# define PUSHWARNING DOPRAGMA(clang diagnostic push)
84
# define POPWARNING DOPRAGMA(clang diagnostic pop)
85
# undef CLANGWARNING
86
# define CLANGWARNING(x) DOPRAGMA(clang diagnostic ignored x)
87
#endif
88
89
#ifdef INTELLLVMCOMP
90
#define PUSHWARNING DOPRAGMA(clang diagnostic push)
91
#define POPWARNING DOPRAGMA(clang diagnostic pop)
92
#undef INTELLLVMWARNING
93
#define INTELLLVMWARNING(x) DOPRAGMA(clang diagnostic ignored x)
94
#endif
95
96
#ifdef GNUCOMP
97
# define PUSHWARNING DOPRAGMA(GCC diagnostic push)
98
# define POPWARNING DOPRAGMA(GCC diagnostic pop)
99
# undef GNUWARNING
100
# define GNUWARNING(x) DOPRAGMA(GCC diagnostic ignored x)
101
#endif
102
103
#ifndef GNUCOMP
104
# define TEMPLATE template
105
#else
106
# define TEMPLATE
107
#endif
108
110
// EoF
common
base
src
export.h
Generated by
1.18.0