diff options
Diffstat (limited to 'Swiften/Base/API.h')
-rw-r--r-- | Swiften/Base/API.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Swiften/Base/API.h b/Swiften/Base/API.h new file mode 100644 index 0000000..0913181 --- /dev/null +++ b/Swiften/Base/API.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2012-2014 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <Swiften/Base/Platform.h> +#include <boost/config.hpp> + +#ifdef SWIFTEN_STATIC +# define SWIFTEN_API +#else +# ifdef SWIFTEN_PLATFORM_WINDOWS +# ifdef SWIFTEN_BUILDING +# define SWIFTEN_API __declspec(dllexport) +# else +# define SWIFTEN_API __declspec(dllimport) +# endif +# elif __GNUC__ >= 4 +# define SWIFTEN_API __attribute__((visibility("default"))) +# else +# define SWIFTEN_API +# endif +#endif + +#ifdef BOOST_NO_DEFAULTED_FUNCTIONS +# define SWIFTEN_DEFAULT_COPY_CONSTRUCTOR(cls) +# define SWIFTEN_DEFAULT_COPY_ASSIGMNENT_OPERATOR(cls) +#else +# define SWIFTEN_DEFAULT_COPY_CONSTRUCTOR(cls) \ + cls(const cls&) = default; +# define SWIFTEN_DEFAULT_COPY_ASSIGMNENT_OPERATOR(cls) \ + cls& operator=(const cls&) = default; +#endif + +#ifdef BOOST_NO_NOEXCEPT +#define SWIFTEN_NOEXCEPT throw() +#else +#define SWIFTEN_NOEXCEPT noexcept +#endif |