Work around a Windows crash (for now)
[ardour.git] / libs / fst / wscript
index 4f4de4e2fffa7f803670ed36a9d6e854c23e3cbe..ca90b7207d32c56fa609b8b39dc29d0d74ee6170 100644 (file)
@@ -18,7 +18,7 @@ scanner_app_src = [
     ]
 
 # needed for code used from libardour
-I18N_PACKAGE = 'ardour3'
+I18N_PACKAGE = 'ardour'
 
 def options(opt):
     autowaf.set_options(opt)
@@ -27,6 +27,11 @@ def configure(conf):
     conf.load('misc')
     conf.load('compiler_cxx')
     autowaf.configure(conf)
+    if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
+        conf.check(compiler='cxx',
+                   lib='gdi32',
+                   mandatory=True,
+                   uselib_store='GDI32')
 
 # Add a waf `feature' to allow compilation of things using winegcc
 from waflib.TaskGen import feature
@@ -37,16 +42,16 @@ def set_winegcc(self):
 
 def build(bld):
     VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
-    if not (bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT')):
+    if not (bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT') or bld.is_defined ('MACVST_SUPPORT')):
         return
 
     if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
         # wine exec wrapper script
-        obj = bld(features = 'subst', rule= 'chmod 0755 ${TGT}')
+        obj = bld(features = 'subst')
         obj.source = 'scanner.wine'
-        obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner'
+        obj.target = 'ardour-vst-scanner'
         obj.chmod  = Utils.O755
-        obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
+        obj.install_path = os.path.join(bld.env['LIBDIR'])
         obj.dict   = {
             'VERSION' : bld.env['VERSION'],
                 }
@@ -54,22 +59,37 @@ def build(bld):
         obj = bld (features = 'c cxx cxxprogram wine')
         obj.source = (
             'scanner.cc',
-            'fst.c',
             'vstwin.c',
             )
-        obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner.exe.so'
         obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
+        obj.linkflags += bld.env['LDFLAGS']
+        obj.target = 'ardour-vst-scanner.exe.so'
+        obj.uselib = ['GIOMM', 'DL']
+        obj.use = [ 'libpbd' ]
+        obj.cxxflags  = [ '-fPIC' ]
     else:
         obj = bld (features = 'cxx c cxxprogram')
         obj.source = ( 'scanner.cc' )
-        obj.target = 'ardour-' + bld.env['VERSION'] + '-vst-scanner'
+        obj.target = 'ardour-vst-scanner'
+        if bld.is_defined('WINDOWS_VST_SUPPORT'):
+            bld (features = 'c', name='vstwin', source='vstwin.c', uselib = 'GIOMM', includes  = [ '../pbd/', '../ardour/', '.' ])
+            obj.uselib = ['GIOMM', 'DL', 'GDI32']
+            obj.linkflags = ['-mwindows']
+            obj.use = [ 'libpbd', 'vstwin' ]
+        else:
+            obj.uselib = ['GIOMM', 'DL']
+            obj.use = [ 'libpbd' ]
 
     obj.includes  = [ '../pbd/', '../ardour/', '.' ]
     obj.defines = [
         '_POSIX_SOURCE',
         'USE_WS_PREFIX',
         'VST_SCANNER_APP',
-        'PACKAGE="' + I18N_PACKAGE + '"',
+        'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
+        'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
         ]
-    obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
-    obj.uselib       = ['GIOMM', 'DL']
+    if re.search ("freebsd", sys.platform) != None or re.search ("openbsd", sys.platform) != None:
+        obj.defines.append('_POSIX_C_SOURCE=200809')
+        obj.defines.append('_XOPEN_SOURCE=700')
+
+    obj.install_path = os.path.join(bld.env['LIBDIR'])