#!/usr/bin/env python from distutils.core import setup, Extension import distutils.file_util import distutils.dir_util from distutils.command.build import build import os import os.path so_ext = "@SOEXT@" libghdl_version = "@libghdl_version@" class GHDLBuild(build): def my_copy_tree(self, src, dst): """Tuned version of copy_tree: exclude .o files""" distutils.dir_util.mkpath(dst, verbose=True) for n in os.listdir(src): src_name = os.path.join(src, n) dst_name = os.path.join(dst, n) if os.path.isdir(src_name): self.my_copy_tree(src_name, dst_name) elif not src_name.endswith(".o"): distutils.file_util.copy_file(src_name, dst_name) def run(self): # Run original build code build.run(self) # Copy VHDL libraries & shared library dstdir = os.path.join(self.build_lib, 'libghdl') libghdl_filename = "libghdl-" + libghdl_version + so_ext distutils.file_util.copy_file(libghdl_filename, dstdir) with open(os.path.join(dstdir, "config.py"), 'w') as f: f.write('libghdl_filename="{}"\n'.format(libghdl_filename)) self.my_copy_tree(os.path.join("lib", "ghdl"), os.path.join(dstdir, "ghdl")) setup (name='libghdl', version=libghdl_version, description = 'Interface to ghdl, a VHDL analyzer', author = 'Tristan Gingold', author_email = 'tgingold@free.fr', url = 'github.com/ghdl/ghdl', package_dir = {'libghdl' : 'src/vhdl/python/libghdl'}, packages = ['libghdl', 'libghdl.thin', 'libghdl.thin.vhdl'], cmdclass = { 'build': GHDLBuild})