Cleanup of Apple OpenGL shim packages (#44269)
- Remove duplicated code - Use BundlePackage as a base class
This commit is contained in:
parent
a3aca0242a
commit
5a99142b41
@ -2,34 +2,14 @@
|
|||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
class AppleGl(Package):
|
class AppleGlBase(BundlePackage):
|
||||||
"""Shim package for the core OpenGL library from Apple"""
|
|
||||||
|
|
||||||
homepage = "https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html"
|
homepage = "https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html"
|
||||||
|
|
||||||
maintainers("aphecetche")
|
maintainers("aphecetche")
|
||||||
|
|
||||||
has_code = False
|
|
||||||
|
|
||||||
version("4.1.0")
|
|
||||||
|
|
||||||
provides("gl@4.1")
|
|
||||||
|
|
||||||
# Only supported on 'platform=darwin' and compiler=apple-clang
|
|
||||||
conflicts("platform=linux")
|
|
||||||
conflicts("platform=cray")
|
|
||||||
conflicts("platform=windows")
|
|
||||||
conflicts("%gcc")
|
|
||||||
conflicts("%clang")
|
|
||||||
conflicts("%msvc")
|
|
||||||
|
|
||||||
phases = []
|
|
||||||
|
|
||||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||||
# we try to setup a build environment with enough hints
|
# we try to setup a build environment with enough hints
|
||||||
# for the build system to pick up on the Apple framework version
|
# for the build system to pick up on the Apple framework version
|
||||||
@ -50,3 +30,16 @@ def headers(self):
|
|||||||
@property
|
@property
|
||||||
def libs(self):
|
def libs(self):
|
||||||
return LibraryList(join_path(self.prefix, "System/Library/Frameworks/OpenGL.framework"))
|
return LibraryList(join_path(self.prefix, "System/Library/Frameworks/OpenGL.framework"))
|
||||||
|
|
||||||
|
|
||||||
|
class AppleGl(AppleGlBase):
|
||||||
|
"""Shim package for the core OpenGL library from Apple"""
|
||||||
|
|
||||||
|
version("4.1.0")
|
||||||
|
|
||||||
|
provides("gl@4.1")
|
||||||
|
|
||||||
|
requires(
|
||||||
|
"%apple-clang platform=darwin",
|
||||||
|
msg="Apple-GL is only available on Darwin, when using Apple Clang",
|
||||||
|
)
|
||||||
|
@ -2,49 +2,18 @@
|
|||||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
from spack.pkg.builtin.apple_gl import AppleGlBase
|
||||||
|
|
||||||
|
|
||||||
class AppleGlu(Package):
|
class AppleGlu(AppleGlBase):
|
||||||
"""Shim package for Apple implementation of OpenGL Utility Libray (GLU)"""
|
"""Shim package for Apple implementation of OpenGL Utility Libray (GLU)"""
|
||||||
|
|
||||||
homepage = "https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_intro/opengl_intro.html"
|
|
||||||
|
|
||||||
maintainers("aphecetche")
|
|
||||||
|
|
||||||
has_code = False
|
|
||||||
|
|
||||||
version("1.3.0")
|
version("1.3.0")
|
||||||
|
|
||||||
provides("glu@1.3")
|
provides("glu@1.3")
|
||||||
|
|
||||||
# Only supported on 'platform=darwin' and compiler=apple-clang
|
requires(
|
||||||
conflicts("platform=linux")
|
"%apple-clang platform=darwin",
|
||||||
conflicts("platform=cray")
|
msg="Apple-GLU is only available on Darwin, when using Apple Clang",
|
||||||
conflicts("%gcc")
|
|
||||||
conflicts("%clang")
|
|
||||||
|
|
||||||
phases = []
|
|
||||||
|
|
||||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
|
||||||
# we try to setup a build environment with enough hints
|
|
||||||
# for the build system to pick up on the Apple framework version
|
|
||||||
# of OpenGL.
|
|
||||||
# - for a cmake build we actually needs nothing at all as
|
|
||||||
# find_package(OpenGL) will do the right thing
|
|
||||||
# - for the rest of the build systems we'll assume that
|
|
||||||
# setting the C_INCLUDE_PATH will be enough for the compilation phase
|
|
||||||
# and *** for the link phase.
|
|
||||||
env.prepend_path("C_INCLUDE_PATH", self.prefix[:-4])
|
|
||||||
|
|
||||||
@property
|
|
||||||
def headers(self):
|
|
||||||
return HeaderList(
|
|
||||||
join_path(self.prefix, "System/Library/Frameworks/OpenGL.framework/Headers")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
|
||||||
def libs(self):
|
|
||||||
return LibraryList(join_path(self.prefix, "System/Library/Frameworks/OpenGL.framework"))
|
|
||||||
|
Loading…
Reference in New Issue
Block a user