ENH: LOAD_COMMAND command will now set a variable called CMAKE_LOADED_COMMAND_<COMMAND_NAME> to the full path of the loaded module if loading was successful. Otherwise the variable is not set (will evaluate to empty string). This is useful both in testing whether loading worked and for installing loaded command modules.
This commit is contained in:
parent
b9b4ea0f7b
commit
ec497c7a23
|
@ -227,6 +227,12 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& args)
|
||||||
return true;
|
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
|
// the file must exist
|
||||||
std::string fullPath = cmDynamicLoader::LibPrefix();
|
std::string fullPath = cmDynamicLoader::LibPrefix();
|
||||||
fullPath += "cm" + args[0] + cmDynamicLoader::LibExtension();
|
fullPath += "cm" + args[0] + cmDynamicLoader::LibExtension();
|
||||||
|
@ -270,6 +276,9 @@ bool cmLoadCommandCommand::InitialPass(std::vector<std::string> const& args)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Report what file was loaded for this command.
|
||||||
|
m_Makefile->AddDefinition(reportVar.c_str(), fullPath.c_str());
|
||||||
|
|
||||||
// find the init function
|
// find the init function
|
||||||
std::string initFuncName = args[0] + "Init";
|
std::string initFuncName = args[0] + "Init";
|
||||||
CM_INIT_FUNCTION initFunction
|
CM_INIT_FUNCTION initFunction
|
||||||
|
|
|
@ -70,7 +70,11 @@ public:
|
||||||
"The given locations are searched for a library whose name is "
|
"The given locations are searched for a library whose name is "
|
||||||
"cmCOMMAND_NAME. If found, it is loaded as a module and the command "
|
"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 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);
|
cmTypeMacro(cmLoadCommandCommand, cmCommand);
|
||||||
|
|
Loading…
Reference in New Issue