blob: 3233a90f9e3055c26a93967a30f2b72ae393f4bd [file] [log] [blame]
#!/usr/bin/env python2
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Based on suggestions in http://guide.python-distribute.org/creation.html
# ...with a mix of bits from pymox.
import imp
import os
import sys
from setuptools import setup
from setuptools.command import build_py
import servo.sversion_util as svu
__version__ = svu.setuptools_version()
class servo_build_py(build_py.build_py):
"""Custom build_py class for servod to do setup"""
# The only reason we include the servo.data package is to build INA
# XML configuration files from simplified .py files. So we pop it
# out to avoid building the python files.
# See generate_ina_controls.py & servo/data/README.md for more
# information.
def build_ina_maps(self):
"""Generate .xml servod configuration files from the servo/data/*.py"""
# get package_data files
# run generate_ina_controls.py over all the files,
# giving the file an output directory?
data_dir = self.get_package_dir(self.packages.pop(1))
module_name = 'generate_ina_controls'
ina_generator = imp.load_module(module_name, *imp.find_module(module_name,
[data_dir]))
ina_generator.GenerateINAControls(data_dir)
def run(self):
"""Build INA maps."""
self.build_ina_maps()
build_py.build_py.run(self)
setup(
name = 'servo',
version = __version__,
package_dir = {'': 'build'},
py_modules=['servo.servod', 'servo.dut_control'],
packages=['servo', 'servo.data', 'servo.drv', 'servo.interface',
'servo.tools', 'servo.utils'],
package_data={
'servo': [
'data/*.xml',
'data/*.scenario',
'data/*.board',
],
},
cmdclass={'build_py': servo_build_py},
url = 'http://www.chromium.org',
maintainer='chromium os',
maintainer_email='chromium-os-dev@chromium.org',
license = 'Chromium',
description = 'Server to communicate and control servo debug board.',
long_description = 'Server to communicate and control servo debug board.',
entry_points={
'console_scripts': [
'servod = servo.servod:main',
'dut-control = servo.dut_control:main',
'dut-power = servo.dut_power:main',
'servodutil = servo.servodtool:servodutil',
'servodtool = servo.servodtool:main',
],
})
setup(
name = 'usbkm232',
version = __version__,
package_dir = {'': 'build'},
py_modules=['usbkm232.ctrld', 'usbkm232.ctrlu', 'usbkm232.enter',
'usbkm232.space', 'usbkm232.tab'],
packages=['usbkm232'],
url = 'http://www.chromium.org',
maintainer='chromium os',
maintainer_email='chromium-os-dev@chromium.org',
license = 'Chromium',
description = 'Communicate and control usbkm232 USB keyboard device.',
long_description = 'Communicate and control usbkm232 USB keyboard device.',
entry_points={
'console_scripts': [
'usbkm232-ctrld = usbkm232.ctrld:main',
'usbkm232-ctrlu = usbkm232.ctrlu:main',
'usbkm232-enter = usbkm232.enter:main',
'usbkm232-space = usbkm232.space:main',
'usbkm232-tab = usbkm232.tab:main',
'usbkm232-test = usbkm232.usbkm232:main',
],
})
setup(
name = 'servo_mfg',
version = __version__,
package_dir = {'': 'servo/scripts'},
py_modules=['servo_mfg'],
packages=['servo_mfg'],
package_data={
'servo_mfg': [
'binfiles/*.hex',
'binfiles/*.cfg',
'binfiles/*.ini',
'binfiles/*.bin',
'*.sh',
],
},
url = 'http://www.chromium.org',
maintainer='chromium os',
maintainer_email='chromium-os-dev@chromium.org',
license = 'Chromium',
description = 'Tools to program and validate servo devices.',
entry_points={
'console_scripts': [
'mfg_servo_v4 = servo_mfg.mfg_servo_v4:flash_v4',
'mfg_servo_v4_1 = servo_mfg.mfg_servo_v4:flash_v4point1',
'mfg_servo_micro = servo_mfg.mfg_servo_micro:main',
'mfg_c2d2 = servo_mfg.mfg_c2d2:main',
'servo_mfg = servo_mfg.main:main',
],
})