#!/usr/bin/env python from waflib.extras import autowaf as autowaf import re import sys HIDAPI_VERSION = '0.8.0' def options(opt): pass def configure(conf): if conf.is_defined('USE_EXTERNAL_LIBS'): autowaf.check_pkg(conf, 'hidapi-hidraw', uselib_store='HIDAPI', mandatory=False) else: if conf.env['build_target'] == 'mingw': conf.check (compiler='cxx', lib='setupapi', mandatory=True, uselib_store='SETUPAPI') conf.define ('HAVE_HIDAPI', 1) elif sys.platform == 'darwin': conf.define ('HAVE_HIDAPI', 1) elif re.search ("linux", sys.platform) != None: autowaf.check_pkg(conf, 'libudev', uselib_store='UDEV', mandatory=False) if conf.is_defined('HAVE_UDEV'): conf.define ('HAVE_HIDAPI', 1) else: print ("hidapi is not yet available for the given system") def build(bld): if bld.is_defined('USE_EXTERNAL_LIBS'): return if not bld.is_defined('HAVE_HIDAPI'): return # Host Library obj = bld(features = 'c cstlib') autowaf.ensure_visible_symbols (obj, False) obj.export_includes = ['hidapi'] obj.includes = ['hidapi'] obj.defines = ['_POSIX_C_SOURCE=200809L'] obj.name = 'hidapi' obj.target = 'hidapi' obj.vnum = HIDAPI_VERSION obj.install_path = bld.env['LIBDIR'] obj.defines = '_POSIX_C_SOURCE=200809L' if bld.env['build_target'] == 'mingw': obj.source = 'windows/hid.c' obj.linkflags = [ '-lsetupapi', '-mwindows' ] obj.uselib = 'SETUPAPI' else: obj.cflags += [ bld.env['compiler_flags_dict']['pic'] ] if sys.platform == 'darwin': obj.source = 'mac/hid.c' obj.framework = [ 'IOKit', 'CoreFoundation' ] else: obj.source = 'linux/hid.c' if re.search ("linux", sys.platform) != None: obj.uselib = 'UDEV'