Seems reasonable to me.  I guess you'd do this so that You generate C++ #defines for these two CMake variables, and then during python initialization, if the #defines exist you set them?<div><br></div><div>One thing to be careful of is that I think lldb.exe modifies sys.path on startup, so as long as it doesn't stomp on that it's probably fine.</div><br><div class="gmail_quote">On Mon Jan 12 2015 at 2:53:07 PM Ted Woodward <<a href="mailto:ted.woodward@codeaurora.org">ted.woodward@codeaurora.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The paths would be a command line (or gui) option in CMAKE. These would be passed in as a define in the build, and then used by code to set PYTHONHOME and PYTHONPATH right before python is initialized. If PYTHONHOME and PYTHONPATH exist in the environment at runtime the defaults would be ignored.<u></u><u></u></span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">--<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Qualcomm Innovation Center, Inc.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Zachary Turner [mailto:<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>] <br><b>Sent:</b> Monday, January 12, 2015 4:26 PM<br><b>To:</b> Ted Woodward; <a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br><b>Subject:</b> Re: [lldb-dev] Using Python in LLDB on Windows<u></u><u></u></span></p></div></div><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Would this be done by passing the paths you want to add as a command line option to LLDB?  <br><br>Is the PYTHONHOME actually needed?  The CMake already copies python27.dll to the output location, so lldb.exe should be able to find it since it's side by side.<u></u><u></u></p><div><p class="MsoNormal">On Mon Jan 12 2015 at 2:18:48 PM Ted Woodward <<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal">On Windows, there is no notion of a default python installation. A system may or may not have python installed. And if it did, but was a different version from the python used to build LLDB, we’d see behavior from warnings to modules not loading to crashes.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Because of this, LLDB for Hexagon ships with the python DLLs and Lib directories in ../lib/python27, python27.dll, and is invoked via a batch file that sets PYTHONHOME to ../lib/python27, and PYTHONPATH to ../lib/site-packages (which contains the LLDB python files).<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">The problem with using a batch file is it intercepts ctrl-c, so that doesn’t work to break into a running program. So I’d like to add code on Windows (inside #ifdef _WIN32) that will set PYTHONHOME and PYTHONPATH if they don’t exist. The values for these would be controlled by a CMAKE build option.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Thoughts?<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">--<u></u><u></u></p><p class="MsoNormal">Qualcomm Innovation Center, Inc.<u></u><u></u></p><p class="MsoNormal">The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p></div></div><p class="MsoNormal">_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><u></u><u></u></p></blockquote></div></div></div></blockquote></div>