38 #ifndef PLUMA_CONFIG_HPP
39 #define PLUMA_CONFIG_HPP
45 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
48 #define PLUMA_SYS_WINDOWS
49 #ifndef WIN32_LEAN_AND_MEAN
50 #define WIN32_LEAN_AND_MEAN
56 #elif defined(linux) || defined(__linux)
59 #define PLUMA_SYS_LINUX
61 #elif defined(__APPLE__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
64 #define PLUMA_SYS_MACOS
66 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
69 #define PLUMA_SYS_FREEBSD
74 #error This operating system is not supported by this library
83 #ifdef PLUMA_SYS_WINDOWS
84 #define PLUMA_LIB_EXTENSION "dll"
85 #elif defined(PLUMA_SYS_MACOS)
86 #define PLUMA_LIB_EXTENSION "dylib"
87 #elif defined(PLUMA_SYS_LINUX) || defined(PLUMA_SYS_FREEBSD)
88 #define PLUMA_LIB_EXTENSION "so"
91 #error Unknown library file extension for this operating system
98 #if defined(PLUMA_SYS_WINDOWS)
106 #define PLUMA_API __declspec(dllexport)
111 #define PLUMA_API __declspec(dllimport)
120 #pragma warning(disable : 4251)
141 #endif // PLUMA_CONFIG_HPP