On 25. Feb, 2010, at 22:39 , James Amundson wrote: > On 02/25/2010 12:29 PM, Bill Hoffman wrote: >> OK, so that is the problem.... >> >> It looks for names in this order: >> >> NAMES python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 >> python1.6 python1.5 python >> > Coincidently, I had a bug report that arose from the above ordering just this > afternoon. It makes no sense to me. I think "python" should be the first > choice, not the last choice. What's the logic there? > > --Jim Amundson
Probably the idea was that one wants to find the newest Python version first, and with the versioned pythonX.Y names this is relatively easy. With the unversioned name, it's not that easy... Perhaps something like this (completely untested)? set(_fpi_versions 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.6 1.5) foreach(_fpi_v IN LISTS _fpi_versions) string(REPLACE "." "" _fpi_n python${_fpi_v}) if(WIN32) # on WIN32 search registered installations first find_executable(PYTHON_${_fpi_n}_EXECUTABLE python PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${_fpi_v}\\InstallPath] NO_DEFAULT_PATH NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH NO_CMAKE_FIND_ROOT_PATH) endif() # then proceed to normal search find_executable(PYTHON_${_fpi_n}_EXECUTABLE NAMES python${_fpi_v} python) if(PYTHON_${_fpi_n}_EXECUTABLE) # if we found a python interpreter, set PYTHON_EXECUTABLE and don't search further set(PYTHON_EXECUTABLE "${PYTHON_${_fpi_n}_EXECUTABLE}") break() endif() endforeach() Of course, FindPythonLibs.cmake should be smartened up to first search for PythonInterp, and then use that result to come up with good guesses used in HINT. Also it should fail if it can't find the libraries/headers that match the interpreter that has been discovered... Michael _______________________________________________ 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