cbtf-argonavis-gui: add openspeedshop-utils package to address qt conflicts (#8066)
Fixes #7946 Creates an openspeedshop-utils package that does not depend on qt3 and can be used to resolve the needs of cbtf-argonavis-gui. Changes for creating a release versus develop build are also included. There are package versions which are no longer relevant (e.g. 1.3.0 for cbtf-argonavis-gui has been replaced with 1.3.0.0) but these versions need to be kept to allow uninstalling them; issue #8173 has been created to investigate this.
This commit is contained in:
		 Jim Galarowicz
					Jim Galarowicz
				
			
				
					committed by
					
						 scheibelp
						scheibelp
					
				
			
			
				
	
			
			
			 scheibelp
						scheibelp
					
				
			
						parent
						
							de7d13b0e8
						
					
				
				
					commit
					dfd168d557
				
			| @@ -49,20 +49,55 @@ class CbtfArgonavisGui(QMakePackage): | ||||
|     """ | ||||
|     homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" | ||||
|  | ||||
|     version('1.3.0.0', branch='1.3.0.0', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') | ||||
|  | ||||
|     version('1.3.0', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|     depends_on("openspeedshop+cuda gui='qt4'") | ||||
|     depends_on('qt@4.8.6:') | ||||
|     depends_on("boost@1.50.0:") | ||||
|     depends_on("cbtf") | ||||
|     depends_on("cbtf-krell") | ||||
|     depends_on("cbtf-argonavis") | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis-gui.git') | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", when='@develop', type='build') | ||||
|     depends_on("cmake@3.11.1", when='@1.3.0.0', type='build') | ||||
|  | ||||
|     # To specify ^elfutils@0.170 on the command line spack | ||||
|     # apparently needs/wants this dependency explicity here | ||||
|     # even though it is referenced downstream | ||||
|     depends_on("elf", type="link") | ||||
|  | ||||
|     depends_on('qt@4.8.6:', when='@develop') | ||||
|     depends_on('qt@5.10.0', when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|     depends_on("boost@1.66.0", when='@1.3.0.0') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|     depends_on("mrnet@5.0.1-3+lwthreads", when='@1.3.0.0') | ||||
|  | ||||
|     # Dependencies for the openspeedshop cbtf packages. | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("cbtf-krell@develop", when='@develop') | ||||
|     depends_on("cbtf-krell@1.9.1.0", when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("cbtf-argonavis@develop", when='@develop') | ||||
|     depends_on("cbtf-argonavis@1.9.1.0", when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("cuda") | ||||
|     depends_on("mrnet@5.0.1:+lwthreads") | ||||
|     depends_on("xerces-c@3.1.1:") | ||||
|     depends_on("graphviz") | ||||
|  | ||||
|     depends_on("openspeedshop-utils+cuda@develop", when='@develop') | ||||
|     depends_on("openspeedshop-utils@2.3.1.3+cuda", when='@1.3.0.0') | ||||
|  | ||||
|     # For Xerces-C | ||||
|     depends_on("xerces-c@3.1.1:", when='@develop') | ||||
|     depends_on("xerces-c@3.1.4", when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("graphviz@2.40.1:", when='@develop') | ||||
|     depends_on("graphviz@2.40.1", when='@1.3.0.0') | ||||
|  | ||||
|     depends_on("qtgraph") | ||||
|  | ||||
|     parallel = False | ||||
| @@ -74,7 +109,7 @@ def setup_environment(self, spack_env, run_env): | ||||
|         spack_env.set('CBTF_KRELL_ROOT', self.spec['cbtf-krell'].prefix) | ||||
|         spack_env.set('CBTF_ARGONAVIS_ROOT', | ||||
|                       self.spec['cbtf-argonavis'].prefix) | ||||
|         spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop'].prefix) | ||||
|         spack_env.set('OSS_CBTF_ROOT', self.spec['openspeedshop-utils'].prefix) | ||||
|         spack_env.set('GRAPHVIZ_ROOT', self.spec['graphviz'].prefix) | ||||
|         spack_env.set('QTGRAPHLIB_ROOT', self.spec['qtgraph'].prefix) | ||||
|         spack_env.set('KRELL_ROOT_MRNET', self.spec['mrnet'].prefix) | ||||
| @@ -90,7 +125,7 @@ def setup_environment(self, spack_env, run_env): | ||||
|         # The openspeedshop libraries are needed to actually load the | ||||
|         # performance information into the GUI. | ||||
|         run_env.prepend_path( | ||||
|             'LD_LIBRARY_PATH', self.spec['openspeedshop'].prefix.lib64) | ||||
|             'LD_LIBRARY_PATH', self.spec['openspeedshop-utils'].prefix.lib64) | ||||
|  | ||||
|     def qmake_args(self): | ||||
|         options = ['-o', 'Makefile', 'openss-gui.pro'] | ||||
|   | ||||
| @@ -41,7 +41,6 @@ | ||||
| ########################################################################## | ||||
|  | ||||
| from spack import * | ||||
| import os | ||||
|  | ||||
|  | ||||
| class CbtfArgonavis(CMakePackage): | ||||
| @@ -51,9 +50,15 @@ class CbtfArgonavis(CMakePackage): | ||||
|     """ | ||||
|     homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" | ||||
|  | ||||
|     version('1.9.1.0', branch='1.9.1.0', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') | ||||
|  | ||||
|     version('1.9.1', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-argonavis.git') | ||||
|  | ||||
|     variant('cti', default=False, | ||||
|             description="Build MRNet with the CTI startup option") | ||||
|     variant('crayfe', default=False, | ||||
| @@ -65,17 +70,52 @@ class CbtfArgonavis(CMakePackage): | ||||
|             description='CMake build type') | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|     depends_on("boost@1.50.0:") | ||||
|     depends_on("papi") | ||||
|     depends_on("libmonitor") | ||||
|     depends_on("mrnet@5.0.1:+lwthreads") | ||||
|     depends_on("mrnet@5.0.1:+cti", when='+cti') | ||||
|     depends_on("cbtf") | ||||
|     depends_on("cbtf+cti", when='+cti') | ||||
|     depends_on("cbtf+runtime", when='+runtime') | ||||
|     depends_on("cbtf-krell") | ||||
|     depends_on("cbtf-krell+cti", when="+cti") | ||||
|     depends_on("cbtf-krell+runtime", when="+runtime") | ||||
|  | ||||
|     # To specify ^elfutils@0.170 on the command line spack | ||||
|     # apparently needs/wants this dependency explicity here | ||||
|     # even though it is referenced downstream | ||||
|     depends_on("elf", type="link") | ||||
|  | ||||
|     # For boost | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|     depends_on("boost@1.66.0", when='@1.9.1.0') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop~cti') | ||||
|     depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') | ||||
|     depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0~cti') | ||||
|  | ||||
|     # For CBTF | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF with cti | ||||
|     depends_on("cbtf@develop+cti", when='@develop+cti') | ||||
|     depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') | ||||
|  | ||||
|     # For CBTF with runtime | ||||
|     depends_on("cbtf@develop+runtime", when='@develop+runtime') | ||||
|     depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') | ||||
|  | ||||
|     # For libmonitor | ||||
|     depends_on("libmonitor+krellpatch") | ||||
|  | ||||
|     # For PAPI | ||||
|     depends_on("papi", when='@develop') | ||||
|     depends_on("papi@5.5.1", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF-KRELL | ||||
|     depends_on("cbtf-krell@develop", when='@develop') | ||||
|     depends_on("cbtf-krell@1.9.1.0", when='@1.9.1.0') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+cti', when='@develop+cti') | ||||
|     depends_on('cbtf-krell@1.9.1.0+cti', when='@1.9.1.0+cti') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+runtime', when='@develop+runtime') | ||||
|     depends_on('cbtf-krell@1.9.1.0+runtime', when='@1.9.1.0+runtime') | ||||
|  | ||||
|     # For CUDA | ||||
|     depends_on("cuda") | ||||
|  | ||||
|     parallel = False | ||||
| @@ -109,12 +149,6 @@ def cmake_args(self): | ||||
|     def setup_environment(self, spack_env, run_env): | ||||
|         """Set up the compile and runtime environments for a package.""" | ||||
|  | ||||
|         if os.environ.get('LD_LIBRARY_PATH'): | ||||
|             cupti_path = self.spec['cuda'].prefix + '/extras/CUPTI/lib64' | ||||
|             os.environ['LD_LIBRARY_PATH'] += cupti_path | ||||
|         else: | ||||
|             os.environ['LD_LIBRARY_PATH'] = cupti_path | ||||
|  | ||||
|         run_env.prepend_path( | ||||
|             'LD_LIBRARY_PATH', | ||||
|             self.spec['cuda'].prefix + '/extras/CUPTI/lib64') | ||||
|   | ||||
| @@ -54,9 +54,15 @@ class CbtfKrell(CMakePackage): | ||||
|     """ | ||||
|     homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" | ||||
|  | ||||
|     version('1.9.1.0', branch='1.9.1.0', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-krell.git') | ||||
|  | ||||
|     version('1.9.1', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-krell.git') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-krell.git') | ||||
|  | ||||
|     # MPI variants | ||||
|     variant('openmpi', default=False, | ||||
|             description="Build mpi experiment collector for openmpi MPI..") | ||||
| @@ -83,29 +89,53 @@ class CbtfKrell(CMakePackage): | ||||
|     # Dependencies for cbtf-krell | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|  | ||||
|     # For binutils service | ||||
|     depends_on("binutils") | ||||
|     # For binutils | ||||
|     depends_on("binutils", when='@develop') | ||||
|     depends_on("binutils@2.29.1", when='@1.9.1.0') | ||||
|  | ||||
|     # collectionTool | ||||
|     depends_on("boost@1.50.0:") | ||||
|     depends_on("dyninst@9.3.2:") | ||||
|     depends_on("mrnet@5.0.1:+cti", when='+cti') | ||||
|     depends_on("mrnet@5.0.1:+lwthreads") | ||||
|     # For boost | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|     depends_on("boost@1.66.0", when='@1.9.1.0') | ||||
|  | ||||
|     depends_on("xerces-c@3.1.1:") | ||||
|     depends_on("cbtf") | ||||
|     depends_on("cbtf+cti", when='+cti') | ||||
|     depends_on("cbtf+runtime", when='+runtime') | ||||
|     # For Dyninst | ||||
|     depends_on("dyninst@9.3.2:", when='@develop') | ||||
|     depends_on("dyninst@9.3.2", when='@1.9.1.0') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|  | ||||
|     depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') | ||||
|     depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0') | ||||
|  | ||||
|     # For Xerces-C | ||||
|     depends_on("xerces-c@3.1.1:", when='@develop') | ||||
|     depends_on("xerces-c@3.1.4", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF with cti | ||||
|     depends_on("cbtf@develop+cti", when='@develop+cti') | ||||
|     depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') | ||||
|  | ||||
|     # For CBTF with runtime | ||||
|     depends_on("cbtf@develop+runtime", when='@develop+runtime') | ||||
|     depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') | ||||
|  | ||||
|     # for services and collectors | ||||
|     depends_on("libmonitor+krellpatch") | ||||
|     depends_on("libunwind") | ||||
|     depends_on("papi") | ||||
|  | ||||
|     depends_on("libunwind", when='@develop') | ||||
|     depends_on("libunwind@1.1", when='@1.9.1.0') | ||||
|  | ||||
|     depends_on("papi", when='@develop') | ||||
|     depends_on("papi@5.5.1", when='@1.9.1.0') | ||||
|  | ||||
|     depends_on("llvm-openmp-ompt@tr6_forwards+standalone") | ||||
|  | ||||
|     # MPI Installations | ||||
|     # These have not worked either for build or execution, commenting out for | ||||
|     # now | ||||
|     depends_on("openmpi", when='+openmpi') | ||||
|     depends_on("mpich", when='+mpich') | ||||
|     depends_on("mpich2", when='+mpich2') | ||||
|   | ||||
| @@ -48,26 +48,57 @@ class CbtfLanl(CMakePackage): | ||||
|        command monitoring tool.""" | ||||
|     homepage = "http://sourceforge.net/p/cbtf/wiki/Home/" | ||||
|  | ||||
|     version('1.9.1.0', branch='1.9.1.0', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-lanl.git') | ||||
|  | ||||
|     version('1.9.1', branch='master', | ||||
|             git='http://git.code.sf.net/p/cbtf-lanl/cbtf-lanl') | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-lanl.git') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf-lanl.git') | ||||
|  | ||||
|     variant('build_type', default='None', values=('None'), | ||||
|             description='CMake build type') | ||||
|  | ||||
|     variant('runtime', default=False, | ||||
|             description="build only the runtime libraries and collectors.") | ||||
|  | ||||
|     variant('cti', default=False, | ||||
|             description="Build MRNet with the CTI startup option") | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|     # Dependencies for cbtf-krell | ||||
|     depends_on("mrnet@5.0.1:+lwthreads") | ||||
|     depends_on("xerces-c@3.1.1:") | ||||
|     depends_on("cbtf") | ||||
|     depends_on("cbtf+cti", when='+cti') | ||||
|     depends_on("cbtf+runtime", when='+runtime') | ||||
|     depends_on("cbtf-krell") | ||||
|     depends_on("cbtf-krell+cti", when='+cti') | ||||
|     depends_on("cbtf-krell+runtime", when='+runtime') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|     depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0+cti') | ||||
|     depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0') | ||||
|  | ||||
|     # For Xerces-C | ||||
|     depends_on("xerces-c@3.1.1:", when='@develop') | ||||
|     depends_on("xerces-c@3.1.4", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@1.9.1.0') | ||||
|  | ||||
|     # For CBTF with cti | ||||
|     depends_on("cbtf@develop+cti", when='@develop+cti') | ||||
|     depends_on("cbtf@1.9.1.0+cti", when='@1.9.1.0+cti') | ||||
|  | ||||
|     # For CBTF with runtime | ||||
|     depends_on("cbtf@develop+runtime", when='@develop+runtime') | ||||
|     depends_on("cbtf@1.9.1.0+runtime", when='@1.9.1.0+runtime') | ||||
|  | ||||
|     # For CBTF-KRELL | ||||
|     depends_on("cbtf-krell@develop", when='@develop') | ||||
|     depends_on("cbtf-krell@1.9.1.0", when='@1.9.1.0') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+cti', when='@develop+cti') | ||||
|     depends_on('cbtf-krell@1.9.1.0+cti', when='@1.9.1.0+cti') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+runtime', when='@develop+runtime') | ||||
|     depends_on('cbtf-krell@1.9.1.0+runtime', when='@1.9.1.0+runtime') | ||||
|  | ||||
|     parallel = False | ||||
|  | ||||
|   | ||||
| @@ -53,23 +53,44 @@ class Cbtf(CMakePackage): | ||||
|     homepage = "http://sourceforge.net/p/cbtf/wiki/Home" | ||||
|  | ||||
|     # Use when the git repository is available | ||||
|  | ||||
|     version('1.9.1.0', branch='1.9.1.0', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf.git') | ||||
|  | ||||
|     version('1.9.1', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf.git') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/cbtf.git') | ||||
|  | ||||
|     variant('cti', default=False, | ||||
|             description="Build MRNet with the CTI startup option") | ||||
|  | ||||
|     variant('runtime', default=False, | ||||
|             description="build only the runtime libraries and collectors.") | ||||
|  | ||||
|     variant('build_type', default='None', values=('None'), | ||||
|             description='CMake build type') | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|     depends_on("boost@1.50.0:") | ||||
|     depends_on("mrnet@5.0.1:+lwthreads") | ||||
|     depends_on("mrnet@5.0.1:+cti", when='+cti') | ||||
|     depends_on("xerces-c@3.1.1:") | ||||
|     # Work around for spack libxml2 package bug, take off python when fixed | ||||
|     depends_on("libxml2+python") | ||||
|     depends_on("cmake@3.11.1", when='@1.9.1.0:', type='build') | ||||
|     depends_on("cmake@3.0.2:", when='@develop', type='build') | ||||
|  | ||||
|     depends_on("boost@1.66.0", when='@1.9.1.0:') | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|     depends_on("mrnet@5.0.1-3+cti", when='@1.9.1.0:+cti') | ||||
|     depends_on("mrnet@5.0.1-3+lwthreads", when='@1.9.1.0:') | ||||
|  | ||||
|     # For Xerces-C | ||||
|     depends_on("xerces-c@3.1.1:", when='@develop') | ||||
|     depends_on("xerces-c@3.1.4", when='@1.9.1.0:') | ||||
|  | ||||
|     # For XML2 | ||||
|     depends_on("libxml2", when='@develop') | ||||
|     depends_on("libxml2@2.9.4", when='@1.9.1.0:') | ||||
|  | ||||
|     parallel = False | ||||
|  | ||||
|   | ||||
							
								
								
									
										344
									
								
								var/spack/repos/builtin/packages/openspeedshop-utils/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										344
									
								
								var/spack/repos/builtin/packages/openspeedshop-utils/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,344 @@ | ||||
| ############################################################################## | ||||
| # Copyright (c) 2013-2018, 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/spack/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-2018 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 spack | ||||
| import spack.store | ||||
|  | ||||
| import os | ||||
| import os.path | ||||
|  | ||||
|  | ||||
| class OpenspeedshopUtils(CMakePackage): | ||||
|     """OpenSpeedShop is a community effort by The Krell Institute with | ||||
|        current direct funding from DOEs NNSA.  It builds on top of a | ||||
|        broad list of community infrastructures, most notably Dyninst | ||||
|        and MRNet from UW, libmonitor from Rice, and PAPI from UTK. | ||||
|        OpenSpeedShop is an open source multi platform Linux performance | ||||
|        tool which is targeted to support performance analysis of | ||||
|        applications running on both single node and large scale IA64, | ||||
|        IA32, EM64T, AMD64, PPC, ARM, Power8, Intel Phi, Blue Gene and | ||||
|        Cray platforms.  OpenSpeedShop development is hosted by the Krell | ||||
|        Institute. The infrastructure and base components of OpenSpeedShop | ||||
|        are released as open source code primarily under LGPL. | ||||
|        openspeedshop-utils is a package that does not have the | ||||
|        qt3 gui.  It was created to avoid a conflict between | ||||
|        openspeedshop and cbtf-argonavis-gui based on the fact | ||||
|        that spack will not allow a qt3 and qt4/qt5 dependency in a packages | ||||
|        dependency tree. | ||||
|     """ | ||||
|  | ||||
|     homepage = "http://www.openspeedshop.org" | ||||
|     url = "https://github.com/OpenSpeedShop/openspeedshop.git" | ||||
|  | ||||
|     # Use when the git repository is available | ||||
|     version('2.3.1.3', git='https://github.com/OpenSpeedShop/openspeedshop.git', tag='2.3.1.3') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/openspeedshop.git') | ||||
|  | ||||
|     variant('runtime', default=False, | ||||
|             description="build only the runtime libraries and collectors.") | ||||
|     variant('cti', default=False, | ||||
|             description="Build MRNet with the CTI startup option") | ||||
|     variant('crayfe', default=False, | ||||
|             description="build only the FE tool using the runtime_dir \ | ||||
|                          to point to target build.") | ||||
|     variant('cuda', default=False, | ||||
|             description="build with cuda packages included.") | ||||
|  | ||||
|     variant('build_type', default='None', values=('None'), | ||||
|             description='CMake build type') | ||||
|  | ||||
|     # MPI variants | ||||
|     variant('openmpi', default=False, | ||||
|             description="Build mpi collector for openmpi \ | ||||
|                          MPI when variant is enabled.") | ||||
|     variant('mpt', default=False, | ||||
|             description="Build mpi collector for SGI \ | ||||
|                          MPT MPI when variant is enabled.") | ||||
|     variant('mvapich2', default=False, | ||||
|             description="Build mpi collector for mvapich2\ | ||||
|                          MPI when variant is enabled.") | ||||
|     variant('mvapich', default=False, | ||||
|             description="Build mpi collector for mvapich\ | ||||
|                          MPI when variant is enabled.") | ||||
|     variant('mpich2', default=False, | ||||
|             description="Build mpi collector for mpich2\ | ||||
|                          MPI when variant is enabled.") | ||||
|     variant('mpich', default=False, | ||||
|             description="Build mpi collector for mpich\ | ||||
|                          MPI when variant is enabled.") | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|  | ||||
|     # Dependencies for openspeedshop that are common to all | ||||
|     # the variants of the OpenSpeedShop build | ||||
|     depends_on("libtool", type='build') | ||||
|     depends_on("bison", type='build') | ||||
|     depends_on("flex", type='build') | ||||
|  | ||||
|     # For binutils | ||||
|     depends_on("binutils", when='@develop', type='build') | ||||
|     depends_on("binutils@2.29.1", when='@2.3.1.3', type='build') | ||||
|  | ||||
|     depends_on("elf", type="link") | ||||
|     depends_on("libdwarf") | ||||
|  | ||||
|     depends_on("sqlite") | ||||
|  | ||||
|     # For boost | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|     depends_on("boost@1.66.0", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("dyninst@9.3.2:", when='@develop') | ||||
|     depends_on("dyninst@9.3.2", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("python", when='@develop') | ||||
|     depends_on("python@2.7.14", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("libxml2", when='@develop') | ||||
|     depends_on("libxml2@2.9.4", when='@2.3.1.3') | ||||
|  | ||||
|     # Dependencies for the openspeedshop cbtf packages. | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("cbtf-krell@develop", when='@develop') | ||||
|     depends_on("cbtf-krell@1.9.1.0", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') | ||||
|     depends_on('cbtf-krell@1.9.1.0+crayfe', when='@2.3.1.3+crayfe') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+cti', when='@develop+cti') | ||||
|     depends_on('cbtf-krell@1.9.1.0+cti', when='@2.3.1.3+cti') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpich', when='@2.3.1.3+mpich') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpich2', when='@2.3.1.3+mpich2') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpt', when='@2.3.1.3+mpt') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mvapich', when='@2.3.1.3+mvapich') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mvapich2', when='@2.3.1.3+mvapich2') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') | ||||
|     depends_on('cbtf-krell@1.9.1.0+openmpi', when='@2.3.1.3+openmpi') | ||||
|  | ||||
|     depends_on("cbtf-argonavis@develop", when='@develop+cuda') | ||||
|     depends_on("cbtf-argonavis@1.9.1.0", when='@2.3.1.3+cuda') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|  | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3') | ||||
|  | ||||
|     parallel = False | ||||
|  | ||||
|     build_directory = 'build_openspeedshop' | ||||
|  | ||||
|     def set_CrayLoginNode_cmakeOptions(self, spec, cmakeOptions): | ||||
|         # Appends to cmakeOptions the options that will enable the appropriate | ||||
|         # Cray login node libraries | ||||
|  | ||||
|         CrayLoginNodeOptions = [] | ||||
|         rt_platform = "cray" | ||||
|  | ||||
|         # How do we get the compute node (CNL) cbtf package install | ||||
|         # directory path? | ||||
|         # spec['cbtf'].prefix is the login node value for this build, as | ||||
|         # we only get here when building the login node components and | ||||
|         # that is all that is known to spack. | ||||
|         be_ck = spack.store.db.query_one('cbtf-krell arch=cray-CNL-haswell') | ||||
|  | ||||
|         # Equivalent to install-tool cmake arg: | ||||
|         # '-DCBTF_KRELL_CN_RUNTIME_DIR=%s' | ||||
|         #               % <base dir>/cbtf_v2.3.1.release/compute) | ||||
|         CrayLoginNodeOptions.append('-DCBTF_KRELL_CN_RUNTIME_DIR=%s' | ||||
|                                     % be_ck.prefix) | ||||
|         CrayLoginNodeOptions.append('-DRUNTIME_PLATFORM=%s' | ||||
|                                     % rt_platform) | ||||
|  | ||||
|         cmakeOptions.extend(CrayLoginNodeOptions) | ||||
|  | ||||
|     def cmake_args(self): | ||||
|         # Appends base options to cmake_args | ||||
|         spec = self.spec | ||||
|  | ||||
|         compile_flags = "-O2 -g" | ||||
|  | ||||
|         cmake_args = [] | ||||
|  | ||||
|         # Indicate building cbtf vers (transfer rawdata files) | ||||
|         instrumentor_setting = "cbtf" | ||||
|  | ||||
|         if spec.satisfies('+runtime'): | ||||
|             self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|             cmake_args.extend( | ||||
|                 ['-DCMAKE_CXX_FLAGS=%s'  % compile_flags, | ||||
|                  '-DCMAKE_C_FLAGS=%s'    % compile_flags, | ||||
|                  '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                  '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                  '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                  '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|  | ||||
|         else: | ||||
|  | ||||
|             # Appends base options to cmake_args | ||||
|             self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|             cmake_args.extend( | ||||
|                 ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, | ||||
|                  '-DCMAKE_C_FLAGS=%s' % compile_flags, | ||||
|                  '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                  '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, | ||||
|                  '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                  '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                  '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|  | ||||
|             if spec.satisfies('+crayfe'): | ||||
|                 # We need to build target/compute node | ||||
|                 # components/libraries first then pass | ||||
|                 # those libraries to the openspeedshop | ||||
|                 # login node build | ||||
|                 self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|         cmake_args.extend(['-DBUILD_QT3_GUI=FALSE']) | ||||
|  | ||||
|         return cmake_args | ||||
|  | ||||
|     def set_defaultbase_cmakeOptions(self, spec, cmakeOptions): | ||||
|         # Appends to cmakeOptions the options that will enable | ||||
|         # the appropriate base level options to the openspeedshop | ||||
|         # cmake build. | ||||
|         python_exe = spec['python'].command.path | ||||
|         python_library = spec['python'].libs[0] | ||||
|         python_include = spec['python'].headers.directories[0] | ||||
|  | ||||
|         BaseOptions = [] | ||||
|  | ||||
|         BaseOptions.append('-DBINUTILS_DIR=%s' % spec['binutils'].prefix) | ||||
|         BaseOptions.append('-DLIBELF_DIR=%s' % spec['elf'].prefix) | ||||
|         BaseOptions.append('-DLIBDWARF_DIR=%s' % spec['libdwarf'].prefix) | ||||
|         BaseOptions.append('-DPYTHON_EXECUTABLE=%s' % python_exe) | ||||
|         BaseOptions.append('-DPYTHON_INCLUDE_DIR=%s' % python_include) | ||||
|         BaseOptions.append('-DPYTHON_LIBRARY=%s' % python_library) | ||||
|         BaseOptions.append('-DBoost_NO_SYSTEM_PATHS=TRUE') | ||||
|         BaseOptions.append('-DBoost_NO_BOOST_CMAKE=TRUE') | ||||
|         BaseOptions.append('-DBOOST_ROOT=%s' % spec['boost'].prefix) | ||||
|         BaseOptions.append('-DBoost_DIR=%s' % spec['boost'].prefix) | ||||
|         BaseOptions.append('-DBOOST_LIBRARYDIR=%s' % spec['boost'].prefix.lib) | ||||
|         BaseOptions.append('-DDYNINST_DIR=%s' % spec['dyninst'].prefix) | ||||
|  | ||||
|         cmakeOptions.extend(BaseOptions) | ||||
|  | ||||
|     def set_mpi_cmakeOptions(self, spec, cmakeOptions): | ||||
|         # Appends to cmakeOptions the options that will enable | ||||
|         # the appropriate MPI implementations | ||||
|  | ||||
|         MPIOptions = [] | ||||
|  | ||||
|         # openmpi | ||||
|         if spec.satisfies('+openmpi'): | ||||
|             MPIOptions.append('-DOPENMPI_DIR=%s' % spec['openmpi'].prefix) | ||||
|         # mpich | ||||
|         if spec.satisfies('+mpich'): | ||||
|             MPIOptions.append('-DMPICH_DIR=%s' % spec['mpich'].prefix) | ||||
|         # mpich2 | ||||
|         if spec.satisfies('+mpich2'): | ||||
|             MPIOptions.append('-DMPICH2_DIR=%s' % spec['mpich2'].prefix) | ||||
|         # mvapich | ||||
|         if spec.satisfies('+mvapich'): | ||||
|             MPIOptions.append('-DMVAPICH_DIR=%s' % spec['mvapich'].prefix) | ||||
|         # mvapich2 | ||||
|         if spec.satisfies('+mvapich2'): | ||||
|             MPIOptions.append('-DMVAPICH2_DIR=%s' % spec['mvapich2'].prefix) | ||||
|         # mpt | ||||
|         if spec.satisfies('+mpt'): | ||||
|             MPIOptions.append('-DMPT_DIR=%s' % spec['mpt'].prefix) | ||||
|  | ||||
|         cmakeOptions.extend(MPIOptions) | ||||
|  | ||||
|     def setup_environment(self, spack_env, run_env): | ||||
|         """Set up the compile and runtime environments for a package.""" | ||||
|  | ||||
|         # Find Dyninst library path, this is needed to | ||||
|         # set the DYNINSTAPI_RT_LIB library which is | ||||
|         # required for OpenSpeedShop to find loop level | ||||
|         # performance information | ||||
|         dyninst_libdir = find_libraries('libdyninstAPI_RT', | ||||
|                                         root=self.spec['dyninst'].prefix, | ||||
|                                         shared=True, recursive=True) | ||||
|  | ||||
|         # Set Dyninst RT library path to support OSS loop resolution code | ||||
|         run_env.set('DYNINSTAPI_RT_LIB', dyninst_libdir) | ||||
|  | ||||
|         # Find openspeedshop library path | ||||
|         oss_libdir = find_libraries( | ||||
|             'libopenss-framework', | ||||
|             root=self.spec['openspeedshop-utils'].prefix, | ||||
|             shared=True, recursive=True) | ||||
|         run_env.prepend_path('LD_LIBRARY_PATH', | ||||
|                              os.path.dirname(oss_libdir.joined())) | ||||
|  | ||||
|         run_env.set('OPENSS_RAWDATA_DIR', '.') | ||||
|  | ||||
|         cbtf_mc = '/sbin/cbtf_mrnet_commnode' | ||||
|         cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' | ||||
|         run_env.set('XPLAT_RSH', 'ssh') | ||||
|         run_env.set('MRNET_COMM_PATH', | ||||
|                     join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) | ||||
|         run_env.set('CBTF_MRNET_BACKEND_PATH', | ||||
|                     join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) | ||||
|         run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) | ||||
|         run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) | ||||
|         run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) | ||||
|         run_env.prepend_path('PATH', self.spec['python'].prefix.bin) | ||||
| @@ -64,16 +64,14 @@ class Openspeedshop(CMakePackage): | ||||
|     """ | ||||
|  | ||||
|     homepage = "http://www.openspeedshop.org" | ||||
|     url = "https://github.com/OpenSpeedShop" | ||||
|     url = "https://github.com/OpenSpeedShop/openspeedshop.git" | ||||
|  | ||||
|     # Use when the git repository is available | ||||
|     version('2.3.1', branch='master', | ||||
|     version('2.3.1.3', git='https://github.com/OpenSpeedShop/openspeedshop.git', tag='2.3.1.3') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/openspeedshop.git') | ||||
|  | ||||
|     variant('offline', default=False, | ||||
|             description="build with offline instrumentor enabled.") | ||||
|     variant('cbtf', default=True, | ||||
|             description="build with cbtf instrumentor enabled.") | ||||
|     variant('runtime', default=False, | ||||
|             description="build only the runtime libraries and collectors.") | ||||
|     variant('cti', default=False, | ||||
| @@ -112,48 +110,77 @@ class Openspeedshop(CMakePackage): | ||||
|                          MPI when variant is enabled.") | ||||
|  | ||||
|     depends_on("cmake@3.0.2:", type='build') | ||||
|  | ||||
|     # Dependencies for openspeedshop that are common to all | ||||
|     # the variants of the OpenSpeedShop build | ||||
|     depends_on("libtool", type='build') | ||||
|     depends_on("bison", type='build') | ||||
|     depends_on("flex", type='build') | ||||
|     depends_on("binutils", type='build') | ||||
|  | ||||
|     # For binutils | ||||
|     depends_on("binutils", when='@develop', type='build') | ||||
|     depends_on("binutils@2.29.1", when='@2.3.1.3', type='build') | ||||
|  | ||||
|     depends_on("elf", type="link") | ||||
|     depends_on("libdwarf") | ||||
|  | ||||
|     depends_on("sqlite") | ||||
|     depends_on("boost@1.50.0:") | ||||
|     depends_on("dyninst@9.3.2:") | ||||
|     depends_on("python") | ||||
|     depends_on("libxml2+python") | ||||
|  | ||||
|     # For boost | ||||
|     depends_on("boost@1.50.0:", when='@develop') | ||||
|     depends_on("boost@1.66.0", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("dyninst@9.3.2:", when='@develop') | ||||
|     depends_on("dyninst@9.3.2", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("python", when='@develop') | ||||
|     depends_on("python@2.7.14", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("libxml2", when='@develop') | ||||
|     depends_on("libxml2@2.9.4", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on("qt@3.3.8b+krellpatch", when='gui=qt3') | ||||
|     # Actively working on adding this gui package | ||||
|     # depends_on("cbtf-argonavis-gui", when='gui=qt4') | ||||
|  | ||||
|     # Dependencies only for the openspeedshop offline package. | ||||
|     depends_on("libunwind", when='+offline') | ||||
|     depends_on("papi", when='+offline') | ||||
|     depends_on("libmonitor+krellpatch", when='+offline') | ||||
|     depends_on("openmpi", when='+offline+openmpi') | ||||
|     depends_on("mpich", when='+offline+mpich') | ||||
|     depends_on("mpich2", when='+offline+mpich2') | ||||
|     depends_on("mvapich2", when='+offline+mvapich2') | ||||
|     depends_on("mvapich", when='+offline+mvapich') | ||||
|     depends_on("mpt", when='+offline+mpt') | ||||
|     # Dependencies for the openspeedshop cbtf packages. | ||||
|     depends_on("cbtf@develop", when='@develop') | ||||
|     depends_on("cbtf@1.9.1.0", when='@2.3.1.3') | ||||
|  | ||||
|     # Dependencies only for the openspeedshop cbtf package. | ||||
|     depends_on("cbtf", when='+cbtf') | ||||
|     depends_on('cbtf-krell', when='+cbtf') | ||||
|     depends_on('cbtf-krell+crayfe', when='+crayfe') | ||||
|     depends_on('cbtf-krell+cti', when='+cti') | ||||
|     depends_on('cbtf-krell+mpich', when='+cbtf+mpich') | ||||
|     depends_on('cbtf-krell+mpich2', when='+cbtf+mpich2') | ||||
|     depends_on('cbtf-krell+mpt', when='+cbtf+mpt') | ||||
|     depends_on('cbtf-krell+mvapich', when='+cbtf+mvapich') | ||||
|     depends_on('cbtf-krell+mvapich2', when='+cbtf+mvapich2') | ||||
|     depends_on('cbtf-krell+openmpi', when='+cbtf+openmpi') | ||||
|     depends_on("cbtf-argonavis", when='+cbtf+cuda') | ||||
|     depends_on("mrnet@5.0.1:+lwthreads", when='+cbtf') | ||||
|     depends_on("mrnet@5.0.1:+cti", when='+cti+cbtf') | ||||
|     depends_on("cbtf-krell@develop", when='@develop') | ||||
|     depends_on("cbtf-krell@1.9.1.0", when='@2.3.1.3') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+crayfe', when='@develop+crayfe') | ||||
|     depends_on('cbtf-krell@1.9.1.0+crayfe', when='@2.3.1.3+crayfe') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+cti', when='@develop+cti') | ||||
|     depends_on('cbtf-krell@1.9.1.0+cti', when='@2.3.1.3+cti') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpich', when='@develop+mpich') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpich', when='@2.3.1.3+mpich') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpich2', when='@develop+mpich2') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpich2', when='@2.3.1.3+mpich2') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mpt', when='@develop+mpt') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mpt', when='@2.3.1.3+mpt') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mvapich', when='@develop+mvapich') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mvapich', when='@2.3.1.3+mvapich') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+mvapich2', when='@develop+mvapich2') | ||||
|     depends_on('cbtf-krell@1.9.1.0+mvapich2', when='@2.3.1.3+mvapich2') | ||||
|  | ||||
|     depends_on('cbtf-krell@develop+openmpi', when='@develop+openmpi') | ||||
|     depends_on('cbtf-krell@1.9.1.0+openmpi', when='@2.3.1.3+openmpi') | ||||
|  | ||||
|     depends_on("cbtf-argonavis@develop", when='@develop+cuda') | ||||
|     depends_on("cbtf-argonavis@1.9.1.0", when='@2.3.1.3+cuda') | ||||
|  | ||||
|     # For MRNet | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@develop+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@develop') | ||||
|  | ||||
|     depends_on("mrnet@5.0.1-3:+cti", when='@2.3.1.3+cti') | ||||
|     depends_on("mrnet@5.0.1-3:+lwthreads", when='@2.3.1.3') | ||||
|  | ||||
|     parallel = False | ||||
|  | ||||
| @@ -165,6 +192,7 @@ def set_CrayLoginNode_cmakeOptions(self, spec, cmakeOptions): | ||||
|  | ||||
|         CrayLoginNodeOptions = [] | ||||
|         rt_platform = "cray" | ||||
|  | ||||
|         # How do we get the compute node (CNL) cbtf package install | ||||
|         # directory path? | ||||
|         # spec['cbtf'].prefix is the login node value for this build, as | ||||
| @@ -188,89 +216,54 @@ def cmake_args(self): | ||||
|  | ||||
|         compile_flags = "-O2 -g" | ||||
|  | ||||
|         if spec.satisfies('+offline'): | ||||
|             # Indicate building offline vers (writes rawdata files) | ||||
|             instrumentor_setting = "offline" | ||||
|             if spec.satisfies('+runtime'): | ||||
|                 cmake_args = [ | ||||
|                     '-DCMAKE_CXX_FLAGS=%s'  % compile_flags, | ||||
|                     '-DCMAKE_C_FLAGS=%s'    % compile_flags, | ||||
|                     '-DINSTRUMENTOR=%s'     % instrumentor_setting, | ||||
|                     '-DLIBMONITOR_DIR=%s'   % spec['libmonitor'].prefix, | ||||
|                     '-DLIBUNWIND_DIR=%s'    % spec['libunwind'].prefix, | ||||
|                     '-DPAPI_DIR=%s'         % spec['papi'].prefix] | ||||
|         cmake_args = [] | ||||
|  | ||||
|                 # Add any MPI implementations coming from variant settings | ||||
|                 self.set_mpi_cmakeOptions(spec, cmake_args) | ||||
|         # Indicate building cbtf vers (transfer rawdata files) | ||||
|         instrumentor_setting = "cbtf" | ||||
|  | ||||
|             else: | ||||
|                 cmake_args = [] | ||||
|         if spec.satisfies('+runtime'): | ||||
|             # Appends base options to cmake_args | ||||
|             self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|                 # Appends base options to cmake_args | ||||
|                 self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|             cmake_args.extend( | ||||
|                 ['-DCMAKE_CXX_FLAGS=%s'  % compile_flags, | ||||
|                  '-DCMAKE_C_FLAGS=%s'    % compile_flags, | ||||
|                  '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                  '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                  '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                  '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|  | ||||
|         else: | ||||
|  | ||||
|             # Appends base options to cmake_args | ||||
|             self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|             guitype = self.spec.variants['gui'].value | ||||
|             cmake_args.extend( | ||||
|                 ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, | ||||
|                  '-DCMAKE_C_FLAGS=%s' % compile_flags, | ||||
|                  '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                  '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, | ||||
|                  '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                  '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                  '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|  | ||||
|             if guitype == 'none': | ||||
|                 cmake_args.extend( | ||||
|                     ['-DCMAKE_CXX_FLAGS=%s'  % compile_flags, | ||||
|                      '-DCMAKE_C_FLAGS=%s'    % compile_flags, | ||||
|                      '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                      '-DLIBMONITOR_DIR=%s' % spec['libmonitor'].prefix, | ||||
|                      '-DLIBUNWIND_DIR=%s' % spec['libunwind'].prefix, | ||||
|                      '-DPAPI_DIR=%s' % spec['papi'].prefix, | ||||
|                      '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, | ||||
|                      '-DQTLIB_DIR=%s' % spec['qt'].prefix]) | ||||
|  | ||||
|                 # Add any MPI implementations coming from variant settings | ||||
|                 self.set_mpi_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|         elif spec.satisfies('+cbtf'): | ||||
|  | ||||
|             cmake_args = [] | ||||
|  | ||||
|             # Indicate building cbtf vers (transfer rawdata files) | ||||
|             instrumentor_setting = "cbtf" | ||||
|  | ||||
|             if spec.satisfies('+runtime'): | ||||
|                 # Appends base options to cmake_args | ||||
|                 self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|                     ['-DBUILD_QT3_GUI=FALSE']) | ||||
|             elif guitype == 'qt4': | ||||
|                 cmake_args.extend( | ||||
|                     ['-DCMAKE_CXX_FLAGS=%s'  % compile_flags, | ||||
|                      '-DCMAKE_C_FLAGS=%s'    % compile_flags, | ||||
|                      '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                      '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                      '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                      '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|  | ||||
|             else: | ||||
|  | ||||
|                 # Appends base options to cmake_args | ||||
|                 self.set_defaultbase_cmakeOptions(spec, cmake_args) | ||||
|                 guitype = self.spec.variants['gui'].value | ||||
|                     ['-DBUILD_QT3_GUI=FALSE']) | ||||
|             elif guitype == 'qt3': | ||||
|                 cmake_args.extend( | ||||
|                     ['-DCMAKE_CXX_FLAGS=%s' % compile_flags, | ||||
|                      '-DCMAKE_C_FLAGS=%s' % compile_flags, | ||||
|                      '-DINSTRUMENTOR=%s' % instrumentor_setting, | ||||
|                      '-DSQLITE3_DIR=%s' % spec['sqlite'].prefix, | ||||
|                      '-DCBTF_DIR=%s' % spec['cbtf'].prefix, | ||||
|                      '-DCBTF_KRELL_DIR=%s' % spec['cbtf-krell'].prefix, | ||||
|                      '-DMRNET_DIR=%s' % spec['mrnet'].prefix]) | ||||
|                     ['-DQTLIB_DIR=%s' | ||||
|                         % spec['qt'].prefix]) | ||||
|  | ||||
|                 if guitype == 'none': | ||||
|                     cmake_args.extend( | ||||
|                         ['-DBUILD_QT3_GUI=FALSE']) | ||||
|                 elif guitype == 'qt4': | ||||
|                     cmake_args.extend( | ||||
|                         ['-DBUILD_QT3_GUI=FALSE']) | ||||
|                 elif guitype == 'qt3': | ||||
|                     cmake_args.extend( | ||||
|                         ['-DQTLIB_DIR=%s' | ||||
|                             % spec['qt'].prefix]) | ||||
|  | ||||
|                 if spec.satisfies('+crayfe'): | ||||
|                     # We need to build target/compute node | ||||
|                     # components/libraries first then pass | ||||
|                     # those libraries to the openspeedshop | ||||
|                     # login node build | ||||
|                     self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) | ||||
|             if spec.satisfies('+crayfe'): | ||||
|                 # We need to build target/compute node | ||||
|                 # components/libraries first then pass | ||||
|                 # those libraries to the openspeedshop | ||||
|                 # login node build | ||||
|                 self.set_CrayLoginNode_cmakeOptions(spec, cmake_args) | ||||
|  | ||||
|         return cmake_args | ||||
|  | ||||
| @@ -352,35 +345,15 @@ def setup_environment(self, spack_env, run_env): | ||||
|                              os.path.dirname(oss_libdir.joined())) | ||||
|  | ||||
|         run_env.set('OPENSS_RAWDATA_DIR', '.') | ||||
|         # Settings specific to the version, checking here | ||||
|         # for the offline instrumentor, otherwise use cbtf instrumentor | ||||
|         # settings. MPI for the cbtf instrumentor is setup in cbtf-krell | ||||
|         if '+offline' in self.spec: | ||||
|             # Had to use this form of syntax self.prefix.lib and | ||||
|             # self.prefix.lib64 returned None all the time | ||||
|             run_env.set('OPENSS_PLUGIN_PATH', | ||||
|                         join_path(oss_libdir + '/openspeedshop')) | ||||
|             run_env.prepend_path('PATH', self.spec['papi'].prefix.bin) | ||||
|             run_env.prepend_path('PATH', self.spec['libdwarf'].prefix.bin) | ||||
|             run_env.prepend_path('PATH', self.spec['python'].prefix.bin) | ||||
|  | ||||
|             if '+mpich' in self.spec: | ||||
|                 run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich') | ||||
|             if '+mpich2' in self.spec: | ||||
|                 run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mpich2') | ||||
|             if '+mvapich2' in self.spec: | ||||
|                 run_env.set('OPENSS_MPI_IMPLEMENTATION', 'mvapich2') | ||||
|             if '+openmpi' in self.spec: | ||||
|                 run_env.set('OPENSS_MPI_IMPLEMENTATION', 'openmpi') | ||||
|         else: | ||||
|             cbtf_mc = '/sbin/cbtf_mrnet_commnode' | ||||
|             cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' | ||||
|             run_env.set('XPLAT_RSH', 'ssh') | ||||
|             run_env.set('MRNET_COMM_PATH', | ||||
|                         join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) | ||||
|             run_env.set('CBTF_MRNET_BACKEND_PATH', | ||||
|                         join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) | ||||
|             run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) | ||||
|             run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) | ||||
|             run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) | ||||
|             run_env.prepend_path('PATH', self.spec['python'].prefix.bin) | ||||
|         cbtf_mc = '/sbin/cbtf_mrnet_commnode' | ||||
|         cbtf_lmb = '/sbin/cbtf_libcbtf_mrnet_backend' | ||||
|         run_env.set('XPLAT_RSH', 'ssh') | ||||
|         run_env.set('MRNET_COMM_PATH', | ||||
|                     join_path(self.spec['cbtf-krell'].prefix + cbtf_mc)) | ||||
|         run_env.set('CBTF_MRNET_BACKEND_PATH', | ||||
|                     join_path(self.spec['cbtf-krell'].prefix + cbtf_lmb)) | ||||
|         run_env.prepend_path('PATH', self.spec['mrnet'].prefix.bin) | ||||
|         run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.bin) | ||||
|         run_env.prepend_path('PATH', self.spec['cbtf-krell'].prefix.sbin) | ||||
|         run_env.prepend_path('PATH', self.spec['python'].prefix.bin) | ||||
|   | ||||
| @@ -51,12 +51,22 @@ class Qtgraph(QMakePackage): | ||||
|     homepage = "https://github.com/OpenSpeedShop/QtGraph" | ||||
|  | ||||
|     url      = "https://github.com/OpenSpeedShop/QtGraph.git" | ||||
|  | ||||
|     version('1.0.0.0', branch='1.0.0.0', | ||||
|             git='https://github.com/OpenSpeedShop/QtGraph.git') | ||||
|  | ||||
|     version('1.0.0', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/QtGraph.git') | ||||
|  | ||||
|     version('develop', branch='master', | ||||
|             git='https://github.com/OpenSpeedShop/QtGraph.git') | ||||
|  | ||||
|     # qtgraph depends on these packages | ||||
|     depends_on('qt@4.8.6:') | ||||
|     depends_on('graphviz') | ||||
|     depends_on('qt@4.8.6:', when='@develop') | ||||
|     depends_on('qt@5.10.0', when='@1.0.0.0') | ||||
|  | ||||
|     depends_on("graphviz@2.40.1:", when='@develop') | ||||
|     depends_on("graphviz@2.40.1", when='@1.0.0.0') | ||||
|  | ||||
|     def setup_environment(self, spack_env, run_env): | ||||
|         """Set up the compile and runtime environments for a package.""" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user