BUG: Fix registry lookups for FIND commands to use view of target platform.
- See issue #7095.
This commit is contained in:
parent
cea66664c5
commit
41ceabb60f
|
@ -475,6 +475,21 @@ void cmFindBase::AddCMakeSystemVariables()
|
||||||
|
|
||||||
void cmFindBase::ExpandRegistryAndCleanPath(std::vector<std::string>& paths)
|
void cmFindBase::ExpandRegistryAndCleanPath(std::vector<std::string>& paths)
|
||||||
{
|
{
|
||||||
|
// We should view the registry as the target application would view
|
||||||
|
// it.
|
||||||
|
cmSystemTools::KeyWOW64 view = cmSystemTools::KeyWOW64_Default;
|
||||||
|
{
|
||||||
|
if(const char* psize =
|
||||||
|
this->Makefile->GetDefinition("CMAKE_SIZEOF_VOID_P"))
|
||||||
|
{
|
||||||
|
switch(atoi(psize))
|
||||||
|
{
|
||||||
|
case 4: view = cmSystemTools::KeyWOW64_32; break;
|
||||||
|
case 8: view = cmSystemTools::KeyWOW64_64; break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
std::vector<std::string> finalPath;
|
std::vector<std::string> finalPath;
|
||||||
std::vector<std::string>::iterator i;
|
std::vector<std::string>::iterator i;
|
||||||
// glob and expand registry stuff from paths and put
|
// glob and expand registry stuff from paths and put
|
||||||
|
@ -482,7 +497,7 @@ void cmFindBase::ExpandRegistryAndCleanPath(std::vector<std::string>& paths)
|
||||||
for(i = paths.begin();
|
for(i = paths.begin();
|
||||||
i != paths.end(); ++i)
|
i != paths.end(); ++i)
|
||||||
{
|
{
|
||||||
cmSystemTools::ExpandRegistryValues(*i);
|
cmSystemTools::ExpandRegistryValues(*i, view);
|
||||||
cmSystemTools::GlobDirs(i->c_str(), finalPath);
|
cmSystemTools::GlobDirs(i->c_str(), finalPath);
|
||||||
}
|
}
|
||||||
// clear the path
|
// clear the path
|
||||||
|
|
Loading…
Reference in New Issue