<div dir="ltr">Thanks for the info.  Setting Python3_ROOT_DIR solves the problem.<div><br></div><div><div>Looking at the cmake output from before setting Python3_ROOT_DIR, cmake looks for Python twice and finds it at the two different locations.</div><div><br></div><div>Early on:</div><div><br></div><div>-- Found PythonInterp: C:/Python36/python.exe (found version "3.6.8")<br></div><div><br></div><div>Which looks good (modulo the incorrect slash direction).  But later:</div><div><br></div><div>-- Found Python3: C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python37_64/python.exe (found version "3.7.5") found components:  Interpreter Development<br>-- Found PythonInterpAndLibs: C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python37_64/libs/python37.lib<br></div><div><br></div><div>Which is where the discrepancy comes in.  Note that only C:\Python36 is in my PATH.</div></div><div><br></div><div>It's frustrating that this keeps breaking.  Last time, I had to purge all but one Python installation from my machine to get it to make a consistent choice.  But I just upgraded to VS 2019, and it smuggled in its own version.<div></div></div><div><br></div><div>So why are there two searches anyway?  And why do they have different algorithms that lead to different results?  (I'm not sure _how_ it ever found the Microsoft copy, since there's nothing in the process environment that points that way.)</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 27, 2020 at 10:23 AM Jonas Devlieghere <<a href="mailto:jonas@devlieghere.com">jonas@devlieghere.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hey Adrian,<div><br></div><div>Config.h gets generated by expanding the corresponding CMake variables. If you look at LLDBConfig.cmake, you can see that LLDB_PYTHON_HOME is computed from PYTHON_EXECUTABLE. The problem appears that somehow CMake ignored your specified PYTHON_HOME and decided to pick a different Python. I'm not sure why though, because I use a similar CMake invocation on Windows. </div><div><br></div><div>> cmake ..\llvm-project\llvm -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_ENABLE_PROJECTS="llvm;clang;lldb;lld" -DLLVM_ENABLE_ASSERTIONS=OFF -DLLVM_ENABLE_ZLIB=FALSE -DLLDB_ENABLE_PYTHON=TRUE -DPYTHON_HOME="C:/Program Files/Python36/"<br></div><div><br></div><div>According to FindPython3 (<a href="https://cmake.org/cmake/help/v3.12/module/FindPython3.html" target="_blank">https://cmake.org/cmake/help/v3.12/module/FindPython3.html</a>), you can set Python3_ROOT_DIR as a hint. Can you give that a try? If that works we should populate that variable from PYTHON_HOME in FindPythonInterpAndLibs.cmake.</div><div><br></div><div>Cheers,</div><div>Jonas </div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 27, 2020 at 10:10 AM Adrian McCarthy via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Is there documentation on how lldb\include\lldb\host\config.h is generated?  I'm again having the problem of the config trying to point to the wrong Python installation.<div><br></div><div>When I run cmake, I explicitly point PYTHON_HOME to C:\Python36 like this:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace" size="1">cmake -GNinja -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON -DCMAKE_BUILD_TYPE=Debug -DLLDB_TEST_DEBUG_TEST_CRASHES=1 -DPYTHON_HOME=C:\Python36 -DLLDB_TEST_COMPILER=D:\src\llvm\build\ninja\bin\clang.exe ..\..\llvm-project\llvm -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_PROJECTS="clang;lld;lldb"</font></div><div><font face="monospace" size="1"><br></font></div></blockquote><font size="1" face="arial, sans-serif">But the generated Config.h contains:</font><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><font face="monospace" size="1">#define LLDB_PYTHON_HOME "C:/Program Files (x86)/Microsoft Visual Studio/Shared/Python37_64"</font></div></blockquote><div><font size="1" face="arial, sans-serif"><br></font></div><div><font size="1" face="arial, sans-serif">And the mismatch causes my build to fail because it goes looking for python37_d.dll, which is apparently not part of the Microsoft distribution.</font></div></div>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>
</blockquote></div>