fix crash when copy'ing latent plugins
[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 = 'ardour'
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     if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
31         conf.check(compiler='cxx',
32                    lib='gdi32',
33                    mandatory=True,
34                    uselib_store='GDI32')
35
36 # Add a waf `feature' to allow compilation of things using winegcc
37 from waflib.TaskGen import feature
38 @feature("wine")
39 def set_winegcc(self):
40     self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
41     self.env.CC = 'winegcc'
42
43 def build(bld):
44     VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
45     if not (bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT')):
46         return
47
48     if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
49         # wine exec wrapper script
50         obj = bld(features = 'subst')
51         obj.source = 'scanner.wine'
52         obj.target = 'ardour-vst-scanner'
53         obj.chmod  = Utils.O755
54         obj.install_path = os.path.join(bld.env['LIBDIR'])
55         obj.dict   = {
56             'VERSION' : bld.env['VERSION'],
57                 }
58
59         obj = bld (features = 'c cxx cxxprogram wine')
60         obj.source = (
61             'scanner.cc',
62             'vstwin.c',
63             )
64         obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
65         obj.linkflags += bld.env['LDFLAGS']
66         obj.target = 'ardour-vst-scanner.exe.so'
67         obj.uselib = ['GIOMM', 'DL']
68         obj.use = [ 'libpbd' ]
69         obj.cxxflags  = [ '-fPIC' ]
70     else:
71         obj = bld (features = 'cxx c cxxprogram')
72         obj.source = ( 'scanner.cc' )
73         obj.target = 'ardour-vst-scanner'
74         if bld.is_defined('WINDOWS_VST_SUPPORT'):
75             bld (features = 'c', name='vstwin', source='vstwin.c', uselib = 'GIOMM', includes  = [ '../pbd/', '../ardour/', '.' ])
76             obj.uselib = ['GIOMM', 'DL', 'GDI32']
77             obj.linkflags = ['-mwindows']
78             obj.use = [ 'libpbd', 'vstwin' ]
79         else:
80             obj.uselib = ['GIOMM', 'DL']
81             obj.use = [ 'libpbd' ]
82
83     obj.includes  = [ '../pbd/', '../ardour/', '.' ]
84     obj.defines = [
85         '_POSIX_SOURCE',
86         'USE_WS_PREFIX',
87         'VST_SCANNER_APP',
88         'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
89         'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
90         ]
91     obj.install_path = os.path.join(bld.env['LIBDIR'])