ENH: add special windows CMAKE_MSVCIDE_RUN_PATH variable for adding to the path of vs IDE for running custom commands from cmake
This commit is contained in:
parent
bb08b88cc4
commit
0005d625a0
|
@ -40,6 +40,22 @@ void cmGlobalVisualStudio7Generator::EnableLanguage(std::vector<std::string>cons
|
||||||
// Create list of configurations requested by user's cache, if any.
|
// Create list of configurations requested by user's cache, if any.
|
||||||
this->cmGlobalGenerator::EnableLanguage(lang, mf);
|
this->cmGlobalGenerator::EnableLanguage(lang, mf);
|
||||||
this->GenerateConfigurations(mf);
|
this->GenerateConfigurations(mf);
|
||||||
|
|
||||||
|
// if this environment variable is set, then copy it to
|
||||||
|
// a static cache entry. It will be used by
|
||||||
|
// cmLocalGenerator::ConstructScript, to add an extra PATH
|
||||||
|
// to all custom commands. This is because the VS IDE
|
||||||
|
// does not use the environment it is run in, and this allows
|
||||||
|
// for running commands and using dll's that the IDE environment
|
||||||
|
// does not know about.
|
||||||
|
const char* extraPath = cmSystemTools::GetEnv("CMAKE_MSVCIDE_RUN_PATH");
|
||||||
|
if(extraPath)
|
||||||
|
{
|
||||||
|
mf->AddCacheDefinition("CMAKE_MSVCIDE_RUN_PATH",
|
||||||
|
extraPath, "Saved environment variable CMAKE_MSVCIDE_RUN_PATH",
|
||||||
|
cmCacheManager::STATIC);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string cmGlobalVisualStudio7Generator::GenerateBuildCommand(const char* makeProgram,
|
std::string cmGlobalVisualStudio7Generator::GenerateBuildCommand(const char* makeProgram,
|
||||||
|
|
|
@ -1726,7 +1726,14 @@ cmLocalGenerator::ConstructScript(const cmCustomCommandLines& commandLines,
|
||||||
script += this->Convert(workingDirectory, START_OUTPUT, SHELL);
|
script += this->Convert(workingDirectory, START_OUTPUT, SHELL);
|
||||||
script += newline;
|
script += newline;
|
||||||
}
|
}
|
||||||
|
const char* extraPath = this->Makefile->GetDefinition("CMAKE_MSVCIDE_RUN_PATH");
|
||||||
|
if(extraPath)
|
||||||
|
{
|
||||||
|
script += "set PATH=";
|
||||||
|
script += extraPath;
|
||||||
|
script += ";%PATH%";
|
||||||
|
script += newline;
|
||||||
|
}
|
||||||
// Write each command on a single line.
|
// Write each command on a single line.
|
||||||
for(cmCustomCommandLines::const_iterator cl = commandLines.begin();
|
for(cmCustomCommandLines::const_iterator cl = commandLines.begin();
|
||||||
cl != commandLines.end(); ++cl)
|
cl != commandLines.end(); ++cl)
|
||||||
|
|
Loading…
Reference in New Issue