Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
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.

81 lines
2.8KB

  1. ##############################################################################
  2. # Copyright (C) 2020- Nils Hilbricht
  3. #
  4. # This file is part of New-Session-Manager
  5. #
  6. # New-Session-Manager is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # New-Session-Manager is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with New-Session-Manager. If not, see <https://www.gnu.org/licenses/>.
  18. ##############################################################################
  19. project('new-session-manager', 'c', 'cpp', version : '1.3.0', license : 'GPLv3')
  20. liblodep = dependency('liblo') #and not 'lo'
  21. threaddep = dependency('threads')
  22. jackdep = dependency('jack') #and not 'libjack'
  23. cc = meson.get_compiler('c')
  24. fluid = find_program('fluid', required: false)
  25. fltkdep = cc.find_library('fltk', required: false)
  26. executable('jackpatch',
  27. 'src/jackpatch.c',
  28. dependencies: [liblodep, jackdep],
  29. install: true,
  30. )
  31. executable('nsm-proxy',
  32. sources: ['src/nsm-proxy.cpp', 'src/debug.cpp'],
  33. dependencies: [liblodep, threaddep],
  34. install: true,
  35. )
  36. executable('nsmd',
  37. sources: ['src/nsmd.cpp', 'src/debug.cpp', 'src/Endpoint.cpp', 'src/file.cpp', 'src/Thread.cpp'],
  38. dependencies: [liblodep, threaddep],
  39. install: true,
  40. )
  41. if fluid.found() and fltkdep.found()
  42. NSM_Proxy_UI_cpp = custom_target(
  43. 'NSM_Proxy_UI.cpp',
  44. output : 'NSM_Proxy_UI.C',
  45. input : 'src/NSM_Proxy_UI.fl',
  46. command : [fluid, '-c', '-o', '@OUTPUT@', '@INPUT@'],
  47. )
  48. NSM_Proxy_UI_h = custom_target(
  49. 'NSM_Proxy_UI.h',
  50. output : 'NSM_Proxy_UI.H',
  51. input : 'src/NSM_Proxy_UI.fl',
  52. command : [fluid, '-c', '-h', '@OUTPUT@', '@INPUT@'],
  53. )
  54. executable('new-session-manager',
  55. sources: ['src/session-manager.cpp', 'src/debug.cpp', 'src/Endpoint.cpp', 'src/Thread.cpp', 'src/FL/Fl_Scalepack.C'],
  56. dependencies: [fltkdep, liblodep, threaddep],
  57. install: true,
  58. )
  59. install_data('src/org.linuxaudio.new-session-manager.desktop', install_dir : get_option('datadir') / 'applications')
  60. meson.add_install_script('sh', '-c',
  61. 'ln -sf new-session-manager ${DESTDIR}@0@/@1@/non-session-manager'.format(
  62. get_option('prefix'), get_option('bindir')))
  63. executable('nsm-proxy-gui',
  64. sources: ['src/nsm-proxy-gui.cpp', [NSM_Proxy_UI_cpp, NSM_Proxy_UI_h]],
  65. dependencies: [fltkdep, liblodep, threaddep],
  66. install: true,
  67. )
  68. endif