diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:03:42 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-07-07 05:03:42 +0000 |
commit | 2a5235eaaf8bd4f81e79aed969a9705fd8fdebf4 (patch) | |
tree | 2c0a48f4a5f4adf79a5f761e02a364cc13f519d7 | |
parent | d39720eb3e3a2d59d1f4527318e32d58e74421b8 (diff) | |
parent | 0146411f7d7d31c4dc8321fd2626f8a7fb905f25 (diff) | |
download | libepoxy-android14-mainline-permission-release.tar.gz |
Snap for 10453563 from 0146411f7d7d31c4dc8321fd2626f8a7fb905f25 to mainline-permission-releaseaml_per_341614000aml_per_341510010aml_per_341410020aml_per_341311000aml_per_341110020aml_per_341110010aml_per_341011100aml_per_341011020aml_per_340916010android14-mainline-permission-release
Change-Id: I2a68bd133e19abbc0dd63d2f1aaf76260403d22b
-rw-r--r-- | .appveyor.yml | 67 | ||||
-rw-r--r-- | .editorconfig | 8 | ||||
-rwxr-xr-x | .github/scripts/epoxy-ci-linux.sh (renamed from .travis/epoxy-ci-linux.sh) | 0 | ||||
-rwxr-xr-x | .github/scripts/epoxy-ci-osx.sh (renamed from .travis/epoxy-ci-osx.sh) | 0 | ||||
-rw-r--r-- | .github/workflows/linux.yml | 38 | ||||
-rw-r--r-- | .github/workflows/macos.yml | 26 | ||||
-rw-r--r-- | .github/workflows/msvc-env.yml | 23 | ||||
-rw-r--r-- | .github/workflows/msys2.yml | 27 | ||||
-rw-r--r-- | .travis.yml | 54 | ||||
-rw-r--r-- | .travis/Dockerfile | 29 | ||||
-rwxr-xr-x | .travis/run-docker.sh | 12 | ||||
-rw-r--r-- | METADATA | 12 | ||||
-rw-r--r-- | Makefile.am | 68 | ||||
-rw-r--r-- | README.md | 7 | ||||
-rwxr-xr-x | autogen.sh | 16 | ||||
-rw-r--r-- | configure.ac | 275 | ||||
-rw-r--r-- | epoxy.pc.in | 16 | ||||
-rw-r--r-- | include/epoxy/Makefile.am | 42 | ||||
-rw-r--r-- | include/epoxy/meson.build | 1 | ||||
-rw-r--r-- | meson.build | 15 | ||||
-rw-r--r-- | src/Makefile.am | 184 | ||||
-rw-r--r-- | src/dispatch_common.c | 35 | ||||
-rw-r--r-- | src/dispatch_common.h | 9 | ||||
-rwxr-xr-x | src/gen_dispatch.py | 26 | ||||
-rw-r--r-- | src/meson.build | 25 | ||||
-rw-r--r-- | test/.gitignore | 24 | ||||
-rw-r--r-- | test/Makefile.am | 192 | ||||
-rw-r--r-- | test/gl_version.c | 4 |
28 files changed, 203 insertions, 1032 deletions
diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index 8e0cae2..0000000 --- a/.appveyor.yml +++ /dev/null @@ -1,67 +0,0 @@ -version: 1.0.{build} - -image: Visual Studio 2015 - -configuration: Release - -# Configure both 32-bit and 64-bit builds -environment: - matrix: - - platform: x86 - config: Win32 - pout: x86 - - platform: x64 - config: x64 - pout: x64 - -shallow_clone: true - -# Download Meson and Ninja, create install directory -before_build: -- mkdir build -- mkdir libepoxy-shared-%pout% -- cd build -- curl -LsSO https://github.com/mesonbuild/meson/releases/download/0.47.1/meson-0.47.1.tar.gz -- 7z x meson-0.47.1.tar.gz -- move dist\meson-0.47.1.tar . -- 7z x meson-0.47.1.tar -- rmdir dist -- del meson-0.47.1.tar meson-0.47.1.tar.gz -- curl -LsSO https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip -- 7z x ninja-win.zip -- del ninja-win.zip -- cd .. - -# Build and install -build_script: -- cd build -- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %PLATFORM% -- C:\Python36\python.exe meson-0.47.1\meson.py .. . --backend=ninja --prefix=%APPVEYOR_BUILD_FOLDER%\libepoxy-shared-%pout% -- ninja -- ninja install -- cd .. - -# Copy license into install directory and create .zip file -after_build: -- copy COPYING libepoxy-shared-%pout% -- dir libepoxy-shared-%pout% /s /b -- 7z a -tzip libepoxy-shared-%pout%.zip libepoxy-shared-%pout% - -artifacts: - - path: libepoxy-shared-%pout%.zip - name: libepoxy-shared-%pout% - -test: off - -# Upload .zip file to GitHub release -deploy: - release: $(APPVEYOR_REPO_TAG_NAME) - description: "Epoxy $(APPVEYOR_REPO_TAG_NAME)" - provider: GitHub - auth_token: - secure: X7Ro8Y2RWYo/M1AAn93f9X0dEQFvu7gPb6li2eKRtzPYLGj/JKm7MNWRw2cCcjm6 - artifact: libepoxy-shared-$(pout) - draft: false - prerelease: false - on: - appveyor_repo_tag: true # deploy on tag push only diff --git a/.editorconfig b/.editorconfig index ce6000d..3473806 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,14 +10,6 @@ end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true -[configure.ac] -indent_style = tab -indent_size = 8 - -[Makefile.am] -indent_style = tab -indent_size = 8 - [.travis.yml] indent_style = space indent_size = 2 diff --git a/.travis/epoxy-ci-linux.sh b/.github/scripts/epoxy-ci-linux.sh index e95584f..e95584f 100755 --- a/.travis/epoxy-ci-linux.sh +++ b/.github/scripts/epoxy-ci-linux.sh diff --git a/.travis/epoxy-ci-osx.sh b/.github/scripts/epoxy-ci-osx.sh index 1a062a1..1a062a1 100755 --- a/.travis/epoxy-ci-osx.sh +++ b/.github/scripts/epoxy-ci-osx.sh diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..3d71e7f --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,38 @@ +name: Ubuntu +on: + push: + branches-ignore: + - debian + - khronos-registry +jobs: + build: + strategy: + matrix: + os: + - ubuntu-18.04 + compiler: + - gcc + - clang + build-opts: + - '' + - '-Dglx=no' + - '-Degl=no' + - '-Dx11=false' + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - run: > + sudo apt-get update && + sudo apt-get install --no-install-recommends + libgl1-mesa-dev + libegl1-mesa-dev + libgles2-mesa-dev + libgl1-mesa-dri + ninja-build + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: | + python -m pip install --upgrade pip + pip3 install meson + /bin/sh -c "CC=${{ matrix.compiler }} .github/scripts/epoxy-ci-linux.sh ${{ matrix.build-opts }}" diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..c725ef1 --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,26 @@ +name: macOS +on: + push: + branches-ignore: + - debian + - khronos-registry +jobs: + build: + strategy: + matrix: + build-opts: + - '' + - '-Dglx=no' + - '-Degl=no' + - '-Dx11=false' + runs-on: macos-10.15 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: | + brew install ninja + python -m pip install --upgrade pip + pip3 install meson + /bin/sh -c "CC=clang .github/scripts/epoxy-ci-osx.sh ${{ matrix.build-opts }}" diff --git a/.github/workflows/msvc-env.yml b/.github/workflows/msvc-env.yml new file mode 100644 index 0000000..a4e69c8 --- /dev/null +++ b/.github/workflows/msvc-env.yml @@ -0,0 +1,23 @@ +name: MSVC Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: windows-latest + env: + PYTHONIOENCODING: "utf-8" + steps: + - uses: actions/checkout@master + - uses: actions/setup-python@v1 + - uses: seanmiddleditch/gha-setup-vsdevenv@master + - uses: BSFishy/meson-build@v1.0.1 + with: + action: test + directory: _build + options: --verbose --fatal-meson-warnings + meson-version: 0.54.3 diff --git a/.github/workflows/msys2.yml b/.github/workflows/msys2.yml new file mode 100644 index 0000000..0f90a2b --- /dev/null +++ b/.github/workflows/msys2.yml @@ -0,0 +1,27 @@ +name: MSYS2 Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + env: + PYTHONIOENCODING: "utf-8" + steps: + - uses: actions/checkout@master + - uses: msys2/setup-msys2@v2 + with: + msystem: MINGW64 + update: true + install: base-devel git mingw-w64-x86_64-meson mingw-w64-x86_64-ninja mingw-w64-x86_64-pkg-config mingw-w64-x86_64-python3 mingw-w64-x86_64-python3-pip mingw-w64-x86_64-toolchain + - name: Build + run: | + meson setup _build + meson compile -C _build diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 52c043e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,54 +0,0 @@ -sudo: false - -branches: - except: - - debian - - khronos-registry - -os: - - linux - - osx - -compiler: - - gcc - - clang - -language: - - c - -services: - - docker - -matrix: - exclude: - - os: osx - compiler: gcc - -before_install: - - | - 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: - - | - 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="" - - BUILD_OPTS="-Dglx=no" - - BUILD_OPTS="-Degl=no" - - BUILD_OPTS="-Dx11=false" - -script: - - 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/Dockerfile b/.travis/Dockerfile deleted file mode 100644 index bd9b40a..0000000 --- a/.travis/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM debian:stretch-slim -MAINTAINER Emmanuele Bassi <ebassi@gmail.com> - -RUN apt-get update -qq && \ - apt-get install --no-install-recommends -qq -y \ - ca-certificates \ - clang \ - gcc \ - libgl1-mesa-dev \ - libegl1-mesa-dev \ - libgles1-mesa-dev \ - libgles2-mesa-dev \ - libgl1-mesa-dri \ - locales \ - ninja-build \ - pkg-config \ - python3 \ - python3-pip \ - python3-setuptools \ - python3-wheel \ - xvfb && \ - rm -rf /usr/share/doc/* /usr/share/man/* - -RUN locale-gen C.UTF-8 && /usr/sbin/update-locale LANG=C.UTF-8 -ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 - -RUN pip3 install meson - -WORKDIR /root diff --git a/.travis/run-docker.sh b/.travis/run-docker.sh deleted file mode 100755 index 4b3ecc7..0000000 --- a/.travis/run-docker.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -xe - -srcdir="$(pwd)/.." - -sudo docker build \ - --tag "epoxyci" \ - --file "Dockerfile" . -sudo docker run --rm \ - --volume "${srcdir}:/root/epoxy" \ - --tty --interactive "epoxyci" bash @@ -1,3 +1,7 @@ +# This project was upgraded with external_updater. +# Usage: tools/external_updater/updater.sh update libepoxy +# For more info, check https://cs.android.com/android/platform/superproject/+/master:tools/external_updater/README.md + name: "libepoxy" description: "Epoxy is a library for handling OpenGL function pointers" third_party { @@ -5,11 +9,11 @@ third_party { type: GIT value: "https://github.com/anholt/libepoxy.git" } - version: "1.5.4" + version: "1.5.10" license_type: NOTICE last_upgrade_date { - year: 2020 - month: 4 - day: 9 + year: 2022 + month: 11 + day: 28 } } diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 8fead48..0000000 --- a/Makefile.am +++ /dev/null @@ -1,68 +0,0 @@ - -# Copyright © 2013 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -ACLOCAL_AMFLAGS = -I m4 - -SUBDIRS = include/epoxy src - -SUBDIRS += test - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = epoxy.pc - -registry_files = \ - registry/egl.xml \ - registry/gl.xml \ - registry/glx.xml \ - registry/wgl.xml \ - $() - -meson_build_files = \ - meson_options.txt \ - meson.build \ - include/epoxy/meson.build \ - src/meson.build \ - test/meson.build \ - doc/meson.build \ - doc/Doxyfile.in \ - cross/fedora-mingw64.txt \ - $() - -EXTRA_DIST = \ - .dir-locals.el \ - README.md \ - autogen.sh \ - epoxy.pc.in \ - $(registry_files) \ - $(meson_build_files) \ - $() - -dist-hook: - @if test -d "$(top_srcdir)/.git"; then \ - echo Generating ChangeLog... ; \ - ( $(top_srcdir)/missing --run git log --stat ) > "$(top_srcdir)/ChangeLog.tmp" \ - && mv -f "$(top_srcdir)/ChangeLog.tmp" "$(top_distdir)/ChangeLog" \ - || ( rm -f "$(top_srcdir)/ChangeLog.tmp"; \ - echo Failed to generate ChangeLog >&2 ); \ - else \ - echo A git checkout is required to generate a ChangeLog >&2; \ - fi @@ -1,5 +1,8 @@ -[![Build Status](https://travis-ci.org/anholt/libepoxy.svg?branch=master)](https://travis-ci.org/anholt/libepoxy) -[![Build status](https://ci.appveyor.com/api/projects/status/xv6y5jurt5v5ngjx/branch/master?svg=true)](https://ci.appveyor.com/project/ebassi/libepoxy/branch/master) +![Ubuntu](https://github.com/anholt/libepoxy/workflows/Ubuntu/badge.svg) +![macOS](https://github.com/anholt/libepoxy/workflows/macOS/badge.svg) +![MSVC Build](https://github.com/anholt/libepoxy/workflows/MSVC%20Build/badge.svg) +![MSYS2 Build](https://github.com/anholt/libepoxy/workflows/MSYS2%20Build/badge.svg) +[![License: MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT) Epoxy is a library for handling OpenGL function pointer management for you. diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 02b81ef..0000000 --- a/autogen.sh +++ /dev/null @@ -1,16 +0,0 @@ -#! /bin/sh - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd "$srcdir" - -mkdir m4 || exit 1 - -autoreconf -v --install || exit $? -cd "$ORIGDIR" || exit $? - -if test -z "$NOCONFIGURE"; then - exec "$srcdir/configure" "$@" -fi diff --git a/configure.ac b/configure.ac deleted file mode 100644 index b0bb452..0000000 --- a/configure.ac +++ /dev/null @@ -1,275 +0,0 @@ -# Copyright © 2013 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -# Initialize Autoconf -AC_PREREQ([2.60]) -AC_INIT([libepoxy], - [1.5.4], - [https://github.com/anholt/libepoxy], - [libepoxy]) -AC_CONFIG_SRCDIR([Makefile.am]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR([m4]) - -# Initialize Automake -AM_INIT_AUTOMAKE([foreign -Wno-portability dist-xz no-dist-gzip tar-ustar subdir-objects]) - -# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS -m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen. - Hint: either install from source, git://anongit.freedesktop.org/xorg/util/macros or, - depending on you distribution, try package 'xutils-dev' or 'xorg-x11-util-macros'])]) - -XORG_MACROS_VERSION(1.8) -XORG_DEFAULT_OPTIONS - -AC_CHECK_PROGS([PYTHON], [python3 python2 python]) - -# Initialize libtool -AC_DISABLE_STATIC -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL -AC_SYS_LARGEFILE - -AC_CHECK_HEADER([KHR/khrplatform.h], - [AC_DEFINE([HAVE_KHRPLATFORM_H], [1], - [Define to 1 if you have <KHR/khrplatform.h> (used for tests)] - )] - ) - -# OS X defaults to having -Wint-conversion ("warn when passing -# uintptr_t to a void *") by default. Kill that. -XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) - -AC_ARG_ENABLE([x11], - [AC_HELP_STRING([--enable-x11=@<:@yes,no@:>@], [Enable X11 support @<:@default=yes@:>@])], - [enable_x11=$enableval], - [enable_x11=yes]) - -AC_ARG_ENABLE([glx], - [AC_HELP_STRING([--enable-glx=@<:@auto,yes,no@:>@], [Enable GLX support @<:@default=auto@:>@])], - [enable_glx=$enableval], - [enable_glx=auto]) - -# GLX can be used on different platforms, so we expose a -# configure time switch to enable or disable it; in case -# the "auto" default value is set, we only enable GLX -# support on Linux and Unix -AS_CASE([$enable_glx], - [auto], [ - AS_CASE([$host_os], - [mingw*], [build_glx=no], - [darwin*], [build_glx=no], - [android*], [build_glx=no], - [build_glx=yes]) - ], - - [yes], [ - build_glx=yes - ], - - [no], [ - build_glx=no - ], - - [AC_MSG_ERROR([Invalid value "$enable_glx" for option "--enable-glx"])] -]) - -AC_ARG_ENABLE([egl], - [AC_HELP_STRING([--enable-egl=@<:@auto,yes,no@:>@], [Enable EGL support @<:@default=auto@:>@])], - [enable_egl=$enableval], - [enable_egl=auto]) - -AS_CASE([$enable_egl], - [auto], [ - AS_CASE([$host_os], - [mingw*], [build_egl=no], - [darwin*], [build_egl=no], - [build_egl=yes]) - ], - - [yes], [ - build_egl=yes - ], - - [no], [ - build_egl=no - ], - - [AC_MSG_ERROR([Invalid value "$enable_egl" for option "--enable-egl"])] -]) - -# The remaining platform specific API are enabled depending on the -# platform we're building for -AS_CASE([$host_os], - [mingw*], [ - build_wgl=yes - has_znow=yes - # On windows, the DLL has to have all of its functions - # resolved at link time, so we have to link directly against - # opengl32.dll. But that's the only GL provider, anyway. - EPOXY_LINK_LIBS="-lopengl32" - - # Testing our built windows binaries requires that they be run - # under wine. Yeah, we should be nice and autodetect, but - # there's lots of missing autodetection for the testsuite - # (like checking for EGL and GLX libs in non-windows.). - AC_SUBST([LOG_COMPILER], [wine]) - ], - - [darwin*], [ - build_wgl=no - has_znow=no - EPOXY_LINK_LIBS="" - ], - - [ - build_wgl=no - has_znow=yes - # On platforms with dlopen, we load everything dynamically and - # don't link against a specific window system or GL implementation. - EPOXY_LINK_LIBS="" - ] -) - -AC_SUBST(EPOXY_LINK_LIBS) - -if test x$enable_x11 = xno; then - if test x$enable_glx = xyes; then - AC_MSG_ERROR([GLX support is explicitly enabled, but X11 was disabled]) - fi - build_glx=no -else - AC_DEFINE([ENABLE_X11], [1], [Whether X11 support is enabled]) -fi - -AM_CONDITIONAL(BUILD_EGL, test x$build_egl = xyes) -if test x$build_egl = xyes; then - PKG_CHECK_MODULES(EGL, [egl]) - AC_DEFINE([BUILD_EGL], [1], [build EGL tests]) - AC_DEFINE(ENABLE_EGL, [1], [Whether EGL support is enabled]) -fi - -AM_CONDITIONAL(BUILD_GLX, test x$build_glx = xyes) -if test x$build_glx = xyes; then - AC_DEFINE([BUILD_GLX], [1], [build GLX tests]) -fi - -AM_CONDITIONAL(BUILD_WGL, test x$build_wgl = xyes) -if test x$build_wgl = xyes; then - AC_DEFINE([BUILD_WGL], [1], [build WGL tests]) -fi - -AM_CONDITIONAL(HAS_ZNOW, test x$has_znow = xyes) - -AC_CHECK_LIB([GLESv1_CM], [glFlush], [has_gles1=yes], [has_gles1=no]) -AM_CONDITIONAL(HAS_GLES1, test x$has_gles1 = xyes) - -AC_CHECK_LIB([dl], [dlopen], [DLOPEN_LIBS="-ldl"]) -AC_SUBST([DLOPEN_LIBS]) - -savelibs=$LIBS -LIBS=$DLOPEN_LIBS -AC_CHECK_FUNCS([dlvsym], [have_dlvsym=1], [have_dlvsym=0]) -AM_CONDITIONAL(HAVE_DLVSYM, test $have_dlvsym = 1) -LIBS=$savelibs - -VISIBILITY_CFLAGS="" -AS_CASE(["$host"], - - [*-*-mingw*], [ - dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport) - AC_DEFINE([EPOXY_PUBLIC], - [__attribute__((visibility("default"))) __declspec(dllexport) extern], - [defines how to decorate public symbols while building]) - VISIBILITY_CFLAGS="-fvisibility=hidden" - ], - - [ - dnl on other compilers, check if we can do -fvisibility=hidden - SAVED_CFLAGS="${CFLAGS}" - CFLAGS="-fvisibility=hidden" - AC_MSG_CHECKING([for -fvisibility=hidden compiler flag]) - AC_TRY_COMPILE([], [int main (void) { return 0; }], [ - AC_MSG_RESULT(yes) - enable_fvisibility_hidden=yes - ], [ - AC_MSG_RESULT(no) - enable_fvisibility_hidden=no - ]) - CFLAGS="${SAVED_CFLAGS}" - - AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [ - AC_DEFINE([EPOXY_PUBLIC], - [__attribute__((visibility("default"))) extern], - [defines how to decorate public symbols while building]) - VISIBILITY_CFLAGS="-fvisibility=hidden" - ]) - ] -) - -AC_SUBST([VISIBILITY_CFLAGS]) - -if test x$enable_x11 = xyes; then - PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) - if test x$x11 = xno -a x$build_glx = xyes; then - AC_MSG_ERROR([libX11 headers (libx11-dev) are required to build with GLX support]) - fi -else - x11=no -fi - -if test x$build_glx = xyes; then - AC_DEFINE(ENABLE_GLX, [1], [Whether GLX support is enabled]) -fi - -AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) - -PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no]) -PKG_CHECK_MODULES(EGL, [egl], [egl=yes], [egl=no]) - -GL_REQS="" -AS_IF([test x$gl = xyes], [GL_REQS="$GL_REQS gl"]) -AS_IF([test x$build_egl = xyes && test x$egl = xyes], [GL_REQS="$GL_REQS egl"]) -AC_SUBST(GL_REQS) - -# Variables for the pkg-config file; AC_SUBST does not do `test` substitutions, -# so we need to specify the boolean values here -AS_IF([test x$build_glx = xyes], [epoxy_has_glx=1], [epoxy_has_glx=0]) -AS_IF([test x$build_egl = xyes], [epoxy_has_egl=1], [epoxy_has_egl=0]) -AS_IF([test x$build_wgl = xyes], [epoxy_has_wgl=1], [epoxy_has_wgl=0]) -AC_SUBST(epoxy_has_glx) -AC_SUBST(epoxy_has_egl) -AC_SUBST(epoxy_has_wgl) - -AC_CONFIG_FILES([ - epoxy.pc - Makefile - include/epoxy/Makefile - src/Makefile - test/Makefile -]) -AC_OUTPUT - -echo " EGL: $build_egl" -echo " GLX: $build_glx" -echo " WGL: $build_wgl" -echo " PYTHON: $PYTHON" diff --git a/epoxy.pc.in b/epoxy.pc.in deleted file mode 100644 index cdda8d9..0000000 --- a/epoxy.pc.in +++ /dev/null @@ -1,16 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -epoxy_has_glx=@epoxy_has_glx@ -epoxy_has_egl=@epoxy_has_egl@ -epoxy_has_wgl=@epoxy_has_wgl@ - -Name: epoxy -Description: epoxy GL dispatch Library -Version: @PACKAGE_VERSION@ -Cflags: -I${includedir} -Libs: -L${libdir} -lepoxy -Libs.private: @DLOPEN_LIBS@ -Requires.private: @GL_REQS@ diff --git a/include/epoxy/Makefile.am b/include/epoxy/Makefile.am deleted file mode 100644 index 494c96e..0000000 --- a/include/epoxy/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright © 2013 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -epoxyincludedir = $(includedir)/epoxy - -epoxyinclude_HEADERS = \ - common.h \ - gl.h \ - $(EGL_INCLUDES) \ - $(GLX_INCLUDES) \ - $(WGL_INCLUDES) \ - $() - -if BUILD_EGL -EGL_INCLUDES = egl.h -endif - -if BUILD_GLX -GLX_INCLUDES = glx.h -endif - -if BUILD_WGL -WGL_INCLUDES = wgl.h -endif diff --git a/include/epoxy/meson.build b/include/epoxy/meson.build index 65f83be..c679efe 100644 --- a/include/epoxy/meson.build +++ b/include/epoxy/meson.build @@ -25,7 +25,6 @@ foreach g: generated_headers input: registry, output: [ gen_header ], command: [ - python, gen_dispatch_py, '--header', '--no-source', diff --git a/meson.build b/meson.build index 91d9792..e1d8d8b 100644 --- a/meson.build +++ b/meson.build @@ -1,11 +1,11 @@ -project('libepoxy', 'c', version: '1.5.4', +project('libepoxy', 'c', version: '1.5.10', default_options: [ 'buildtype=debugoptimized', 'c_std=gnu99', 'warning_level=1', ], license: 'MIT', - meson_version: '>= 0.47.0') + meson_version: '>= 0.54.0') epoxy_version = meson.project_version().split('.') epoxy_major_version = epoxy_version[0].to_int() @@ -95,6 +95,7 @@ if cc.get_id() == 'msvc' '-we4053', # an expression of type void was used as an operand '-we4071', # no function prototype given '-we4819', # the file contains a character that cannot be represented in the current code page + '/utf-8', # Set the input and exec encoding to utf-8, like is the default with GCC ] elif cc.get_id() == 'gcc' or cc.get_id() == 'clang' test_cflags = [ @@ -165,9 +166,11 @@ endif dl_dep = cc.find_library('dl', required: false) gl_dep = dependency('gl', required: false) egl_dep = dependency('egl', required: false) +elg_headers_dep = egl_dep.partial_dependency(compile_args: true, includes: true) # Optional dependencies for tests x11_dep = dependency('x11', required: false) +x11_headers_dep = x11_dep.partial_dependency(compile_args: true, includes: true) # GLES v2 and v1 may have pkg-config files, courtesy of downstream # packagers; let's check those first, and fall back to find_library() @@ -196,14 +199,8 @@ if host_system == 'windows' gdi32_dep = cc.find_library('gdi32', required: true) endif -# Python -python = import('python3').find_python() -if not python.found() - python = find_program('python', required: true) -endif - # Generates the dispatch tables -gen_dispatch_py = files('src/gen_dispatch.py') +gen_dispatch_py = find_program('src/gen_dispatch.py') gl_registry = files('registry/gl.xml') egl_registry = files('registry/egl.xml') diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 73f7435..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,184 +0,0 @@ -# Copyright © 2013 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - $() - -AM_CFLAGS = \ - $(CWARNFLAGS) \ - $(VISIBILITY_CFLAGS) \ - $(X11_CFLAGS) \ - $(EGL_CFLAGS) \ - $() - -epoxyincludedir = $(includedir)/epoxy -lib_LTLIBRARIES = libepoxy.la - -epoxyinclude_DATA = \ - $(GENERATED_GL_INCLUDES) \ - $(INSTALL_GLX_INCLUDES) \ - $(INSTALL_EGL_INCLUDES) \ - $(INSTALL_WGL_INCLUDES) \ - $() - -if BUILD_EGL -INSTALL_EGL_INCLUDES = $(GENERATED_EGL_INCLUDES) -endif - -if BUILD_GLX -INSTALL_GLX_INCLUDES = $(GENERATED_GLX_INCLUDES) -endif - -if BUILD_WGL -INSTALL_WGL_INCLUDES = $(GENERATED_WGL_INCLUDES) -endif - -GENERATED_GL_INCLUDES = \ - $(builddir)/../include/epoxy/gl_generated.h \ - $() - -GENERATED_GLX_INCLUDES = \ - $(builddir)/../include/epoxy/glx_generated.h \ - $() - -GENERATED_EGL_INCLUDES = \ - $(builddir)/../include/epoxy/egl_generated.h \ - $() - -GENERATED_WGL_INCLUDES = \ - $(builddir)/../include/epoxy/wgl_generated.h \ - $() - -GENERATED_GL_SOURCE = gl_generated_dispatch.c - -GENERATED_GL = \ - $(GENERATED_GL_SOURCE) \ - $(GENERATED_GL_INCLUDES) \ - $() - -GENERATED_GLX_SOURCE = glx_generated_dispatch.c - -GENERATED_GLX = \ - $(GENERATED_GLX_SOURCE) \ - $(GENERATED_GLX_INCLUDES) \ - $() - -GENERATED_EGL_SOURCE = egl_generated_dispatch.c - -GENERATED_EGL = \ - $(GENERATED_EGL_SOURCE) \ - $(GENERATED_EGL_INCLUDES) \ - $() - -GENERATED_WGL_SOURCE = wgl_generated_dispatch.c - -GENERATED_WGL = \ - $(GENERATED_WGL_SOURCE) \ - $(GENERATED_WGL_INCLUDES) \ - $() - -BUILT_SOURCES = \ - $(GENERATED_GL) \ - $(GENERATED_GLX) \ - $(GENERATED_EGL) \ - $(GENERATED_WGL) \ - $() -CLEANFILES = $(BUILT_SOURCES) - -libepoxy_la_SOURCES = \ - dispatch_common.c \ - dispatch_common.h \ - $(GENERATED_GL) \ - $(BUILD_EGL_CODE) \ - $(BUILD_GLX_CODE) \ - $(BUILD_WGL_CODE) \ - $() - -libepoxy_la_LDFLAGS = \ - -no-undefined \ - -Bsymbolic-functions \ - $() - -libepoxy_la_LIBADD = \ - $(EPOXY_LINK_LIBS) \ - $(DLOPEN_LIBS) \ - $() - -if BUILD_EGL -BUILD_EGL_CODE = \ - $(GENERATED_EGL) \ - dispatch_egl.c \ - $() -endif - -if BUILD_GLX -BUILD_GLX_CODE = \ - $(GENERATED_GLX) \ - dispatch_glx.c \ - $() -endif - -if BUILD_WGL -BUILD_WGL_CODE = \ - $(GENERATED_WGL) \ - dispatch_wgl.c \ - $() -endif - -# These are generated alongside the .c file. -$(GENERATED_GL_INCLUDES): $(GENERATED_GL_SOURCE) -$(GENERATED_GLX_INCLUDES): $(GENERATED_GLX_SOURCE) -$(GENERATED_EGL_INCLUDES): $(GENERATED_EGL_SOURCE) -$(GENERATED_WGL_INCLUDES): $(GENERATED_WGL_SOURCE) - -$(GENERATED_GL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/gl.xml - @$(MKDIR_P) $(top_builddir)/include/epoxy - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \ - --srcdir $(top_builddir)/src \ - --includedir $(top_builddir)/include/epoxy \ - $(top_srcdir)/registry/gl.xml - -$(GENERATED_GLX_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/glx.xml - @$(MKDIR_P) $(top_builddir)/include/epoxy - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \ - --srcdir $(top_builddir)/src \ - --includedir $(top_builddir)/include/epoxy \ - $(top_srcdir)/registry/glx.xml - -$(GENERATED_EGL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/egl.xml - @$(MKDIR_P) $(top_builddir)/include/epoxy - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \ - --srcdir $(top_builddir)/src \ - --includedir $(top_builddir)/include/epoxy \ - $(top_srcdir)/registry/egl.xml - -$(GENERATED_WGL_SOURCE): $(srcdir)/gen_dispatch.py $(top_srcdir)/registry/wgl.xml - @$(MKDIR_P) $(top_builddir)/include/epoxy - $(AM_V_GEN)$(PYTHON) $(srcdir)/gen_dispatch.py \ - --srcdir $(top_builddir)/src \ - --includedir $(top_builddir)/include/epoxy \ - $(top_srcdir)/registry/wgl.xml - -EXTRA_DIST = \ - gen_dispatch.py \ - $() diff --git a/src/dispatch_common.c b/src/dispatch_common.c index b3e4f5f..153eb7c 100644 --- a/src/dispatch_common.c +++ b/src/dispatch_common.c @@ -392,10 +392,10 @@ epoxy_is_desktop_gl(void) } static int -epoxy_internal_gl_version(GLenum version_string, int error_version) +epoxy_internal_gl_version(GLenum version_string, int error_version, int factor) { const char *version = (const char *)glGetString(version_string); - GLint major, minor, factor; + GLint major, minor; int scanf_count; if (!version) @@ -413,11 +413,6 @@ epoxy_internal_gl_version(GLenum version_string, int error_version) abort(); } - if (minor >= 10) - factor = 100; - else - factor = 10; - return factor * major + minor; } @@ -439,7 +434,7 @@ epoxy_internal_gl_version(GLenum version_string, int error_version) int epoxy_gl_version(void) { - return epoxy_internal_gl_version(GL_VERSION, 0); + return epoxy_internal_gl_version(GL_VERSION, 0, 10); } int @@ -448,7 +443,7 @@ epoxy_conservative_gl_version(void) if (api.begin_count) return 100; - return epoxy_internal_gl_version(GL_VERSION, 100); + return epoxy_internal_gl_version(GL_VERSION, 100, 10); } /** @@ -471,7 +466,7 @@ epoxy_glsl_version(void) { if (epoxy_gl_version() >= 20 || epoxy_has_gl_extension ("GL_ARB_shading_language_100")) - return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0); + return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0, 100); return 0; } @@ -675,13 +670,27 @@ epoxy_load_gl(void) get_dlopen_handle(&api.gl_handle, OPENGL_LIB, true, true); #else + // Prefer GLX_LIB over OPENGL_LIB to maintain existing behavior. + // Using the inverse ordering OPENGL_LIB -> GLX_LIB, causes issues such as: + // https://github.com/anholt/libepoxy/issues/240 (apitrace missing calls) + // https://github.com/anholt/libepoxy/issues/252 (Xorg boot crash) + get_dlopen_handle(&api.glx_handle, GLX_LIB, false, true); + api.gl_handle = api.glx_handle; + #if defined(OPENGL_LIB) if (!api.gl_handle) - get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true); + get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true); #endif - get_dlopen_handle(&api.glx_handle, GLX_LIB, true, true); - api.gl_handle = api.glx_handle; + if (!api.gl_handle) { +#if defined(OPENGL_LIB) + fprintf(stderr, "Couldn't open %s or %s\n", GLX_LIB, OPENGL_LIB); +#else + fprintf(stderr, "Couldn't open %s\n", GLX_LIB); +#endif + abort(); + } + #endif } diff --git a/src/dispatch_common.h b/src/dispatch_common.h index a361ccc..a136943 100644 --- a/src/dispatch_common.h +++ b/src/dispatch_common.h @@ -47,9 +47,12 @@ #endif #if PLATFORM_HAS_EGL # if !ENABLE_X11 -/* Mesa uses this symbol to avoid including X11 headers when including - * EGL.h; since X11 was explicitly disabled at configuration time, we - * should do the same +/* Disable including X11 headers if the X11 support was disabled at + * configuration time + */ +# define EGL_NO_X11 1 +/* Older versions of Mesa use this symbol to achieve the same result + * as EGL_NO_X11 */ # define MESA_EGL_NO_X11_HEADERS 1 # endif diff --git a/src/gen_dispatch.py b/src/gen_dispatch.py index f4d0f31..3daad84 100755 --- a/src/gen_dispatch.py +++ b/src/gen_dispatch.py @@ -1,3 +1,4 @@ +#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright © 2013 Intel Corporation @@ -466,6 +467,7 @@ class Generator(object): func.args_decl)) def write_header_header(self, out_file): + self.close() self.out_file = open(out_file, 'w') self.outln('/* GL dispatch header.') @@ -514,9 +516,17 @@ class Generator(object): self.outln('typedef uint32_t khronos_uint32_t;') self.outln('typedef uint64_t khronos_uint64_t;') self.outln('typedef float khronos_float_t;') - self.outln('typedef long khronos_intptr_t;') - self.outln('typedef long khronos_ssize_t;') - self.outln('typedef unsigned long khronos_usize_t;') + self.outln('#ifdef _WIN64') + self.outln('typedef signed long long int khronos_intptr_t;') + self.outln('typedef unsigned long long int khronos_uintptr_t;') + self.outln('typedef signed long long int khronos_ssize_t;') + self.outln('typedef unsigned long long int khronos_usize_t;') + self.outln('#else') + self.outln('typedef signed long int khronos_intptr_t;') + self.outln('typedef unsigned long int khronos_uintptr_t;') + self.outln('typedef signed long int khronos_ssize_t;') + self.outln('typedef unsigned long int khronos_usize_t;') + self.outln('#endif') self.outln('typedef uint64_t khronos_utime_nanoseconds_t;') self.outln('typedef int64_t khronos_stime_nanoseconds_t;') self.outln('#define KHRONOS_MAX_ENUM 0x7FFFFFFF') @@ -525,7 +535,6 @@ class Generator(object): self.outln(' KHRONOS_TRUE = 1,') self.outln(' KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM') self.outln('} khronos_boolean_enum_t;') - self.outln('typedef uintptr_t khronos_uintptr_t;') if self.target == "glx": self.outln('#include <X11/Xlib.h>') @@ -756,6 +765,7 @@ class Generator(object): self.outln('') def write_source(self, f): + self.close() self.out_file = open(f, 'w') self.outln('/* GL dispatch code.') @@ -848,6 +858,12 @@ class Generator(object): for func in self.sorted_functions: self.write_function_pointer(func) + def close(self): + if self.out_file: + self.out_file.close() + self.out_file = None + + argparser = argparse.ArgumentParser(description='Generate GL dispatch wrappers.') argparser.add_argument('files', metavar='file.xml', nargs='+', help='GL API XML files to be parsed') argparser.add_argument('--outputdir', metavar='dir', required=False, help='Destination directory for files (default to current dir)') @@ -912,3 +928,5 @@ for f in args.files: generator.write_header(os.path.join(includedir, name + '_generated.h')) if build_source: generator.write_source(os.path.join(srcdir, name + '_generated_dispatch.c')) + + generator.close() diff --git a/src/meson.build b/src/meson.build index fe092d1..e19a918 100644 --- a/src/meson.build +++ b/src/meson.build @@ -33,7 +33,6 @@ foreach g: generated_sources input: registry, output: [ gen_source ], command: [ - python, gen_dispatch_py, '--source', '--no-header', @@ -54,19 +53,24 @@ if host_system == 'linux' and cc.get_id() == 'gcc' endif # Maintain compatibility with autotools; see: https://github.com/anholt/libepoxy/issues/108 -if host_system == 'darwin' - common_ldflags += [ '-compatibility_version 1', '-current_version 1.0', ] -endif +darwin_versions = [1, '1.0'] epoxy_deps = [ dl_dep, ] if host_system == 'windows' epoxy_deps += [ opengl32_dep, gdi32_dep ] endif +if enable_x11 + epoxy_deps += [ x11_headers_dep, ] +endif +if build_egl + epoxy_deps += [ elg_headers_dep, ] +endif libepoxy = library( 'epoxy', sources: epoxy_sources + epoxy_headers, version: '0.0.0', + darwin_versions: darwin_versions, install: true, dependencies: epoxy_deps, include_directories: libepoxy_inc, @@ -74,17 +78,22 @@ libepoxy = library( link_args: common_ldflags, ) +epoxy_has_glx = build_glx ? '1' : '0' +epoxy_has_egl = build_egl ? '1' : '0' +epoxy_has_wgl = build_wgl ? '1' : '0' + libepoxy_dep = declare_dependency( link_with: libepoxy, include_directories: libepoxy_inc, dependencies: epoxy_deps, sources: epoxy_headers, + variables: { + 'epoxy_has_glx': epoxy_has_glx, + 'epoxy_has_egl': epoxy_has_egl, + 'epoxy_has_wgl': epoxy_has_wgl, + }, ) -epoxy_has_glx = build_glx ? '1' : '0' -epoxy_has_egl = build_egl ? '1' : '0' -epoxy_has_wgl = build_wgl ? '1' : '0' - # We don't want to add these dependencies to the library, as they are # not needed when building Epoxy; we do want to add them to the generated # pkg-config file, for consumers of Epoxy diff --git a/test/.gitignore b/test/.gitignore deleted file mode 100644 index 78919f3..0000000 --- a/test/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -egl_and_glx_different_pointers_egl -egl_and_glx_different_pointers_egl_glx -egl_and_glx_different_pointers_glx -egl_has_extension_nocontext -egl_gl -egl_gles1_without_glx -egl_gles2_without_glx -glx_alias_prefer_same_name -glx_beginend -glx_gles2 -glx_glxgetprocaddress_nocontext -glx_has_extension_nocontext -glx_public_api -glx_public_api_core -glx_shared_znow -glx_static -headerguards -khronos_typedefs -miscdefines -wgl_core_and_exts -wgl_usefontbitmaps -wgl_usefontbitmaps_unicode -*.log -*.trs diff --git a/test/Makefile.am b/test/Makefile.am deleted file mode 100644 index fc3ffcd..0000000 --- a/test/Makefile.am +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright © 2013 Intel Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -EPOXY = $(builddir)/../src/libepoxy.la - -check_LTLIBRARIES = \ - $(EGL_UTIL_LIB) \ - $(GLX_UTIL_LIB) \ - $(WGL_UTIL_LIB) \ - $() - -libegl_common_la_SOURCES = \ - egl_common.c \ - egl_common.h - $() - -libglx_common_la_SOURCES = \ - glx_common.c \ - glx_common.h - $() - -libwgl_common_la_SOURCES = \ - wgl_common.c \ - wgl_common.h - $() -libwgl_common_la_LIBADD = $(EPOXY) - -AM_CPPFLAGS = \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ - $(X11_CFLAGS) \ - $(EGL_CFLAGS) \ - $() - -AM_CFLAGS = $(CWARNFLAGS) - -TESTS = \ - $(EGL_TESTS) \ - $(GLX_TESTS) \ - $(EGL_AND_GLX_TESTS) \ - $(WGL_TESTS) \ - gl_version$(EXEEXT) \ - headerguards$(EXEEXT) \ - miscdefines$(EXEEXT) \ - khronos_typedefs$(EXEEXT) \ - $() - -check_BINARIES = $(EGL_AND_GLX_BIN) - -XFAIL_TESTS = \ - $() - -check_PROGRAMS = $(TESTS) - -if BUILD_EGL -EGL_TESTS = \ - $() - -if HAVE_X11 -EGL_TESTS += \ - egl_has_extension_nocontext \ - egl_epoxy_api \ - egl_gles2_without_glx \ - $() - -if HAS_GLES1 -EGL_TESTS += egl_gles1_without_glx -endif - -EGL_UTIL_LIB = libegl_common.la -endif -endif - -if BUILD_GLX -if HAS_ZNOW -GLX_SHARED_ZNOW = glx_shared_znow -endif - -if BUILD_EGL -if BUILD_GLX -if HAVE_DLVSYM -EGL_AND_GLX_TESTS = \ - egl_gl \ - $() -endif -endif -endif - -if HAVE_DLVSYM -GLX_DLVSYM_TESTS = \ - glx_alias_prefer_same_name \ - glx_gles2 \ - $() -endif - -GLX_TESTS = \ - glx_beginend \ - glx_public_api \ - glx_public_api_core \ - glx_glxgetprocaddress_nocontext \ - glx_has_extension_nocontext \ - glx_static \ - $(GLX_SHARED_ZNOW) \ - $(GLX_DLVSYM_TESTS) \ - $() - -GLX_UTIL_LIB = libglx_common.la -endif - -if BUILD_WGL -WGL_TESTS = \ - wgl_core_and_exts$(EXEEXT) \ - wgl_per_context_funcptrs$(EXEEXT) \ - wgl_usefontbitmaps$(EXEEXT) \ - wgl_usefontbitmaps_unicode$(EXEEXT) \ - $() - -WGL_UTIL_LIB = libwgl_common.la -endif - -egl_has_extension_nocontext_LDADD = $(EPOXY) libegl_common.la $(X11_LIBS) - -egl_epoxy_api_LDADD = $(EPOXY) libegl_common.la $(X11_LIBS) - -egl_gl_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS) - -egl_gles1_without_glx_CPPFLAGS = $(AM_CPPFLAGS) -DGLES_VERSION=1 -egl_gles1_without_glx_SOURCES = egl_without_glx.c -egl_gles1_without_glx_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS) - -egl_gles2_without_glx_CPPFLAGS = $(AM_CPPFLAGS) -DGLES_VERSION=2 -egl_gles2_without_glx_SOURCES = egl_without_glx.c -egl_gles2_without_glx_LDADD = $(EPOXY) $(DLOPEN_LIBS) libegl_common.la $(X11_LIBS) - -glx_alias_prefer_same_name_SOURCES = glx_alias_prefer_same_name.c dlwrap.c dlwrap.h -glx_alias_prefer_same_name_LDFLAGS = -rdynamic -glx_alias_prefer_same_name_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) $(DLOPEN_LIBS) - -glx_beginend_LDADD = $(EPOXY) libglx_common.la $(GL_LIBS) $(X11_LIBS) - -glx_gles2_SOURCES = glx_gles2.c dlwrap.c dlwrap.h -glx_gles2_LDFLAGS = -rdynamic -glx_gles2_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) $(DLOPEN_LIBS) - -glx_public_api_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) - -glx_public_api_core_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) - -glx_glxgetprocaddress_nocontext_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) - -glx_has_extension_nocontext_LDADD = $(EPOXY) libglx_common.la $(X11_LIBS) - -glx_static_CFLAGS = -DNEEDS_TO_BE_STATIC -glx_static_LDADD = $(DLOPEN_LIBS) $(EPOXY) libglx_common.la $(X11_LIBS) -glx_static_LDFLAGS = -static - -glx_shared_znow_SOURCES = glx_static.c -glx_shared_znow_LDADD = $(DLOPEN_LIBS) $(EPOXY) libglx_common.la $(X11_LIBS) -glx_shared_znow_LDFLAGS = -Wl,-z,now - -khronos_typedefs_SOURCES = \ - khronos_typedefs.c \ - khronos_typedefs.h \ - khronos_typedefs_nonepoxy.c \ - $() - -wgl_core_and_exts_LDADD = $(EPOXY) libwgl_common.la -lgdi32 - -wgl_per_context_funcptrs_LDADD = $(EPOXY) libwgl_common.la -lgdi32 - -wgl_usefontbitmaps_LDADD = $(EPOXY) libwgl_common.la -lgdi32 -wgl_usefontbitmaps_unicode_SOURCES = wgl_usefontbitmaps.c -wgl_usefontbitmaps_unicode_LDADD = $(EPOXY) libwgl_common.la -lgdi32 -wgl_usefontbitmaps_unicode_CPPFLAGS = $(AM_CPPFLAGS) -DUNICODE diff --git a/test/gl_version.c b/test/gl_version.c index 9ab0080..8873ef7 100644 --- a/test/gl_version.c +++ b/test/gl_version.c @@ -29,7 +29,7 @@ GLenum mock_enum; const char *mock_gl_version; const char *mock_glsl_version; -static const GLubyte *override_glGetString(GLenum name) +static const GLubyte * EPOXY_CALLSPEC override_glGetString(GLenum name) { switch (name) { case GL_VERSION: @@ -80,6 +80,8 @@ main(int argc, char **argv) pass = pass && test_version("3.0 Mesa 13.0.6", 30, "1.30", 130); + pass = pass && test_version("OpenGL ES 2.0 Mesa 20.1.0-devel (git-4bb19a330e)", 20, + "OpenGL ES GLSL ES 1.0.16", 100); pass = pass && test_version("OpenGL ES 3.2 Mesa 18.3.0-devel", 32, "OpenGL ES GLSL ES 3.20", 320); pass = pass && test_version("4.5.0 NVIDIA 384.130", 45, |