Commit 38183d55 authored by Rye Mutt's avatar Rye Mutt 🍞
Browse files

Merge branch 'vendor'

parents 6a49166a b41c5dec
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
......@@ -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
......
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
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
#!/bin/bash
dump_log_and_quit() {
local exitcode=$1
cat meson-logs/testlog.txt
exit $exitcode
}
# Start Xvfb
XVFB_WHD=${XVFB_WHD:-1280x720x16}
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
xvfb=$!
export DISPLAY=:99
srcdir=$( pwd )
builddir=$( mktemp -d build_XXXXXX )
meson --prefix /usr "$@" $builddir $srcdir || exit $?
cd $builddir
ninja || exit $?
meson test || dump_log_and_quit $?
cd ..
# Stop Xvfb
kill -9 ${xvfb}
#!/bin/sh
dump_log_and_quit() {
local exitcode=$1
cat meson-logs/testlog.txt
exit $exitcode
}
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 || dump_log_and_quit $?
cd ..
#!/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
# 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
[![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.
......
#! /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
# 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"
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@
# 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