diff options
Diffstat (limited to 'wscript')
-rw-r--r-- | wscript | 225 |
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')) |