[CMake] Win64 and InstallRequiredSystemLibraries.cmake

David Cole david.cole at kitware.com
Thu Nov 13 15:21:07 EST 2008


This fixes it for me:
.......
  GET_FILENAME_COMPONENT(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
  GET_FILENAME_COMPONENT(base_dir "${devenv_dir}/../.." ABSOLUTE)

  IF(MSVC80)
    # Find the runtime library redistribution directory.
    FIND_PATH(MSVC80_REDIST_DIR NAMES
${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
      PATHS

 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../VC/redist"
        "${base_dir}/VC/redist"
      )
.......

If you could verify that it works for you, too, I will commit this to CVS
HEAD of CMake and request that it be merged for the next drop of the 2.6
branch also.


Thanks,
David


On Thu, Nov 13, 2008 at 2:08 PM, Clinton Stimpson <clinton at elemtech.com>wrote:

>
> I see in the cmake code that if I pick the Win64 generator, cmake takes a
> 64 bit view of the registry and tries to find things.  That makes sense to
> me in general, such as finding 64 bit python, based on registry keys, etc...
>  But Visual Studio itself is a 32 bit application, and the 64 bit redist is
> contained in it.
>
> I guess I'll put this in the bug tracker.
>
> Thanks,
> Clint
>
> Clinton Stimpson wrote:
>
>>
>> The Process Explorer verifies its a 32 bit image.
>>
>> My CMakeLists.txt file ===
>> INCLUDE(InstallRequiredSystemLibraries)
>> ===== end file
>>
>> In cmake-gui, if I pick the "Visual Studio 8 2005" generator, it sets
>> MSVC80_REDIST_DIR correctly.
>> If I go back File -> Delete Cache, then hit configure again, but choose
>> "Visual Studio 8 2005 Win64" as the generator, then MSVC80_REDIST_DIR is not
>> found.
>>
>> Clint
>>
>> David Cole wrote:
>>
>>> It's looking in the right place. You're using the 64-bit regedit. If you
>>> view it with the 32-bit regedit (found, paradoxically, at
>>> C:\WINDOWS\SysWOW64\regedit.exe) then you'll see it as 32-bit cmake is
>>> asking for it...
>>>
>>> Side note: you can always use Process Explorer from sysinternals.com <
>>> http://sysinternals.com> to examine running processes to determine if
>>> they are 32-bit or 64-bit if you need to. I would say Process Explorer is
>>> the most indispensable tool that exists on Windows.
>>>
>>> So you include InstallRequiredSystemLibraries and what happens?
>>>
>>>
>>> On Thu, Nov 13, 2008 at 12:43 PM, Clinton Stimpson <clinton at elemtech.com<mailto:
>>> clinton at elemtech.com>> wrote:
>>>
>>>    On 64 bit Windows...
>>>    When I run cmake, the InstallRequiredSystemLibraries.cmake is not
>>>    finding the MSVC80_REDIST_DIR automatically.
>>>    It looks in
>>>
>>>  [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]
>>>    for it, but its not there when I run regedit.
>>>    Its actually in
>>>
>>>  [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\8.0;InstallDir].
>>>
>>>
>>>    Is there some way to make this work without me helping it along?
>>>     Maybe its a more general issue?
>>>
>>>    This is using the cmake 2.6.2 binaries from cmake.org
>>>    <http://cmake.org>.
>>>
>>>    Clint
>>>
>>>    _______________________________________________
>>>    CMake mailing list
>>>    CMake at cmake.org <mailto:CMake at cmake.org>
>>>    http://www.cmake.org/mailman/listinfo/cmake
>>>
>>>
>>>
>> _______________________________________________
>> CMake mailing list
>> CMake at cmake.org
>> http://www.cmake.org/mailman/listinfo/cmake
>>
>
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20081113/5ea9fa5e/attachment-0001.htm>


More information about the CMake mailing list