summaryrefslogtreecommitdiffstats
path: root/Source/kwsys/DynamicLoader.hxx.in
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2006-03-16 16:01:05 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2006-03-16 16:01:05 (GMT)
commitf483e48d2a2f3361dcf3c60096bbfe9975f90ddf (patch)
tree2909a53a3efb79bf633ba0be2fa93d7c7b68181f /Source/kwsys/DynamicLoader.hxx.in
parent4102949bf95eee1ce88544fafdf80439aece85b2 (diff)
downloadCMake-f483e48d2a2f3361dcf3c60096bbfe9975f90ddf.zip
CMake-f483e48d2a2f3361dcf3c60096bbfe9975f90ddf.tar.gz
CMake-f483e48d2a2f3361dcf3c60096bbfe9975f90ddf.tar.bz2
ENH: Cleanup DynamicLoader so that the symbols have more consistent names, start using dynamic loader from kwsys in CMake
Diffstat (limited to 'Source/kwsys/DynamicLoader.hxx.in')
-rw-r--r--Source/kwsys/DynamicLoader.hxx.in81
1 files changed, 33 insertions, 48 deletions
diff --git a/Source/kwsys/DynamicLoader.hxx.in b/Source/kwsys/DynamicLoader.hxx.in
index ee6eebe..29d213e 100644
--- a/Source/kwsys/DynamicLoader.hxx.in
+++ b/Source/kwsys/DynamicLoader.hxx.in
@@ -16,46 +16,8 @@
#include <@KWSYS_NAMESPACE@/Configure.h>
-// Ugly stuff for library handles
-// They are different on several different OS's
-#if defined(__hpux)
- #include <dl.h>
-namespace @KWSYS_NAMESPACE@
-{
- typedef shl_t LibHandle;
-} // namespace @KWSYS_NAMESPACE@
-#elif defined(_WIN32)
- #include <windows.h>
-namespace @KWSYS_NAMESPACE@
-{
- typedef HMODULE LibHandle;
-} // namespace @KWSYS_NAMESPACE@
-#elif defined(__APPLE__)
- #include <AvailabilityMacros.h>
- #if MAC_OS_X_VERSION_MIN_REQUIRED < 1030
- #include <mach-o/dyld.h>
-namespace @KWSYS_NAMESPACE@
-{
- typedef NSModule LibHandle;
-} // namespace @KWSYS_NAMESPACE@
- #else
namespace @KWSYS_NAMESPACE@
{
- typedef void* LibHandle;
-} // namespace @KWSYS_NAMESPACE@
- #endif
-#else
-namespace @KWSYS_NAMESPACE@
-{
- typedef void* LibHandle;
-} // namespace @KWSYS_NAMESPACE@
-#endif
-
-namespace @KWSYS_NAMESPACE@
-{
-// Return type from DynamicLoader::GetSymbolAddress.
-typedef void (*DynamicLoaderFunction)();
-
/** \class DynamicLoader
* \brief Portable loading of dynamic libraries or dll's.
*
@@ -66,31 +28,54 @@ typedef void (*DynamicLoaderFunction)();
* operating systems
*
* \warning dlopen on *nix system works the following way:
- * If filename contains a slash ("/"), then it is interpreted as a (relative or absolute)
- * pathname. Otherwise, the dynamic linker searches for the library as follows :
- * see ld.so(8) for further details):
- * Whereas this distinction does not exist on Win32. Therefore ideally you should be doing
- * full path to garantee to have a consistent way of dealing with dynamic loading of shared
- * library.
+ * If filename contains a slash ("/"), then it is interpreted as a (relative
+ * or absolute) pathname. Otherwise, the dynamic linker searches for the
+ * library as follows : see ld.so(8) for further details):
+ * Whereas this distinction does not exist on Win32. Therefore ideally you
+ * should be doing full path to garantee to have a consistent way of dealing
+ * with dynamic loading of shared library.
*/
class @KWSYS_NAMESPACE@_EXPORT DynamicLoader
{
public:
+// Ugly stuff for library handles
+// They are different on several different OS's
+#if defined(__hpux)
+ #include <dl.h>
+ typedef shl_t LibraryHandle;
+#elif defined(_WIN32)
+ #include <windows.h>
+ typedef HMODULE LibraryHandle;
+#elif defined(__APPLE__)
+ #include <AvailabilityMacros.h>
+ #if MAC_OS_X_VERSION_MIN_REQUIRED < 1030
+ #include <mach-o/dyld.h>
+ typedef NSModule LibraryHandle;
+ #else
+ typedef void* LibraryHandle;
+ #endif
+#else
+ typedef void* LibraryHandle;
+#endif
+
+ // Return type from DynamicLoader::GetSymbolAddress.
+ typedef void (*SymbolPointer)();
+
DynamicLoader();
~DynamicLoader();
/** Load a dynamic library into the current process.
- * The returned LibHandle can be used to access the symbols in the
+ * The returned LibraryHandle can be used to access the symbols in the
* library. */
- static LibHandle OpenLibrary(const char*);
+ static LibraryHandle OpenLibrary(const char*);
/** Attempt to detach a dynamic library from the
* process. A value of true is returned if it is sucessful. */
- static int CloseLibrary(LibHandle);
+ static int CloseLibrary(LibraryHandle);
/** Find the address of the symbol in the given library. */
- static DynamicLoaderFunction GetSymbolAddress(LibHandle, const char*);
+ static SymbolPointer GetSymbolAddress(LibraryHandle, const char*);
/** Return the library prefix for the given architecture */
static const char* LibPrefix();