Robin Gareus
5794d21a76
Explicitly specify required libraries (waf does no longer forward .uselib dependencies of libraries used by .use). This leads to undefined symbols.
107 lines
3.7 KiB
Python
107 lines
3.7 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'
|
|
|
|
def options(opt):
|
|
autowaf.set_options(opt)
|
|
|
|
def configure(conf):
|
|
if not "dummy" in conf.env['BACKENDS']:
|
|
print ('session-utils depend on the dummy backend.')
|
|
autowaf.display_msg(conf, 'build session-utils', 'no')
|
|
return
|
|
# no wine
|
|
if Options.options.windows_vst and Options.options.dist_target != 'mingw':
|
|
autowaf.display_msg(conf, 'build session-utils', 'no')
|
|
return
|
|
autowaf.display_msg(conf, 'build session-utils', 'yes')
|
|
conf.load('misc')
|
|
conf.load('compiler_cxx')
|
|
autowaf.configure(conf)
|
|
|
|
def build_ardour_util(bld, util):
|
|
pgmprefix = bld.env['PROGRAM_NAME'].lower() + str(bld.env['MAJOR'])
|
|
|
|
# just the normal executable version of the GTK GUI
|
|
obj = bld (features = 'cxx c cxxprogram')
|
|
# this program does not do the whole hidden symbols thing
|
|
obj.cxxflags = [ '-fvisibility=default' ]
|
|
obj.source = ['common.cc', util + '.cc' ]
|
|
obj.target = pgmprefix + '-' + util
|
|
obj.includes = ['.']
|
|
obj.use = [ 'libpbd',
|
|
'libardour',
|
|
'libardour_cp',
|
|
'libtemporal',
|
|
'libmidipp',
|
|
]
|
|
obj.defines = [
|
|
'VERSIONSTRING="' + str(bld.env['VERSION']) + '"',
|
|
'UTILNAME="' + str(pgmprefix + '-' + util) + '"',
|
|
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
|
|
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
|
|
'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
|
|
'PACKAGE="' + "ARDOURUTILS" + '"',
|
|
]
|
|
obj.install_path = bld.env['LIBDIR'] + '/utils'
|
|
obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GIOMM GTHREAD OGG CURL DL XML'
|
|
obj.uselib += ' AUDIOUNITS OSX LO '
|
|
obj.uselib += ' FFTW3F LO TAGLIB LILV RUBBERBAND AUBIO LRDF ARCHIVE VAMPSDK VAMPHOSTSDK'
|
|
|
|
if bld.is_defined('HAVE_SUIL'):
|
|
obj.uselib += ' SUIL'
|
|
|
|
if sys.platform == 'darwin':
|
|
obj.uselib += ' AUDIOUNITS OSX'
|
|
obj.use += ' libappleutility'
|
|
obj.includes += ['../libs']
|
|
|
|
if bld.env['build_target'] == 'mingw':
|
|
obj.install_path = bld.env['BINDIR']
|
|
|
|
if bld.is_defined('NEED_INTL'):
|
|
obj.linkflags = ' -lintl'
|
|
|
|
|
|
def build(bld):
|
|
VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
|
|
# session-utils depend on the dummy backend
|
|
if not "dummy" in bld.env['BACKENDS']:
|
|
return
|
|
# no wine
|
|
if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw':
|
|
return
|
|
|
|
pgmprefix = bld.env['PROGRAM_NAME'].lower() + str(bld.env['MAJOR'])
|
|
|
|
utils = bld.path.ant_glob('*.cc', excl=['example.cc', 'common.cc'])
|
|
|
|
for util in utils:
|
|
fn = os.path.splitext(os.path.basename(str(util)))[0]
|
|
build_ardour_util(bld, fn)
|
|
if bld.env['build_target'] != 'mingw':
|
|
bld.symlink_as(bld.env['BINDIR'] + '/' + pgmprefix + "-" + fn, bld.env['LIBDIR'] + '/utils/ardour-util.sh')
|
|
|
|
if bld.env['build_target'] == 'mingw':
|
|
return
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = 'ardour-util.sh.in'
|
|
obj.target = 'ardour-util.sh'
|
|
obj.chmod = Utils.O755
|
|
obj.install_path = bld.env['LIBDIR'] + '/utils'
|
|
obj.LIBDIR = os.path.normpath(bld.env['DLLDIR'])
|
|
obj.DATADIR = os.path.normpath(bld.env['DATADIR'])
|
|
obj.CONFDIR = os.path.normpath(bld.env['CONFDIR'])
|