diff --git a/var/spack/repos/builtin/packages/openfoam-org/package.py b/var/spack/repos/builtin/packages/openfoam-org/package.py index 42c5b0e015..dc9b5673ee 100644 --- a/var/spack/repos/builtin/packages/openfoam-org/package.py +++ b/var/spack/repos/builtin/packages/openfoam-org/package.py @@ -45,6 +45,7 @@ from spack.pkg.builtin.openfoam import rewrite_environ_files from spack.pkg.builtin.openfoam import mplib_content from spack.pkg.builtin.openfoam import OpenfoamArch +from spack.util.environment import EnvironmentModifications class OpenfoamOrg(Package): @@ -138,15 +139,14 @@ def config(self): return settings def setup_run_environment(self, env): - # This should be similar to the openfoam package, - # but sourcing the etc/bashrc here seems to exit with an error. - # ... this needs to be examined in more detail. - # - # Minimal environment only. - env.set('FOAM_PROJECT_DIR', self.projectdir) - env.set('WM_PROJECT_DIR', self.projectdir) - for d in ['wmake', self.archbin]: # bin already added automatically - env.prepend_path('PATH', join_path(self.projectdir, d)) + bashrc = self.prefix.etc.bashrc + try: + env.extend(EnvironmentModifications.from_sourcing_file( + bashrc, clean=True + )) + except Exception as e: + msg = 'unexpected error when sourcing OpenFOAM bashrc [{0}]' + tty.warn(msg.format(str(e))) def setup_dependent_build_environment(self, env, dependent_spec): """Location of the OpenFOAM project directory. @@ -386,5 +386,3 @@ def install_links(self): if os.path.isfile(f) ]: os.symlink(f, os.path.basename(f)) - -# -----------------------------------------------------------------------------