b9f909a...
by
Emmanuele Bassi <email address hidden>
build: Use the appropriate syntax for inclusion paths in Meson
Meson 0.38 has become more strict about accepting absolute paths where
unnecessary. This means we need to modify the `include_directories()`
statement to use a relative path in order to build Graphene with newer
versions of Meson.
Fixes #103.
dfdd297...
by
Emmanuele Bassi <email address hidden>
matrix: Add fuzzyness in to_2d() checks
We currently do fuzzy checks within the float epsilon for the is_2d()
operator, but we do straight comparisons for the to_2d() one — which
means that a 2D 4x4 matrix may be detected correctly, but would not be
converted into the equivalent 2D affine matrix.
60853ec...
by
Emmanuele Bassi <email address hidden>
build: Generate the API reference through Meson
The current build rules for the API reference are insufficient and
generally broken.
In order to fix them, we need to match what gtk-doc.make does, by
including a `gtkdocentitities.ent` template that is going to be included
by the main XML.
Additionally, we need to include the assets and fix the generation of
the ancillary files.
Currently, Meson will ignore `graphene-overrides.txt`, but the next
version will automatically copy it from srcdir to builddir.
We are checking for compiler flags for warnings for GCC, but not Visual
Studio, so do a similar check based on those that we have in GLib's
msvc_recommended_pragmas.h when we are compiling for Visual Studio (the
advantage of being the one that maintains the MSVC builds files for the
GTK+ stack :)). As a result, we avoid using GCC-style compiler/linker
flags, so that we don't choke meson's configure process and avoid
needless warnings during the build.
We also want to include SSE2 support for all x64 Visual Studio builds and
x86/32-bit Visual Studio 2013+ builds, as the SSE2 intrinsics are
supported on Visual Studio for a good while (since the 2008 days or
before), but as we will be passing in 4 __m128i's when we do
graphene_simd4x4f_init(), we can only support Visual Studio 2013 and later
as a special flag which is now in the code is supported to allow the code
to build with the 32-bit ABI.
5aa9fb7...
by
Emmanuele Bassi <email address hidden>
docs: Update the build instructions
We use Meson and ninja by default.
7967ca4...
by
Emmanuele Bassi <email address hidden>
build: Use compiler.has_argument()
Instead of our homegrown solution.
5a0f8c1...
by
Emmanuele Bassi <email address hidden>
build: Encode interface age usage
This should force us in ensuring new API only lands in development
cycles.
7842b74...
by
Emmanuele Bassi <email address hidden>
build: Ensure soname versioning matches
We need to ensure that the soname used when installing the Graphene
shared object is the same when building with Autotools and when building
with Meson.
Where `interface` is equal to `micro`, unless it's reset to 0 — which
happens every time we add new API, during development cycles.
This means that, for version `1.4.1`, the soname of the installed shared
library is `0.400.1`, whereas for version `1.5.8`, the soname would be
`0.508.0`.