Files
yabridge/meson.build
T
Robbert van der Helm 138fa9eb31 Add winedbg support behind a feature flag
I had something similar saved as a stash since I did not want to make
things more complicated by adding feature flags, but this should be
fine.
2020-03-15 16:30:25 +01:00

67 lines
2.0 KiB
Meson

project(
'yabridge',
'cpp',
version : '0.1',
default_options : ['warning_level=3', 'cpp_std=c++17', 'build.cpp_std=c++17']
)
# Meson does not let us set a default cross compiler, which makes sense, but it
# also means that it's easy to forget. This will cause the setup process to
# abort if no cross compiler has been set up.
winelib_check = '''#ifndef __WINE__
#error 1
#endif'''
if not meson.get_compiler('cpp').compiles(winelib_check)
error('You need to set up a cross compiler, check the README for more information.')
endif
# This provides an easy way to start the Wine VST host using winedbg since it
# can be quite a pain to set up
compiler_options = []
if get_option('use-winedbg')
compiler_options += '-DUSE_WINEDBG'
endif
# The application consists of a VST plugin (yabridge) that calls a winelib
# program (yabridge-host) that can host Windows VST plugins. More information
# about the way these two components work together can be found in the readme
# file.
boost_dep = dependency('boost', modules : ['filesystem'])
bitsery_dep = subproject('bitsery').get_variable('bitsery_dep')
threads_dep = dependency('threads')
# The built in threads dependency does not know how to handle winegcc
wine_threads_dep = declare_dependency(link_args : '-lpthread')
include_dir = include_directories('src/include')
shared_library(
'yabridge',
[
'src/common/logging.cpp',
'src/common/serialization.cpp',
'src/plugin/host-bridge.cpp',
'src/plugin/plugin.cpp',
],
native : true,
include_directories : include_dir,
dependencies : [boost_dep, bitsery_dep, threads_dep],
cpp_args : compiler_options,
link_args : ['-ldl']
)
executable(
'yabridge-host',
[
'src/common/logging.cpp',
'src/common/serialization.cpp',
'src/wine-host/plugin-bridge.cpp',
'src/wine-host/vst-host.cpp',
],
native : false,
include_directories : include_dir,
dependencies : [boost_dep, bitsery_dep, wine_threads_dep],
cpp_args : compiler_options,
link_args : []
)