prepare standalone VST scanner tool.. part one
[ardour.git] / libs / fst / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 from waflib import Options, TaskGen
4 import waflib.Logs as Logs, waflib.Utils as Utils
5 import os
6 import shutil
7 import sys
8 import re
9 import time
10 from waflib.Task import Task
11
12 # Mandatory variables
13 top = '.'
14 out = 'build'
15
16 scanner_app_src = [
17     'scanner.cc',
18     ]
19
20 # needed for code used from libardour
21 I18N_PACKAGE = 'ardour3'
22
23 def options(opt):
24     autowaf.set_options(opt)
25
26 def configure(conf):
27     conf.load('misc')
28     conf.load('compiler_cxx')
29     autowaf.configure(conf)
30
31 # Add a waf `feature' to allow compilation of things using winegcc
32 from waflib.TaskGen import feature
33 @feature("wine")
34 def set_winegcc(self):
35     self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
36     self.env.CC = 'winegcc'
37
38 def build(bld):
39     VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
40     if not (bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT')):
41         return
42
43     if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
44         # wine exec wrapper script
45         obj = bld(features = 'subst', rule= 'chmod 0755 ${TGT}')
46         obj.source = 'scanner.wine'
47         obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner'
48         obj.chmod  = Utils.O755
49         obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
50         obj.dict   = {
51             'VERSION' : bld.env['VERSION'],
52                 }
53
54         obj = bld (features = 'c cxx cxxprogram wine')
55         obj.source = (
56             'scanner.cc',
57             'fst.c',
58             'vstwin.c',
59             )
60         obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner.exe.so'
61         obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
62     else:
63         obj = bld (features = 'cxx c cxxprogram')
64         obj.source = ( 'scanner.cc' )
65         obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner'
66
67     obj.includes  = [ '../pbd/', '../ardour/', '.' ]
68     obj.defines = [
69         '_POSIX_SOURCE',
70         'USE_WS_PREFIX',
71         'VST_SCANNER_APP',
72         'PACKAGE="' + I18N_PACKAGE + '"',
73         ]
74     obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
75     obj.uselib       = ['GIOMM', 'DL']