diff options
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/cmake/package.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 1987b6bf21..5f1b45bc3c 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -111,11 +111,16 @@ class Cmake(Package): phases = ['bootstrap', 'build', 'install'] - def setup_environment(self, spack_env, run_env): - if self.compiler.name == 'fj' \ - and self.compiler.cxx11_flag \ - not in self.spec.compiler_flags['cxxflags']: - spack_env.append_flags('CXXFLAGS', self.compiler.cxx11_flag) + def flag_handler(self, name, flags): + if name == 'cxxflags' and self.compiler.name == 'fj': + cxx11plus_flags = (self.compiler.cxx11_flag, + self.compiler.cxx14_flag) + cxxpre11_flags = (self.cxx98_flags) + if any(f in flags for f in cxxpre11_flags): + raise ValueError('cannot build cmake pre-c++11 standard') + elif not any(f in flags for f in cxx11plus_flags): + flags.append(self.compiler.cxx11_flag) + return (flags, None, None) def bootstrap_args(self): spec = self.spec |