mirror of
https://github.com/Z3Prover/z3
synced 2025-07-22 20:32:05 +00:00
Move `mk_def_file_internal()
out of
mk_util.py
` into
``mk_genfile_common.py`` and adapt ``mk_util.py`` and ``mk_def_file.py`` to use the code at its new location. Whilst I'm here also reindent ``mk_def_file.py`` and make it use some of the code in ``mk_genfile_common.py`` to avoid code duplication. The purpose of this change is to have Python code common to the Python and CMake build systems separate from Python code that is only used for the Python build system.
This commit is contained in:
parent
2b64729b21
commit
8a35f744c7
3 changed files with 51 additions and 39 deletions
|
@ -124,3 +124,36 @@ def mk_z3consts_py_internal(api_files, output_dir):
|
|||
api.close()
|
||||
z3consts.close()
|
||||
return z3consts_output_path
|
||||
|
||||
###############################################################################
|
||||
# Functions for generating a "module definition file" for MSVC
|
||||
###############################################################################
|
||||
|
||||
def mk_def_file_internal(defname, dll_name, export_header_files):
|
||||
"""
|
||||
Writes to a module definition file to a file named ``defname``.
|
||||
|
||||
``dll_name`` is the name of the dll (without the ``.dll`` suffix).
|
||||
``export_header_file`` is a list of header files to scan for symbols
|
||||
to include in the module definition file.
|
||||
"""
|
||||
assert isinstance(export_header_files, list)
|
||||
pat1 = re.compile(".*Z3_API.*")
|
||||
fout = open(defname, 'w')
|
||||
fout.write('LIBRARY "%s"\nEXPORTS\n' % dll_name)
|
||||
num = 1
|
||||
for export_header_file in export_header_files:
|
||||
api = open(export_header_file, 'r')
|
||||
for line in api:
|
||||
m = pat1.match(line)
|
||||
if m:
|
||||
words = re.split('\W+', line)
|
||||
i = 0
|
||||
for w in words:
|
||||
if w == 'Z3_API':
|
||||
f = words[i+1]
|
||||
fout.write('\t%s @%s\n' % (f, num))
|
||||
i = i + 1
|
||||
num = num + 1
|
||||
api.close()
|
||||
fout.close()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue