summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py15
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