summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmLoadCommandCommand.cxx13
-rw-r--r--Source/cmLoadCommandCommand.h6
2 files changed, 16 insertions, 3 deletions
diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx
index 60edd56..fcdc045 100644
--- a/Source/cmLoadCommandCommand.cxx
+++ b/Source/cmLoadCommandCommand.cxx
@@ -226,7 +226,13 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& args)
{
return true;
}
-
+
+ // Construct a variable to report what file was loaded, if any.
+ // Start by removing the definition in case of failure.
+ std::string reportVar = "CMAKE_LOADED_COMMAND_";
+ reportVar += args[0];
+ m_Makefile->RemoveDefinition(reportVar.c_str());
+
// the file must exist
std::string fullPath = cmDynamicLoader::LibPrefix();
fullPath += "cm" + args[0] + cmDynamicLoader::LibExtension();
@@ -269,7 +275,10 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& args)
this->SetError(err.c_str());
return false;
}
-
+
+ // Report what file was loaded for this command.
+ m_Makefile->AddDefinition(reportVar.c_str(), fullPath.c_str());
+
// find the init function
std::string initFuncName = args[0] + "Init";
CM_INIT_FUNCTION initFunction
diff --git a/Source/cmLoadCommandCommand.h b/Source/cmLoadCommandCommand.h
index 8737da2..aae0342 100644
--- a/Source/cmLoadCommandCommand.h
+++ b/Source/cmLoadCommandCommand.h
@@ -70,7 +70,11 @@ public:
"The given locations are searched for a library whose name is "
"cmCOMMAND_NAME. If found, it is loaded as a module and the command "
"is added to the set of available CMake commands. Usually, TRY_COMPILE "
- "is used before this command to compile the module.";
+ "is used before this command to compile the module. If the command "
+ "is successfully loaded a variable named\n"
+ " CMAKE_LOADED_COMMAND_<COMMAND_NAME>\n"
+ "will be set to the full path of the module that was loaded. "
+ "Otherwise the variable will not be set.";
}
cmTypeMacro(cmLoadCommandCommand, cmCommand);