1#ifndef BOOST_ARCHIVE_DETAIL_DECL_HPP
2#define BOOST_ARCHIVE_DETAIL_DECL_HPP
3
4// MS compatible compilers support #pragma once
5#if defined(_MSC_VER)
6# pragma once
7#endif
8
9/////////1/////////2///////// 3/////////4/////////5/////////6/////////7/////////8
10// decl.hpp
11//
12// (c) Copyright Robert Ramey 2004
13// Use, modification, and distribution is subject to the Boost Software
14// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
15// http://www.boost.org/LICENSE_1_0.txt)
16
17// See library home page at http://www.boost.org/libs/serialization
18
19//----------------------------------------------------------------------------//
20
21// This header implements separate compilation features as described in
22// http://www.boost.org/more/separate_compilation.html
23
24#include <boost/config.hpp>
25#include <boost/preprocessor/facilities/empty.hpp>
26
27#if defined(BOOST_HAS_DECLSPEC)
28 #if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK))
29 #if defined(BOOST_ARCHIVE_SOURCE)
30 #if defined(__BORLANDC__)
31 #define BOOST_ARCHIVE_DECL(T) T __export
32 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export
33 #else
34 #define BOOST_ARCHIVE_DECL(T) __declspec(dllexport) T
35 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T
36 #endif
37 #else
38 #if defined(__BORLANDC__)
39 #define BOOST_ARCHIVE_DECL(T) T __import
40 #else
41 #define BOOST_ARCHIVE_DECL(T) __declspec(dllimport) T
42 #endif
43 #endif
44 #if defined(BOOST_WARCHIVE_SOURCE)
45 #if defined(__BORLANDC__)
46 #define BOOST_WARCHIVE_DECL(T) T __export
47 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export
48 #else
49 #define BOOST_WARCHIVE_DECL(T) __declspec(dllexport) T
50 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T
51 #endif
52 #else
53 #if defined(__BORLANDC__)
54 #define BOOST_WARCHIVE_DECL(T) T __import
55 #else
56 #define BOOST_WARCHIVE_DECL(T) __declspec(dllimport) T
57 #endif
58 #endif
59 #if !defined(BOOST_WARCHIVE_SOURCE) && !defined(BOOST_ARCHIVE_SOURCE)
60 #if defined(__BORLANDC__)
61 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __import
62 #else
63 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllimport) T
64 #endif
65 #endif
66 #endif
67#endif // BOOST_HAS_DECLSPEC
68
69#if ! defined(BOOST_ARCHIVE_DECL)
70 #define BOOST_ARCHIVE_DECL(T) T
71#endif
72#if ! defined(BOOST_WARCHIVE_DECL)
73 #define BOOST_WARCHIVE_DECL(T) T
74#endif
75#if ! defined(BOOST_ARCHIVE_OR_WARCHIVE_DECL)
76 #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T
77#endif
78
79#endif // BOOST_ARCHIVE_DETAIL_DECL_HPP
80