summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2018-05-30 16:15:56 +0100
committerGitHub <noreply@github.com>2018-05-30 16:15:56 +0100
commit3824efc25c91e906bdfd4ab01bda431c984a859b (patch)
treeff2a11fbc3029f76a6b91228f867be239461777e
parent7b8a540dce41c259a720c9ad4875cd8aa9d74240 (diff)
parent02a5e55f21273c234ae1b1a86af5f144c1083538 (diff)
downloadlibepoxy-3824efc25c91e906bdfd4ab01bda431c984a859b.tar.gz
Merge pull request #178 from ebassi/osx-ci
Fix build of Epoxy on macOS
-rw-r--r--.travis.yml28
-rwxr-xr-x.travis/epoxy-ci-linux.sh (renamed from .travis/epoxy-run-tests.sh)0
-rwxr-xr-x.travis/epoxy-ci-osx.sh19
-rw-r--r--src/dispatch_common.c31
-rw-r--r--src/dispatch_common.h2
5 files changed, 61 insertions, 19 deletions
diff --git a/.travis.yml b/.travis.yml
index d845310..52c043e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,6 +7,7 @@ branches:
os:
- linux
+ - osx
compiler:
- gcc
@@ -18,13 +19,29 @@ language:
services:
- docker
+matrix:
+ exclude:
+ - os: osx
+ compiler: gcc
+
before_install:
- - docker pull ebassi/epoxyci
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
+ brew update
+ brew install python@3 meson
+ # Use a Ninja with QuLogic's patch: https://github.com/ninja-build/ninja/issues/1219
+ mkdir -p $HOME/tools; curl -L http://nirbheek.in/files/binaries/ninja/macos/ninja -o $HOME/tools/ninja; chmod +x $HOME/tools/ninja
+ fi
+ - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker pull ebassi/epoxyci ; fi
before_script:
- - echo FROM ebassi/epoxyci > Dockerfile
- - echo ADD . /root >> Dockerfile
- - docker build -t withgit .
+ - |
+ if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+ echo FROM ebassi/epoxyci > Dockerfile
+ echo ADD . /root >> Dockerfile
+ echo WORKDIR /root >> Dockerfile
+ docker build -t withgit .
+ fi
env:
- BUILD_OPTS=""
@@ -33,4 +50,5 @@ env:
- BUILD_OPTS="-Dx11=false"
script:
- - docker run withgit /bin/sh -c "CC=$CC ./epoxy-run-tests.sh $BUILD_OPTS"
+ - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker run withgit /bin/sh -c "CC=$CC .travis/epoxy-ci-linux.sh $BUILD_OPTS" ; fi
+ - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then /bin/sh -c "CC=$CC .travis/epoxy-ci-osx.sh $BUILD_OPTS" ; fi
diff --git a/.travis/epoxy-run-tests.sh b/.travis/epoxy-ci-linux.sh
index 52f01ea..52f01ea 100755
--- a/.travis/epoxy-run-tests.sh
+++ b/.travis/epoxy-ci-linux.sh
diff --git a/.travis/epoxy-ci-osx.sh b/.travis/epoxy-ci-osx.sh
new file mode 100755
index 0000000..3e4021d
--- /dev/null
+++ b/.travis/epoxy-ci-osx.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+export SDKROOT=$( xcodebuild -version -sdk macosx Path )
+export CPPFLAGS=-I/usr/local/include
+export LDFLAGS=-L/usr/local/lib
+export OBJC=$CC
+export PATH=$HOME/tools:$PATH
+
+srcdir=$( pwd )
+builddir=$( mktemp -d build_XXXXXX )
+
+meson ${BUILDOPTS} $builddir $srcdir || exit $?
+
+cd $builddir
+ninja || exit $?
+meson test || exit $?
+cd ..
+
+rm -rf $builddir
diff --git a/src/dispatch_common.c b/src/dispatch_common.c
index e2bb186..effd99a 100644
--- a/src/dispatch_common.c
+++ b/src/dispatch_common.c
@@ -173,26 +173,24 @@
#include "dispatch_common.h"
-#ifdef __APPLE__
+#if defined(__APPLE__)
#define GLX_LIB "/opt/X11/lib/libGL.1.dylib"
#define OPENGL_LIB "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
+#define GLES1_LIB "libGLESv1_CM.so"
+#define GLES2_LIB "libGLESv2.so"
#elif defined(__ANDROID__)
#define GLX_LIB "libGLESv2.so"
-#else
-#define GLVND_GLX_LIB "libGLX.so.1"
-#define GLX_LIB "libGL.so.1"
-#endif
-
-#ifdef __ANDROID__
#define EGL_LIB "libEGL.so"
#define GLES1_LIB "libGLESv1_CM.so"
#define GLES2_LIB "libGLESv2.so"
-#elif defined _WIN32
+#elif defined(_WIN32)
#define EGL_LIB "libEGL.dll"
#define GLES1_LIB "libGLES_CM.dll"
#define GLES2_LIB "libGLESv2.dll"
#define OPENGL_LIB "OPENGL32"
#else
+#define GLVND_GLX_LIB "libGLX.so.1"
+#define GLX_LIB "libGL.so.1"
#define EGL_LIB "libEGL.so.1"
#define GLES1_LIB "libGLESv1_CM.so.1"
#define GLES2_LIB "libGLESv2.so.2"
@@ -553,23 +551,25 @@ epoxy_internal_has_gl_extension(const char *ext, bool invalid_op_mode)
bool
epoxy_load_glx(bool exit_if_fails, bool load)
{
-#ifdef GLVND_GLX_LIB
+#ifdef PLATFORM_HAS_GLX
+# ifdef GLVND_GLX_LIB
/* prefer the glvnd library if it exists */
if (!api.glx_handle)
get_dlopen_handle(&api.glx_handle, GLVND_GLX_LIB, false, load);
-#endif
+# endif
if (!api.glx_handle)
get_dlopen_handle(&api.glx_handle, GLX_LIB, exit_if_fails, load);
-
+#endif
return api.glx_handle != NULL;
}
void *
epoxy_conservative_glx_dlsym(const char *name, bool exit_if_fails)
{
+#ifdef PLATFORM_HAS_GLX
if (epoxy_load_glx(exit_if_fails, exit_if_fails))
return do_dlsym(&api.glx_handle, name, exit_if_fails);
-
+#endif
return NULL;
}
@@ -636,15 +636,20 @@ epoxy_conservative_has_gl_extension(const char *ext)
bool
epoxy_load_egl(bool exit_if_fails, bool load)
{
+#if PLATFORM_HAS_EGL
return get_dlopen_handle(&api.egl_handle, EGL_LIB, exit_if_fails, load);
+#else
+ return false;
+#endif
}
void *
epoxy_conservative_egl_dlsym(const char *name, bool exit_if_fails)
{
+#if PLATFORM_HAS_EGL
if (epoxy_load_egl(exit_if_fails, exit_if_fails))
return do_dlsym(&api.egl_handle, name, exit_if_fails);
-
+#endif
return NULL;
}
diff --git a/src/dispatch_common.h b/src/dispatch_common.h
index dcb3a35..a361ccc 100644
--- a/src/dispatch_common.h
+++ b/src/dispatch_common.h
@@ -28,7 +28,7 @@
#define PLATFORM_HAS_GLX ENABLE_GLX
#define PLATFORM_HAS_WGL 1
#elif defined(__APPLE__)
-#define PLATFORM_HAS_EGL ENABLE_EGL
+#define PLATFORM_HAS_EGL 0
#define PLATFORM_HAS_GLX ENABLE_GLX
#define PLATFORM_HAS_WGL 0
#elif defined(ANDROID)