mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
ENH: Cleanup DynamicLoader so that the symbols have more consistent names, start using dynamic loader from kwsys in CMake
This commit is contained in:
@@ -9,15 +9,15 @@
|
||||
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
|
||||
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
|
||||
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
This software is distributed WITHOUT ANY WARRANTY; without even
|
||||
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. See the above copyright notices for more information.
|
||||
|
||||
=========================================================================*/
|
||||
// .NAME cmDynamicLoader - class interface to system dynamic libraries
|
||||
// .SECTION Description
|
||||
// cmDynamicLoader provides a portable interface to loading dynamic
|
||||
// libraries into a process.
|
||||
// cmDynamicLoader provides a portable interface to loading dynamic
|
||||
// libraries into a process.
|
||||
|
||||
|
||||
#ifndef __cmDynamicLoader_h
|
||||
@@ -25,46 +25,16 @@
|
||||
|
||||
#include "cmStandardIncludes.h"
|
||||
|
||||
// Ugly stuff for library handles
|
||||
// They are different on several different OS's
|
||||
#if defined(__hpux)
|
||||
#include <dl.h>
|
||||
typedef shl_t cmLibHandle;
|
||||
#elif defined(_WIN32)
|
||||
#include <windows.h>
|
||||
typedef HMODULE cmLibHandle;
|
||||
#elif defined(__APPLE__)
|
||||
#include <AvailabilityMacros.h>
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1030
|
||||
#include <mach-o/dyld.h>
|
||||
typedef NSModule cmLibHandle;
|
||||
#else
|
||||
typedef void* cmLibHandle;
|
||||
#endif
|
||||
#else
|
||||
typedef void* cmLibHandle;
|
||||
#endif
|
||||
|
||||
// Return type from cmDynamicLoader::GetSymbolAddress.
|
||||
typedef void (*cmDynamicLoaderFunction)();
|
||||
#include <cmsys/DynamicLoader.hxx>
|
||||
|
||||
class cmDynamicLoader
|
||||
{
|
||||
public:
|
||||
// Description:
|
||||
// Load a dynamic library into the current process.
|
||||
// The returned cmLibHandle can be used to access the symbols in the
|
||||
// library.
|
||||
static cmLibHandle OpenLibrary(const char*);
|
||||
|
||||
// Description:
|
||||
// Attempt to detach a dynamic library from the
|
||||
// process. A value of true is returned if it is successful.
|
||||
static int CloseLibrary(cmLibHandle);
|
||||
|
||||
// Description:
|
||||
// Find the address of the symbol in the given library
|
||||
static cmDynamicLoaderFunction GetSymbolAddress(cmLibHandle, const char*);
|
||||
// The returned cmsys::DynamicLoader::LibraryHandle can be used to access
|
||||
// the symbols in the library.
|
||||
static cmsys::DynamicLoader::LibraryHandle OpenLibrary(const char*);
|
||||
|
||||
// Description:
|
||||
// Return the library prefix for the given architecture
|
||||
@@ -74,19 +44,14 @@ public:
|
||||
// Return the library extension for the given architecture
|
||||
static const char* LibExtension();
|
||||
|
||||
// Description:
|
||||
// Return the last error produced from a calls made on this class.
|
||||
static const char* LastError();
|
||||
|
||||
// Description:
|
||||
// Flush the cache of dynamic loader.
|
||||
static void FlushCache();
|
||||
|
||||
|
||||
protected:
|
||||
cmDynamicLoader() {};
|
||||
~cmDynamicLoader() {};
|
||||
|
||||
|
||||
private:
|
||||
cmDynamicLoader(const cmDynamicLoader&); // Not implemented.
|
||||
void operator=(const cmDynamicLoader&); // Not implemented.
|
||||
|
||||
Reference in New Issue
Block a user