Include hidapi library
[ardour.git] / libs / hidapi / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
4 import os
5 import re
6 import sys
7
8 HIDAPI_VERSION = '0.8.0'
9
10 # Variables for 'waf dist'
11 APPNAME = 'hidapi'
12 VERSION = HIDAPI_VERSION
13
14 # Mandatory variables
15 top = '.'
16 out = 'build'
17
18 def options(opt):
19     autowaf.set_options(opt)
20
21 def configure(conf):
22     if conf.is_defined('USE_EXTERNAL_LIBS'):
23         autowaf.check_pkg(conf, 'hidapi-hidraw', uselib_store='HIDAPI', mandatory=False)
24     else:
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'))
31         else:
32             conf.define ('HAVE_HIDAPI', 1)
33         conf.load('compiler_c')
34         autowaf.configure(conf)
35
36 def build(bld):
37     if bld.is_defined('USE_EXTERNAL_LIBS'):
38         return
39     if not bld.get_define('HAVE_HIDAPI'):
40         return
41
42     # Host Library
43     obj = bld(features = 'c cstlib')
44     autowaf.ensure_visible_symbols (obj, False)
45     obj.export_includes    = ['hidapi']
46     obj.includes           = ['hidapi']
47     obj.name               = 'hidapi'
48     obj.target             = 'hidapi'
49     obj.vnum               = HIDAPI_VERSION
50     obj.install_path       = bld.env['LIBDIR']
51
52     if bld.env['build_target'] == 'mingw':
53         obj.source         = 'windows/hid.c'
54         obj.linkflags      = [ '-lsetupapi', '-mwindows' ]
55         obj.uselib         = 'SETUPAPI'
56     else:
57         obj.cflags        += [ '-fPIC' ]
58         if sys.platform == 'darwin':
59             obj.source     = 'mac/hid.c'
60             obj.framework  = [ 'IOKit', 'CoreFoundation' ]
61         else:
62             obj.source     = 'linux/hid.c'
63             if re.search ("linux", sys.platform) != None:
64                 obj.uselib = 'UDEV'
65
66 def shutdown():
67     autowaf.shutdown()