aboutsummaryrefslogtreecommitdiff
path: root/lldb/scripts/Python/modify-python-lldb.py
diff options
context:
space:
mode:
authorPavel Labath <pavel@labath.sk>2019-02-15 07:41:12 +0000
committerPavel Labath <pavel@labath.sk>2019-02-15 07:41:12 +0000
commit8d6b60c14ceaa7cb05aa470d874450ed4083b173 (patch)
tree338ce250e8d9bd3bd70aef48a6def1a9a5f15740 /lldb/scripts/Python/modify-python-lldb.py
parent8c02e778ffc8271da94d1e2b090000c1f7833827 (diff)
downloadllvm-8d6b60c14ceaa7cb05aa470d874450ed4083b173.zip
llvm-8d6b60c14ceaa7cb05aa470d874450ed4083b173.tar.gz
llvm-8d6b60c14ceaa7cb05aa470d874450ed4083b173.tar.bz2
Embed swig version into lldb.py in a different way
Summary: Instead of doing string chopping on the resulting python file, get swig to output the version for us. The two things which make slightly non-trivial are: - in order to get swig to expand SWIG_VERSION for us, we cannot use %pythoncode directly, but we have to go through an intermediate macro. - SWIG_VERSION is a hex number, but it's components are supposed to be interpreted decimally, so there is a bit of integer magic needed to get the right number to come out. I've tested that this approach works both with the latest (3.0.12) and oldest (1.3.40) supported swig. Reviewers: zturner, jingham, serge-sans-paille Subscribers: jdoerfert, lldb-commits Differential Revision: https://reviews.llvm.org/D58172 llvm-svn: 354104
Diffstat (limited to 'lldb/scripts/Python/modify-python-lldb.py')
-rw-r--r--lldb/scripts/Python/modify-python-lldb.py23
1 files changed, 1 insertions, 22 deletions
diff --git a/lldb/scripts/Python/modify-python-lldb.py b/lldb/scripts/Python/modify-python-lldb.py
index cb911ee..20f5ddd 100644
--- a/lldb/scripts/Python/modify-python-lldb.py
+++ b/lldb/scripts/Python/modify-python-lldb.py
@@ -45,11 +45,6 @@ else:
# print "output_name is '" + output_name + "'"
#
-# Version string
-#
-version_line = "swig_version = %s"
-
-#
# Residues to be removed.
#
c_endif_swig = "#endif"
@@ -338,7 +333,6 @@ init_pattern = re.compile("^ def __init__\(self.*\):")
isvalid_pattern = re.compile("^ def IsValid\(")
# These define the states of our finite state machine.
-EXPECTING_VERSION = 0
NORMAL = 1
DEFINING_ITERATOR = 2
DEFINING_EQUALITY = 4
@@ -364,9 +358,8 @@ lldb_iter_defined = False
# The FSM, in all possible states, also checks the current input for IsValid()
# definition, and inserts a __nonzero__() method definition to implement truth
# value testing and the built-in operation bool().
-state = EXPECTING_VERSION
+state = NORMAL
-swig_version_tuple = None
for line in content.splitlines():
# Handle the state transition into CLEANUP_DOCSTRING state as it is possible
# to enter this state from either NORMAL or DEFINING_ITERATOR/EQUALITY.
@@ -383,20 +376,6 @@ for line in content.splitlines():
else:
state |= CLEANUP_DOCSTRING
- if state == EXPECTING_VERSION:
- # We haven't read the version yet, read it now.
- if swig_version_tuple is None:
- match = version_pattern.search(line)
- if match:
- v = match.group(1)
- swig_version_tuple = tuple(map(int, (v.split("."))))
- elif not line.startswith('#'):
- # This is the first non-comment line after the header. Inject the
- # version
- new_line = version_line % str(swig_version_tuple)
- new_content.add_line(new_line)
- state = NORMAL
-
if state == NORMAL:
match = class_pattern.search(line)
# Inserts lldb_helpers and the lldb_iter() definition before the first