Browse Source

Fix loading of module for borland

Andy Cedilnik 23 years ago
parent
commit
5843ae455e
1 changed files with 17 additions and 3 deletions
  1. 17 3
      Source/cmLoadCommandCommand.cxx

+ 17 - 3
Source/cmLoadCommandCommand.cxx

@@ -186,7 +186,7 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& argsIn)
     this->SetError("Attempt to load command failed.");
     return false;
     }
-  
+
   // try loading the shared library / dll
   cmLibHandle lib = cmDynamicLoader::OpenLibrary(fullPath.c_str());
   if(lib)
@@ -196,9 +196,21 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& argsIn)
     CM_NAME_FUNCTION nameFunction
       = (CM_NAME_FUNCTION)
       cmDynamicLoader::GetSymbolAddress(lib, "cmGetName");
+    if ( !nameFunction )
+      {
+      nameFunction = 
+	(CM_NAME_FUNCTION)(
+	  cmDynamicLoader::GetSymbolAddress(lib, "_cmGetName"));
+      }
     CM_INIT_FUNCTION initFunction
       = (CM_INIT_FUNCTION)
       cmDynamicLoader::GetSymbolAddress(lib, "cmInitializeCommand");
+    if ( !initFunction )
+      {
+      initFunction = 
+	(CM_INIT_FUNCTION)(
+	  cmDynamicLoader::GetSymbolAddress(lib, "_cmInitializeCommand"));
+      }
     // if the symbol is found call it to set the name on the 
     // function blocker
     if(nameFunction)
@@ -208,13 +220,15 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& argsIn)
       f->m_commandName = (*nameFunction)();
       if (!initFunction)
         {
-        this->SetError("Attempt to load command failed. No init function found.");
+        this->SetError("Attempt to load command failed. "
+		       "No init function found.");
         return false;
         }
       (*initFunction)(&f->info);
       m_Makefile->AddCommand(f);
+      return true;
       }
     }
-  return true;
+  return false;
 }