aboutsummaryrefslogtreecommitdiffstats
path: root/waflib/extras/lv2.py
blob: 815987fc4dbfa6c4ce8630a0d9f29f5600beaa1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import sys

from waflib import Logs
from waflib import Options

def options(opt):
    conf_opts = opt.get_option_group('Configuration options')
    conf_opts.add_option('--lv2-user', action='store_true', default=False, dest='lv2_user',
                         help='install LV2 bundles to user location')
    conf_opts.add_option('--lv2dir', type='string',
                         help='LV2 bundles [Default: LIBDIR/lv2]')
    
def configure(conf):
    def env_path(parent_dir_var, name):
        parent = os.getenv(parent_dir_var)
        if parent:
            return os.path.join(parent, name)
        else:
            Logs.warn('Environment variable %s unset, using LIBDIR\n' % parent_dir_var)
            return os.path.join(conf.env['LIBDIR'], name)

    def normpath(path):
        if sys.platform == 'win32':
            return os.path.normpath(path).replace('\\', '/')
        else:
            return os.path.normpath(path)

    if Options.options.lv2dir:
        conf.env['LV2DIR'] = Options.options.lv2dir
    elif Options.options.lv2_user:
        if conf.env.DEST_OS == 'darwin':
            conf.env['LV2DIR'] = env_path('HOME', 'Library/Audio/Plug-Ins/LV2')
        elif conf.env.DEST_OS == 'win32':
            conf.env['LV2DIR'] = env_path('APPDATA', 'LV2')
        else:
            conf.env['LV2DIR'] = env_path('HOME', '.lv2')
    else:
        if conf.env.DEST_OS == 'darwin':
            conf.env['LV2DIR'] = '/Library/Audio/Plug-Ins/LV2'
        elif conf.env.DEST_OS == 'win32':
            conf.env['LV2DIR'] = env_path('COMMONPROGRAMFILES', 'LV2')
        else:
            conf.env['LV2DIR'] = os.path.join(conf.env['LIBDIR'], 'lv2')

    conf.env['LV2DIR'] = normpath(conf.env['LV2DIR'])