diff options
author | Jim Galarowicz <jeg@krellinst.org> | 2017-07-27 11:06:44 -0500 |
---|---|---|
committer | Adam J. Stewart <ajstewart426@gmail.com> | 2017-07-27 11:06:44 -0500 |
commit | 99cac0bf94a16a82bd455bdcf1ab8f2a4a175949 (patch) | |
tree | c626ecf3a382f3d0b0426363734fd148074bcff0 /var | |
parent | 31a329d237b51638da16d4fd3641b5aad2af130e (diff) | |
download | spack-99cac0bf94a16a82bd455bdcf1ab8f2a4a175949.tar.gz spack-99cac0bf94a16a82bd455bdcf1ab8f2a4a175949.tar.bz2 spack-99cac0bf94a16a82bd455bdcf1ab8f2a4a175949.tar.xz spack-99cac0bf94a16a82bd455bdcf1ab8f2a4a175949.zip |
Fix for Krell openspeedshop spack package bug. New multi-value variant for GUI build. (#4880)
* Update the krell institute products to use the latest features of spack for building on cluster platforms.
* Address travis error messages and resubmit the pull request.
* Update the contents of openspeedshop package.py so it passes the flake8 tests.
* Fix flake8 error-whitespack issue in mrnet package.py file.
* Add updates based on spack reviewer feedback.
* More fixes based on comments from reviewers. Switch using extend to using append, remove additional setting of PATH and LD_LIBRARY_PATH that should not be required due to RPATH.
* More review related changes. Update MPIOption.append lines and take out xercesc references.
* Create a base options function for common openspeedshop base cmake options to reduce redundencies.
* Add libxml2+python depends on to get around issues with the libxml2 package file.
* Using boost over 1.60.0 causes compile errors. This is a known boost bug. Also, dyninst-9.2.0 is set to be the vesrion of dyninst to use with OSS, as of now. The newer version fails to build.
* Fix bad syntax in specifying the boost version range.
* Update the version numbers for the krell institute components and tools: cbtf and openspeedshop.
* Do not build glib for qt3, it is not needed and causes build problems at this time anyway.
* A fix was added for setting LD_LIBRARY_PATH in the qt3 build, but if LD_LIBRARY_PATH is not set the qt build fails. So so check and set LD_LIBRARY_PATH if not set, update if it is set.
* Update the fix for qt3 build by setting LD_LIBRARY_PATH instead of checking for whether it is set or not per Adams comment that spack clears LD_LIBRARY_PATH.
* A fix was added for setting LD_LIBRARY_PATH in the qt3 build, but if LD_LIBRARY_PATH is not set the qt build fails. So so check and set LD_LIBRARY_PATH if not set, update if it is set.
* Trim comments to fit more concisely.
* Fix tabs versus spaces and swap if and else clause check from a negative to a positive check.
* Fix issues with the cbtf-argonavis build, update to use dyninst-9.3.2, fixes to openspeedshop package build.
* Fix issues with the cbtf-argonavis package.py files related to comments.
* Add changes for changing the krell packages from Package to CMakePackage.
* Add better changes for changing the krell packages from Package to CMakePackage.
* Add more modifications for changing the krell packages from Package to CMakePackage.
* Add additional modifications for changing the krell packages from Package to CMakePackage and fixing Travis erros
* Fix new travis errors.
* Fix new travis errors.
* Add more changes for PR 4765.
* Add more refinements to the conversion from Package to CMakePackage.
* Fix new travis errors.
* Add dependencies for MPI to be passed to cbtf-krell, so it can build the MPI collectors requested by the builder of openspeedshop.
* Remove extra unnecessary routine to adjust build arguments. Fix if-else clause issue.
* Fix more flake issues caused by last changes.
* Fix a bug where openspeedshop will not build when no mpi variants are specified. Also switch to a multiple level variant for building the gui(s). Use none, qt3, and qt4 as the variants with qt3 being the default.
* Add fix for spack issue #4843, where LTDL include files were not found.
* Add the build_type variant back into the openspeedshop package file.
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/openspeedshop/package.py | 98 |
1 files changed, 40 insertions, 58 deletions
diff --git a/var/spack/repos/builtin/packages/openspeedshop/package.py b/var/spack/repos/builtin/packages/openspeedshop/package.py index f4c0029d72..95971af10e 100644 --- a/var/spack/repos/builtin/packages/openspeedshop/package.py +++ b/var/spack/repos/builtin/packages/openspeedshop/package.py @@ -77,12 +77,11 @@ class Openspeedshop(CMakePackage): to point to target build.") variant('cuda', default=False, description="build with cuda packages included.") - variant('useqt4gui', default=False, - description="build with Qt4/Qt5 based gui package enabled. \ - Do not build older Qt3 gui") - variant('rtfe', default=False, - description="build for clusters heterogeneous processors \ - on fe/be nodes.") + + variant('gui', default='qt3', values=('none', 'qt3', 'qt4'), + description='Build or not build a GUI of choice' + ) + variant('build_type', default='None', values=('None'), description='CMake build type') @@ -109,6 +108,7 @@ class Openspeedshop(CMakePackage): 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@2.24+krellpatch", type='build') @@ -118,7 +118,9 @@ class Openspeedshop(CMakePackage): depends_on("boost@1.50.0:1.59.0") depends_on("dyninst@9.3.2") depends_on("libxml2+python") - depends_on("qt@3.3.8b+krellpatch", when='~useqt4gui') + 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') @@ -133,6 +135,7 @@ class Openspeedshop(CMakePackage): # Dependencies only for the openspeedshop cbtf package. depends_on("cbtf", when='+cbtf') + depends_on('cbtf-krell', when='+cbtf') depends_on('cbtf-krell+mpich', when='+cbtf+mpich') depends_on('cbtf-krell+mpich2', when='+cbtf+mpich2') depends_on('cbtf-krell+mpt', when='+cbtf+mpt') @@ -151,9 +154,9 @@ class Openspeedshop(CMakePackage): compile_flags = "-O2 -g" if '+offline' in spec: + # Indicate building offline vers (writes rawdata files) instrumentor_setting = "offline" if '+runtime' in spec: - cmake_args = [ '-DCMAKE_CXX_FLAGS=%s' % compile_flags, '-DCMAKE_C_FLAGS=%s' % compile_flags, @@ -174,78 +177,57 @@ class Openspeedshop(CMakePackage): 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]) + '-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 '+cbtf' in spec: + # Indicate building cbtf vers (transfer rawdata files) instrumentor_setting = "cbtf" if '+runtime' in spec: - # 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]) + '-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: cmake_args = [] # Appends base options to cmake_args self.set_defaultbase_cmakeOptions(spec, cmake_args) - - if '+useqt4gui' in self.spec: + 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( + ['-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, - '-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]) - else: + ['-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, - '-DQTLIB_DIR=%s' - % spec['qt'].prefix, - '-DMRNET_DIR=%s' - % spec['mrnet'].prefix]) + ['-DQTLIB_DIR=%s' + % spec['qt'].prefix]) return cmake_args |