# IT4Innovations 2025
# PH

##
# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild
# Copyright:: Copyright 2013-2024 Juelich Supercomputing Centre, Germany
# Authors::   Bernd Mohr <b.mohr@fz-juelich.de>
#             Markus Geimer <m.geimer@fz-juelich.de>
#             Robert Mijakovic <robert.mijakovic@lxp.lu>
#             Jan Andre Reuter <j.reuter@fz-juelich.de>
# License::   3-clause BSD
#
# This work is based on experiences from the UNITE project
# http://apps.fz-juelich.de/unite/
##

easyblock = 'EB_Score_minus_P'

name = 'Scalasca'
version = '2.6.1'

homepage = 'https://www.scalasca.org/'
description = """
 Scalasca is a software tool that supports the performance optimization of
 parallel programs by measuring and analyzing their runtime behavior. The
 analysis identifies potential performance bottlenecks -- in particular
 those concerning communication and synchronization -- and offers guidance
 in exploring their causes.
"""

toolchain = {'name': 'iimpi', 'version': '2022a'}

source_urls = ['https://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist']
sources = [SOURCELOWER_TAR_GZ]
patches = [
    'Scalasca-2.6.1_nowarn_omp_pragmas.patch',
]
checksums = [
    'a0dbc3de82a6c0fe598de9e340513cff2882c199410a632d3a7f073ba921c7e7',
    # scalasca-2.6.1.tar.gz
    '6f1df13cd8683e4867b8e4b321c5f89e94430d1281f29f8eb084762a050f9e90',
    # Scalasca-2.6.1_nowarn_omp_pragmas.patch
]

builddependencies = [
    ('CubeWriter', '4.8'),
]

dependencies = [
    ('CubeGUI', '4.8'),
    ('CubeLib', '4.8'),
    ('OTF2', '3.0.2'),
    ('Score-P', '8.0'),
]

sanity_check_paths = {
    'files': ['bin/scalasca', 'lib/libpearl.replay.a'],
    'dirs': [],
}

# Ensure that local metric documentation is found by CubeGUI
modextrapaths = {'CUBE_DOCPATH': 'share/doc/scalasca/patterns'}

moduleclass = 'perf'
