GL Studio C++ Runtime API
gls_auto_lib.h
Go to the documentation of this file.
1 /*! \file
2  \brief The gls_auto_lib.
3 
4  \par Copyright Information
5 
6  Copyright (c) 2017 by The DiSTI Corporation.<br>
7  11301 Corporate Blvd; Suite 100<br>
8  Orlando, Florida 32817<br>
9  USA<br>
10  <br>
11  All rights reserved.<br>
12 
13  This Software contains proprietary trade secrets of DiSTI and may not be
14 reproduced, in whole or part, in any form, or by any means of electronic,
15 mechanical, or otherwise, without the written permission of DiSTI. Said
16 permission may be derived through the purchase of applicable DiSTI product
17 licenses which detail the distribution rights of this content and any
18 Derivative Works based on this or other copyrighted DiSTI Software.
19 
20  NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21 AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22 PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23 AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24 IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25 PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26 
27  LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28 IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29 INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30 DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31 INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32 INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33 OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34 EXCEED FIVE DOLLARS (US$5.00).
35 
36  The aforementioned terms and restrictions are governed by the laws of the
37 State of Florida and the United States of America.
38 
39 */
40 #if defined( WIN32 )
41 
42 // Determine compiler version
43 # if !defined( GLS_LIB_SUFFIX )
44 # if _MSC_VER < 1700
45 # pragma message( "Warning (gls_version.h): Unrecognized compiler version" )
46 # define GLS_COMPILER_VERSION vcXX
47 # elif _MSC_VER < 1800
48 # ifdef _WIN64
49 # define GLS_LIB_SUFFIX "_vc110_64"
50 # else
51 # define GLS_LIB_SUFFIX "_vc110"
52 # endif
53 # elif _MSC_VER < 1900
54 # ifdef _WIN64
55 # define GLS_LIB_SUFFIX "_vc120_64"
56 # else
57 # define GLS_LIB_SUFFIX "_vc120"
58 # endif
59 # elif _MSC_VER < 1910
60 # ifdef _WIN64
61 # define GLS_LIB_SUFFIX "_vc140_64"
62 # else
63 # define GLS_LIB_SUFFIX "_vc140"
64 # endif
65 # elif _MSC_VER < 1920
66 # ifdef _WIN64
67 # define GLS_LIB_SUFFIX "_vc141_64"
68 # else
69 # define GLS_LIB_SUFFIX "_vc141"
70 # endif
71 # elif _MSC_VER < 1930
72 # ifdef _WIN64
73 # define GLS_LIB_SUFFIX "_vc142_64"
74 # else
75 # define GLS_LIB_SUFFIX "_vc142"
76 # endif
77 # elif _MSC_VER < 1940
78 # ifdef _WIN64
79 # define GLS_LIB_SUFFIX "_vc143_64"
80 # else
81 # define GLS_LIB_SUFFIX "_vc143"
82 # endif
83 # else
84 # error "Unsupported Compiler detected."
85 # define GLS_LIB_SUFFIX "_vcXX"
86 # endif
87 # endif
88 
89 // Determine C runtime version
90 # if !defined( GLS_LIB_CRT_SUFFIX )
91 # if defined( _DEBUG )
92 # if defined( _MT )
93 # if defined( _DLL )
94 # define GLS_LIB_CRT_SUFFIX "mdd"
95 # else
96 # define GLS_LIB_CRT_SUFFIX "mtd"
97 # endif
98 # else
99 # define GLS_LIB_CRT_SUFFIX "mld"
100 # endif
101 # else
102 # if defined( _MT )
103 # if defined( _DLL )
104 # define GLS_LIB_CRT_SUFFIX "md"
105 # else
106 # define GLS_LIB_CRT_SUFFIX "mt"
107 # endif
108 # else
109 # define GLS_LIB_CRT_SUFFIX "ml"
110 # endif
111 # endif
112 # endif
113 
114 // Determine import library type
115 # if !defined( GLS_LIB_TYPE )
116 # if defined( GLS_IMPORT_LIBRARY ) // glstudio runtime DLL
117 # define GLS_LIB_TYPE "_glsdll"
118 # else // statically linked glstudio runtime library
119 # define GLS_LIB_TYPE ""
120 # endif
121 # endif
122 
123 // Internal disti libraries
124 # if !defined( GLS_AUTOLIB_SUFFIX )
125 # if defined( GLS_AUTOLIB_DEBUG )
126 # define GLS_AUTOLIB_SUFFIX "d"
127 # else
128 # define GLS_AUTOLIB_SUFFIX
129 # endif
130 # endif
131 
132 // Automatic library inclusion macros that use the #pragma/lib feature
133 # if !defined( NO_GLS_AUTOLIB )
134 # define GLS_BUILD_LIB_NAME( x ) x GLS_AUTOLIB_SUFFIX GLS_LIB_TYPE GLS_LIB_SUFFIX GLS_LIB_CRT_SUFFIX ".lib"
135 # define GLS_AUTOLIBNAME GLS_BUILD_LIB_NAME( LIB_BASE_NAME )
136 # if !defined( GLS_AUTOLIB_QUIET )
137 # pragma message( "Will automatically link with " GLS_AUTOLIBNAME )
138 # endif
139 # pragma comment( lib, GLS_AUTOLIBNAME )
140 # undef GLS_AUTOLIBNAME
141 # undef GLS_BUILD_LIB_NAME
142 # endif
143 
144 #endif //end of WIN32