From f8883de446c404e46d4c33fe497ae1e9ab2f04a6 Mon Sep 17 00:00:00 2001 From: Jim Galarowicz Date: Thu, 3 Aug 2017 09:44:19 -0500 Subject: [PATCH] Add new package for the Argo Navis/Krell new graphical user support library: QtGraph. --- .../repos/builtin/packages/QtGraph/package.py | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 var/spack/repos/builtin/packages/QtGraph/package.py diff --git a/var/spack/repos/builtin/packages/QtGraph/package.py b/var/spack/repos/builtin/packages/QtGraph/package.py new file mode 100644 index 00000000000..f648f89afd7 --- /dev/null +++ b/var/spack/repos/builtin/packages/QtGraph/package.py @@ -0,0 +1,89 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +############################################################################## +# Copyright (c) 2015-2017 Krell Institute. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., 59 Temple +# Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import os + +class Qtgraph(Package): + """The baseline library used in the CUDA-centric Open|SpeedShop Graphical + User Interface (GUI) which allows Graphviz DOT formatted data to be + imported into a Qt application by wrapping the Graphviz libcgraph and + libgvc within the Qt Graphics View Framework.""" + + # url for QtGraph package's homepage here. + homepage = "https://github.com/OpenSpeedShop/QtGraph" + + # Use when the git repository is available + url = "https://github.com/OpenSpeedShop/QtGraph.git" + version('1.0.0', branch='master', + git='https://github.com/OpenSpeedShop/QtGraph.git') + + # QtGraph depends on these packages + depends_on('qt@4.8.6:') + depends_on('graphviz') + + def setup_environment(self, spack_env, run_env): + """Set up the compile and runtime environments for a package.""" + spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) + spack_env.set('INSTALL_ROOT', self.prefix) + + # The assumed qt version changed to QT5 (as of paraview 5.2.1), + # so explicitly specify which QT major version is actually being used + + # What lib suffix do we need to use? + libdir = self.prefix.lib64 + if not os.path.isdir(libdir): + libdir = self.prefix.lib + + # The implementor has set up the library and include paths in + # a non-conventional way. We reflect that here. + run_env.prepend_path('LD_LIBRARY_PATH', + join_path(libdir, '{0}'.format(self.spec['qt'].version.up_to(3)))) + run_env.prepend_path('CPATH', join_path(self.prefix, 'include', 'QtGraph')) + + + def install(self, spec, prefix): + qmake = which('qmake') + qmake() + + make() + make('install') +