GoPackage: fix attributes to allow for custom build_directory values (#46707)

This commit is contained in:
Alec Scott 2024-10-02 05:23:13 -07:00 committed by GitHub
parent 8e3e7a5541
commit dcdc678b19
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 12 deletions

View File

@ -44,16 +44,27 @@ class GoBuilder(BaseBuilder):
+-----------------------------------------------+--------------------+ +-----------------------------------------------+--------------------+
| **Method** | **Purpose** | | **Method** | **Purpose** |
+===============================================+====================+ +===============================================+====================+
| :py:meth:`~.GoBuilder.build_args` | Specify arguments | | :py:attr:`~.GoBuilder.build_args` | Specify arguments |
| | to ``go build`` | | | to ``go build`` |
+-----------------------------------------------+--------------------+ +-----------------------------------------------+--------------------+
| :py:meth:`~.GoBuilder.check_args` | Specify arguments | | :py:attr:`~.GoBuilder.check_args` | Specify arguments |
| | to ``go test`` | | | to ``go test`` |
+-----------------------------------------------+--------------------+ +-----------------------------------------------+--------------------+
""" """
phases = ("build", "install") phases = ("build", "install")
#: Names associated with package methods in the old build-system format
legacy_methods = ("check", "installcheck")
#: Names associated with package attributes in the old build-system format
legacy_attributes = (
"build_args",
"check_args",
"build_directory",
"install_time_test_callbacks",
)
#: Callback names for install-time test #: Callback names for install-time test
install_time_test_callbacks = ["check"] install_time_test_callbacks = ["check"]

View File

@ -6,7 +6,7 @@
from spack.package import * from spack.package import *
class Glab(Package): class Glab(GoPackage):
"""GitLab's official command line tool.""" """GitLab's official command line tool."""
homepage = "https://gitlab.com/gitlab-org/cli" homepage = "https://gitlab.com/gitlab-org/cli"
@ -41,15 +41,20 @@ class Glab(Package):
depends_on("go@1.22.5:", type="build", when="@1.44:") depends_on("go@1.22.5:", type="build", when="@1.44:")
depends_on("go@1.23:", type="build", when="@1.46:") depends_on("go@1.23:", type="build", when="@1.46:")
phases = ["build", "install"] build_directory = "cmd/glab"
def setup_build_environment(self, env): @run_after("install")
# Point GOPATH at the top of the staging dir for the build step. def install_completions(self):
env.prepend_path("GOPATH", self.stage.path) glab = Executable(self.prefix.bin.glab)
def build(self, spec, prefix): mkdirp(bash_completion_path(self.prefix))
make() with open(bash_completion_path(self.prefix) / "glab", "w") as file:
glab("completion", "-s", "bash", output=file)
def install(self, spec, prefix): mkdirp(fish_completion_path(self.prefix))
mkdirp(prefix.bin) with open(fish_completion_path(self.prefix) / "glab.fish", "w") as file:
install("bin/glab", prefix.bin) glab("completion", "-s", "fish", output=file)
mkdirp(zsh_completion_path(self.prefix))
with open(zsh_completion_path(self.prefix) / "_glab", "w") as file:
glab("completion", "-s", "zsh", output=file)