armpl-gcc: add post-installation check by running examples (#34086)

This commit is contained in:
Annop Wongwathanarat 2022-11-28 12:55:51 +00:00 committed by GitHub
parent a1b4e1bccd
commit 2a7ae2a700
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -200,24 +200,26 @@ def install(self, spec, prefix):
exe = Executable("./arm-performance-libraries_{0}_{1}.sh".format(armpl_version, get_os())) exe = Executable("./arm-performance-libraries_{0}_{1}.sh".format(armpl_version, get_os()))
exe("--accept", "--force", "--install-to", prefix) exe("--accept", "--force", "--install-to", prefix)
@property
def lib_suffix(self):
suffix = ""
suffix += "_ilp64" if self.spec.satisfies("+ilp64") else ""
suffix += "_mp" if self.spec.satisfies("threads=openmp") else ""
return suffix
@property @property
def blas_libs(self): def blas_libs(self):
armpl_prefix = get_armpl_prefix(self.spec) armpl_prefix = get_armpl_prefix(self.spec)
shared = True if "+shared" in self.spec else False libname = "libarmpl" + self.lib_suffix
if "+ilp64" in self.spec and self.spec.satisfies("threads=openmp"):
libname = "libarmpl_ilp64_mp"
elif "+ilp64" in self.spec:
libname = "libarmpl_ilp64"
elif self.spec.satisfies("threads=openmp"):
libname = "libarmpl_mp"
else:
libname = "libarmpl"
# Get ArmPL Lib # Get ArmPL Lib
armpl_libs = find_libraries( armpl_libs = find_libraries(
[libname, "libamath", "libastring"], root=armpl_prefix, shared=shared, recursive=True [libname, "libamath", "libastring"],
root=armpl_prefix,
shared=self.spec.satisfies("+shared"),
recursive=True,
) )
armpl_libs += find_system_libraries(["libm"]) armpl_libs += find_system_libraries(["libm"])
@ -239,11 +241,9 @@ def libs(self):
@property @property
def headers(self): def headers(self):
armpl_dir = get_armpl_prefix(self.spec) armpl_dir = get_armpl_prefix(self.spec)
suffix = "include"
if self.spec.satisfies("+ilp64"): suffix = "include" + self.lib_suffix
suffix += "_ilp64"
if self.spec.satisfies("threads=openmp"):
suffix += "_mp"
incdir = join_path(armpl_dir, suffix) incdir = join_path(armpl_dir, suffix)
hlist = find_all_headers(incdir) hlist = find_all_headers(incdir)
@ -253,3 +253,12 @@ def headers(self):
def setup_run_environment(self, env): def setup_run_environment(self, env):
armpl_dir = get_armpl_prefix(self.spec) armpl_dir = get_armpl_prefix(self.spec)
env.prepend_path("LD_LIBRARY_PATH", join_path(armpl_dir, "lib")) env.prepend_path("LD_LIBRARY_PATH", join_path(armpl_dir, "lib"))
@run_after("install")
def check_install(self):
armpl_dir = get_armpl_prefix(self.spec)
armpl_example_dir = join_path(armpl_dir, "examples")
# run example makefile
make("-C", armpl_example_dir, "ARMPL_DIR=" + armpl_dir)
# clean up
make("-C", armpl_example_dir, "ARMPL_DIR=" + armpl_dir, "clean")