MongoDB C++ Driver legacy-1.0.0
Loading...
Searching...
No Matches
autolib.h
1/* Copyright 2014 MongoDB Inc.
2 *
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#pragma once
17
18#if defined(_MSC_VER) && !defined(LIBMONGOCLIENT_NO_AUTOLIB)
19#
20# pragma push_macro("LIBMONGOCLIENT_LIB_PREFIX")
21# undef LIBMONGOCLIENT_LIB_PREFIX
22#
23# pragma push_macro("LIBMONGOCLIENT_ABI_ADORNMENT")
24# undef LIBMONGOCLIENT_ABI_ADORNMENT
25#
26# pragma push_macro("LIBMONGOCLIENT_LIB_SUFFIX")
27# undef LIBMONGOCLIENT_LIB_SUFFIX
28#
29# if defined(STATIC_LIBMONGOCLIENT)
30# // Our static libraries start with an extra 'lib' to separate from DLLs.
31# define LIBMONGOCLIENT_LIB_PREFIX "lib"
32# if defined(_DEBUG)
33# if defined(_DLL)
34# // This is a static client lib linking to the debug DLL runtime
35# define LIBMONGOCLIENT_ABI_ADORNMENT "-gd"
36# else
37# // This is a static client lib linking to the debug static runtime
38# define LIBMONGOCLIENT_ABI_ADORNMENT "-sgd"
39# endif
40# else
41# if defined(_DLL)
42# // This is a static client lib linking to the retail DLL runtime
43# define LIBMONGOCLIENT_ABI_ADORNMENT ""
44# else
45# // This is a static client lib linking to the retail static runtime
46# define LIBMONGOCLIENT_ABI_ADORNMENT "-s"
47# endif
48# endif
49# else
50# // Our DLL doesn't have a 'lib' prefix, unlike our static lib
51# define LIBMONGOCLIENT_LIB_PREFIX ""
52# if defined(_DEBUG)
53# // This is a DLL libmongoclient linking to the debug DLL runtime
54# define LIBMONGOCLIENT_ABI_ADORNMENT "-gd"
55# else
56# // This is a DLL libmongoclient linking to the retail DLL runtime
57# define LIBMONGOCLIENT_ABI_ADORNMENT ""
58# endif
59# endif
60#
61# // We always link to either the static library, or the stub for DLLs.
62# define LIBMONGOCLIENT_LIB_SUFFIX ".lib"
63#
64# // Tack together the pieces in the right order
65# pragma comment(lib, LIBMONGOCLIENT_LIB_PREFIX "mongoclient" LIBMONGOCLIENT_ABI_ADORNMENT LIBMONGOCLIENT_LIB_SUFFIX )
66#
67# pragma pop_macro("LIBMONGOCLIENT_LIB_PREFIX")
68# pragma pop_macro("LIBMONGOCLIENT_ABI_ADORNMENT")
69# pragma pop_macro("LIBMONGOCLIENT_LIB_SUFFIX")
70#
71#endif