mirror of
https://github.com/mpv-player/mpv
synced 2024-12-25 08:12:17 +00:00
Revert "build: rpi: rely on pkgconfig for compiler flags"
This reverts commit ea40fa36ee
.
This caused strange runtime failure on Raspbian (when running mpv,
vc_dispmanx_display_open() returned 0, while other dispmanx using
programs were fine). The problem must have been something about the
compiler flags, maybe linking order or set of include paths.
This commit is contained in:
parent
16d22ea02a
commit
72a8120daa
@ -4,7 +4,7 @@ from waflib import Utils
|
||||
import os
|
||||
|
||||
__all__ = ["check_pthreads", "check_iconv", "check_lua",
|
||||
"check_cocoa", "check_openal", "check_rpi"]
|
||||
"check_cocoa", "check_openal"]
|
||||
|
||||
pthreads_program = load_fragment('pthreads.c')
|
||||
|
||||
@ -103,24 +103,3 @@ def check_openal(ctx, dependency_identifier):
|
||||
if fn(ctx, dependency_identifier):
|
||||
return True
|
||||
return False
|
||||
|
||||
def check_rpi(ctx, dependency_identifier):
|
||||
# We need MMAL/bcm_host/dispmanx APIs.
|
||||
# Upstream keeps pkgconfig files in '/opt/vc/lib/pkgconfig'.
|
||||
# See https://github.com/raspberrypi/userland/issues/245
|
||||
# PKG_CONFIG_SYSROOT_DIR helps with cross compilation.
|
||||
prev_pkg_path = os.getenv('PKG_CONFIG_PATH', '')
|
||||
os.environ['PKG_CONFIG_PATH'] = os.pathsep.join(
|
||||
filter(None, [os.path.join(os.getenv('PKG_CONFIG_SYSROOT_DIR', '/'),
|
||||
'opt/vc/lib/pkgconfig'),
|
||||
prev_pkg_path]))
|
||||
|
||||
checks = [
|
||||
check_pkg_config('bcm_host', uselib_store='bcm_host'),
|
||||
check_pkg_config('egl'),
|
||||
check_cc(lib=['mmal_core', 'mmal_util', 'mmal_vc_client'], use=['bcm_host']),
|
||||
]
|
||||
|
||||
ret = all((fn(ctx, dependency_identifier) for fn in checks))
|
||||
os.environ['PKG_CONFIG_PATH'] = prev_pkg_path
|
||||
return ret
|
||||
|
22
wscript
22
wscript
@ -721,9 +721,29 @@ video_output_features = [
|
||||
'deps': [ 'win32-desktop' ],
|
||||
'func': check_cc(header_name='d3d9.h'),
|
||||
}, {
|
||||
'name': '--android',
|
||||
'desc': 'Android support',
|
||||
'func': check_statement('android/api-level.h', '(void)__ANDROID__'), # arbitrary android-specific header
|
||||
}, {
|
||||
# We need MMAL/bcm_host/dispmanx APIs. Also, most RPI distros require
|
||||
# every project to hardcode the paths to the include directories. Also,
|
||||
# these headers are so broken that they spam tons of warnings by merely
|
||||
# including them (compensate with -isystem and -fgnu89-inline).
|
||||
'name': '--rpi',
|
||||
'desc': 'Raspberry Pi support',
|
||||
'func': check_rpi,
|
||||
'func': compose_checks(
|
||||
check_cc(cflags="-isystem/opt/vc/include/ "+
|
||||
"-isystem/opt/vc/include/interface/vcos/pthreads " +
|
||||
"-isystem/opt/vc/include/interface/vmcs_host/linux " +
|
||||
"-fgnu89-inline",
|
||||
linkflags="-L/opt/vc/lib",
|
||||
header_name="bcm_host.h",
|
||||
lib=['mmal_core', 'mmal_util', 'mmal_vc_client', 'bcm_host']),
|
||||
# We still need all OpenGL symbols, because the vo_opengl code is
|
||||
# generic and supports anything from GLES2/OpenGL 2.1 to OpenGL 4 core.
|
||||
check_cc(lib="EGL"),
|
||||
check_cc(lib="GLESv2"),
|
||||
),
|
||||
} , {
|
||||
'name': '--ios-gl',
|
||||
'desc': 'iOS OpenGL ES hardware decoding interop support',
|
||||
|
Loading…
Reference in New Issue
Block a user