diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/opengl/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/opengl/package.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/opengl/package.py b/var/spack/repos/builtin/packages/opengl/package.py new file mode 100644 index 0000000000..577e22dbf1 --- /dev/null +++ b/var/spack/repos/builtin/packages/opengl/package.py @@ -0,0 +1,70 @@ +# Copyright 2013-2018 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 Opengl(Package): + """Placeholder for external OpenGL libraries from hardware vendors""" + + homepage = "https://www.opengl.org/" + + provides('gl@:4.5', when='@4.5:') + provides('gl@:4.4', when='@4.4:') + provides('gl@:4.3', when='@4.3:') + provides('gl@:4.2', when='@4.2:') + provides('gl@:4.1', when='@4.1:') + provides('gl@:3.3', when='@3.3:') + + # Override the fetcher method to throw a useful error message; + # fixes GitHub issue (#7061) in which this package threw a + # generic, uninformative error during the `fetch` step, + @property + def fetcher(self): + msg = """This package is intended to be a placeholder for + system-provided OpenGL libraries from hardware vendors. Please + download and install OpenGL drivers/libraries for your graphics + hardware separately, and then set that up as an external package. + An example of a working packages.yaml: + + packages: + opengl: + paths: + opengl@4.5.0: /opt/opengl + buildable: False + + In that case, /opt/opengl/ should contain these two folders: + + include/GL/ (opengl headers, including "gl.h") + lib (opengl libraries, including "libGL.so") + + On Apple Darwin (e.g., OS X, macOS) systems, this package is + normally installed as part of the XCode Command Line Tools in + /usr/X11R6, so a working packages.yaml would be + + packages: + opengl: + paths: + opengl@4.1: /usr/X11R6 + buildable: False + + In that case, /usr/X11R6 should contain + + include/GL/ (OpenGL headers, including "gl.h") + lib (OpenGL libraries, including "libGL.dylib") + + On OS X/macOS, note that the version of OpenGL provided + depends on your hardware. Look at + https://support.apple.com/en-us/HT202823 to see what version + of OpenGL your Mac uses.""" + raise InstallError(msg) + + @property + def libs(self): + for dir in ['lib64', 'lib']: + libs = find_libraries('libGL', join_path(self.prefix, dir), + shared=True, recursive=False) + if libs: + return libs |