3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-31 08:23:17 +00:00
z3/scripts
Dan Liew d00892c9a6 [CMake] Fix dependencies for generating mem_initializer.cpp.
Previously CMake was not aware of which headers files the generation
of `mem_initializer.cpp` depended on. Consequently this could result
in broken incremental builds if

* Existing headers that declare memory initializers/finalizers change.
* New headers are added that declare memory initializers/finalizer.

Now the `z3_add_component()` CMake function has been modifed so that
it now takes an optional `MEMORY_INIT_FINALIZER_HEADERS` argument
which allows the headers that declare memory initializers/finalizers
to be explicitly listed.

With this information CMake will now regenerate `mem_initializer.cpp`
correctly.

This required the `mk_mem_initializer_cpp_internal()` function to be
changed to take a list of header files rather than a list of component
source directories. The two consumers (CMake and Python/Makefile build
systems) of this function have been modified to work with this change.

This partially fixes #1030.
2017-06-21 23:56:53 +01:00
..
mk_consts_files.py
mk_copyright.py
mk_def_file.py
mk_exception.py
mk_genfile_common.py [CMake] Fix dependencies for generating mem_initializer.cpp. 2017-06-21 23:56:53 +01:00
mk_gparams_register_modules_cpp.py
mk_install_tactic_cpp.py
mk_make.py
mk_mem_initializer_cpp.py [CMake] Fix dependencies for generating mem_initializer.cpp. 2017-06-21 23:56:53 +01:00
mk_pat_db.py
mk_project.py
mk_unix_dist.py
mk_util.py [CMake] Fix dependencies for generating mem_initializer.cpp. 2017-06-21 23:56:53 +01:00
mk_win_dist.py
pyg2hpp.py
README
trackall.sh
update_api.py
update_header_guards.py

Instructions for updating external Z3 API
-----------------------------------------

The python "macros": def_Type() and def_API() are used to add new types and function definitions to the Z3 API.
The .h files provided to `mk_bindings(API_files)` contain these definitions.
See src\api\z3_api.h for many examples.

The bindings for .Net and Python are generated when mk_make.py is invoked.