/* Distributed under the OSI-approved BSD 3-Clause License. See https://cmake.org/licensing#kwsys for details. */ #ifndef DynamicLoader_hxx #define DynamicLoader_hxx #include #if defined(__hpux) # include #elif defined(_WIN32) && !defined(__CYGWIN__) # include #elif defined(__APPLE__) # include # if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 # include # endif #elif defined(__BEOS__) # include #endif class DynamicLoader { public: #if defined(__hpux) typedef shl_t LibraryHandle; #elif defined(_WIN32) && !defined(__CYGWIN__) typedef HMODULE LibraryHandle; #elif defined(__APPLE__) # if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 typedef NSModule LibraryHandle; # else typedef void* LibraryHandle; # endif #elif defined(__BEOS__) typedef image_id LibraryHandle; #else // POSIX typedef void* LibraryHandle; #endif typedef void (*SymbolPointer)(); static LibraryHandle OpenLibrary(const std::string&); static int CloseLibrary(LibraryHandle); static SymbolPointer GetSymbolAddress(LibraryHandle, const std::string&); }; #endif