Fix darwin-debug build in cmake (OS X)
This patch fixes test_launch_in_terminal test which doesn't work in OS X since the moment as it was added in r225284. The test fails because Target::Launch returns the following error: "the darwin-debug executable doesn't exist at <output_dir>/lib/python2.7/site-packages/lldb/darwin-debug'". Patch by Ilia K Differential Revision: http://reviews.llvm.org/D7102 llvm-svn: 227096
This commit is contained in:
@@ -329,6 +329,53 @@ def make_symlink_other_platforms( vDictArgs, vstrFrameworkPythonDir, vstrSoPath
|
||||
|
||||
return (bOk, strMsg);
|
||||
|
||||
#++---------------------------------------------------------------------------
|
||||
# Details: Make the symbolic link to the darwin-debug. Code for all platforms
|
||||
# apart from Windows.
|
||||
# Args: vDictArgs - (R) Program input parameters.
|
||||
# vstrFrameworkPythonDir - (R) Python framework directory.
|
||||
# vstrDarwinDebugFileName - (R) File name for darwin-debug.
|
||||
# Returns: Bool - True = function success, False = failure.
|
||||
# Str - Error description on task failure.
|
||||
# Throws: None.
|
||||
#--
|
||||
def make_symlink_darwin_debug( vDictArgs, vstrFrameworkPythonDir, vstrDarwinDebugFileName ):
|
||||
dbg = utilsDebug.CDebugFnVerbose( "Python script make_symlink_other_platforms()" );
|
||||
bOk = True;
|
||||
strMsg = "";
|
||||
bDbg = vDictArgs.has_key( "-d" );
|
||||
strTarget = vstrDarwinDebugFileName
|
||||
strDarwinDebugPath = "%s/%s" % (vstrFrameworkPythonDir, strTarget);
|
||||
strTarget = os.path.normcase( strDarwinDebugPath );
|
||||
strSrc = "";
|
||||
|
||||
os.chdir( vstrFrameworkPythonDir );
|
||||
bMakeFileCalled = vDictArgs.has_key( "-m" );
|
||||
if not bMakeFileCalled:
|
||||
return (bOk, strMsg);
|
||||
else:
|
||||
strSrc = os.path.normcase( "../../../../bin/lldb-launcher" );
|
||||
|
||||
if os.path.islink( strTarget ):
|
||||
if bDbg:
|
||||
print strMsglldbsoExists % strTarget;
|
||||
return (bOk, strMsg);
|
||||
|
||||
if bDbg:
|
||||
print strMsglldbsoMk;
|
||||
|
||||
try:
|
||||
os.symlink( strSrc, strTarget );
|
||||
except OSError as e:
|
||||
bOk = False;
|
||||
strMsg = "OSError( %d ): %s %s" % (e.errno, e.strerror, strErrMsgMakeSymlink);
|
||||
strMsg += " Src:'%s' Target:'%s'" % (strSrc, strTarget);
|
||||
except:
|
||||
bOk = False;
|
||||
strMsg = strErrMsgUnexpected % sys.exec_info()[ 0 ];
|
||||
|
||||
return (bOk, strMsg);
|
||||
|
||||
#++---------------------------------------------------------------------------
|
||||
# Details: Make the symlink that the script bridge for Python will need in
|
||||
# the Python framework directory.
|
||||
@@ -343,9 +390,10 @@ def make_symlink( vDictArgs, vstrFrameworkPythonDir ):
|
||||
bOk = True;
|
||||
strWkDir = "";
|
||||
strErrMsg = "";
|
||||
strSoFileName = "_lldb";
|
||||
|
||||
eOSType = utilsOsType.determine_os_type();
|
||||
|
||||
# Make symlink for _lldb
|
||||
strSoFileName = "_lldb";
|
||||
if eOSType == utilsOsType.EnumOsType.Unknown:
|
||||
bOk = False;
|
||||
strErrMsg = strErrMsgOsTypeUnknown;
|
||||
@@ -357,6 +405,14 @@ def make_symlink( vDictArgs, vstrFrameworkPythonDir ):
|
||||
bOk, strErrMsg = make_symlink_other_platforms( vDictArgs,
|
||||
vstrFrameworkPythonDir,
|
||||
strSoFileName );
|
||||
|
||||
# Make symlink for darwin-debug
|
||||
strDarwinDebugFileName = "darwin-debug"
|
||||
if bOk and eOSType == utilsOsType.EnumOsType.Darwin:
|
||||
bOk, strErrMsg = make_symlink_darwin_debug( vDictArgs,
|
||||
vstrFrameworkPythonDir,
|
||||
strDarwinDebugFileName );
|
||||
|
||||
return (bOk, strErrMsg);
|
||||
|
||||
#++---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user