Added Cinch Spackage (#11759)

* Added Cinch Spackage and updated Flecsi to Use It

Added spackage for Cinch build system and updated flecsi spackage to use
the external version of cinch

* Flake8 compliance for Cinch and Flecsi

* Fixed Cinch Issue and Requested PR Changes

Swapped cinch back to master branch rather than test branch and style
issues for PR
This commit is contained in:
Robert Pavel
2019-06-18 15:45:58 -06:00
committed by Adam J. Stewart
parent d21bec996e
commit 2eee507914
2 changed files with 41 additions and 10 deletions

View File

@@ -0,0 +1,28 @@
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class Cinch(Package):
"""
Cinch is a set of utilities and configuration options designed to make
cmake builds easy to use and manage.
"""
homepage = "https://github.com/laristra/cinch"
url = "https://github.com/laristra/cinch/archive/1.0.zip"
git = "https://github.com/laristra/cinch.git"
version('develop', branch='master', submodules=False)
version('1.0', sha256='98b73473829b478191481621d84c3d63c662da6e951321f858a032eae3ca07b7')
def install(self, spec, prefix):
# (CMake) Header Only library so just copy
install_tree(self.stage.source_path, prefix)
def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
spack_env.prepend_path('CMAKE_PREFIX_PATH', self.prefix)
spack_env.set('CINCH_SOURCE_DIR', self.prefix)

View File

@@ -20,7 +20,7 @@ class Flecsi(CMakePackage):
homepage = "http://flecsi.lanl.gov/"
git = "https://github.com/laristra/flecsi.git"
version('develop', branch='master', submodules=True)
version('develop', branch='master', submodules=False)
variant('backend', default='mpi', values=('serial', 'mpi', 'legion'),
description="Backend to use for distributed memory")
variant('graphviz', default=False,
@@ -29,6 +29,8 @@ class Flecsi(CMakePackage):
description='Build FleCSI Tutorials')
depends_on("cmake@3.1:", type='build')
# Requires cinch > 1.0 due to cinchlog installation issue
depends_on("cinch@1.01:", type='build')
depends_on('mpi', when='backend=mpi')
depends_on('mpi', when='backend=legion')
depends_on("gasnet~pshm", when='backend=legion')
@@ -43,22 +45,23 @@ class Flecsi(CMakePackage):
def cmake_args(self):
options = ['-DCMAKE_BUILD_TYPE=debug']
options.append('-DCINCH_SOURCE_DIR=' + self.spec['cinch'].prefix)
if self.spec.variants['backend'].value == 'legion':
options.extend(['-DFLECSI_RUNTIME_MODEL=legion'])
options.append('-DFLECSI_RUNTIME_MODEL=legion')
elif self.spec.variants['backend'].value == 'mpi':
options.extend(['-DFLECSI_RUNTIME_MODEL=mpi'])
options.append('-DFLECSI_RUNTIME_MODEL=mpi')
else:
options.extend(['-DFLECSI_RUNTIME_MODEL=serial'])
options.extend([
options.append('-DFLECSI_RUNTIME_MODEL=serial')
options.append(
'-DENABLE_MPI=OFF',
])
)
if '+tutorial' in self.spec:
options.extend(['-DENABLE_FLECSIT=ON'])
options.extend(['-DENABLE_FLECSI_TUTORIAL=ON'])
options.append('-DENABLE_FLECSIT=ON')
options.append('-DENABLE_FLECSI_TUTORIAL=ON')
else:
options.extend(['-DENABLE_FLECSIT=OFF'])
options.extend(['-DENABLE_FLECSI_TUTORIAL=OFF'])
options.append('-DENABLE_FLECSIT=OFF')
options.append('-DENABLE_FLECSI_TUTORIAL=OFF')
return options