[Lldb-commits] [lldb] r226679 - Some fixes for linking Python on Windows.

Rick Foos rfoos at codeaurora.org
Wed Jan 21 12:09:04 PST 2015


fyi, For some reason, this makes the python library path case sensitive on Windows.

My system had C:\src\Python. The source dir was C:\src\python, causing the failure below.

No big deal, just an fyi, I renamed the directory on the buildslave and happiness.

-rick

Copying PYTHON_DEBUG_LIBRARY-NOTFOUND to C:/buildbots/hexagon-build-01-exp/builddir/lldb-x86-win7-msvc/build/bin
CMake Error at tools/lldb/scripts/CMakeLists.txt:8 (file):
   file COPY cannot find
   "C:/buildbots/hexagon-build-01-exp/builddir/lldb-x86-win7-msvc/llvm/tools/lldb/scripts/PYTHON_DEBUG_LIBRARY-NOTFOUND".

On 01/21/2015 11:53 AM, Zachary Turner wrote:
> Author: zturner
> Date: Wed Jan 21 11:53:10 2015
> New Revision: 226679
>
> URL: http://llvm.org/viewvc/llvm-project?rev=226679&view=rev
> Log:
> Some fixes for linking Python on Windows.
>
> CMake FindPythonLibs will look for multiple versions of Python
> including both debug and release, and build up a list such as
> (debug <debugpath> optimized <optimizedpath>).  This confuses
> the logic we have in CMake to copy the correct python dll to
> the output directory so that it need not be in your system's PATH.
>
> To alleviate this, we manually split this list and extract out
> the debug and release versions of the python library, and copy
> only the correct one to the output directory.
>
> Modified:
>      lldb/trunk/CMakeLists.txt
>      lldb/trunk/scripts/CMakeLists.txt
>
> Modified: lldb/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/CMakeLists.txt?rev=226679&r1=226678&r2=226679&view=diff
> ==============================================================================
> --- lldb/trunk/CMakeLists.txt (original)
> +++ lldb/trunk/CMakeLists.txt Wed Jan 21 11:53:10 2015
> @@ -137,6 +137,23 @@ if (NOT LLDB_DISABLE_PYTHON)
>       endif()
>     endif()
>     find_package(PythonLibs REQUIRED)
> +  # PYTHON_LIBRARIES is now a list in the form (debug DebugPath optimized OptimizedPath)
> +  # So we need to parse it to get the path to the respective installations.
> +  list(FIND PYTHON_LIBRARIES optimized PYTHON_OPTIMIZED_INDEX)
> +  list(FIND PYTHON_LIBRARIES debug PYTHON_DEBUG_INDEX)
> +  if (NOT ${PYTHON_OPTIMIZED_INDEX} EQUAL -1)
> +    MATH(EXPR PYTHON_OPTIMIZED_INDEX "${PYTHON_OPTIMIZED_INDEX}+1")
> +    list(GET PYTHON_LIBRARIES ${PYTHON_OPTIMIZED_INDEX} PYTHON_RELEASE_LIBRARY)
> +  endif()
> +  if (NOT ${PYTHON_DEBUG_INDEX} EQUAL -1)
> +    MATH(EXPR PYTHON_DEBUG_INDEX "${PYTHON_DEBUG_INDEX}+1")
> +    list(GET PYTHON_LIBRARIES ${PYTHON_DEBUG_INDEX} PYTHON_DEBUG_LIBRARY)
> +  endif()
> +  if (CMAKE_BUILD_TYPE STREQUAL "Debug")
> +    set(PYTHON_LIBRARY ${PYTHON_DEBUG_LIBRARY})
> +  else()
> +    set(PYTHON_LIBRARY ${PYTHON_RELEASE_LIBRARY})
> +  endif()
>     include_directories(${PYTHON_INCLUDE_DIRS})
>   endif()
>   
>
> Modified: lldb/trunk/scripts/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/CMakeLists.txt?rev=226679&r1=226678&r2=226679&view=diff
> ==============================================================================
> --- lldb/trunk/scripts/CMakeLists.txt (original)
> +++ lldb/trunk/scripts/CMakeLists.txt Wed Jan 21 11:53:10 2015
> @@ -3,7 +3,8 @@ set(LLVM_NO_RTTI 1)
>   file(GLOB SWIG_INPUTS Python/interface/*.i)
>   
>   if (CMAKE_SYSTEM_NAME MATCHES "Windows")
> -    STRING(REGEX REPLACE ".lib" ".dll" PYTHON_DLL ${PYTHON_LIBRARY})
> +    STRING(REGEX REPLACE "[.]lib" ".dll" PYTHON_DLL ${PYTHON_LIBRARY})
> +    message("Copying ${PYTHON_DLL} to ${CMAKE_BINARY_DIR}/bin")
>       file(COPY ${PYTHON_DLL} DESTINATION ${CMAKE_BINARY_DIR}/bin)
>   endif ()
>   
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

-- 
Rick Foos
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project




More information about the lldb-commits mailing list