# -*- coding: utf-8 -*-
import os
import util
from mixxx import Feature
import SCons.Script as SCons
import depends
class HSS1394(Feature):
def description(self):
return "HSS1394 MIDI device support"
def enabled(self, build):
if build.platform_is_windows or build.platform_is_osx:
build.flags['hss1394'] = util.get_flags(build.env, 'hss1394', 1)
else:
build.flags['hss1394'] = util.get_flags(build.env, 'hss1394', 0)
if int(build.flags['hss1394']):
return True
return False
def add_options(self, build, vars):
if build.platform_is_windows or build.platform_is_osx:
vars.Add('hss1394',
'Set to 1 to enable HSS1394 MIDI device support.', 1)
def configure(self, build, conf):
if not self.enabled(build):
return
if build.platform_is_windows or build.platform_is_osx:
# if not conf.CheckHeader('HSS1394/HSS1394.h'): # WTF this gives tons of cmath errors on MSVC
# raise Exception('Did not find HSS1394 development headers')
if not conf.CheckLib(['libhss1394', 'hss1394']):
raise Exception('Did not find HSS1394 development library')
build.env.Append(CPPDEFINES='__HSS1394__')
if build.platform_is_windows and build.static_dependencies:
conf.CheckLib('user32')
def sources(self, build):
return ['controllers/midi/hss1394controller.cpp',
'controllers/midi/hss1394enumerator.cpp']
class HID(Feature):
HIDAPI_INTERNAL_PATH = '#lib/hidapi-0.8.0-rc1'
def description(self):
return "HID controller support"
def enabled(self, build):
build.flags['hid'] = util.get_flags(build.env, 'hid', 1)
if int(build.flags['hid']):
return True
return False
def add_options(self, build, vars):
vars.Add('hid', 'Set to 1 to enable HID controller support.', 1)
def configure(self, build, conf):
if not self.enabled(build):
return
# TODO(XXX) allow external hidapi install, but for now we just use our
# internal one.
build.env.Append(
CPPPATH=[os.path.join(self.HIDAPI_INTERNAL_PATH, 'hidapi')])
if build.platform_is_linux:
build.env.ParseConfig(
'pkg-config libusb-1.0 --silence-errors --cflags --libs')
if (not conf.CheckLib(['libusb-1.0', 'usb-1.0']) or
not conf.CheckHeader('libusb-1.0/libusb.h')):
raise Exception(
'Did not find the libusb 1.0 development library or its header file')
# Optionally add libpthread and librt. Some distros need this.
conf.CheckLib(['pthread', 'libpthread'])
conf.CheckLib(['rt', 'librt'])
# -pthread tells GCC to do the right thing regardless of system
build.env.Append(CCFLAGS='-pthread')
build.env.Append(LINKFLAGS='-pthread')
elif build.platform_is_windows and not conf.CheckLib(['setupapi', 'libsetupapi']):
raise Exception('Did not find the setupapi library, exiting.')
elif build.platform_is_osx:
build.env