summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/openglu/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/openglu/package.py')
-rw-r--r--var/spack/repos/builtin/packages/openglu/package.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/openglu/package.py b/var/spack/repos/builtin/packages/openglu/package.py
new file mode 100644
index 0000000000..c6468c95b4
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openglu/package.py
@@ -0,0 +1,66 @@
+# 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 Openglu(Package):
+ """Placeholder for external OpenGL utility library (GLU) from hardware
+ vendors"""
+
+ homepage = "https://www.opengl.org/resources/libraries"
+
+ provides('glu@:1.3', when='@1.3:')
+ provides('glu@:1.2', when='@1.2:')
+ provides('glu@:1.1', when='@1.1:')
+ provides('glu@:1.0', when='@1.0:')
+
+ # Override the fetcher method to throw a useful error message;
+ # fixes an issue similar to Github issue (#7061), in which the
+ # opengl package threw a generic, uninformative error message
+ # during the `fetch` step
+ @property
+ def fetcher(self):
+ msg = """This package is intended to be a placeholder for
+ system-provided OpenGL utility (GLU) libraries from hardware vendors.
+ Please download and install the GLU drivers/libraries for your
+ graphics hardware separately, and then set that up as an external
+ package. An example of a working packages.yaml:
+
+ packages:
+ openglu:
+ paths:
+ openglu@1.3: /opt/opengl
+ buildable: False
+
+ In that case, /opt/opengl/ should contain these two folders:
+
+ include/GL/ (opengl headers, including "glu.h")
+ lib (opengl libraries, including "libGLU.so")
+
+ On Apple Darwin (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:
+ openglu:
+ paths:
+ openglu@1.3: /usr/X11R6
+ buildable: False
+
+ In that case, /usr/X11R6 should contain
+
+ include/GL (GLU headers, including "glu.h")
+ lib (GLU libraries, including "libGLU.dylib")"""
+
+ raise InstallError(msg)
+
+ @property
+ def libs(self):
+ for dir in ['lib64', 'lib']:
+ libs = find_libraries('libGLU', join_path(self.prefix, dir),
+ shared=True, recursive=False)
+ if libs:
+ return libs