On FreeBSD, add dependency on epoll-shim library.

FreeBSD doesn't provide timerfd and eventfd functions. These are implemented in
3rd party library called epoll-shim. Link targets requiring these functions to
this library.
This commit is contained in:
Gleb Popov 2019-11-09 23:03:38 +04:00 committed by Wim Taymans
parent 68e94a2e7e
commit fd937fa378
12 changed files with 26 additions and 17 deletions

View file

@ -207,8 +207,12 @@ if get_option('gstreamer')
dependency('gstreamer-allocators-1.0'),]
endif
subdir('spa')
# On FreeBSD, epoll-shim library is required for eventfd() and timerfd()
epoll_shim_dep = (build_machine.system() == 'freebsd'
? dependency('epoll-shim', required: true)
: dependency('', required: false))
subdir('spa')
subdir('src')
if get_option('pipewire-jack')

View file

@ -7,5 +7,5 @@ endif
executable('example-control', 'example-control.c',
include_directories : [spa_inc ],
dependencies : [dl_lib, pthread_lib, mathlib],
dependencies : [dl_lib, pthread_lib, mathlib, epoll_shim_dep],
install : false)

View file

@ -10,6 +10,6 @@ spa_alsa_sources = ['alsa.c',
spa_alsa = shared_library('spa-alsa',
spa_alsa_sources,
include_directories : [spa_inc],
dependencies : [ alsa_dep, libudev_dep, mathlib ],
dependencies : [ alsa_dep, libudev_dep, mathlib, epoll_shim_dep ],
install : true,
install_dir : '@0@/spa/alsa'.format(get_option('libdir')))

View file

@ -3,6 +3,6 @@ audiotestsrc_sources = ['audiotestsrc.c', 'plugin.c']
audiotestsrclib = shared_library('spa-audiotestsrc',
audiotestsrc_sources,
include_directories : [spa_inc],
dependencies : mathlib,
dependencies : [mathlib, epoll_shim_dep],
install : true,
install_dir : '@0@/spa/audiotestsrc'.format(get_option('libdir')))

View file

@ -8,7 +8,7 @@ spa_support_lib = shared_library('spa-support',
spa_support_sources,
c_args : [ '-D_GNU_SOURCE' ],
include_directories : [ spa_inc ],
dependencies : [ pthread_lib ],
dependencies : [ pthread_lib, epoll_shim_dep ],
install : true,
install_dir : '@0@/spa/support'.format(get_option('libdir')))
@ -35,6 +35,6 @@ spa_dbus_sources = ['dbus.c']
spa_dbus_lib = shared_library('spa-dbus',
spa_dbus_sources,
include_directories : [ spa_inc],
dependencies : dbus_dep,
dependencies : [dbus_dep, epoll_shim_dep],
install : true,
install_dir : '@0@/spa/support'.format(get_option('libdir')))

View file

@ -3,6 +3,6 @@ test_sources = ['fakesrc.c', 'fakesink.c', 'plugin.c']
testlib = shared_library('spa-test',
test_sources,
include_directories : [ spa_inc],
dependencies : pthread_lib,
dependencies : [pthread_lib, epoll_shim_dep],
install : true,
install_dir : '@0@/spa/test'.format(get_option('libdir')))

View file

@ -6,6 +6,6 @@ v4l2_sources = ['v4l2.c',
v4l2lib = shared_library('spa-v4l2',
v4l2_sources,
include_directories : [ spa_inc ],
dependencies : [ libudev_dep ],
dependencies : [ libudev_dep, epoll_shim_dep ],
install : true,
install_dir : '@0@/spa/v4l2'.format(get_option('libdir')))

View file

@ -3,6 +3,6 @@ videotestsrc_sources = ['videotestsrc.c', 'plugin.c']
videotestsrclib = shared_library('spa-videotestsrc',
videotestsrc_sources,
include_directories : [ spa_inc],
dependencies : pthread_lib,
dependencies : [pthread_lib, epoll_shim_dep],
install : true,
install_dir : '@0@/spa/videotestsrc'.format(get_option('libdir')))

View file

@ -20,7 +20,7 @@ endforeach
if have_cpp
test_cpp = executable('spa-test-cpp', 'test-cpp.cpp',
include_directories : [spa_inc ],
dependencies : [],
dependencies : [epoll_shim_dep],
install : false)
test('spa-test-cpp', test_cpp)
endif

View file

@ -1,9 +1,9 @@
executable('spa-inspect', 'spa-inspect.c',
include_directories : [spa_inc],
dependencies : [dl_lib],
dependencies : [dl_lib, epoll_shim_dep],
install : true)
executable('spa-monitor', 'spa-monitor.c',
include_directories : [spa_inc],
dependencies : [dl_lib],
dependencies : [dl_lib, epoll_shim_dep],
install : true)

View file

@ -30,7 +30,7 @@ executable('pipewire',
install: true,
c_args : pipewire_c_args,
include_directories : [configinc, spa_inc],
dependencies : [pipewire_dep],
dependencies : [pipewire_dep, epoll_shim_dep],
)
if get_option('systemd') and systemd.found()

View file

@ -75,10 +75,15 @@ install_headers(pipewire_headers, subdir : 'pipewire')
libpipewire_c_args = [
'-DHAVE_CONFIG_H',
'-D_GNU_SOURCE',
'-D_POSIX_C_SOURCE',
]
if build_machine.system() != 'freebsd'
libpipewire_c_args += [
'-D_GNU_SOURCE',
'-D_POSIX_C_SOURCE'
]
endif
libpipewire_name = 'pipewire-@0@'.format(apiversion)
libpipewire = shared_library(libpipewire_name, pipewire_sources,
version : libversion,
@ -86,12 +91,12 @@ libpipewire = shared_library(libpipewire_name, pipewire_sources,
c_args : libpipewire_c_args,
include_directories : [pipewire_inc, configinc, spa_inc],
install : true,
dependencies : [dl_lib, mathlib, pthread_lib],
dependencies : [dl_lib, mathlib, pthread_lib, epoll_shim_dep],
)
pipewire_dep = declare_dependency(link_with : libpipewire,
include_directories : [pipewire_inc, configinc, spa_inc],
dependencies : [pthread_lib],
dependencies : [pthread_lib, epoll_shim_dep],
)
pkgconfig.generate(filebase : 'lib@0@'.format(libpipewire_name),