Ice 3.8
C++ API Reference
Loading...
Searching...
No Matches
Config.h
1// Copyright (c) ZeroC, Inc.
2
3#ifndef ICE_CONFIG_H
4#define ICE_CONFIG_H
5
6// Compiler extensions to export and import symbols: see the documentation for Visual Studio, Clang and GCC.
7#if defined(_MSC_VER)
8# define ICE_DECLSPEC_EXPORT __declspec(dllexport)
9# define ICE_DECLSPEC_IMPORT __declspec(dllimport)
10#elif defined(__GNUC__) || defined(__clang__)
11# define ICE_DECLSPEC_EXPORT [[gnu::visibility("default")]]
12# define ICE_DECLSPEC_IMPORT [[gnu::visibility("default")]]
13#else
14# define ICE_DECLSPEC_EXPORT /**/
15# define ICE_DECLSPEC_IMPORT /**/
16#endif
17
18#ifndef ICE_API
19# if defined(ICE_BUILDING_SLICE_COMPILERS) // Only defined for Windows builds.
20# define ICE_API /**/
21# elif defined(ICE_API_EXPORTS)
22# define ICE_API ICE_DECLSPEC_EXPORT
23# else
24# define ICE_API ICE_DECLSPEC_IMPORT
25# endif
26#endif
27
28// For friend declarations on Windows. Not compatible with the standard c++ attribute syntax.
29#ifndef ICE_API_FRIEND
30# if defined(_MSC_VER)
31# define ICE_API_FRIEND ICE_API
32# else
33# define ICE_API_FRIEND /**/
34# endif
35#endif
36
37// The Ice version.
38#define ICE_STRING_VERSION "3.8.0-alpha.0" // "A.B.C", with A=major, B=minor, C=patch
39#define ICE_INT_VERSION 30850 // AABBCC, with AA=major, BB=minor, CC=patch
40#define ICE_SO_VERSION "38a0" // "ABC", with A=major, B=minor, C=patch
41
42#if defined(_MSC_VER) && !defined(ICE_BUILDING_SLICE_COMPILERS) // Not using the IceUtil static build
43# if !defined(_DLL) || !defined(_MT)
44# error "Ice C++ applications on Windows require /MD or /MDd."
45# endif
46# if defined(_DEBUG)
47# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION "D.lib"
48# else
49# define ICE_LIBNAME(NAME) NAME ICE_SO_VERSION ".lib"
50# endif
51# if !defined(ICE_API_EXPORTS) && !defined(ICE_DISABLE_PRAGMA_COMMENT)
52# pragma comment(lib, ICE_LIBNAME("Ice")) // Automatically link with Ice[D].lib
53# endif
54#endif
55
56#ifdef __APPLE__
57# include <TargetConditionals.h>
58#endif
59
60#endif