summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-08-15 18:41:16 +0200
committerwm4 <wm4@nowhere>2017-08-15 18:41:16 +0200
commit72a8120daac8136b8db7c720621bbe09e43cfe6c (patch)
tree48322c0afafd24b97acf1cf162cc8943fd85bb9c
parent16d22ea02a66f0f80c0e568381d8d9a4342362c5 (diff)
downloadmpv-72a8120daac8136b8db7c720621bbe09e43cfe6c.tar.bz2
mpv-72a8120daac8136b8db7c720621bbe09e43cfe6c.tar.xz
Revert "build: rpi: rely on pkgconfig for compiler flags"
This reverts commit ea40fa36eef15384b4c0218fb102f92f5cd1cdff. 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.
-rw-r--r--waftools/checks/custom.py23
-rw-r--r--wscript22
2 files changed, 22 insertions, 23 deletions
diff --git a/waftools/checks/custom.py b/waftools/checks/custom.py
index c7dbdf4e94..d8065a35f2 100644
--- a/waftools/checks/custom.py
+++ b/waftools/checks/custom.py
@@ -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
diff --git a/wscript b/wscript
index feb20851a3..2fb995041f 100644
--- a/wscript
+++ b/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',