OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
owllink.h
Go to the documentation of this file.
1//----------------------------------------------------------------------------
2// Object Windows Library
3// Copyright (c) 1998 by Yura Bidus, All Rights Reserved
4// Copyright (c) 2008-2013 Vidar Hasfjord
5//----------------------------------------------------------------------------
6
7#if !defined(OWL_PRIVATE_OWLLINK_H)
8#define OWL_PRIVATE_OWLLINK_H
9
10#include <owl/version.h>
11
12#define OWL_LIB_NAME "owl"
13
14#define OWL_LIB_DELIMITER "-"
15
16#define OWL_LIB_VERSION OWL_PRODUCTVERSION_STRING
17
18#if defined(__BORLANDC__) && defined(__clang__)
19
20#define OWL_LIB_COMPILER "c"
21
22#if __BORLANDC__ >= 0x780
23#error OWLNext: Unsupported compiler version (too new; please add support).
24#elif __BORLANDC__ >= 0x770 // RAD Studio/C++Builder 12 Athens (RX/CX)
25#define OWL_LIB_COMPILER_VERSION "770"
26#elif __BORLANDC__ >= 0x760 // RAD Studio/C++Builder 11 Alexandria (RX/CX)
27#define OWL_LIB_COMPILER_VERSION "760"
28#elif __BORLANDC__ >= 0x750 // RAD Studio/C++Builder 10.4 Sydney (RX/CX)
29#define OWL_LIB_COMPILER_VERSION "750"
30#elif __BORLANDC__ >= 0x740 // RAD Studio/C++Builder 10.3 Rio (RX/CX)
31#define OWL_LIB_COMPILER_VERSION "740"
32#elif (__BORLANDC__ >= 0x730) // RAD Studio/C++Builder 10.2 Tokyo (RX/CX)
33#define OWL_LIB_COMPILER_VERSION "730"
34#else
35#error OWLNext: Unsupported compiler version (too old; update to a newer version).
36#endif
37
38#elif defined(_MSC_VER)
39
40#define OWL_LIB_COMPILER "v"
41
42#if _MSC_VER >= 1950
43#error OWLNext: Unsupported compiler version (too new; please add support).
44#elif _MSC_VER >= 1930 // VS 2022 (_MSC_VER: 1930-1949)
45#define OWL_LIB_COMPILER_VERSION "1930" // Platform toolset "v143" (14.30-14.49)
46#elif _MSC_VER >= 1920 // VS 2019
47#define OWL_LIB_COMPILER_VERSION "1920"
48#elif _MSC_VER >= 1910 // VS 2017
49#define OWL_LIB_COMPILER_VERSION "1910"
50#else
51#error OWLNext: Unsupported compiler version (too old; update to a newer version).
52#endif
53
54#else
55
56#error OWLNext: Unsupported compiler.
57
58#endif
59
60// Platform processor architecture (ISA)
61
62#if defined(_M_AMD64)
63#define OWL_LIB_PLATFORM "x64"
64#elif defined(_M_IX86)
65#define OWL_LIB_PLATFORM "x86"
66#else
67#error OWLNext: Unsupported platform.
68#endif
69
70// Compatibility modes
71
72#if defined(OWL5_COMPAT)
73#define OWL_LIB_COMPAT "5"
74#else
75#define OWL_LIB_COMPAT ""
76#endif
77
78// Debugging modes
79
80#if defined(__CODEGUARD__)
81#define OWL_LIB_DEBUG "g"
82#elif defined(__DEBUG) && (__DEBUG > 0)
83#define OWL_LIB_DEBUG "d"
84#else
85#define OWL_LIB_DEBUG ""
86#endif
87
88// Threading (concurrency) modes
89
90#if defined(INC_VCL)
91#define OWL_LIB_THREADING "v"
92#elif defined(__MT__) || defined(_MT)
93#define OWL_LIB_THREADING "t"
94#else
95#define OWL_LIB_THREADING "s"
96#endif
97
98// Character type modes
99
100#if defined(UNICODE)
101#define OWL_LIB_CHARACTERTYPE "u"
102#else
103#define OWL_LIB_CHARACTERTYPE ""
104#endif
105
106// Link (import) modes
107
108#if defined(_OWLDLL)
109#define OWL_LIB_IMPORT "i"
110#else
111#define OWL_LIB_IMPORT ""
112#endif
113
114// Compose the appropriate pragma link directive.
115
116#pragma comment(lib, \
117 OWL_LIB_NAME \
118 OWL_LIB_DELIMITER \
119 OWL_LIB_VERSION \
120 OWL_LIB_DELIMITER \
121 OWL_LIB_COMPILER \
122 OWL_LIB_COMPILER_VERSION \
123 OWL_LIB_DELIMITER \
124 OWL_LIB_PLATFORM \
125 OWL_LIB_DELIMITER \
126 OWL_LIB_COMPAT \
127 OWL_LIB_DEBUG \
128 OWL_LIB_THREADING \
129 OWL_LIB_CHARACTERTYPE \
130 OWL_LIB_IMPORT \
131 ".lib")
132
133#endif // OWL_PRIVATE_OWLLINK_H
Library version and build information header (template).