summaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
Diffstat (limited to 'wscript')
-rw-r--r--wscript225
1 files changed, 0 insertions, 225 deletions
diff --git a/wscript b/wscript
deleted file mode 100644
index 88bf7c2..0000000
--- a/wscript
+++ /dev/null
@@ -1,225 +0,0 @@
-#!/usr/bin/env python
-# Licensed under the GNU GPL v3 or later, see COPYING file for details.
-# Copyright 2008-2013 David Robillard
-# Copyright 2008 Nedko Arnaudov
-
-import os
-
-from waflib import Options, Utils
-from waflib.extras import autowaf
-
-# Version of this package (even if built as a child)
-PATCHAGE_VERSION = '1.0.1'
-
-# Variables for 'waf dist'
-APPNAME = 'patchage'
-VERSION = PATCHAGE_VERSION
-APP_HUMAN_NAME = 'Patchage'
-
-# Mandatory variables
-top = '.'
-out = 'build'
-
-def options(ctx):
- ctx.load('compiler_cxx')
- autowaf.set_options(ctx)
- opt = ctx.get_option_group('Configuration options')
-
- opt.add_option('--patchage-install-name', type='string', default=APPNAME,
- dest='patchage_install_name',
- help='patchage install name. [default: '' + APPNAME + '']')
- opt.add_option('--patchage-human-name', type='string', default=APP_HUMAN_NAME,
- dest='patchage_human_name',
- help='patchage human name [default: '' + APP_HUMAN_NAME + '']')
-
- autowaf.add_flags(
- opt,
- {'jack-dbus': 'use Jack via D-Bus',
- 'jack-session-manage': 'include JACK session management support',
- 'no-alsa': 'do not build Alsa Sequencer support',
- 'no-binloc': 'do not try to read files from executable location',
- 'light-theme': 'use light coloured theme'})
-
-def configure(conf):
- autowaf.display_header('Patchage Configuration')
- conf.load('compiler_cxx', cache=True)
- conf.load('autowaf', cache=True)
- autowaf.set_cxx_lang(conf, 'c++11')
-
- autowaf.check_pkg(conf, 'dbus-1', uselib_store='DBUS',
- mandatory=False)
- autowaf.check_pkg(conf, 'dbus-glib-1', uselib_store='DBUS_GLIB',
- mandatory=False)
- autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD',
- atleast_version='2.14.0', mandatory=True)
- autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM',
- atleast_version='2.14.0', mandatory=True)
- autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM',
- atleast_version='2.12.0', mandatory=True)
- autowaf.check_pkg(conf, 'ganv-1', uselib_store='GANV',
- atleast_version='1.5.2', mandatory=True)
-
- if conf.env.DEST_OS == 'darwin':
- autowaf.check_pkg(conf, 'gtk-mac-integration', uselib_store='GTK_OSX',
- atleast_version='1.0.0', mandatory=False)
- if conf.env.HAVE_GTK_OSX:
- autowaf.define(conf, 'PATCHAGE_GTK_OSX', 1)
-
- # Check for dladdr
- autowaf.check_function(conf, 'cxx', 'dladdr',
- header_name = 'dlfcn.h',
- defines = ['_GNU_SOURCE'],
- lib = ['dl'],
- define_name = 'HAVE_DLADDR',
- mandatory = False)
-
- # Use Jack D-Bus if requested (only one jack driver is allowed)
- if Options.options.jack_dbus and conf.env.HAVE_DBUS and conf.env.HAVE_DBUS_GLIB:
- autowaf.define(conf, 'HAVE_JACK_DBUS', 1)
- else:
- autowaf.check_pkg(conf, 'jack', uselib_store='JACK',
- atleast_version='0.120.0', mandatory=False)
- if conf.env.HAVE_JACK:
- autowaf.define(conf, 'PATCHAGE_LIBJACK', 1)
- if Options.options.jack_session_manage:
- autowaf.define(conf, 'PATCHAGE_JACK_SESSION', 1)
- autowaf.check_function(conf, 'cxx', 'jack_get_property',
- header_name = 'jack/metadata.h',
- define_name = 'HAVE_JACK_METADATA',
- uselib = 'JACK',
- mandatory = False)
-
- # Use Alsa if present unless --no-alsa
- if not Options.options.no_alsa:
- autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA', mandatory=False)
-
- # Find files at binary location if we have dladdr unless --no-binloc
- if not Options.options.no_binloc and conf.is_defined('HAVE_DLADDR'):
- autowaf.define(conf, 'PATCHAGE_BINLOC', 1)
-
- if Options.options.light_theme:
- autowaf.define(conf, 'PATCHAGE_USE_LIGHT_THEME', 1)
-
- # Boost headers
- conf.check_cxx(header_name='boost/format.hpp')
- conf.check_cxx(header_name='boost/shared_ptr.hpp')
- conf.check_cxx(header_name='boost/utility.hpp')
- conf.check_cxx(header_name='boost/weak_ptr.hpp')
-
- conf.env.PATCHAGE_VERSION = PATCHAGE_VERSION
-
- conf.env.APP_INSTALL_NAME = Options.options.patchage_install_name
- conf.env.APP_HUMAN_NAME = Options.options.patchage_human_name
- autowaf.define(conf, 'PATCHAGE_DATA_DIR', os.path.join(
- conf.env.DATADIR, conf.env.APP_INSTALL_NAME))
-
- conf.write_config_header('patchage_config.h', remove=False)
-
- autowaf.display_summary(
- conf,
- {'Install name': conf.env.APP_INSTALL_NAME,
- 'App human name': conf.env.APP_HUMAN_NAME,
- 'Jack (D-Bus)': bool(conf.env.HAVE_JACK_DBUS),
- 'Jack (libjack)': conf.is_defined('PATCHAGE_LIBJACK'),
- 'Jack Session Management': conf.is_defined('PATCHAGE_JACK_SESSION'),
- 'Jack Metadata': conf.is_defined('HAVE_JACK_METADATA'),
- 'Alsa Sequencer': bool(conf.env.HAVE_ALSA)})
-
- if conf.env.DEST_OS == 'darwin':
- autowaf.display_msg(conf, "Mac Integration", bool(conf.env.HAVE_GTK_OSX))
-
-def build(bld):
- out_base = ''
- if bld.env.DEST_OS == 'darwin':
- out_base = 'Patchage.app/Contents/'
-
- # Program
- prog = bld(features = 'cxx cxxprogram',
- includes = ['.', 'src'],
- target = out_base + bld.env.APP_INSTALL_NAME,
- install_path = '${BINDIR}')
- autowaf.use_lib(bld, prog, 'DBUS GANV DBUS_GLIB GTKMM GNOMECANVAS GTHREAD GTK_OSX')
- prog.source = '''
- src/Configuration.cpp
- src/Patchage.cpp
- src/PatchageCanvas.cpp
- src/PatchageEvent.cpp
- src/PatchageModule.cpp
- src/main.cpp
- '''
- if bld.env.HAVE_JACK_DBUS:
- prog.source += ' src/JackDbusDriver.cpp '
- if bld.is_defined('PATCHAGE_LIBJACK'):
- prog.source += ' src/JackDriver.cpp '
- prog.uselib += ' JACK NEWJACK '
- if bld.env.HAVE_ALSA:
- prog.source += ' src/AlsaDriver.cpp '
- prog.uselib += ' ALSA '
- if bld.is_defined('PATCHAGE_BINLOC') and bld.is_defined('HAVE_DLADDR'):
- prog.lib = ['dl']
-
- # XML UI definition
- bld(features = 'subst',
- source = 'src/patchage.ui',
- target = out_base + 'patchage.ui',
- install_path = '${DATADIR}/' + bld.env.APP_INSTALL_NAME,
- chmod = Utils.O644,
- PATCHAGE_VERSION = PATCHAGE_VERSION)
-
- # 'Desktop' file (menu entry, icon, etc)
- bld(features = 'subst',
- source = 'patchage.desktop.in',
- target = 'patchage.desktop',
- install_path = '${DATADIR}/applications',
- chmod = Utils.O644,
- BINDIR = os.path.normpath(bld.env.BINDIR),
- APP_INSTALL_NAME = bld.env.APP_INSTALL_NAME,
- APP_HUMAN_NAME = bld.env.APP_HUMAN_NAME)
-
- if bld.env.DEST_OS == 'darwin':
- # Property list
- bld(features = 'subst',
- source = 'osx/Info.plist.in',
- target = out_base + 'Info.plist',
- install_path = '',
- chmod = Utils.O644)
-
- # Icons
- bld(rule = 'cp ${SRC} ${TGT}',
- source = 'osx/Patchage.icns',
- target = out_base + 'Resources/Patchage.icns')
-
- # Gtk/Pango/etc configuration files
- for i in ['pangorc', 'pango.modules', 'loaders.cache', 'gtkrc']:
- bld(rule = 'cp ${SRC} ${TGT}',
- source = 'osx/' + i,
- target = out_base + 'Resources/' + i)
-
- # Icons
- # After installation, icon cache should be updated using:
- # gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
- icon_sizes = [16, 22, 24, 32, 48, 128, 256]
- for s in icon_sizes:
- d = '%dx%d' % (s, s)
- bld.install_as(
- os.path.join(bld.env.DATADIR, 'icons', 'hicolor', d, 'apps',
- bld.env.APP_INSTALL_NAME + '.png'),
- os.path.join('icons', d, 'patchage.png'))
-
- bld.install_as(
- os.path.join(bld.env.DATADIR, 'icons', 'hicolor', 'scalable', 'apps',
- bld.env.APP_INSTALL_NAME + '.svg'),
- os.path.join('icons', 'scalable', 'patchage.svg'))
-
- bld.install_files('${MANDIR}/man1', bld.path.ant_glob('doc/*.1'))
-
-def posts(ctx):
- path = str(ctx.path.abspath())
- autowaf.news_to_posts(
- os.path.join(path, 'NEWS'),
- {'title' : 'Patchage',
- 'description' : autowaf.get_blurb(os.path.join(path, 'README')),
- 'dist_pattern' : 'http://download.drobilla.net/patchage-%s.tar.bz2'},
- { 'Author' : 'drobilla',
- 'Tags' : 'Hacking, LAD, Patchage' },
- os.path.join(out, 'posts'))