6b61b03434
autowaf has no real shutdown functionality anyway. The automatic shutdown function that could have been called wouldn't work anyway, as it takes an argument. The only reason it doesn't fail is that the top level wscript has no shutdown handling and doesn't recurse to other scripts, so it is all dead code.
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
#!/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.name = 'hidapi'
|
|
obj.target = 'hidapi'
|
|
obj.vnum = HIDAPI_VERSION
|
|
obj.install_path = bld.env['LIBDIR']
|
|
|
|
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'
|