[Cmake-commits] [cmake-commits] king committed cmFindBase.cxx 1.39 1.40

cmake-commits at cmake.org cmake-commits at cmake.org
Tue May 27 16:50:11 EDT 2008


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv1062/Source

Modified Files:
	cmFindBase.cxx 
Log Message:
BUG: Fix previous registry lookup change for executables.

  - The target platform does not matter for finding executables
    so find_program should expand to both 32-bit and 64-bit registry
    values.
  - See issue #7095.


Index: cmFindBase.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmFindBase.cxx,v
retrieving revision 1.39
retrieving revision 1.40
diff -C 2 -d -r1.39 -r1.40
*** cmFindBase.cxx	27 May 2008 18:47:46 -0000	1.39
--- cmFindBase.cxx	27 May 2008 20:50:04 -0000	1.40
***************
*** 479,482 ****
--- 479,483 ----
    // it.
    cmSystemTools::KeyWOW64 view = cmSystemTools::KeyWOW64_Default;
+   cmSystemTools::KeyWOW64 other_view = cmSystemTools::KeyWOW64_Default;
    {
    if(const char* psize =
***************
*** 485,490 ****
      switch(atoi(psize))
        {
!       case 4: view = cmSystemTools::KeyWOW64_32; break;
!       case 8: view = cmSystemTools::KeyWOW64_64; break;
        default: break;
        }
--- 486,497 ----
      switch(atoi(psize))
        {
!       case 4:
!         view = cmSystemTools::KeyWOW64_32;
!         other_view = cmSystemTools::KeyWOW64_64;
!         break;
!       case 8:
!         view = cmSystemTools::KeyWOW64_64;
!         other_view = cmSystemTools::KeyWOW64_32;
!         break;
        default: break;
        }
***************
*** 498,503 ****
        i != paths.end(); ++i)
      {
!     cmSystemTools::ExpandRegistryValues(*i, view);
!     cmSystemTools::GlobDirs(i->c_str(), finalPath);
      }
    // clear the path
--- 505,519 ----
        i != paths.end(); ++i)
      {
!     std::string expanded = *i;
!     cmSystemTools::ExpandRegistryValues(expanded, view);
!     cmSystemTools::GlobDirs(expanded.c_str(), finalPath);
!     if(view != other_view && expanded != *i &&
!        this->CMakePathName == "PROGRAM")
!       {
!       // Executables can be either 32-bit or 64-bit.
!       expanded = *i;
!       cmSystemTools::ExpandRegistryValues(expanded, other_view);
!       cmSystemTools::GlobDirs(expanded.c_str(), finalPath);
!       }
      }
    // clear the path



More information about the Cmake-commits mailing list