For reference, here's the commit that I just pushed to 'next' : http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=971a735ba2b4d9e4ac846722fdf280dbd0feb0d4
On Wed, Mar 9, 2011 at 6:01 PM, David Cole <david.c...@kitware.com> wrote: > I'm going to commit this as a fix in CMake 'next' -- but I'm extending it > to the VS8 and VS9 chunks as well. And I'm eliminating the duplicate use of: > > > > "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/redist" > > as one of the PATHS and just going with: > > > "${msvc_install_path}/../../VC/redist" > > Should make it into 2.8.5. (Barring unforeseen madness, of course.) > > > Thanks, > David > > > > On Wed, Mar 9, 2011 at 3:42 PM, J Decker <d3c...@gmail.com> wrote: > >> On Wed, Mar 9, 2011 at 11:56 AM, David Cole <david.c...@kitware.com> >> wrote: >> > This is already at least partially fixed in CMake 2.8.4... >> >> Ya I saw that - thought I was working against 2.8.4 until I got to the >> next box... so I started checking again... >> >> > Are there still problems building/using 64-bit CMake using the official >> > 2.8.4 release? (Rather than whatever you were using when you reported >> > this... which must be prior to 2.8.4, or you'd have the above chunk of >> code >> > rather than the one you referred to.) >> > >> >> Yes; with a target of 'Visual Studio 10 Win64' but not with 'Visual Studio >> 10'. >> >> C:\tools\startups>cmake --version >> cmake version 2.8.4 >> >> C:\general\build\vs10\sack\Debug_solution\alltype-core>cmake -G >> "Visual Studio 10 Win64" M:/sack -DCMAKE_BUILD_TYPE=Debug >> EFIX=C:\general\build\vs10/sack/Debug_out/core -DBUILD_MONOLITHIC=1 >> CMake Warning at >> >> c:/tools/unix/cmake/share/cmake-2.8/Modules/InstallRequiredSystemLibraries.cmake:314 >> (MESSAGE): >> system runtime library file does not exist: >> >> >> 'MSVC10_REDIST_DIR-NOTFOUND/Debug_NonRedist/x64/Microsoft.VC100.DebugCRT/msvcp100d.dll' >> Call Stack (most recent call first): >> CMakeLists.txt:1080 (INCLUDE) >> >> >> CMake Warning at >> >> c:/tools/unix/cmake/share/cmake-2.8/Modules/InstallRequiredSystemLibraries.cmake:314 >> (MESSAGE): >> system runtime library file does not exist: >> >> >> 'MSVC10_REDIST_DIR-NOTFOUND/Debug_NonRedist/x64/Microsoft.VC100.DebugCRT/msvcr100d.dll' >> Call Stack (most recent call first): >> CMakeLists.txt:1080 (INCLUDE) >> >> >> ---- My Fix ---- >> GET_FILENAME_COMPONENT( msvc_install_path >> "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]" >> ABSOLUTE ) >> FIND_PATH(MSVC10_REDIST_DIR NAMES >> ${CMAKE_MSVC_ARCH}/Microsoft.VC100.CRT >> PATHS >> >> >> "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/redist" >> "${msvc_install_path}/../../VC/redist" >> "${base_dir}/VC/redist" >> "$ENV{ProgramFiles}/Microsoft Visual Studio 10.0/VC/redist" >> "$ENV{ProgramFiles(x86)}/Microsoft Visual Studio 10.0/VC/redist" >> ) >> >> >> >> >> > >> > Thanks, >> > David >> > >> > >> > On Wed, Mar 9, 2011 at 2:43 PM, J Decker <d3c...@gmail.com> wrote: >> >> >> >> In InstallRequiredSystemLibraries >> >> >> >> IF(CMAKE_CL_64) >> >> SET(CMAKE_MSVC_ARCH amd64) >> >> ELSE(CMAKE_CL_64) >> >> SET(CMAKE_MSVC_ARCH x86) >> >> ENDIF(CMAKE_CL_64) >> >> >> >> >> >> amd64 should be x64 for vs2010 >> >> SET(CMAKE_MSVC_ARCH x64) >> >> >> >> -------------------- >> >> >> >> If cmake is built as 64bit this won't work >> >> >> >> FIND_PATH(MSVC10_REDIST_DIR NAMES >> >> ${CMAKE_MSVC_ARCH}/Microsoft.VC100.CRT >> >> PATHS >> >> >> >> >> >> "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/redist" >> >> "${base_dir}/VC/redist" >> >> ) >> >> >> >> because that key is only installed as a 32 bit key (which is under >> >> Wow6432Node with x64) >> >> >> >> --------------------- >> >> This part is really confusing me - I really thought I had it , then I >> >> tested a few other modes and it doesn't work. >> >> >> >> Also, and I don't know why, but the following code works with vs2010 >> >> 32bit, but not with vs2010 64bit >> >> >> >> FIND_PATH(MSVC10_REDIST_DIR NAMES >> >> ${CMAKE_MSVC_ARCH}/Microsoft.VC100.CRT >> >> PATHS >> >> >> >> >> >> "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]/../../VC/redist" >> >> "${base_dir}/VC/redist" >> >> ) >> >> >> >> the previous seems to work only in 32 bit mode... with x64 (other than >> >> the arch change from amd64 to x64, it was still unable to locate the >> >> redist, until I grabbed the value into a seperate variable.... >> >> >> >> Grabbing the registry value into a variable and then using that to >> >> search works in 32 and 64 bit targets. (actually after confirming >> >> that it worked, the following doesn't actually work, but what's at the >> >> end does) >> >> >> >> Changing the search for the redist path like this works in all modes >> >> 32/64 debug/release.... >> >> >> >> GET_FILENAME_COMPONENT( msvc_install_path >> >> >> "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\10.0;InstallDir]" >> >> ABSOLUTE ) >> >> FIND_PATH(MSVC10_REDIST_DIR NAMES >> >> ${CMAKE_MSVC_ARCH}/Microsoft.VC100.CRT >> >> PATHS >> >> "${msvc_install_path}/../../VC/redist" >> >> "${base_dir}/VC/redist" >> >> ) >> >> _______________________________________________ >> >> Powered by www.kitware.com >> >> >> >> Visit other Kitware open-source projects at >> >> http://www.kitware.com/opensource/opensource.html >> >> >> >> Please keep messages on-topic and check the CMake FAQ at: >> >> http://www.cmake.org/Wiki/CMake_FAQ >> >> >> >> Follow this link to subscribe/unsubscribe: >> >> http://www.cmake.org/mailman/listinfo/cmake >> > >> > >> > >
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake