diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/ascent/package.py | 52 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/conduit/package.py | 49 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/vtkh/package.py | 5 |
3 files changed, 76 insertions, 30 deletions
diff --git a/var/spack/repos/builtin/packages/ascent/package.py b/var/spack/repos/builtin/packages/ascent/package.py index 854bf1e909..eda0f93c1c 100644 --- a/var/spack/repos/builtin/packages/ascent/package.py +++ b/var/spack/repos/builtin/packages/ascent/package.py @@ -78,7 +78,7 @@ class Ascent(Package): variant("tbb", default=True, description="Build tbb support") variant("cuda", default=False, description="Build cuda support") - variant("adios", default=True, description="Build Adios filter support") + variant("adios", default=False, description="Build Adios filter support") # variants for dev-tools (docs, etc) variant("doc", default=False, description="Build Conduit's documentation") @@ -88,7 +88,7 @@ class Ascent(Package): ########################################################################### depends_on("cmake", when="+cmake") - depends_on("conduit") + depends_on("conduit@master") ####################### # Python @@ -125,7 +125,13 @@ class Ascent(Package): Build and install Conduit. """ with working_dir('spack-build', create=True): - host_cfg_fname = self.create_host_config(spec, prefix) + py_site_pkgs_dir = None + if "+python" in spec: + py_site_pkgs_dir = site_packages_dir + + host_cfg_fname = self.create_host_config(spec, + prefix, + py_site_pkgs_dir) cmake_args = [] # if we have a static build, we need to avoid any of # spack's default cmake settings related to rpaths @@ -140,12 +146,26 @@ class Ascent(Package): cmake(*cmake_args) make() make("install") - # TODO also copy host_cfg_fname into install + # install copy of host config for provenance + install(host_cfg_fname, prefix) - def create_host_config(self, spec, prefix): + def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): """ This method creates a 'host-config' file that specifies all of the options used to configure and build ascent. + + For more details about 'host-config' files see: + http://ascent.readthedocs.io/en/latest/BuildingAscent.html + + Note: + The `py_site_pkgs_dir` arg exists to allow a package that + subclasses this package provide a specific site packages + dir when calling this function. `py_site_pkgs_dir` should + be an absolute path or `None`. + + This is necessary because the spack `site_packages_dir` + var will not exist in the base class. For more details + on this issue see: https://github.com/spack/spack/issues/6261 """ ####################### @@ -184,9 +204,9 @@ class Ascent(Package): raise RuntimeError(msg) cmake_exe = cmake_exe.path - host_cfg_fname = "%s-%s-%s.cmake" % (socket.gethostname(), - sys_type, - spec.compiler) + host_cfg_fname = "%s-%s-%s-ascent.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) cfg = open(host_cfg_fname, "w") cfg.write("##################################\n") @@ -246,10 +266,10 @@ class Ascent(Package): cfg.write("# python from spack \n") cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", spec['python'].command.path)) - # install module to standard style site packages dir - # so we can support spack activate - cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX", - site_packages_dir)) + # only set dest python site packages dir if passed + if py_site_pkgs_dir: + cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX", + py_site_pkgs_dir)) else: cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF")) @@ -260,10 +280,6 @@ class Ascent(Package): sphinx_build_exe = join_path(spec['py-sphinx'].prefix.bin, "sphinx-build") cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE", sphinx_build_exe)) - - cfg.write("# doxygen from uberenv\n") - doxygen_exe = spec['doxygen'].command.path - cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE", doxygen_exe)) else: cfg.write(cmake_cache_entry("ENABLE_DOCS", "OFF")) @@ -280,6 +296,10 @@ class Ascent(Package): spec['mpi'].mpicxx)) cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", spec['mpi'].mpifc)) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + cfg.write(cmake_cache_entry("MPIEXEC", + mpiexe_bin)) else: cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py index 6793a391c3..2ce7edc8cd 100644 --- a/var/spack/repos/builtin/packages/conduit/package.py +++ b/var/spack/repos/builtin/packages/conduit/package.py @@ -108,9 +108,10 @@ class Conduit(Package): # experienced on BGQ. When on, the static build tries # to link against shared libs. # - # we are not using hdf5's mpi or fortran features. - depends_on("hdf5~cxx~mpi~fortran", when="+hdf5+shared") - depends_on("hdf5~shared~cxx~mpi~fortran", when="+hdf5~shared") + # Use HDF5 1.8, for wider output compatibly + # variants reflect we are not using hdf5's mpi or fortran features. + depends_on("hdf5@1.8.19:1.8.999~cxx~mpi~fortran", when="+hdf5+shared") + depends_on("hdf5@1.8.19:1.8.999~shared~cxx~mpi~fortran", when="+hdf5~shared") # we are not using silo's fortran features depends_on("silo~fortran", when="+silo+shared") @@ -148,7 +149,13 @@ class Conduit(Package): Build and install Conduit. """ with working_dir('spack-build', create=True): - host_cfg_fname = self.create_host_config(spec, prefix) + py_site_pkgs_dir = None + if "+python" in spec: + py_site_pkgs_dir = site_packages_dir + + host_cfg_fname = self.create_host_config(spec, + prefix, + py_site_pkgs_dir) cmake_args = [] # if we have a static build, we need to avoid any of # spack's default cmake settings related to rpaths @@ -163,14 +170,26 @@ class Conduit(Package): cmake(*cmake_args) make() make("install") + # install copy of host config for provenance + install(host_cfg_fname, prefix) - def create_host_config(self, spec, prefix): + def create_host_config(self, spec, prefix, py_site_pkgs_dir=None): """ This method creates a 'host-config' file that specifies all of the options used to configure and build conduit. - For more details see about 'host-config' files see: + For more details about 'host-config' files see: http://software.llnl.gov/conduit/building.html + + Note: + The `py_site_pkgs_dir` arg exists to allow a package that + subclasses this package provide a specific site packages + dir when calling this function. `py_site_pkgs_dir` should + be an absolute path or `None`. + + This is necessary because the spack `site_packages_dir` + var will not exist in the base class. For more details + on this issue see: https://github.com/spack/spack/issues/6261 """ ####################### @@ -209,9 +228,9 @@ class Conduit(Package): raise RuntimeError(msg) cmake_exe = cmake_exe.path - host_cfg_fname = "%s-%s-%s.cmake" % (socket.gethostname(), - sys_type, - spec.compiler) + host_cfg_fname = "%s-%s-%s-conduit.cmake" % (socket.gethostname(), + sys_type, + spec.compiler) cfg = open(host_cfg_fname, "w") cfg.write("##################################\n") @@ -256,10 +275,10 @@ class Conduit(Package): cfg.write("# python from spack \n") cfg.write(cmake_cache_entry("PYTHON_EXECUTABLE", spec['python'].command.path)) - # install module to standard style site packages dir - # so we can support spack activate - cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX", - site_packages_dir)) + # only set dest python site packages dir if passed + if py_site_pkgs_dir: + cfg.write(cmake_cache_entry("PYTHON_MODULE_INSTALL_PREFIX", + py_site_pkgs_dir)) else: cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF")) @@ -290,6 +309,10 @@ class Conduit(Package): spec['mpi'].mpicxx)) cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", spec['mpi'].mpifc)) + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + cfg.write(cmake_cache_entry("MPIEXEC", + mpiexe_bin)) else: cfg.write(cmake_cache_entry("ENABLE_MPI", "OFF")) diff --git a/var/spack/repos/builtin/packages/vtkh/package.py b/var/spack/repos/builtin/packages/vtkh/package.py index 9073c1f6f3..35883547b1 100644 --- a/var/spack/repos/builtin/packages/vtkh/package.py +++ b/var/spack/repos/builtin/packages/vtkh/package.py @@ -24,6 +24,7 @@ ############################################################################## from spack import * +import os class Vtkh(Package): @@ -67,7 +68,9 @@ class Vtkh(Package): mpicxx = spec['mpi'].mpicxx cmake_args.extend(["-DMPI_C_COMPILER={0}".format(mpicc), "-DMPI_CXX_COMPILER={0}".format(mpicxx)]) - + mpiexe_bin = join_path(spec['mpi'].prefix.bin, 'mpiexec') + if os.path.isfile(mpiexe_bin): + cmake_args.append("-DMPIEXEC={0}".format(mpiexe_bin)) # tbb support if "+tbb" in spec: cmake_args.append("-DTBB_DIR={0}".format(spec["tbb"].prefix)) |