jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.9KB

  1. #! /usr/bin/env python
  2. # encoding: utf-8
  3. import os.path
  4. import Options
  5. import re # subst_func
  6. import Logs
  7. def set_options(opt):
  8. 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')
  9. def configure(conf):
  10. conf.env['BUILD_JACKDBUS'] = False
  11. if not conf.check_cfg(package='dbus-1', atleast_version='1.0.0', args='--cflags --libs') or not conf.is_defined('HAVE_DBUS_1'):
  12. print(Logs.colors.RED + 'WARNING !! jackdbus will not be built because libdbus-dev is missing' + Logs.colors.NORMAL)
  13. return
  14. dbus_dir = conf.check_cfg(package='dbus-1', args='--variable=session_bus_services_dir')
  15. if not dbus_dir:
  16. print(Logs.colors.RED + 'WARNING !! jackdbus will not be built because service dir is unknown' + Logs.colors.NORMAL)
  17. return
  18. dbus_dir = dbus_dir.strip()
  19. conf.env['DBUS_SERVICES_DIR_REAL'] = dbus_dir
  20. if Options.options.enable_pkg_config_dbus_service_dir:
  21. conf.env['DBUS_SERVICES_DIR'] = dbus_dir
  22. else:
  23. conf.env['DBUS_SERVICES_DIR'] = os.path.normpath(conf.env['PREFIX'] + '/share/dbus-1/services')
  24. conf.check_tool('misc')
  25. conf.check(header_name='expat.h', define_name="HAVE_EXPAT")
  26. if conf.is_defined('HAVE_EXPAT'):
  27. conf.env['LIB_EXPAT'] = ['expat']
  28. else:
  29. print(Logs.colors.RED + 'WARNING !! jackdbus will not be built because of expat is missing' + Logs.colors.NORMAL)
  30. return
  31. conf.env['BUILD_JACKDBUS'] = True
  32. def build(bld):
  33. obj = bld.new_task_gen('cc', 'program')
  34. if bld.env['IS_LINUX']:
  35. sysdeps_dbus_include = ['../linux', '../posix']
  36. if bld.env['IS_MACOSX']:
  37. sysdeps_dbus_include = ['../macosx', '../posix']
  38. obj.includes = sysdeps_dbus_include + ['.', '../', '../common', '../common/jack']
  39. obj.defines = ['HAVE_CONFIG_H','SERVER_SIDE']
  40. obj.source = [
  41. 'jackdbus.c',
  42. 'controller.c',
  43. 'params.c',
  44. 'controller_iface_configure.c',
  45. 'controller_iface_control.c',
  46. 'controller_iface_introspectable.c',
  47. 'controller_iface_patchbay.c',
  48. 'controller_iface_session_manager.c',
  49. 'controller_iface_transport.c',
  50. 'xml.c',
  51. 'xml_expat.c',
  52. #'xml_nop.c',
  53. 'xml_write_raw.c',
  54. 'sigsegv.c',
  55. 'reserve.c',
  56. ]
  57. if bld.env['IS_LINUX']:
  58. obj.uselib = 'PTHREAD DL RT DBUS-1 EXPAT'
  59. if bld.env['IS_MACOSX']:
  60. obj.uselib = 'PTHREAD DL DBUS-1 EXPAT'
  61. obj.uselib_local = 'serverlib'
  62. obj.target = 'jackdbus'
  63. # process org.jackaudio.service.in -> org.jackaudio.service
  64. import misc
  65. obj = bld.new_task_gen('subst')
  66. obj.source = 'org.jackaudio.service.in'
  67. obj.target = 'org.jackaudio.service'
  68. obj.dict = {'BINDIR': bld.env['PREFIX'] + '/bin'}
  69. obj.install_path = '${DBUS_SERVICES_DIR}/'
  70. obj.fun = misc.subst_func