Skip to content

Commit 66d4d10

Browse files
Fix linking GL
This is a half fix. Projects that use the glvnd targets from CMake will fail due to inconsistent detection of the GL libraries regardless of settings.
1 parent ed7e36f commit 66d4d10

File tree

6 files changed

+20
-11
lines changed

6 files changed

+20
-11
lines changed

repos/spack_repo/builtin/packages/apple_glu/package.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,8 @@ class AppleGlu(AppleGlBase):
1414
provides("[email protected]")
1515

1616
requires("platform=darwin", msg="Apple-GL is only available on Darwin")
17+
18+
def setup_dependent_build_environment(
19+
self, env: EnvironmentModifications, dependent_spec: Spec):
20+
env.prepend_path("OpenGL_ROOT", self.prefix)
21+

repos/spack_repo/builtin/packages/glx/package.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ class Glx(BundlePackage):
2121
depends_on("libglx")
2222
provides("[email protected]")
2323

24+
def setup_dependent_build_environment(
25+
self, env: EnvironmentModifications, dependent_spec: Spec):
26+
env.prepend_path("OpenGL_ROOT", self.home)
27+
2428
@property
2529
def home(self):
2630
return self.spec["libglx"].home

repos/spack_repo/builtin/packages/mesa/package.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -184,16 +184,7 @@ def cmake_extra_args(self):
184184
# TODO: egl
185185
# TODO: gles
186186
return [
187-
f"-DOPENGL_INCLUDE_DIR:PATH={self.prefix}/include",
188-
f"-DOPENGL_xmesa_INCLUDE_DIR:PATH={self.prefix}/include",
189-
f"-DOPENGL_gl_LIBRARY:FILEPATH={glx_library}",
190-
"-DOpenGL_GL_PREFERENCE:STRING=LEGACY",
191-
"-DOPENGL_egl_LIBRARY:FILEPATH=",
192-
f"-DOPENGL_glx_LIBRARY:FILEPATH={glx_library}",
193-
f"-DOPENGL_opengl_LIBRARY:FILEPATH={glx_library}",
194-
"-DOPENGL_EGL_INCLUDE_DIR:FILEPATH=",
195-
f"-DOPENGL_GLX_INCLUDE_DIR:FILEPATH={self.prefix}/include",
196-
"-DOPENGL_xmesa_INCLUDE_DIR:FILEPATH=",
187+
"-DOpenGL_GL_PREFERENCE:STRING=LEGACY"
197188
]
198189

199190
@property

repos/spack_repo/builtin/packages/mesa_glu/package.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ class MesaGlu(AutotoolsPackage):
2626
# patch switches all instances of register long to long to fix this.
2727
patch("register-long.patch")
2828

29+
def setup_dependent_build_environment(
30+
self, env: EnvironmentModifications, dependent_spec: Spec):
31+
env.prepend_path("OpenGL_ROOT", self.prefix)
32+
2933
def configure_args(self):
3034
args = ["--disable-libglvnd"]
3135

repos/spack_repo/builtin/packages/openglu/package.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ def fetcher(self):
6464
def fetcher(self):
6565
_ = self.fetcher
6666

67+
def setup_dependent_build_environment(
68+
self, env: EnvironmentModifications, dependent_spec: Spec):
69+
env.prepend_path("OpenGL_ROOT", self.prefix)
70+
6771
@property
6872
def libs(self):
6973
return find_libraries("libGLU", self.prefix, shared=True, recursive=True)

repos/spack_repo/builtin/packages/qt_base/package.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ class QtBase(QtPackage):
230230
# GL, provided by the Qt application is required at runtime.
231231
# Do not include GL in the "link" rpaths as GL may be loaded at runtime
232232
# and differ from the GL that provided the headers.
233-
depends_on("gl", when="+opengl", type=("build"))
233+
depends_on("gl", when="+opengl", type=("build", "link"))
234+
depends_on("glu", when="+opengl", type=("build", "link"))
234235
depends_on("sqlite", when="+sql")
235236

236237
with when("+gui"):

0 commit comments

Comments
 (0)