graphene:graphene-1-4

Last commit made on 2017-04-21
Get this branch:
git clone -b graphene-1-4 https://git.launchpad.net/graphene

Branch merges

Branch information

Name:
graphene-1-4
Repository:
lp:graphene

Recent commits

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.

(cherry picked from commit 99b60ff092514ccddbd91151ae1cc67360eed060)
Signed-off-by: Emmanuele Bassi <email address hidden>

8e91cbd... by Emmanuele Bassi <email address hidden>

Add private 'approx' operator

We can use it to avoid the `fabsf() < FLT_EPSILON` dance.

(cherry picked from commit f36d2c0f727daf6f7083af61cc3ace54e218928e)
Signed-off-by: Emmanuele Bassi <email address hidden>

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.

c4009fc... by Emmanuele Bassi

Merge pull request #73 from fanc999/msvc.build

build: Allow proper build with Visual Studio out-of-the-box

91212d2... by Chun-wei Fan <email address hidden>

meson.build: Make it more MSVC-friendly

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.

The current scheme, mutuated from GTK+, is:

  libgraphene-1.0.so
  `- .0
     `- (minor * 100 + micro - interface)
        `- interface

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`.