Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make x11 support optional #1

Closed
wants to merge 27 commits into from
Closed

make x11 support optional #1

wants to merge 27 commits into from

Commits on Nov 5, 2015

  1. test: Fix dlwrap on ppc64 and s390x

    These have dlsym versions of GLIBC_2.3 and GLIBC_2.2, respectively.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    nwnk committed Nov 5, 2015
    Configuration menu
    Copy the full SHA
    ce5afcc View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2016

  1. fixes 'cd error' in autogen.sh

    If a parent directory of the libepoxy source dir contains a space,
    'cd' in line 10 fails.
    Martin Castillo committed Feb 26, 2016
    Configuration menu
    Copy the full SHA
    83cfa6a View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2016

  1. egl: Be somewhat aware of EGL client extensions

    Client extensions are always available, and are only listed in
    eglQueryString(dpy=NULL). Without this we can't call anything from e.g.
    EXT_platform_base.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    nwnk committed Sep 23, 2016
    Configuration menu
    Copy the full SHA
    5dc0125 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2016

  1. egl: Fix the query for the current context's API

    Binding an API does not change the type of the current context. Even if
    it did, EGL 1.5 treats EGL_OPENGL_API and EGL_OPENGLES_API as identical
    for this purpose.  If you want to know properties of the current
    context, query it.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    nwnk committed Oct 18, 2016
    Configuration menu
    Copy the full SHA
    ced192c View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2016

  1. Revert all changes since 8bbc0d4

    Most of the changes that happened after commit 8bbc0d4 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.
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    8dead45 View commit details
    Browse the repository at this point in the history
  2. src/gen_dispatch.py: Make Generated Code Build Under C89

     ...so that the generated code are buildable by pre-2013 Visual Studio.
    
     The main thing that this does is that we avoid named initializers, but
     instead initialize the structs in old-school C89 way.
    
     The generated code may not look that robust, but since this is generated
     code, I think this is not that much an issue; when the Khronos registry gets
     updated, all that is needed is that the code gets re-generated, and we have the
     items in the right order.
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    fanc999-1 authored and ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    407f579 View commit details
    Browse the repository at this point in the history
  3. nVidia glx.h uses __glx_h__; define that too.

    The code used to check this symbol, but commit 689abf4 replaced it with
    GLX_H, presumably to work better with either Mesa or Khronos headers.
    But nVidia's header use the older include guard. Add it as another
    option.
    
    Should fix the headerguards.c compile test when the system glx.h is from
    nVidia's binary drivers.
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    BryanKadzban authored and ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    f887dcf View commit details
    Browse the repository at this point in the history
  4. Check for NULL extensions string

    Some X server not supporting any OpenGL feature, glXQueryExtensionsString
    will return NULL and causes the function to fail.
    
    Thanks to Emmanuel Stapf (manus@eiffel.com) for the original patch.
    
    This was verified running an application on macOS while the X server was
    running on Windows Xming 7.5.0.10
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    yaronct authored and ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    c45cc5f View commit details
    Browse the repository at this point in the history
  5. support newer/larger gl.xml

    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    nephatrine authored and ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    c2e09eb View commit details
    Browse the repository at this point in the history
  6. dlwrap: add GLIBC_2.4 version to be able to run tests from ARM

    See sysdeps/unix/sysv/linux/arm/libdl.abilist in glibc
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    Olivier Blin authored and ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    f62c9d9 View commit details
    Browse the repository at this point in the history
  7. Avoid C99 declaration after statement

    The rest of the library is C89-only, so we should keep it that way.
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    ad1f920 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    b1144d5 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'castilma/master'

    Closes PR: anholt#83
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    bd67cf8 View commit details
    Browse the repository at this point in the history
  10. Merge branch 'nwnk/egl-client-extensions'

    Closes PR: anholt#88
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    fd1f864 View commit details
    Browse the repository at this point in the history
  11. build: Protect paths from spaces

    Completes commit 83cfa6a.
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    f250989 View commit details
    Browse the repository at this point in the history
  12. Merge remote-tracking branch 'nwnk/master'

    Closes PR: anholt#75
    
    Conflicts:
            test/dlwrap.c
    ebassi committed Dec 7, 2016
    Configuration menu
    Copy the full SHA
    79ecb61 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2016

  1. build: Split arguments for dispatch generator

    The gen_dispatch.py script relies on the source and include directories
    to exist before dumping the files in there, split by type, in order to
    sustain the split of the headers existing in a separate root from the
    source files. This causes a spooky-action-at-a-distance scenario where
    headers are generated by rules inside the source directory but influence
    the contents of a separate directory — and require a separate set of
    rules to install those headers.
    
    Different build systems would require either splitting the generation in
    to two separate passes (which is more expensive and time consuming), or
    generate the header and source files in the same directory, and just
    tweak the inclusion paths accordingly.
    
    Since we want to maintain this fiction for the autotools build, but
    ignore it for different build systems, let's add a separate set of
    arguments for gen_dispatch.py that make the rules inside Makefile.am
    work appropriately.
    ebassi committed Dec 9, 2016
    Configuration menu
    Copy the full SHA
    8fcdeb4 View commit details
    Browse the repository at this point in the history
  2. build: Add Meson build files

    Meson is a Python-based build system that generates build rules of
    Ninja, Visual Studio, and XCode. It's designed to be fast, and have a
    small, non-Turing complete language to describe the build process,
    tests, and dependencies. It's simpler than CMake, and faster than
    autotools.
    
    As a direct comparison in terms of speed, three build and check runs for
    libepoxy from a clean Git repository clone yield these results on my
    Kabylake Core i7 7500U (nproc=4):
    
    - Autotools (make)
    Run #1 (cold)   real: 22.384s, user: 20.011s, sys: 3.689s
    Run anholt#2 (warm)   real: 22.429s, user: 20.220s, sys: 3.708s
    Run anholt#3 (warm)   real: 22.068s, user: 19.743s, sys: 3.594s
    
    - Meson (ninja)
    Run #1 (cold)   real: 5.932s, user:  9.371s, sys: 1.625s
    Run anholt#2 (warm)   real: 6.273s, user: 10.066,  sys: 1.740s
    Run anholt#3 (warm)   real: 5.796s, user:  9.233s, sys: 1.607s
    
    Which means that Meson and ninja are approximately 4x faster than
    autotools.
    
    In terms of simplicity, the autotools build takes six files and a total
    of 645 lines; Meson requires 3 files, and 361 lines to achieve the same
    result. Additionally, Meson automatically builds in a separate build
    directory and does not leave files inside the source directory; and Meson
    does not use libtool.
    
    Since Meson is quite new and still actively developed, we're going to
    leave the autotools build in place for a while, with the intention of
    switching to Meson in the future.
    ebassi committed Dec 9, 2016
    6 Configuration menu
    Copy the full SHA
    3ef3508 View commit details
    Browse the repository at this point in the history
  3. build: Mark test as 'should fail'

    This maintains the compatibility between the autotools-based build and
    the Meson one, mirroring commit 037ac7f.
    ebassi committed Dec 9, 2016
    Configuration menu
    Copy the full SHA
    514db12 View commit details
    Browse the repository at this point in the history
  4. build: Fix copy-paste thinko

    ebassi committed Dec 9, 2016
    Configuration menu
    Copy the full SHA
    fb3f796 View commit details
    Browse the repository at this point in the history
  5. build: Drop '-Wall' from the checked compiler arguments

    Meson adds `-Wall` for us with `warning_level=1`.
    ebassi committed Dec 9, 2016
    Configuration menu
    Copy the full SHA
    4e7992e View commit details
    Browse the repository at this point in the history
  6. build: Join paths consistently

    There's no need to use a leading '/' for the constant chunk, and we
    should use the same style consistently.
    ebassi committed Dec 9, 2016
    Configuration menu
    Copy the full SHA
    2d3068c View commit details
    Browse the repository at this point in the history

Commits on Dec 12, 2016

  1. add glBindRenderbufferEXT to half_aliases

    it seems like this was forgotten,
    because glBindFramebufferEXT is already there
    for the same reason
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    Simon Parzer authored and ebassi committed Dec 12, 2016
    Configuration menu
    Copy the full SHA
    339c8eb View commit details
    Browse the repository at this point in the history
  2. build: Allow building libepoxy as a static library

    It's possible to tell Meson to build a static library, instead of a
    shared one, using a command line option.
    ebassi committed Dec 12, 2016
    Configuration menu
    Copy the full SHA
    fbdae12 View commit details
    Browse the repository at this point in the history
  3. build: Do not enable -Bsymbolic with MSVC

    We already know the Microsoft Visual C compiler does not support
    `-Bsymbolic`.
    ebassi committed Dec 12, 2016
    Configuration menu
    Copy the full SHA
    d0bf801 View commit details
    Browse the repository at this point in the history
  4. Ensure we don't assert if GLX is not available

    Certain X server do not have GLX enabled or supported, such as x2go. We
    can handle this case gracefully inside libepoxy.
    
    Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
    ebassi committed Dec 12, 2016
    Configuration menu
    Copy the full SHA
    269b469 View commit details
    Browse the repository at this point in the history
  5. make x11 support optional

    X11 support is build by default if x11 libs are found. This can be disabled
    by --disable-glx.
    
    A similar (bit too overenthusiastic) pull request was sent long time ago [1]
    before we saw cmake trouble. There was a follow up PR in [2] but I cannot test
    it so took only very common parts.
    
    [1] anholt#52
    [2] anholt#81
    
    Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
    schnitzeltony committed Dec 12, 2016
    Configuration menu
    Copy the full SHA
    f08cd63 View commit details
    Browse the repository at this point in the history