Explicitly specify required libraries (waf does no longer forward .uselib dependencies of libraries used by .use). This leads to undefined symbols.
94 lines
3.1 KiB
Python
94 lines
3.1 KiB
Python
#!/usr/bin/env python
|
|
from waflib.extras import autowaf as autowaf
|
|
from waflib import Options, TaskGen
|
|
import waflib.Logs as Logs, waflib.Utils as Utils
|
|
import os
|
|
import shutil
|
|
import sys
|
|
import re
|
|
import time
|
|
from waflib.Task import Task
|
|
|
|
# Mandatory variables
|
|
top = '.'
|
|
out = 'build'
|
|
|
|
scanner_app_src = [
|
|
'scanner.cc',
|
|
]
|
|
|
|
# needed for code used from libardour
|
|
I18N_PACKAGE = 'ardour'
|
|
|
|
def options(opt):
|
|
autowaf.set_options(opt)
|
|
|
|
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
|
|
@feature("wine")
|
|
def set_winegcc(self):
|
|
self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
|
|
self.env.CC = 'winegcc'
|
|
|
|
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') 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')
|
|
obj.source = 'scanner.wine'
|
|
obj.target = 'ardour-vst-scanner'
|
|
obj.chmod = Utils.O755
|
|
obj.install_path = os.path.join(bld.env['LIBDIR'])
|
|
obj.VERSION = bld.env['VERSION']
|
|
|
|
obj = bld (features = 'c cxx cxxprogram wine')
|
|
obj.source = (
|
|
'scanner.cc',
|
|
'vstwin.c',
|
|
)
|
|
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 = [ bld.env['compiler_flags_dict']['pic'] ]
|
|
else:
|
|
obj = bld (features = 'cxx c cxxprogram')
|
|
obj.source = ( 'scanner.cc' )
|
|
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', 'OSX', 'XML', 'ARCHIVE', 'CURL']
|
|
obj.use = [ 'libpbd' ]
|
|
|
|
obj.includes = [ '../pbd/', '../ardour/', '.' ]
|
|
obj.defines = [
|
|
'_POSIX_SOURCE',
|
|
'USE_WS_PREFIX',
|
|
'VST_SCANNER_APP',
|
|
'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
|
|
'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
|
|
]
|
|
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'])
|