/* Distributed under the OSI-approved BSD 3-Clause License. See https://cmake.org/licensing#kwsys for details. */ #ifndef DynamicLoader_hxx #define DynamicLoader_hxx #include <string> #if defined(__hpux) # include <dl.h> #elif defined(_WIN32) && !defined(__CYGWIN__) # include <windows.h> #elif defined(__APPLE__) # include <AvailabilityMacros.h> # if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 # include <mach-o/dyld.h> # endif #elif defined(__BEOS__) # include <be/kernel/image.h> #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