I looked into this a little.  This argument is used for exactly one reason.  To figure out whether to put _d on the end of the extension module name. One question: when you do a debug build of LLDB on MacOSX, does it still use a release version of python?  I think the answer is yes, and if so this code was already broken anyway because it should not depend on the value of CMAKE_BUILD_TYPE.<br><br>Somehow we need to determine which version of Python we're linking against.  And use that to pass into this script.  I suspect it's something like this:<br><br>if (os is windows)<br>    pythonver = (CMAKE_BUILD_TYPE=="Debug" || defined(_DEBUG) ? "Debug" : "Release"<br>else()<br>    pythonver = "Release"<br>endif()<br><br>Anyone?<br><div class="gmail_quote">On Wed, Feb 4, 2015 at 7:43 AM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm not a cmake expert, but what is the correct way of detecting debug vs. release, even if the user has not specified CMAKE_BUILD_TYPE explicitly?<br><div class="gmail_quote">On Wed, Feb 4, 2015 at 1:47 AM kutio <<a href="mailto:kutioo@gmail.com" target="_blank">kutioo@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello guys !<div><br></div><div>I was not able to compile the python lldb support because of scripts/<u></u>finishSwigWrapperClasses.py.</div><div><br></div><div>I found the problem it's because the --buildConfig parameter was empty. And since the commit below, this parameter is mandatory :</div><div><br></div><div><div>git show b84a8a0216a8ee3e2b6c7e963de5bc<u></u>2c78ece61d</div><div>commit b84a8a0216a8ee3e2b6c7e963de5bc<u></u>2c78ece61d</div><div>Author: Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></div><div>Date:   Thu Jul 17 20:36:14 2014 +0000</div><div><br></div><div>    Create an _d suffixed symlink when doing a debug Windows build.</div><div><br></div><div>    _lldb is built as an extension module on Windows.  Normally to load</div><div>    an extension module named 'foo', Python would look for the file</div><div>    'foo.pyd'.  However, when a debug interpreter is used, Python will</div><div>    look for the file 'foo_d.pyd'.  This change checks the build</div><div>    configuration and creates the correct symlink name based on the</div><div>    build configuration.</div><div><br></div></div><div>I found a workaround at the moment but this not sustainable because I think this parameter was introduced for good reasons :</div><div><br></div><div><div>ff --git a/scripts/<u></u>finishSwigWrapperClasses.py b/scripts/<u></u>finishSwigWrapperClasses.py</div><div>index 0fe7dec..3fddecf 100644</div><div>--- a/scripts/<u></u>finishSwigWrapperClasses.py</div><div>+++ b/scripts/<u></u>finishSwigWrapperClasses.py</div><div>@@ -172,7 +172,7 @@ def validate_arguments( vArgv ):</div><div>                                        "--srcRoot": "m",</div><div>                                        "--targetDir": "m",</div><div>                                        "--cfgBldDir": "o",</div><div>-                                       "--buildConfig": "m",</div><div>+                                       "--buildConfig": "o",</div><div>                                        "--prefix": "o",</div><div>                                        "--cmakeBuildConfiguration": "o",</div><div>                                        "--argsFile": "o" };</div><div>diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt</div><div>index b4421fc..048dc5a 100644</div><div>--- a/source/CMakeLists.txt</div><div>+++ b/source/CMakeLists.txt</div><div>@@ -176,7 +176,7 @@ if ( LLDB_ENABLE_PYTHON_SCRIPTS_<u></u>SWIG_API_GENERATION )</div><div>            add_custom_command( TARGET liblldb</div><div>                POST_BUILD</div><div>             DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/..<u></u>/scripts/<u></u>finishSwigWrapperClasses.py</div><div>-               COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/..<u></u>/scripts/<u></u>finishSwigWrapperClasses.py --buildConfig=${CMAKE_BUILD_<u></u>TYPE} "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_<u></u>BINARY_DIR}/../scripts" "--cfgBldDir=${CMAKE_CURRENT_<u></u>BINARY_DIR}/../scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${<u></u>CMAKE_CFG_INTDIR}" -m</div><div>+               COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/..<u></u>/scripts/<u></u>finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_<u></u>BINARY_DIR}/../scripts" "--cfgBldDir=${CMAKE_CURRENT_<u></u>BINARY_DIR}/../scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${<u></u>CMAKE_CFG_INTDIR}" -m</div><div>                COMMENT "Python script sym-linking LLDB Python API")</div><div>        endif ()</div><div> endif ()</div></div><div><br></div><div>We should understand why with OS X CMakefile this parameter is empty.</div><div><br></div><div>Regards</div></div>
______________________________<u></u><u></u>_________________<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/<u></u>mailm<u></u>an/listinfo/lldb-dev</a><br>
</blockquote></div></blockquote></div>