dbus: use Linux style uptime on FreeBSD
[jack2.git] / dbus / wscript
blob62ef9de6243fe233ca50821a6f085a793da3e1b2
1 #! /usr/bin/python3
2 # encoding: utf-8
4 import os.path
5 import re # subst_func
7 from waflib import Logs, Options
9 def options(opt):
10     opt.add_option('--enable-pkg-config-dbus-service-dir', action='store_true', default=False, help='force D-Bus service install dir to be one returned by pkg-config')
12 def configure(conf):
13     conf.env['BUILD_JACKDBUS'] = False
15     if not conf.check_cfg(package='dbus-1 >= 1.0.0', args='--cflags --libs', mandatory=False):
16         print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because libdbus-dev is missing' + Logs.colors.NORMAL)
17         return
19     dbus_dir = conf.check_cfg(package='dbus-1', args='--variable=session_bus_services_dir')
20     if not dbus_dir:
21         print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because service dir is unknown' + Logs.colors.NORMAL)
22         return
24     dbus_dir = dbus_dir.strip()
25     conf.env['DBUS_SERVICES_DIR_REAL'] = dbus_dir
27     if Options.options.enable_pkg_config_dbus_service_dir:
28         conf.env['DBUS_SERVICES_DIR'] = dbus_dir
29     else:
30         conf.env['DBUS_SERVICES_DIR'] = os.path.normpath(conf.env['PREFIX'] + '/share/dbus-1/services')
32     if not conf.check_cfg(package='expat', args='--cflags --libs', mandatory=False):
33         print(Logs.colors.RED + 'ERROR !! jackdbus will not be built because of expat is missing' + Logs.colors.NORMAL)
34         return
36     conf.env['BUILD_JACKDBUS'] = True
38 def build(bld):
39     obj = bld(features = ['c', 'cprogram'], idx=17)
40     if bld.env['IS_LINUX']:
41         sysdeps_dbus_include = ['../linux', '../posix']
42     if bld.env['IS_FREEBSD']:
43         sysdeps_dbus_include = ['../freebsd', '../posix']
44     if bld.env['IS_MACOSX']:
45         sysdeps_dbus_include = ['../macosx', '../posix']
47     obj.includes = sysdeps_dbus_include + ['.', '../', '../common', '../common/jack']
48     obj.defines = ['HAVE_CONFIG_H','SERVER_SIDE']
49     obj.source = [
50         'jackdbus.c',
51         'controller.c',
52         'params.c',
53         'controller_iface_configure.c',
54         'controller_iface_control.c',
55         'controller_iface_introspectable.c',
56         'controller_iface_patchbay.c',
57         'controller_iface_session_manager.c',
58         'controller_iface_transport.c',
59         'xml.c',
60         'xml_expat.c',
61         #'xml_nop.c',
62         'xml_write_raw.c',
63         'sigsegv.c',
64         'reserve.c',
65         ]
66     obj.use = ['serverlib']
67     if bld.env['IS_LINUX']:
68         obj.source += [
69             '../linux/uptime.c',
70         ]
71         obj.use += ['PTHREAD', 'DL', 'RT', 'DBUS-1', 'EXPAT', 'STDC++']
72     if bld.env['IS_FREEBSD']:
73         obj.source += [
74             '../linux/uptime.c',
75         ]
76         obj.use += ['PTHREAD', 'EXECINFO', 'LIBSYSINFO', 'DBUS-1', 'EXPAT']
77     if bld.env['IS_MACOSX']:
78         obj.source += [
79             '../macosx/uptime.c',
80         ]
81         obj.use += ['PTHREAD', 'DL', 'DBUS-1', 'EXPAT']
82     obj.target = 'jackdbus'
84     # process org.jackaudio.service.in -> org.jackaudio.service
85     obj = bld(
86             features = 'subst',
87             source = 'org.jackaudio.service.in',
88             target = 'org.jackaudio.service',
89             install_path = '${DBUS_SERVICES_DIR}/',
90             BINDIR = bld.env['PREFIX'] + '/bin')