2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
8 HIDAPI_VERSION = '0.8.0'
10 # Variables for 'waf dist'
12 VERSION = HIDAPI_VERSION
19 autowaf.set_options(opt)
22 if conf.is_defined('USE_EXTERNAL_LIBS'):
23 autowaf.check_pkg(conf, 'hidapi-hidraw', uselib_store='HIDAPI', mandatory=False)
25 if conf.env['build_target'] == 'mingw':
26 conf.check (compiler='cxx', lib='setupapi', mandatory=True, uselib_store='SETUPAPI')
27 conf.define ('HAVE_HIDAPI', conf.is_defined('HAVE_SETUPAPI'))
28 elif re.search ("linux", sys.platform) != None:
29 autowaf.check_pkg(conf, 'libudev', uselib_store='UDEV', mandatory=False)
30 conf.define ('HAVE_HIDAPI', conf.is_defined('HAVE_UDEV'))
32 conf.define ('HAVE_HIDAPI', 1)
33 conf.load('compiler_c')
34 autowaf.configure(conf)
37 if bld.is_defined('USE_EXTERNAL_LIBS'):
39 if not bld.get_define('HAVE_HIDAPI'):
43 obj = bld(features = 'c cstlib')
44 autowaf.ensure_visible_symbols (obj, False)
45 obj.export_includes = ['hidapi']
46 obj.includes = ['hidapi']
49 obj.vnum = HIDAPI_VERSION
50 obj.install_path = bld.env['LIBDIR']
52 if bld.env['build_target'] == 'mingw':
53 obj.source = 'windows/hid.c'
54 obj.linkflags = [ '-lsetupapi', '-mwindows' ]
55 obj.uselib = 'SETUPAPI'
57 obj.cflags += [ '-fPIC' ]
58 if sys.platform == 'darwin':
59 obj.source = 'mac/hid.c'
60 obj.framework = [ 'IOKit', 'CoreFoundation' ]
62 obj.source = 'linux/hid.c'
63 if re.search ("linux", sys.platform) != None: