<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libepoxy.git/include/epoxy/common.h, branch macos-version-info</title>
<subtitle>github.com: anholt/libepoxy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/'/>
<entry>
<title>Update the symbol visibility rules under MSVC</title>
<updated>2017-02-08T16:52:01+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-02-08T16:47:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=d35870f3b6951faeb6406c3f931e09901b05c82f'/>
<id>d35870f3b6951faeb6406c3f931e09901b05c82f</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a fallback for missing stdbool.h</title>
<updated>2017-02-01T00:02:16+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-02-01T00:02:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=6973dd5db30057c66fd8db99c55917f671e5d380'/>
<id>6973dd5db30057c66fd8db99c55917f671e5d380</id>
<content type='text'>
Older versions of the Microsoft Visual C compiler do not support C99 and
do not have stdbool.h.

Additionally, Epoxy is pretty much C89 compliant, and stdbool.h is part
of C99.

We can add a simple fallback for MSVC, in case we end up getting built
with it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Older versions of the Microsoft Visual C compiler do not support C99 and
do not have stdbool.h.

Additionally, Epoxy is pretty much C89 compliant, and stdbool.h is part
of C99.

We can add a simple fallback for MSVC, in case we end up getting built
with it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve consistency of the symbol visibility</title>
<updated>2017-01-25T12:43:17+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-24T17:43:59+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=7a06803465dd07e152de1b30763d6bea0d3fcc93'/>
<id>7a06803465dd07e152de1b30763d6bea0d3fcc93</id>
<content type='text'>
To avoid a symbols file on Windows, Epoxy annotates all the publicly
visible symbols directly in the source, but uses the default symbol
visibility everywhere else. This means that only some symbols are
annotated as `EPOXY_IMPORTEXPORT`, and generally only on Windows.
Additionally, Epoxy has a private 'PUBLIC' pre-processor macro for
internal use, which duplicates the `EPOXY_IMPORTEXPORT` but contains
more logic to detect GCC, in case we're building with GCC on Windows.

This would be enough, except that EGL is also available on Windows,
which means we'd have to annotate the exported `epoxy_*` API inside
epoxy/egl.h as well. At that point, though, we should probably avoid
any confusion, and adopt a single symbol visibility policy across the
board.

This requires some surgery of the generated and common dispatch sources,
but cuts down the overall complexity:

 - there is only one annotation, `EPOXY_PUBLIC`, used everywhere
 - the annotation detection is done at Epoxy configuration time
 - only annotated symbols are public, on every platform
 - annotated symbols are immediately visible from the header
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To avoid a symbols file on Windows, Epoxy annotates all the publicly
visible symbols directly in the source, but uses the default symbol
visibility everywhere else. This means that only some symbols are
annotated as `EPOXY_IMPORTEXPORT`, and generally only on Windows.
Additionally, Epoxy has a private 'PUBLIC' pre-processor macro for
internal use, which duplicates the `EPOXY_IMPORTEXPORT` but contains
more logic to detect GCC, in case we're building with GCC on Windows.

This would be enough, except that EGL is also available on Windows,
which means we'd have to annotate the exported `epoxy_*` API inside
epoxy/egl.h as well. At that point, though, we should probably avoid
any confusion, and adopt a single symbol visibility policy across the
board.

This requires some surgery of the generated and common dispatch sources,
but cuts down the overall complexity:

 - there is only one annotation, `EPOXY_PUBLIC`, used everywhere
 - the annotation detection is done at Epoxy configuration time
 - only annotated symbols are public, on every platform
 - annotated symbols are immediately visible from the header
</pre>
</div>
</content>
</entry>
<entry>
<title>Add common header</title>
<updated>2017-01-25T12:43:17+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2017-01-24T15:31:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=0625a74d69f762df8d411bc0451927424aee1f2c'/>
<id>0625a74d69f762df8d411bc0451927424aee1f2c</id>
<content type='text'>
We're going to use this header to provide shared macros. Right now, we
can use it to replace the:

    #ifdef __cplusplus
    extern "C" {
    #endif

    …

    #ifdef __cplusplus
    }
    #endif

Stanzas for every installed header, with easier to read macros in the
same spirit of Cairo and GLib.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We're going to use this header to provide shared macros. Right now, we
can use it to replace the:

    #ifdef __cplusplus
    extern "C" {
    #endif

    …

    #ifdef __cplusplus
    }
    #endif

Stanzas for every installed header, with easier to read macros in the
same spirit of Cairo and GLib.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert all changes since 8bbc0d40</title>
<updated>2016-12-07T14:45:14+00:00</updated>
<author>
<name>Emmanuele Bassi</name>
<email>ebassi@gnome.org</email>
</author>
<published>2016-12-07T14:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=8dead45cb366bf5c08539bef2ccaa36b80eb1483'/>
<id>8dead45cb366bf5c08539bef2ccaa36b80eb1483</id>
<content type='text'>
Most of the changes that happened after commit 8bbc0d40 broke epoxy
pretty much irreparably because of the CMake build and the attempt at
making libepoxy a static library that can be copy-pasted into another
project without generating files.

Since all the commits are entangled, and are full of unrelated changes,
we cannot simply do a localized set of reverts; instead, we need to hit
the reset button.

From this point forward, we're going to improve libepoxy's build while
attempting to keep the existing build system working. This may mean
reinstating the CMake build system at a later date.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of the changes that happened after commit 8bbc0d40 broke epoxy
pretty much irreparably because of the CMake build and the attempt at
making libepoxy a static library that can be copy-pasted into another
project without generating files.

Since all the commits are entangled, and are full of unrelated changes,
we cannot simply do a localized set of reverts; instead, we need to hit
the reset button.

From this point forward, we're going to improve libepoxy's build while
attempting to keep the existing build system working. This may mean
reinstating the CMake build system at a later date.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix support for a static build of Epoxy. Add support building and running tests with CMake. Add support for linking with the static run-time library with MSVC.</title>
<updated>2015-09-03T20:17:39+00:00</updated>
<author>
<name>Yaron Cohen-Tal</name>
<email>yaronct@gmail.com</email>
</author>
<published>2015-09-03T20:17:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=44d51f28445d40451bc600b26f3b4b17fd003c67'/>
<id>44d51f28445d40451bc600b26f3b4b17fd003c67</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for CMake (no support for building/running the tests yet). Fix support for Android. Add built-in support for building with EGL support (using "khrplatform.h" and "eglplatform.h" which are distributed together with Epoxy, and should work with any platform).</title>
<updated>2015-08-26T16:41:51+00:00</updated>
<author>
<name>Yaron Cohen-Tal</name>
<email>yaronct@gmail.com</email>
</author>
<published>2015-08-03T18:07:37+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=06fd4a271ad88476d8c6a37d49b6a8af5a11d988'/>
<id>06fd4a271ad88476d8c6a37d49b6a8af5a11d988</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unite defenitions "PUBLIC" and "EPOXY_IMPORTEXPORT" and add it where appropriate. Fix tests build errors.</title>
<updated>2015-07-19T10:40:35+00:00</updated>
<author>
<name>Yaron Cohen-Tal</name>
<email>yaronct@gmail.com</email>
</author>
<published>2015-07-19T09:59:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/libepoxy.git/commit/?id=90c6158d61a4b27f00997049d67344b425275c5c'/>
<id>90c6158d61a4b27f00997049d67344b425275c5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
