fix Window->Common move for show-mixer
[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', 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)
34         else:
35             print ("hidapi is not yet available for the given system")
36         conf.load('compiler_c')
37         autowaf.configure(conf)
38
39 def build(bld):
40     if bld.is_defined('USE_EXTERNAL_LIBS'):
41         return
42     if not bld.is_defined('HAVE_HIDAPI'):
43         return
44
45     # Host Library
46     obj = bld(features = 'c cstlib')
47     autowaf.ensure_visible_symbols (obj, False)
48     obj.export_includes    = ['hidapi']
49     obj.includes           = ['hidapi']
50     obj.name               = 'hidapi'
51     obj.target             = 'hidapi'
52     obj.vnum               = HIDAPI_VERSION
53     obj.install_path       = bld.env['LIBDIR']
54
55     if bld.env['build_target'] == 'mingw':
56         obj.source         = 'windows/hid.c'
57         obj.linkflags      = [ '-lsetupapi', '-mwindows' ]
58         obj.uselib         = 'SETUPAPI'
59     else:
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' ]
64         else:
65             obj.source     = 'linux/hid.c'
66             if re.search ("linux", sys.platform) != None:
67                 obj.uselib = 'UDEV'
68
69 def shutdown():
70     autowaf.shutdown()