Skip to content

Commit

Permalink
cubegui: Add package
Browse files Browse the repository at this point in the history
Signed-off-by: Jan André Reuter <j.reuter@fz-juelich.de>
  • Loading branch information
Thyre committed Jun 14, 2024
1 parent 977f120 commit 4dbca90
Show file tree
Hide file tree
Showing 4 changed files with 227 additions and 0 deletions.
39 changes: 39 additions & 0 deletions components/perf-tools/cubegui/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
CUBE v4 LICENSE AGREEMENT
=========================

Copyright (c) 1998-2024 Forschungszentrum Juelich GmbH, Germany
Copyright (c) 2009-2015 German Research School for Simulation Sciences GmbH,
Juelich/Aachen, Germany

All rights reserved.


Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

* Neither the names of
the Forschungszentrum Juelich GmbH,
the German Research School for Simulation Sciences GmbH,
nor the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
diff --git a/configure b/configure
index 687349a..241939b 100755
--- a/configure
+++ b/configure
@@ -1712,11 +1712,11 @@ Optional Packages:
/usr/lib[|32|64]/qt[|5|6], /usr/local/qt[5|6] and
/opt/qt[|5|6]]
--with-qt-specs Define a specs for Qt [Default is "default"]
- --with-nocross-compiler-suite=(gcc|intel|clang)
+ --with-nocross-compiler-suite=(gcc|intel|oneapi|clang)
The compiler suite used to build this package in non
cross-compiling environments. Needs to be in $PATH
[gcc].
- --with-frontend-compiler-suite=(gcc|intel|clang)
+ --with-frontend-compiler-suite=(gcc|intel|oneapi|clang)
The compiler suite used to build the frontend parts
of this package in cross-compiling environments.
Needs to be in $PATH [gcc].
@@ -6704,7 +6704,7 @@ if test "${with_nocross_compiler_suite+set}" = set; then :
withval=$with_nocross_compiler_suite; if test "x${ac_scorep_cross_compiling}" = "xno"; then :
ac_scorep_compilers_backend="compiler-nocross-gcc" # default
case $withval in #(
- gcc|intel|clang) :
+ gcc|intel|oneapi|clang) :
ac_scorep_compilers_backend="compiler-nocross-$withval" ;; #(
no) :
as_fn_error $? "option --without-nocross-compiler-suite makes no sense." "$LINENO" 5 ;; #(
@@ -6730,7 +6730,7 @@ if test "${with_frontend_compiler_suite+set}" = set; then :
withval=$with_frontend_compiler_suite; if test "x${ac_scorep_cross_compiling}" = "xyes"; then :
ac_scorep_compilers_frontend="compiler-frontend-gcc"
case $withval in #(
- gcc|intel|clang) :
+ gcc|intel|oneapi|clang) :
ac_scorep_compilers_frontend="compiler-frontend-$withval" ;; #(
no) :
as_fn_error $? "option --without-frontend-compiler-suite makes no sense." "$LINENO" 5 ;; #(
Empty file.
152 changes: 152 additions & 0 deletions components/perf-tools/cubegui/SPECS/cubegui.spec
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
#----------------------------------------------------------------------------bh-
# This RPM .spec file is part of the OpenHPC project.
#
# It may have been modified from the default version supplied by the underlying
# release package (if available) in order to apply patches, perform customized
# build/install configurations, and supply additional files to support
# desired integration conventions.
#
#----------------------------------------------------------------------------eh-

# Build that is dependent on compiler toolchains
%define ohpc_compiler_dependent 1
%include %{_sourcedir}/OHPC_macros

# Base package name
%define pname cubegui
%define shortwv 4.8

Summary: CUBE Uniform Behavioral Encoding generic presentation GUI component
Name: %{pname}-%{compiler_family}%{PROJ_DELIM}
Version: 4.8.2
Release: 1%{?dist}
License: BSD-3-Clause
Group: %{PROJ_NAME}/serial-libs
URL: http://www.scalasca.org/software/cube-4.x/download.html
Source0: http://apps.fz-juelich.de/scalasca/releases/cube/%shortwv/dist/cubegui-%{version}.tar.gz
Patch1: cubegui-4.8.2-allow-compiliation-with-oneapi.patch
BuildRequires: chrpath
BuildRequires: cubelib-%{compiler_family}%{PROJ_DELIM} >= 4.8.2
BuildRequires: gcc-c++
BuildRequires: make
%if 0%{?suse_version}
BuildRequires: libqt5-qtbase-devel
%else
BuildRequires: qt5-qtbase-devel
%endif
BuildRequires: which
BuildRequires: zlib-devel
Requires: lmod%{PROJ_DELIM} >= 7.6.1
%if 0%{?suse_version}
Requires: libqt5-base
%else
Requires: qt5-qtbase
%endif

# Default library install path
%define install_path %{OHPC_LIBS}/%{compiler_family}/%{pname}/%version

%description
CUBE (CUBE Uniform Behavioral Encoding) is a generic presentation component
suitable for displaying a wide variety of performance metrics for parallel
programs including MPI and OpenMP applications. CUBE allows interactive
exploration of a multidimensional performance space in a scalable fashion.
Scalability is achieved in two ways: hierarchical decomposition of individual
dimensions and aggregation across different dimensions. All performance
metrics are uniformly accommodated in the same display and thus provide the
ability to easily compare the effects of different kinds of performance
behavior.

This component is the graphical user interface, which is used to examine the
profiles generated by Score-P, Scalasca and other perf-tools.

%prep

%setup -q -n %{pname}-%{version}
%patch -P 1 -p1

%build

# OpenHPC compiler/mpi designation
%ohpc_setup_compiler

module load cubelib

%if "%{compiler_family}" == "intel"
CONFIGURE_OPTIONS="--with-nocross-compiler-suite=oneapi "
%endif

%if "%{compiler_family}" == "arm1"
export CFLAGS="${CFLAGS} -fsimdmath"
export CXXFLAGS="${CXXFLAGS} -fsimdmath"
%endif

./configure --prefix=%{install_path} \
--disable-static \
--enable-shared \
--disable-silent-rules \
--with-platform=linux \
CC="$CC" \
CXX="$CXX" \
CFLAGS="$CFLAGS" \
CXXFLAGS="$CXXFLAGS" \
LDFLAGS="$LDFLAGS" \
${CONFIGURE_OPTIONS}

make %{?_smp_mflags} V=1

%install

# OpenHPC compiler/mpi designation
%ohpc_setup_compiler

make DESTDIR=$RPM_BUILD_ROOT install

# don't package static libs
find $RPM_BUILD_ROOT%{install_path} -name '*.la' -exec rm -f {} ';'

# OpenHPC module file
%{__mkdir} -p %{buildroot}%{OHPC_MODULEDEPS}/%{compiler_family}/%{pname}
%{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{compiler_family}/%{pname}/%{version}
#%Module1.0#####################################################################

proc ModulesHelp { } {

puts stderr " "
puts stderr "This module loads %{pname} built with the %{compiler_family} compiler"
puts stderr "\nVersion %{version}\n"

}
module-whatis "Name: %{pname} built with %{compiler_family} compiler"
module-whatis "Version: %{version}"
module-whatis "Category: runtime library"
module-whatis "Description: %{summary}"
module-whatis "URL %{url}"

set version %{version}

prepend-path PATH %{install_path}/bin
prepend-path MANPATH %{install_path}/share/man
prepend-path INCLUDE %{install_path}/include
prepend-path LD_LIBRARY_PATH %{install_path}/lib

setenv %{PNAME}_DIR %{install_path}
setenv %{PNAME}_BIN %{install_path}/bin
setenv %{PNAME}_LIB %{install_path}/lib
setenv %{PNAME}_INC %{install_path}/include

EOF

%{__cat} << EOF > %{buildroot}/%{OHPC_MODULEDEPS}/%{compiler_family}/%{pname}/.version.%{version}
#%Module1.0#####################################################################
##
## version file for %{pname}-%{version}
##
set ModulesVersion "%{version}"
EOF

%{__mkdir} -p $RPM_BUILD_ROOT/%{_docdir}

%files
%{OHPC_PUB}
%doc ChangeLog COPYING INSTALL OPEN_ISSUES README

0 comments on commit 4dbca90

Please sign in to comment.