diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmLoadCommandCommand.cxx | 13 | ||||
-rw-r--r-- | Source/cmLoadCommandCommand.h | 6 |
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); |