#!/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' # 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 bld.is_defined('VST3_SUPPORT'): obj = bld (features = 'cxx c cxxprogram') obj.source = 'vst3-scanner.cc' obj.target = 'ardour-vst3-scanner' obj.includes = [ '../pbd/', '../ardour/', '../vst3/', '..' ] obj.defines = [ 'VERSIONSTRING="' + str(bld.env['VERSION']) + '"', 'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"', 'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"', 'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"', ] obj.use = [ 'libpbd' ] obj.uselib = 'GIOMM DL UUID ARCHIVE CURL XML' if sys.platform == 'darwin': obj.uselib += ' OSX' if bld.env['build_target'] == 'mingw': obj.uselib += ' GDI32' if re.search ("bsd", 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']) 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 ("bsd", 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'])