Make rpi video cross-compiler friendly.

* Stops using fixed path to find GLES/EGL libs.
* Tries pkg-config to locate bcm_host.

Signed-off-by: Guillermo A. Amaral <g@maral.me>
This commit is contained in:
Guillermo A. Amaral
2018-01-17 13:17:10 -08:00
parent 509db8afbd
commit 35554caf16
4 changed files with 79 additions and 13 deletions

View File

@@ -44,12 +44,13 @@
#if SDL_VIDEO_DRIVER_RPI
/* Raspbian places the OpenGL ES/EGL binaries in a non standard path */
#define DEFAULT_EGL ( vc4 ? "libEGL.so.1" : "/opt/vc/lib/libbrcmEGL.so" )
#define DEFAULT_OGL_ES2 ( vc4 ? "libGLESv2.so.2" : "/opt/vc/lib/libbrcmGLESv2.so" )
#define ALT_EGL "/opt/vc/lib/libEGL.so"
#define ALT_OGL_ES2 "/opt/vc/lib/libGLESv2.so"
#define DEFAULT_OGL_ES_PVR ( vc4 ? "libGLES_CM.so.1" : "/opt/vc/lib/libbrcmGLESv2.so" )
#define DEFAULT_OGL_ES ( vc4 ? "libGLESv1_CM.so.1" : "/opt/vc/lib/libbrcmGLESv2.so" )
static const char g_rpi_opt_path[] = "/opt/vc/lib";
#define DEFAULT_EGL ( vc4 ? "libEGL.so.1" : "libbrcmEGL.so" )
#define DEFAULT_OGL_ES2 ( vc4 ? "libGLESv2.so.2" : "libbrcmGLESv2.so" )
#define ALT_EGL "libEGL.so"
#define ALT_OGL_ES2 "libGLESv2.so"
#define DEFAULT_OGL_ES_PVR ( vc4 ? "libGLES_CM.so.1" : "libbrcmGLESv2.so" )
#define DEFAULT_OGL_ES ( vc4 ? "libGLESv1_CM.so.1" : "libbrcmGLESv2.so" )
#elif SDL_VIDEO_DRIVER_ANDROID || SDL_VIDEO_DRIVER_VIVANTE
/* Android */
@@ -265,6 +266,20 @@ SDL_EGL_LoadLibrary(_THIS, const char *egl_path, NativeDisplayType native_displa
#endif
#if SDL_VIDEO_DRIVER_RPI
SDL_bool vc4 = (0 == access("/sys/module/vc4/", F_OK));
path = SDL_getenv("LD_LIBRARY_PATH");
if (path) {
const int path_size = SDL_strlen(path) + 1 + sizeof(g_rpi_opt_path);
char *new_path = SDL_calloc(1, path_size);
strcat(new_path, path);
strcat(new_path, ":");
strcat(new_path, g_rpi_opt_path);
SDL_setenv("LD_LIBRARY_PATH", new_path, 1);
SDL_free(new_path);
} else {
SDL_setenv("LD_LIBRARY_PATH", g_rpi_opt_path, 1);
}
path = NULL;
#endif
if (_this->egl_data) {