Skip to content

Commit d4a59d7

Browse files
Merge pull request #8773 from apple/jdevlieghere/sblang
[lldb] Expose SBLanguages through SWIG
2 parents fd6d7cf + 58409fe commit d4a59d7

File tree

9 files changed

+502
-249
lines changed

9 files changed

+502
-249
lines changed

lldb/bindings/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ file(GLOB_RECURSE SWIG_SOURCES *.swig)
33
file(GLOB SWIG_HEADERS
44
${LLDB_SOURCE_DIR}/include/lldb/API/*.h
55
${LLDB_SOURCE_DIR}/include/lldb/*.h
6+
${LLDB_BINARY_DIR}/include/lldb/API/SBLanguages.h
67
)
78
file(GLOB SWIG_PRIVATE_HEADERS
89
${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h
@@ -32,6 +33,7 @@ set(SWIG_COMMON_FLAGS
3233
-w361,362 # Ignore warnings about ignored operator overloads
3334
-features autodoc
3435
-I${LLDB_SOURCE_DIR}/include
36+
-I${LLDB_BINARY_DIR}/include
3537
-I${CMAKE_CURRENT_SOURCE_DIR}
3638
${DARWIN_EXTRAS}
3739
)

lldb/bindings/headers.swig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "lldb/API/SBHostOS.h"
3737
#include "lldb/API/SBInstruction.h"
3838
#include "lldb/API/SBInstructionList.h"
39+
#include "lldb/API/SBLanguages.h"
3940
#include "lldb/API/SBLanguageRuntime.h"
4041
#include "lldb/API/SBLaunchInfo.h"
4142
#include "lldb/API/SBLineEntry.h"

lldb/bindings/interfaces.swig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@
113113
%include "lldb/API/SBHostOS.h"
114114
%include "lldb/API/SBInstruction.h"
115115
%include "lldb/API/SBInstructionList.h"
116+
%include "lldb/API/SBLanguages.h"
116117
%include "lldb/API/SBLanguageRuntime.h"
117118
%include "lldb/API/SBLaunchInfo.h"
118119
%include "lldb/API/SBLineEntry.h"

lldb/bindings/lua/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ else()
1010
DEPENDS ${SWIG_SOURCES}
1111
DEPENDS ${SWIG_INTERFACES}
1212
DEPENDS ${SWIG_HEADERS}
13+
DEPENDS lldb-sbapi-dwarf-enums
1314
COMMAND ${SWIG_EXECUTABLE}
1415
${SWIG_COMMON_FLAGS}
1516
-I${CMAKE_CURRENT_SOURCE_DIR}

lldb/bindings/prepare_bindings.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,11 @@ def process_args(args):
135135
os.path.dirname(os.path.realpath(__file__)),
136136
os.path.pardir)),
137137
help="Specifies the LLDB source root directory.")
138+
parser.add_argument(
139+
"--build-root",
140+
"--buildRoot",
141+
"-b",
142+
help="Specifies the LLDB build root directory.")
138143
parser.add_argument(
139144
"--swig-executable",
140145
"--swigExecutable",

lldb/bindings/python/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ add_custom_command(
1111
DEPENDS ${SWIG_SOURCES}
1212
DEPENDS ${SWIG_INTERFACES}
1313
DEPENDS ${SWIG_HEADERS}
14+
DEPENDS lldb-sbapi-dwarf-enums
1415
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/prepare_binding_python.py
1516
COMMAND ${Python3_EXECUTABLE} ${LLDB_SOURCE_DIR}/bindings/prepare_bindings.py
1617
${framework_arg}
1718
--srcRoot=${LLDB_SOURCE_DIR}
19+
--buildRoot=${LLDB_BINARY_DIR}
1820
--targetDir=${CMAKE_CURRENT_BINARY_DIR}
1921
--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}
2022
--prefix=${CMAKE_BINARY_DIR}

lldb/bindings/python/prepare_binding_python.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ def do_swig_rebuild(options, dependency_file, config_build_dir, settings):
209209
"-features", "autodoc",
210210
"-threads",
211211
"-I" + os.path.normpath(os.path.join(options.src_root, "include")),
212+
"-I" + os.path.normpath(os.path.join(options.build_root, "include")),
212213
"-I" + bindings_dir,
213214
"-I" + bindings_python_dir,
214215
"-D__STDC_LIMIT_MACROS",

lldb/bindings/python/static-binding/LLDBWrapPython.cpp

Lines changed: 398 additions & 247 deletions
Large diffs are not rendered by default.

lldb/bindings/python/static-binding/lldb.py

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1783,8 +1783,16 @@ def lldb_iter(obj, getsize, getelem):
17831783

17841784
eBroadcastBitError = _lldb.eBroadcastBitError
17851785

1786+
eBroadcastSymbolChange = _lldb.eBroadcastSymbolChange
1787+
17861788
eBroadcastBitProgressCategory = _lldb.eBroadcastBitProgressCategory
17871789

1790+
eSeverityError = _lldb.eSeverityError
1791+
1792+
eSeverityWarning = _lldb.eSeverityWarning
1793+
1794+
eSeverityInfo = _lldb.eSeverityInfo
1795+
17881796
class SBAddress(object):
17891797
r"""
17901798
A section + offset based address class.
@@ -5560,12 +5568,13 @@ def SetTrapExceptions(self, trap_exceptions=True):
55605568
"""
55615569
return _lldb.SBExpressionOptions_SetTrapExceptions(self, trap_exceptions)
55625570

5563-
def SetLanguage(self, language):
5571+
def SetLanguage(self, *args):
55645572
r"""
55655573
SetLanguage(SBExpressionOptions self, lldb::LanguageType language)
5574+
SetLanguage(SBExpressionOptions self, SBSourceLanguageName name, uint32_t version)
55665575
Sets the language that LLDB should assume the expression is written in
55675576
"""
5568-
return _lldb.SBExpressionOptions_SetLanguage(self, language)
5577+
return _lldb.SBExpressionOptions_SetLanguage(self, *args)
55695578

55705579
def GetPlaygroundTransformEnabled(self):
55715580
r"""GetPlaygroundTransformEnabled(SBExpressionOptions self) -> bool"""
@@ -6808,6 +6817,86 @@ def __getitem__(self, key):
68086817

68096818
# Register SBInstructionList in _lldb:
68106819
_lldb.SBInstructionList_swigregister(SBInstructionList)
6820+
eLanguageNameAda = _lldb.eLanguageNameAda
6821+
6822+
eLanguageNameBLISS = _lldb.eLanguageNameBLISS
6823+
6824+
eLanguageNameC = _lldb.eLanguageNameC
6825+
6826+
eLanguageNameC_plus_plus = _lldb.eLanguageNameC_plus_plus
6827+
6828+
eLanguageNameCobol = _lldb.eLanguageNameCobol
6829+
6830+
eLanguageNameCrystal = _lldb.eLanguageNameCrystal
6831+
6832+
eLanguageNameD = _lldb.eLanguageNameD
6833+
6834+
eLanguageNameDylan = _lldb.eLanguageNameDylan
6835+
6836+
eLanguageNameFortran = _lldb.eLanguageNameFortran
6837+
6838+
eLanguageNameGo = _lldb.eLanguageNameGo
6839+
6840+
eLanguageNameHaskell = _lldb.eLanguageNameHaskell
6841+
6842+
eLanguageNameJava = _lldb.eLanguageNameJava
6843+
6844+
eLanguageNameJulia = _lldb.eLanguageNameJulia
6845+
6846+
eLanguageNameKotlin = _lldb.eLanguageNameKotlin
6847+
6848+
eLanguageNameModula2 = _lldb.eLanguageNameModula2
6849+
6850+
eLanguageNameModula3 = _lldb.eLanguageNameModula3
6851+
6852+
eLanguageNameObjC = _lldb.eLanguageNameObjC
6853+
6854+
eLanguageNameObjC_plus_plus = _lldb.eLanguageNameObjC_plus_plus
6855+
6856+
eLanguageNameOCaml = _lldb.eLanguageNameOCaml
6857+
6858+
eLanguageNameOpenCL_C = _lldb.eLanguageNameOpenCL_C
6859+
6860+
eLanguageNamePascal = _lldb.eLanguageNamePascal
6861+
6862+
eLanguageNamePLI = _lldb.eLanguageNamePLI
6863+
6864+
eLanguageNamePython = _lldb.eLanguageNamePython
6865+
6866+
eLanguageNameRenderScript = _lldb.eLanguageNameRenderScript
6867+
6868+
eLanguageNameRust = _lldb.eLanguageNameRust
6869+
6870+
eLanguageNameSwift = _lldb.eLanguageNameSwift
6871+
6872+
eLanguageNameUPC = _lldb.eLanguageNameUPC
6873+
6874+
eLanguageNameZig = _lldb.eLanguageNameZig
6875+
6876+
eLanguageNameAssembly = _lldb.eLanguageNameAssembly
6877+
6878+
eLanguageNameC_sharp = _lldb.eLanguageNameC_sharp
6879+
6880+
eLanguageNameMojo = _lldb.eLanguageNameMojo
6881+
6882+
eLanguageNameGLSL = _lldb.eLanguageNameGLSL
6883+
6884+
eLanguageNameGLSL_ES = _lldb.eLanguageNameGLSL_ES
6885+
6886+
eLanguageNameHLSL = _lldb.eLanguageNameHLSL
6887+
6888+
eLanguageNameOpenCL_CPP = _lldb.eLanguageNameOpenCL_CPP
6889+
6890+
eLanguageNameCPP_for_OpenCL = _lldb.eLanguageNameCPP_for_OpenCL
6891+
6892+
eLanguageNameSYCL = _lldb.eLanguageNameSYCL
6893+
6894+
eLanguageNameRuby = _lldb.eLanguageNameRuby
6895+
6896+
eLanguageNameMove = _lldb.eLanguageNameMove
6897+
6898+
eLanguageNameHylo = _lldb.eLanguageNameHylo
6899+
68116900
class SBLanguageRuntime(object):
68126901
r"""Utility functions for :ref:`LanguageType`"""
68136902

0 commit comments

Comments
 (0)