|
4 | 4 | # and https://github.com/m-pilia/disptools/blob/master/python_c_extension/CMakeLists.txt
|
5 | 5 |
|
6 | 6 | import os
|
| 7 | +import os.path |
7 | 8 | import shutil
|
8 | 9 | import subprocess
|
9 | 10 | import sys
|
10 | 11 |
|
| 12 | +import setuptools.command.egg_info |
11 | 13 | from setuptools import setup, Extension
|
12 | 14 | from setuptools.command.build_ext import build_ext
|
13 | 15 |
|
|
23 | 25 | if "--disable-libsnark" in sys.argv:
|
24 | 26 | disable_libsnark = True
|
25 | 27 | sys.argv.remove("--disable-libsnark")
|
| 28 | +if not os.path.isfile("depends/python-libsnark/CMakeLists.txt"): |
| 29 | + print("*** depends/python-libsnark/CMakeLists.txt not found, disabling libsnark backend") |
| 30 | + disable_libsnark = True |
26 | 31 |
|
27 | 32 | disable_qaptools = False
|
28 | 33 | if "--disable-qaptools" in sys.argv:
|
|
36 | 41 | sys.argv.remove(i)
|
37 | 42 | break
|
38 | 43 |
|
| 44 | +if qaptools_bin is None and os.path.isfile("qaptools/qapgen" + (".exe" if os.name=="nt" else "")): |
| 45 | + print("*** Using detected qaptools in qaptools/") |
| 46 | + qaptools_bin="qaptools" |
| 47 | + |
| 48 | +if qaptools_bin is None and not os.path.isfile("depends/qaptools/CMakeLists.txt"): |
| 49 | + print("*** depends/qaptools/CMakeLists.txt not found, disabling libsnark backend") |
| 50 | + disable_qaptools = True |
| 51 | + |
| 52 | +# write manifest |
| 53 | +print("writing MANIFEST.in") |
| 54 | +mfest = open("MANIFEST.in", "w") |
| 55 | +print("recursive-include examples *.py", file=mfest) |
| 56 | +print("include examples/binarycircuit_example.txt", file=mfest) |
| 57 | +if not disable_qaptools: |
| 58 | + if qaptools_bin: |
| 59 | + print("recursive-include", qaptools_bin, "*", file=mfest) |
| 60 | + else: |
| 61 | + print("recursive-include depends/qaptools *", file=mfest) |
| 62 | +if not disable_libsnark: print("recursive-include depends/python-libsnark *", file=mfest) |
| 63 | +print("include LICENSE.md", file=mfest) |
| 64 | +mfest.close() |
| 65 | + |
| 66 | + |
39 | 67 | def use_qaptools_bins(target):
|
40 | 68 | apps = ['qapgen', 'qapgenf', 'qapinput', 'qapcoeffcache', 'qapprove', 'qapver']
|
41 | 69 | exefix = '.exe' if os.name == 'nt' else ''
|
@@ -97,7 +125,7 @@ def build_extensions(self):
|
97 | 125 |
|
98 | 126 |
|
99 | 127 | setup(name='PySNARK',
|
100 |
| - version='0.2', |
| 128 | + version='0.2' + ('-nols' if disable_libsnark else '') + ('-noqt' if disable_qaptools else ''), |
101 | 129 | description='Python zk-SNARK execution environment',
|
102 | 130 | author='Meilof Veeningen',
|
103 | 131 |
|
|
0 commit comments