hpcviewer: add support for macosx, add version 2021.10 (#26823)
This commit is contained in:
parent
e35eacf87b
commit
21d909784c
1 changed files with 77 additions and 17 deletions
|
@ -3,6 +3,7 @@
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
|
@ -28,17 +29,35 @@ def trace_url(ver, mach):
|
||||||
).format(ver, ver2, mach)
|
).format(ver, ver2, mach)
|
||||||
|
|
||||||
|
|
||||||
|
def darwin_url(ver, mach):
|
||||||
|
return (
|
||||||
|
'http://hpctoolkit.org/download/hpcviewer/{0}/'
|
||||||
|
'hpcviewer-{0}-macosx.cocoa.{1}.zip'
|
||||||
|
).format(ver, mach)
|
||||||
|
|
||||||
|
|
||||||
class Hpcviewer(Package):
|
class Hpcviewer(Package):
|
||||||
"""Binary distribution of hpcviewer and hpctraceviewer for the Rice
|
"""Binary distribution of hpcviewer and integrated hpctraceviewer for
|
||||||
HPCToolkit (Linux x86_64, ppc64le and aarch64). Note: hpctoolkit
|
the Rice HPCToolkit (Linux x86_64, ppc64le and aarch64, and MacOSX
|
||||||
databases are platform independent, so you don't need to install
|
x86_64).
|
||||||
hpctoolkit to run the viewers and it's common to run hpcrun and
|
|
||||||
hpcviewer on different machines."""
|
Note: hpctoolkit databases are platform independent, so you don't
|
||||||
|
need to install hpctoolkit to run the viewers and it's common to
|
||||||
|
run hpcrun and hpcviewer on different machines.
|
||||||
|
"""
|
||||||
|
|
||||||
homepage = "http://hpctoolkit.org"
|
homepage = "http://hpctoolkit.org"
|
||||||
maintainers = ['mwkrentel']
|
maintainers = ['mwkrentel']
|
||||||
|
|
||||||
|
darwin_sha = {
|
||||||
|
('2021.10', 'x86_64'): '0b71f2d63d99eb00fbaf9c03cf8632c198627c80e4372eeec5f20864509cbbe8',
|
||||||
|
('2021.05', 'x86_64'): '4643567b41dddbbf9272cb56b0720f4eddfb144ca05aaad7d08c878ffaf8f2fa',
|
||||||
|
}
|
||||||
|
|
||||||
viewer_sha = {
|
viewer_sha = {
|
||||||
|
('2021.10', 'aarch64'): 'c696a0ecc6696f9979de3940b5471a3d99c8d573736cabb24b86255d860a23dc',
|
||||||
|
('2021.10', 'ppc64le'): 'f0eda3510b71fd9115c5653efba29aaefcb335c66b118cf63f36e1353c39e24e',
|
||||||
|
('2021.10', 'x86_64'): 'd5a444e28d6c9d1a087c39bd3ffe55c6f982dc37a7a743b83bbba2fbfc7ca7c6',
|
||||||
('2021.05', 'aarch64'): 'a500bf14be14ca9b08a8382f1d122f59b45690b6a567df0932fc2cabd6382a9a',
|
('2021.05', 'aarch64'): 'a500bf14be14ca9b08a8382f1d122f59b45690b6a567df0932fc2cabd6382a9a',
|
||||||
('2021.05', 'ppc64le'): 'd39f9f6556abcd5a184db242711b72b2e8571d0b78bb08d0e497fd4e6dbe87a1',
|
('2021.05', 'ppc64le'): 'd39f9f6556abcd5a184db242711b72b2e8571d0b78bb08d0e497fd4e6dbe87a1',
|
||||||
('2021.05', 'x86_64'): 'f316c1fd0b134c96392cd4eb5e5aa2bffa36bd449f401d8fe950ab4f761c34ab',
|
('2021.05', 'x86_64'): 'f316c1fd0b134c96392cd4eb5e5aa2bffa36bd449f401d8fe950ab4f761c34ab',
|
||||||
|
@ -121,25 +140,66 @@ class Hpcviewer(Package):
|
||||||
('2019.02', 'ppc64le'): '01a159306e7810efe07157ec823ac6ca7570ec2014c95db599a3f90eee33355c',
|
('2019.02', 'ppc64le'): '01a159306e7810efe07157ec823ac6ca7570ec2014c95db599a3f90eee33355c',
|
||||||
}
|
}
|
||||||
|
|
||||||
for key in viewer_sha.keys():
|
system = platform.system().lower()
|
||||||
if key[1] == platform.machine():
|
machine = platform.machine().lower()
|
||||||
version(key[0], url=viewer_url(*key), sha256=viewer_sha[key])
|
|
||||||
|
|
||||||
# Current versions include the viewer and trace viewer in
|
# Versions for MacOSX / Darwin
|
||||||
# one tar file. Before 2020.07, the trace viewer was a
|
if system == 'darwin':
|
||||||
# separate tar file (resource).
|
for key in darwin_sha.keys():
|
||||||
if key in trace_sha:
|
if key[1] == machine:
|
||||||
resource(name='hpctraceviewer', url=trace_url(*key),
|
version(key[0], url=darwin_url(*key), sha256=darwin_sha[key])
|
||||||
sha256=trace_sha[key], placement='TRACE',
|
|
||||||
when='@{0}'.format(key[0]))
|
# Versions for Linux and Cray front-end
|
||||||
|
if system == 'linux':
|
||||||
|
for key in viewer_sha.keys():
|
||||||
|
if key[1] == machine:
|
||||||
|
version(key[0], url=viewer_url(*key), sha256=viewer_sha[key],
|
||||||
|
deprecated=(key[0] <= '2020.01'))
|
||||||
|
|
||||||
|
# Current versions include the viewer and trace viewer in
|
||||||
|
# one tar file. Before 2020.07, the trace viewer was a
|
||||||
|
# separate tar file (resource).
|
||||||
|
if key in trace_sha:
|
||||||
|
resource(name='hpctraceviewer', url=trace_url(*key),
|
||||||
|
sha256=trace_sha[key], placement='TRACE',
|
||||||
|
when='@{0}'.format(key[0]))
|
||||||
|
|
||||||
depends_on('java@11:', type=('build', 'run'), when='@2021.0:')
|
depends_on('java@11:', type=('build', 'run'), when='@2021.0:')
|
||||||
depends_on('java@8', type=('build', 'run'), when='@:2020')
|
depends_on('java@8', type=('build', 'run'), when='@:2020')
|
||||||
|
|
||||||
conflicts('platform=darwin', msg='hpcviewer requires a manual install on MacOS, see homepage')
|
# Install for MacOSX / Darwin
|
||||||
|
@when('platform=darwin')
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
# Add path to java binary to hpcviewer.ini file.
|
||||||
|
ini_file = join_path('Contents', 'Eclipse', 'hpcviewer.ini')
|
||||||
|
java_binary = join_path(spec['java'].prefix.bin, 'java')
|
||||||
|
filter_file('(-startup)', '-vm\n' + java_binary + '\n' + r'\1',
|
||||||
|
ini_file, backup=False)
|
||||||
|
|
||||||
|
# Copy files into prefix/hpcviewer.app.
|
||||||
|
app_dir = join_path(prefix, 'hpcviewer.app')
|
||||||
|
mkdirp(app_dir)
|
||||||
|
install_tree('.', app_dir)
|
||||||
|
|
||||||
|
# Add launch script to call 'open' on app directory.
|
||||||
|
mkdirp(prefix.bin)
|
||||||
|
viewer_file = join_path(prefix.bin, 'hpcviewer')
|
||||||
|
with open(viewer_file, 'w') as file:
|
||||||
|
file.write('#!/bin/sh\n')
|
||||||
|
file.write('open ' + app_dir + '\n')
|
||||||
|
os.chmod(viewer_file, 0o755)
|
||||||
|
|
||||||
|
# Install for Cray front-end is the same as Linux.
|
||||||
|
@when('platform=cray')
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
self.linux_install(spec, prefix)
|
||||||
|
|
||||||
|
@when('platform=linux')
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
self.linux_install(spec, prefix)
|
||||||
|
|
||||||
# Both hpcviewer and trace viewer have an install script.
|
# Both hpcviewer and trace viewer have an install script.
|
||||||
def install(self, spec, prefix):
|
def linux_install(self, spec, prefix):
|
||||||
args = [
|
args = [
|
||||||
'--java', spec['java'].home,
|
'--java', spec['java'].home,
|
||||||
prefix
|
prefix
|
||||||
|
|
Loading…
Reference in a new issue