Fix building jacknet and jackserver tools in custom prefix

Signed-off-by: falkTX <falktx@falktx.com>
This commit is contained in:
falkTX 2023-02-02 14:05:21 +01:00
parent 622abaf914
commit 0c4a3df94f
No known key found for this signature in database
GPG Key ID: CDBAA37ABC74FBA0
2 changed files with 39 additions and 33 deletions

View File

@ -95,6 +95,7 @@ if build_jack_net
'jack_net_master',
sources: ['netmaster.c'],
dependencies: [lib_jacknet],
include_directories: include_directories(dep_jack.get_variable('includedir')),
install: true
)
@ -102,24 +103,24 @@ if build_jack_net
'jack_net_slave',
sources: ['netslave.c'],
dependencies: [lib_jacknet],
include_directories: include_directories(dep_jack.get_variable('includedir')),
install: true
)
endif
if host_machine.system() != 'windows'
if has_jackctl_server_create2
c_args_jack_server_control = c_args_common + ['-D__JACK2__']
else
c_args_jack_server_control = c_args_common + ['-D__JACK1__']
endif
exe_jack_server_control = executable(
'jack_server_control',
c_args: c_args_jack_server_control,
sources: ['server_control.c'],
dependencies: [dep_jack, lib_jackserver],
install: true
)
if has_jackctl_server_create2
c_args_jack_server_control = c_args_common + ['-D__JACK2__']
else
c_args_jack_server_control = c_args_common + ['-D__JACK1__']
endif
exe_jack_server_control = executable(
'jack_server_control',
c_args: c_args_jack_server_control,
sources: ['server_control.c'],
dependencies: [lib_jackserver],
include_directories: include_directories(dep_jack.get_variable('includedir')),
install: true
)
exe_jack_showtime = executable(
'jack_showtime',

View File

@ -26,6 +26,22 @@ endif
dep_jack = dependency('jack')
if host_machine.system() == 'windows' and host_machine.cpu_family() == 'x86_64'
lib_jackserver_suffix = '64'
else
lib_jackserver_suffix = ''
endif
lib_jackserver = cc.find_library('jackserver' + lib_jackserver_suffix,
dirs: dep_jack.get_variable('libdir'),
required: true
)
lib_jacknet = cc.find_library('jacknet',
dirs: dep_jack.get_variable('libdir'),
required: get_option('jack_net')
)
jack_implementation = ''
jack_implementation = dep_jack.get_variable('jack_implementation')
if jack_implementation == ''
@ -48,7 +64,8 @@ has_jack1_internal_client = cc.compiles(
client = jack_client_open(client_name, JackNoStartServer, &status);
jack_internal_client_handle(client, client_name, &status, &intclient);
}
'''
''',
dependencies: [dep_jack],
)
message('Provides jack1-style jack_internal_client_handle(): ' + has_jack1_internal_client.to_string())
@ -67,28 +84,16 @@ has_jack2_internal_client = cc.compiles(
client = jack_client_open(client_name, JackNoStartServer, &status);
intclient = jack_internal_client_handle(client, client_name, &status);
}
'''
''',
dependencies: [dep_jack],
)
message('Provides jack2-style jack_internal_client_handle(): ' + has_jack2_internal_client.to_string())
if host_machine.system() == 'windows' and host_machine.cpu_family() == 'x86_64'
lib_jackserver_suffix = '64'
else
lib_jackserver_suffix = ''
endif
# we must link to jackserver as shared library, which is hard if `-Wl,-Bstatic` is used in `LDFLAGS`
# do a little dance to support such builds here
# FIXME find a way to do something like `if link_args.contains('-Bstatic')`
if host_machine.system() == 'windows'
lib_jackserver = declare_dependency(link_args: ['-Wl,-Bshared', '-ljackserver' + lib_jackserver_suffix, '-Wl,-Bstatic'])
else
lib_jackserver = cc.find_library('jackserver' + lib_jackserver_suffix, required: true)
endif
has_jackctl_server_create2 = cc.has_function('jackctl_server_create2', dependencies: lib_jackserver, prefix: '#include <jack/control.h>')
lib_jacknet = cc.find_library('jacknet', required: get_option('jack_net'))
has_jackctl_server_create2 = cc.has_function('jackctl_server_create2',
dependencies: [lib_jackserver],
include_directories: include_directories(dep_jack.get_variable('includedir')),
prefix: '#include <jack/control.h>'
)
dep_alsa = dependency('alsa', version: '>=1.0.18', required: alsa_required)
dep_opus = dependency('opus', version: '>=0.9.0', required: get_option('opus_support'))