commit 5564f9d28de46b2e1236dd7252549698efe66d8a Author: Emmanuele Bassi Date: Thu Mar 2 18:26:58 2017 +0000 Release Epoxy 1.4.1 (stable) configure.ac | 2 +- meson.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit bdc2668757aa21744954377067a6d1c2aea4203f Author: Emmanuele Bassi Date: Wed Mar 1 20:44:07 2017 +0000 Remove /W3 from the MSVC compiler flags Meson already uses /W2, like it uses -Wall with GCC. meson.build | 1 - 1 file changed, 1 deletion(-) commit 3eaddbef62ae83561417e6216cc72eeba98162f2 Author: Emmanuele Bassi Date: Wed Mar 1 12:36:00 2017 +0000 Simplify the code generation rules for Meson The code generation rules are explicitly built for each supported API target, but they ought to be refactored since they are pretty much identical. In order to do that, we can store the arguments to the custom_target rules inside an array and then iterate over each element. This cuts down the complexity of the Meson build, and the chances of getting something wrong due to duplication. include/epoxy/meson.build | 98 +++++++++++++------------------------------- src/meson.build | 102 ++++++++++++++++------------------------------ 2 files changed, 64 insertions(+), 136 deletions(-) commit d6c4784401f613f410198926535b0462aa2dc13e Merge: b5d921a fa7d140 Author: Emmanuele Bassi Date: Wed Feb 15 16:50:25 2017 +0000 Merge branch 'python-gen-dispatch' commit fa7d140eb524b2f56abc9ced757ef866ff2bb99a Author: Emmanuele Bassi Date: Wed Feb 15 16:48:39 2017 +0000 Annotate build issues with Meson We depend on an older version of Meson; once we can bump up the minimum version, we'll be able to fix a couple of less than optimal uses of the Meson API. meson.build | 4 ++++ 1 file changed, 4 insertions(+) commit 877fe816a75030c5e82b1b1b72398033011afbec Author: Emmanuele Bassi Date: Mon Feb 13 09:33:19 2017 +0000 Allow using Python3 to run gen_dispatch.py This way, we don't have to depend on Python2 on newer OSes. configure.ac | 2 +- meson.build | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) commit 89f9aa044fbca703670cbaa037716112c7f7fefb Author: Emmanuele Bassi Date: Mon Feb 13 09:26:57 2017 +0000 Remove the shebang from gen_dispatch.py Instead of having Meson determine the invocator through the shebang line we explicitly pass the script file to the Python interpreter. This will allow us to either use Python3 or Python2, or whatever Python.exe is available on Windows. include/epoxy/meson.build | 4 ++++ meson.build | 5 ++++- src/gen_dispatch.py | 1 - src/meson.build | 4 ++++ 4 files changed, 12 insertions(+), 2 deletions(-) commit b5d921ae4569d39e10199e25a487bd8a23edd750 Author: Emmanuele Bassi Date: Wed Feb 15 14:00:28 2017 +0000 doc: Check for 'dot' and add the relevant configuration We don't really use it, right now, but it may come in handy later, and it doesn't cost us anything, since the whole thing is optional anyway. doc/Doxyfile.in | 43 +++++++++++++++++++++++++++++++++++++++---- doc/meson.build | 6 ++++++ 2 files changed, 45 insertions(+), 4 deletions(-) commit 8d9636115887ce6d63ad43ebe5c775335779dc15 Author: Emmanuele Bassi Date: Wed Feb 15 13:59:31 2017 +0000 doc: Ignore C++ guard macros We don't need Doxygen to care about those. doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3bb77b799601b7b70b34088ac1ae96db8d5e3178 Author: Emmanuele Bassi Date: Wed Feb 15 13:58:48 2017 +0000 Annotate new Epoxy symbols API added in 1.4 should be annotated as such. src/dispatch_egl.c | 2 ++ src/dispatch_glx.c | 2 ++ 2 files changed, 4 insertions(+) commit c03982bce7e4ecf953bd96a5c525eeb455efa161 Author: Emmanuele Bassi Date: Wed Feb 15 12:09:06 2017 +0000 Hide Appveyor YAML file Like we do for the TravisCI YAML file, use the leading dot notation to hide the Appveyor YAML file from directory listing on Unix-like OSes. appveyor.yml => .appveyor.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) commit f1c038a54d396d554f6e67d3a88de00907076ca7 Author: Emmanuele Bassi Date: Fri Feb 10 17:57:01 2017 +0000 Update the "why not GLEW" section GLEW has grown support for OpenGL 3.2+ core contexts over the years. Everything else has stayed pretty much the same, though, so you should still use Epoxy over libGLEW. README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit 176db4b655efe91996bba52c45ec71775ceb3452 Author: Emmanuele Bassi Date: Fri Feb 10 11:43:03 2017 +0000 Add the Appveyor build badge Gamifying the development experience, once achievement at a time. README.md | 1 + 1 file changed, 1 insertion(+) commit 48ee13ed3cafd3e4b0c76eedf1355f512173d4fd Author: Emmanuele Bassi Date: Thu Feb 9 17:10:34 2017 +0000 Define a macro directory in the autotools build As libtool suggest we do; this also allows using ACLOCAL_AMFLAGS inside build that create a separate environment with their own m4 macros, like jhbuild and Cerberus. In order to avoid a warning from autoreconf, we create the empty macros directory during the autogen.sh step; aclocal would create the directory for us anyway, but different versions of autotools may have different behaviours. Closes: #58 Makefile.am | 2 ++ autogen.sh | 2 ++ configure.ac | 1 + 3 files changed, 5 insertions(+) commit cf81586a6c4e1e7faaff94701486f24b1e3c2a9b Merge: ef1ef6c f658588 Author: Emmanuele Bassi Date: Fri Feb 10 11:12:16 2017 +0000 Merge branch 'appveyor' Closes #95 commit f658588e12088d4e21f0c02032a57990db189209 Author: Tommy Marrinan Date: Fri Feb 10 10:51:24 2017 +0000 Add Appveyor script Appveyor is a CI infrastructure like Travis, but oriented at building on Windows environment, as opposed to Linux and macOS. By using Appveyor we can test changes to Epoxy and make sure that Windows builds won't break. Additionally, Appveyor allows to deploy build artefacts, which means we can generate builds for Epoxy releases. Signed-off-by: Emmanuele Bassi appveyor.yml | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit baa76b69c419387d6f4e8825620897f4ba89880a Author: Emmanuele Bassi Date: Fri Feb 10 10:47:22 2017 +0000 Remove unnecessary bits from the documentation build rules We don't need to list the source files as we use a glob rule in the Doxyfile itself. doc/meson.build | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit ef1ef6cadbba4cb599177f19af6c1e10fb04fd58 Author: Emmanuele Bassi Date: Fri Feb 10 10:47:22 2017 +0000 Remove unnecessary bits from the documentation build rules We don't need to list the source files as we use a glob rule in the Doxyfile itself. doc/meson.build | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) commit 188d54271b344f151535dd5e11b62db0bb616407 Author: Emmanuele Bassi Date: Thu Feb 9 17:09:40 2017 +0000 Ignore non-build branches in Travis The khronos-registry branch contains only the registry XML files. The debian branch contains the Debian packaging files. .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) commit 87371e9005771c42dba9b934489e9ce3d94bb5a8 Author: Emmanuele Bassi Date: Thu Feb 9 14:30:13 2017 +0000 Add TravisCI build badge to the README README.md | 2 ++ 1 file changed, 2 insertions(+) commit 4b7b5422dbb705ec0dab00cc18a8e915f8b334c0 Author: Emmanuele Bassi Date: Thu Feb 9 13:51:30 2017 +0000 Update the TravisCI environment to use Docker The Travis environment is terribly outdated, and they are not really subtly pushing people to use Docker to set up their own containerised CI environments instead of pulling from Ubuntu 12.04 or 14.04. Let's try using this approach: - create a Docker image that pulls from Debian Stretch - set up a build and test environment - push the image to the Docker Hub - create a derived Docker image that copies the Epoxy repo when running under Travis - run the build and test script inside the derived image This is similar to what Meson does for its CI. .travis.yml | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) commit 9b56140962ee6358184fb7c4ff2d5e3fac7dd7a9 Author: Emmanuele Bassi Date: Thu Feb 9 13:48:59 2017 +0000 Add compiler arguments for MSVC builds We're using a bunch of compiler arguments when building with GCC and compilers that expose a GCC compatibility layer, but we should also have warnings when building with MSVC. GLib has a bunch of compiler arguments, taken from the "Win32 Programming" book, that we can reuse. meson.build | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) commit 8a4f42a7136e9b30402ad22e8e1a34d420966cd8 Author: Emmanuele Bassi Date: Wed Feb 8 23:03:04 2017 +0000 Add editorconfig file The editorconfig[0] format is getting traction in various code editors. [0]: http://editorconfig.org/ .editorconfig | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) commit 2432daf4cf58b5ff11e008ca34811588285c43b3 Author: Emmanuele Bassi Date: Wed Feb 8 17:52:32 2017 +0000 Drop unnecessary inclusion of "config.h" The WGL tests should not include "config.h", since we're trying to test the use of Epoxy, not its internals. test/headerguards.c | 2 +- test/wgl_core_and_exts.c | 1 - test/wgl_per_context_funcptrs.c | 1 - test/wgl_usefontbitmaps.c | 1 - 4 files changed, 1 insertion(+), 4 deletions(-) commit 37eaaada97e121842df865fa4bdf513a9b16d726 Author: Emmanuele Bassi Date: Wed Feb 8 17:51:34 2017 +0000 Test compiler arguments for the appropriate compiler MSVC does not expose GCC-compatible compiler arguments, so there's no point in even trying. meson.build | 71 +++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 33 deletions(-) commit d35870f3b6951faeb6406c3f931e09901b05c82f Author: Emmanuele Bassi Date: Wed Feb 8 16:47:39 2017 +0000 Update the symbol visibility rules under MSVC For the Visual Studio C compiler we need to annotate our public symbols with `__declspec(dllimport)` to ensure they are visible when dynamically linking to Epoxy's DLL. This is needed because under Windows we use a dispatch table, instead of wrapper functions, thus the symbol visibility rules change. Compiling with MingW will automatically add `__declspec(dllimport)` for us. Thanks to Nirbheek Chauhan for the help in debugging the issue. Fixes #104 include/epoxy/common.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 0ab213bf8818446898b4a8680feb774a072f57ba Author: Emmanuele Bassi Date: Wed Feb 8 15:55:21 2017 +0000 Add Meson build files to the autotools dist This way we can take a dist tarball created through autotools, and use Meson to build it. Once Meson gets support for disting, we'll do the same with the autotools build files, and call the result a "Buildoboros". Makefile.am | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 8a5f52eaff1de3ee678400a8be0781f295fc00c4 Author: Emmanuele Bassi Date: Wed Feb 8 15:53:43 2017 +0000 Document the process for updating the registry This avoids each maintainer to transmit the knowledge orally to the next maintainer. registry/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit d8b10c0a5ab44c19e1ee5ca329df4b0d8ba065cc Author: Emmanuele Bassi Date: Wed Feb 8 13:03:41 2017 +0000 Do not use Python 3 to run gen_dispatch.py It's still a Python 2.x script, even if it's mostly compatible with Python 3.x. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 0727ae5d27a1f742945e337240867933bbc355ac Author: Emmanuele Bassi Date: Wed Feb 8 12:58:23 2017 +0000 Update gen_dispatch after a pass of pylint PyLint raises a bunch of issues on the dispatch generation script with regards to best practices; most of those issues are real, so let's fix the code to be more Pythonic. src/gen_dispatch.py | 90 ++++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 46 deletions(-) commit 5c4a907687991596c9983a69f43365c3c182bfc3 Merge: 9628670 d82bedc Author: Emmanuele Bassi Date: Wed Feb 8 12:57:47 2017 +0000 Merge pull request #100 from centricular/fix-find_program meson: Don't call find_program objects with python