3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 05:18:44 +00:00
z3/scripts
Dan Liew 61d1cd524e Teach the build system to build and install the ".NET bindings"
under non Windows systems (i.e. Using mono).

Building these bindings is unfortunately on by default because
I didn't want to change the command line interface (i.e. ``--nodotnet``)
which people might be relying on. This should really be changed to
match the other binding flags (e.g. ``--java``) but I will leave
this for now.

To perform the build a C# compiler and the GAC utility are required.
The script will try to automatically detect them but the user can
override this by setting the ``CSC`` and ``GACUTIL`` environment
variables.

In order for the ".NET bindings" to be installed the assembly
(``Microsoft.Z3.dll``) needs to have a strong name which means
we need a Strong name key file which is what the
``Microsoft.Z3.mono.snk`` is for. This is the public and private
key so this key **must never** be used for checking integrity. Instead its
only purpose is to avoid any name clashes in the GAC.

It is also worth noting that slightly different flags needs to
be passed to the C# compiler on non Windows platforms. I don't
understand why some of the flags are being used on Windows but I left
a comment there that hopefully someone can fix...
2015-12-05 07:52:31 +00:00
..
mk_copyright.py Python 3.x issues 2015-10-28 22:40:07 +00:00
mk_exception.py checkpoint 2012-10-23 12:12:59 -07:00
mk_make.py Added mk_win_dist.py script for generating Window .zip distribution files 2012-10-29 14:21:46 -07:00
mk_project.py remove deprecated user-theory plugins and other unused functionality from API 2015-11-20 08:43:27 -08:00
mk_unix_dist.py Fixed Python 2.x vs 3.x issues. 2015-11-19 23:24:04 +01:00
mk_util.py Teach the build system to build and install the ".NET bindings" 2015-12-05 07:52:31 +00:00
mk_win_dist.py Windows build fix 2015-11-20 09:57:05 +01:00
README updated docs 2012-10-25 18:46:37 -07:00
trackall.sh add more Copyright notes 2015-06-10 11:59:21 -07:00
update_api.py fix build script for update to name of get_error_msg 2015-11-19 08:33:27 -08:00
update_header_guards.py Python 3.x issues 2015-10-28 22:40:07 +00:00

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.