aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:02:16 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 05:02:16 +0000
commitebf18ddc6b242006a6a26d0ac71d9500452d79e4 (patch)
tree2c0a48f4a5f4adf79a5f761e02a364cc13f519d7
parent5ed75da643be5790ea074f55f6d25470418285c8 (diff)
parent0146411f7d7d31c4dc8321fd2626f8a7fb905f25 (diff)
downloadlibepoxy-android14-mainline-os-statsd-release.tar.gz
Change-Id: I09da24b250f536c71eab1d260e58cc8b46e9a8d4
-rw-r--r--.appveyor.yml67
-rw-r--r--.editorconfig8
-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.yml38
-rw-r--r--.github/workflows/macos.yml26
-rw-r--r--.github/workflows/msvc-env.yml23
-rw-r--r--.github/workflows/msys2.yml27
-rw-r--r--.travis.yml54
-rw-r--r--.travis/Dockerfile29
-rwxr-xr-x.travis/run-docker.sh12
-rw-r--r--METADATA12
-rw-r--r--Makefile.am68
-rw-r--r--README.md7
-rwxr-xr-xautogen.sh16
-rw-r--r--configure.ac275
-rw-r--r--epoxy.pc.in16
-rw-r--r--include/epoxy/Makefile.am42
-rw-r--r--include/epoxy/meson.build1
-rw-r--r--meson.build15
-rw-r--r--src/Makefile.am184
-rw-r--r--src/dispatch_common.c35
-rw-r--r--src/dispatch_common.h9
-rwxr-xr-xsrc/gen_dispatch.py26
-rw-r--r--src/meson.build25
-rw-r--r--test/.gitignore24
-rw-r--r--test/Makefile.am192
-rw-r--r--test/gl_version.c4
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
diff --git a/METADATA b/METADATA
index 4a8f3d8..f6c32f4 100644
--- a/METADATA
+++ b/METADATA
@@ -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
diff --git a/README.md b/README.md
index 56b6a65..9d83ed9 100644
--- a/README.md
+++ b/README.md
@@ -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,