summaryrefslogtreecommitdiffstats
path: root/wscript
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-09-30 07:52:18 +0000
committerDavid Robillard <d@drobilla.net>2008-09-30 07:52:18 +0000
commit0925126286b9e01964e065452f4b16b43923c75c (patch)
treeb898434af53ac61635ec1faf556f1a33bff017e9 /wscript
parent60819cbfb38bf93c8363be7864d0eacf74a1aa1f (diff)
downloadpatchage-0925126286b9e01964e065452f4b16b43923c75c.tar.gz
patchage-0925126286b9e01964e065452f4b16b43923c75c.tar.bz2
patchage-0925126286b9e01964e065452f4b16b43923c75c.zip
Wafify ingen.
git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@1548 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'wscript')
-rw-r--r--wscript132
1 files changed, 132 insertions, 0 deletions
diff --git a/wscript b/wscript
new file mode 100644
index 0000000..a62d2f5
--- /dev/null
+++ b/wscript
@@ -0,0 +1,132 @@
+#! /usr/bin/env python
+# encoding: utf-8
+# waf build system from LADI patchage courtesy Nedko Arnaudov
+
+import os
+import Params
+import commands
+from Configure import g_maxlen
+#g_maxlen = 40
+import shutil
+
+VERSION='0.4.3'
+APPNAME='patchage'
+APP_HUMAN_NAME='Patchage'
+
+# these variables are mandatory ('/' are converted automatically)
+srcdir = '.'
+blddir = 'build'
+
+def display_msg(msg, status = None, color = None):
+ sr = msg
+ global g_maxlen
+ g_maxlen = max(g_maxlen, len(msg))
+ if status:
+ print "%s :" % msg.ljust(g_maxlen),
+ Params.pprint(color, status)
+ else:
+ print "%s" % msg.ljust(g_maxlen)
+
+def display_feature(msg, build):
+ if build:
+ display_msg(msg, "yes", 'GREEN')
+ else:
+ display_msg(msg, "no", 'YELLOW')
+
+def set_options(opt):
+ opt.tool_options('compiler_cxx')
+
+ opt.add_option('--install-name', type='string', default=APPNAME, dest='app_install_name', help="Install name. [Default: '" + APPNAME + "']")
+ opt.add_option('--app-human-name', type='string', default=APP_HUMAN_NAME, dest='app_human_name', help="Human name for app. [Default: '" + APP_HUMAN_NAME + "']")
+
+def configure(conf):
+ conf.check_tool('compiler_cxx')
+
+ conf.check_tool('misc') # subst tool
+
+ conf.check_pkg('dbus-1', mandatory=True)
+ conf.check_pkg('dbus-glib-1', mandatory=True)
+ conf.check_pkg('glibmm-2.4', mandatory=True)
+ conf.check_pkg('gtkmm-2.4', mandatory=True, vnum='2.11.12')
+ conf.check_pkg('libgnomecanvasmm-2.6', mandatory=True)
+ conf.check_pkg('libglademm-2.4', mandatory=True)
+
+ # You need the boost headers package (e.g. libboost-dev)
+ conf.check_header('boost/shared_ptr.hpp', mandatory=True)
+ conf.check_header('boost/weak_ptr.hpp', mandatory=True)
+
+ conf.check_pkg('flowcanvas', mandatory=True, vnum='0.4.0')
+
+ conf.env['APP_INSTALL_NAME'] = Params.g_options.app_install_name
+ conf.env['APP_HUMAN_NAME'] = Params.g_options.app_human_name
+
+ conf.define('DATA_DIR', os.path.normpath(conf.env['PREFIX'] + '/share/' + conf.env['APP_INSTALL_NAME']))
+ conf.write_config_header('config.h')
+
+ print
+ display_msg("Install prefix", conf.env['PREFIX'], 'CYAN')
+ display_msg("Install name", "'" + conf.env['APP_INSTALL_NAME'] + "'", 'CYAN')
+ display_msg("App human name", "'" + conf.env['APP_HUMAN_NAME'] + "'", 'CYAN')
+ print
+
+def build(bld):
+ prog = bld.create_obj('cpp', 'program')
+ prog.defines = [
+ 'CONFIG_H_PATH=\\"config.h\\"',
+ ]
+ prog.source = [
+ 'src/main.cpp',
+ 'src/Patchage.cpp',
+ 'src/PatchageCanvas.cpp',
+ 'src/StateManager.cpp',
+ 'src/JackDriver.cpp',
+ 'src/JackDbusDriver.cpp',
+ 'src/LashClient.cpp',
+ 'src/LashProxy.cpp',
+ 'src/Project.cpp',
+ 'src/ProjectList.cpp',
+ 'src/ProjectPropertiesDialog.cpp',
+ 'src/Session.cpp'
+ ]
+ prog.includes = 'src' # make waf dependency tracking work
+ prog.target = bld.env()['APP_INSTALL_NAME']
+ prog.uselib = 'DBUS-1 LIBGNOMECANVASMM-2.6 LIBGLADEMM-2.4 FLOWCANVAS DBUS-GLIB-1'
+
+ # Installation layout (with /usr prefix)
+ # /usr/bin/patchage
+ # /usr/share/applications/patchage.desktop
+ # /usr/share/icons/hicolor/16x16/apps/patchage.png
+ # /usr/share/icons/hicolor/22x22/apps/patchage.png
+ # /usr/share/icons/hicolor/24x24/apps/patchage.png
+ # /usr/share/icons/hicolor/32x32/apps/patchage.png
+ # /usr/share/icons/hicolor/48x48/apps/patchage.png
+ # /usr/share/icons/hicolor/scalable/apps/patchage.svg
+ # /usr/share/patchage/patchage.glade
+ #
+ # icon cache is updated using:
+ # gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+
+ install_files('PREFIX', '/share/' + bld.env()['APP_INSTALL_NAME'], 'src/patchage.glade')
+
+ # process patchage.desktop.in -> patchage.desktop
+ #install_files('PREFIX', '/share/applications/', 'patchage.desktop')
+ obj = bld.create_obj('subst')
+ obj.source = 'patchage.desktop.in'
+ obj.target = 'patchage.desktop'
+ obj.dict = {
+ 'BINDIR': bld.env()['PREFIX'] + '/bin',
+ 'APP_INSTALL_NAME': bld.env()['APP_INSTALL_NAME'],
+ 'APP_HUMAN_NAME': bld.env()['APP_HUMAN_NAME'],
+ }
+ #obj.inst_var = os.path.normpath(bld.env()['PREFIX'] + '/share/applications/')
+ #obj.inst_dir = '/'
+ install_as(os.path.normpath(bld.env()['PREFIX'] + '/share/applications/'), bld.env()['APP_INSTALL_NAME'] + '.desktop', 'build/default/patchage.desktop')
+
+ install_as(os.path.normpath(bld.env()['PREFIX'] + '/share/icons/hicolor/scalable/apps/'), bld.env()['APP_INSTALL_NAME'] + '.svg', 'icons/scalable/patchage.svg')
+
+ icon_sizes = ['16x16', '22x22', '24x24', '32x32', '48x48']
+ for icon_size in icon_sizes:
+ install_as(os.path.normpath(bld.env()['PREFIX'] + '/share/icons/hicolor/' + icon_size + '/apps/'), bld.env()['APP_INSTALL_NAME'] + '.png', 'icons/' + icon_size + '/patchage.png')
+
+ # TODO: ask some packagers for best policy about updating icon cache here
+ # gtk-update-icon-cache -f -t $(datadir)/icons/hicolor