summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/libglvnd-fe/package.py
blob: 6f737a90173ca103e10d9e002f218ee5938c1922 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack import *


class LibglvndFe(BundlePackage):
    """The GL Vendor-Neutral Dispatch library (Frontend Dummy Package)

    libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API
    calls between multiple vendors. It allows multiple drivers from different
    vendors to coexist on the same filesystem, and determines which vendor to
    dispatch each API call to at runtime.

    Both GLX and EGL are supported, in any combination with OpenGL and OpenGL
    ES."""

    homepage = "https://github.com/NVIDIA/libglvnd"

    version('1.1.1', sha256='71918ed1261e4eece18c0b74b50dc62c0237b8d526e83277ef078554544720b9')

    variant('glx', default=False, description='Provide GLX API')
    variant('egl', default=False, description='Provide EGL API')

    depends_on('libglvnd')

    depends_on('libglvnd-be-gl')
    depends_on('libglvnd-be-glx', when='+glx')
    depends_on('libglvnd-be-egl', when='+egl')

    provides('gl')
    provides('glx', when='+glx')
    provides('egl', when='+egl')

    @property
    def gl_libs(self):
        return find_libraries('libOpenGL',
                              root=self.spec['libglvnd'].prefix,
                              shared=True,
                              recursive=True)

    @property
    def glx_libs(self):
        return find_libraries('libGLX',
                              root=self.spec['libglvnd'].prefix,
                              shared=True,
                              recursive=True)

    @property
    def egl_libs(self):
        return find_libraries('libEGL',
                              root=self.spec['libglvnd'].prefix,
                              shared=True,
                              recursive=True)