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', 1)
28 elif sys.platform == 'darwin':
29 conf.define ('HAVE_HIDAPI', 1)
30 elif re.search ("linux", sys.platform) != None:
31 autowaf.check_pkg(conf, 'libudev', uselib_store='UDEV', mandatory=False)
32 if conf.is_defined('HAVE_UDEV'):
33 conf.define ('HAVE_HIDAPI', 1)
35 print ("hidapi is not yet available for the given system")
36 conf.load('compiler_c')
37 autowaf.configure(conf)
40 if bld.is_defined('USE_EXTERNAL_LIBS'):
42 if not bld.is_defined('HAVE_HIDAPI'):
46 obj = bld(features = 'c cstlib')
47 autowaf.ensure_visible_symbols (obj, False)
48 obj.export_includes = ['hidapi']
49 obj.includes = ['hidapi']
52 obj.vnum = HIDAPI_VERSION
53 obj.install_path = bld.env['LIBDIR']
55 if bld.env['build_target'] == 'mingw':
56 obj.source = 'windows/hid.c'
57 obj.linkflags = [ '-lsetupapi', '-mwindows' ]
58 obj.uselib = 'SETUPAPI'
60 obj.cflags += [ bld.env['compiler_flags_dict']['pic'] ]
61 if sys.platform == 'darwin':
62 obj.source = 'mac/hid.c'
63 obj.framework = [ 'IOKit', 'CoreFoundation' ]
65 obj.source = 'linux/hid.c'
66 if re.search ("linux", sys.platform) != None: