from distutils.core import setup
from distutils.command.build import build
from distutils.dir_util import copy_tree


class CustomBuild(build):
    def run(self):
        if ('@top_srcdir@' != '@top_builddir@'):
            copy_tree('@top_srcdir@/tools/', '@top_builddir@/tools/', update=1)

setup(name='sdbusplus',
      version='1.0',
      package_dir={'':'@top_builddir@/tools'},
      packages=['sdbusplus'],
      scripts=['@top_builddir@/tools/sdbus++'],
      cmdclass={'build': CustomBuild},
      package_data={'sdbusplus': ['templates/*.mako.*']},
      )
