Merge branch 'noppc' of https://github.com/mojofunk/ardour into cairocanvas
[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     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', rule= 'chmod 0755 ${TGT}')
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'], 'fst')
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.target = 'ardour-vst-scanner.exe.so'
66         obj.uselib = ['GIOMM', 'DL']
67         obj.use = [ 'libpbd' ]
68     else:
69         obj = bld (features = 'cxx c cxxprogram')
70         if bld.is_defined('WINDOWS_VST_SUPPORT'):
71             obj.source = ( 'scanner.cc', 'vstwin.c' )
72             obj.uselib = ['GIOMM', 'DL', 'GDI32']
73         else:
74             obj.source = ( 'scanner.cc' )
75             obj.uselib = ['GIOMM', 'DL']
76         obj.target = 'ardour-vst-scanner'
77         obj.use = [ 'libpbd' ]
78
79     obj.includes  = [ '../pbd/', '../ardour/', '.' ]
80     obj.defines = [
81         '_POSIX_SOURCE',
82         'USE_WS_PREFIX',
83         'VST_SCANNER_APP',
84         'PACKAGE="' + I18N_PACKAGE + '"',
85         ]
86     obj.install_path = os.path.join(bld.env['LIBDIR'], 'fst')