mirror of https://github.com/YosysHQ/abc.git
68 lines
1.6 KiB
Python
68 lines
1.6 KiB
Python
import sys
|
|
|
|
from distutils.core import setup, Extension
|
|
from distutils.sysconfig import get_config_vars
|
|
from distutils import util
|
|
from distutils.command.build_ext import build_ext
|
|
from distutils import sysconfig
|
|
|
|
define_macros = []
|
|
libraries = []
|
|
library_dirs = []
|
|
|
|
if sys.platform == "win32":
|
|
|
|
src_file = [ 'pyabc.i' ]
|
|
|
|
define_macros.append( ('WIN32', 1) )
|
|
define_macros.append( ('ABC_DLL', 'ABC_DLLEXPORT') )
|
|
|
|
libraries.append('abcr')
|
|
library_dirs.append('./../../lib')
|
|
|
|
else:
|
|
|
|
src_file = [ 'pyabc_wrap.c' ]
|
|
|
|
if get_config_vars()['SIZEOF_VOID_P'] > 4:
|
|
define_macros.append( ('LIN64', 1) )
|
|
else:
|
|
define_macros.append( ('LIN', 1) )
|
|
|
|
libraries.append( 'abc' )
|
|
libraries.append( 'rt' )
|
|
libraries.append( 'readline' )
|
|
library_dirs.append('./../../')
|
|
|
|
|
|
# ugly hack to silence strict-prototype warnings
|
|
|
|
class build_ext_subclass( build_ext ):
|
|
|
|
def build_extensions(self):
|
|
|
|
CC = sysconfig.get_config_var("CC")
|
|
|
|
if self.compiler.compiler_type == 'unix' and ( 'gcc' in CC or 'g++' in CC):
|
|
for e in self.extensions:
|
|
e.extra_compile_args.append( '-Wno-strict-prototypes' )
|
|
|
|
build_ext.build_extensions(self)
|
|
|
|
ext = Extension(
|
|
'_pyabc',
|
|
src_file,
|
|
define_macros=define_macros,
|
|
include_dirs = ["../../src"],
|
|
library_dirs=library_dirs,
|
|
libraries=libraries
|
|
)
|
|
|
|
setup(
|
|
name='pyabc',
|
|
version='1.0',
|
|
ext_modules=[ext],
|
|
py_modules=['pyabc','getch','pyabc_split','redirect', 'reachx_cmd'],
|
|
cmdclass = {'build_ext': build_ext_subclass }
|
|
)
|