diff --git a/waflib/Tools/compiler_c.py b/waflib/Tools/compiler_c.py index 9c813613..e05599c6 100644 --- a/waflib/Tools/compiler_c.py +++ b/waflib/Tools/compiler_c.py @@ -81,7 +81,9 @@ def configure(conf): if conf.env['CC']: conf.end_msg(conf.env.get_flat('CC')) conf.env['COMPILER_CC'] = compiler + conf.env.commit() break + conf.env.revert() conf.end_msg(False) else: conf.fatal('could not configure a C compiler!') diff --git a/waflib/Tools/compiler_cxx.py b/waflib/Tools/compiler_cxx.py index 80d716b6..1b19ea20 100644 --- a/waflib/Tools/compiler_cxx.py +++ b/waflib/Tools/compiler_cxx.py @@ -82,7 +82,9 @@ def configure(conf): if conf.env['CXX']: conf.end_msg(conf.env.get_flat('CXX')) conf.env['COMPILER_CXX'] = compiler + conf.env.commit() break + conf.env.revert() conf.end_msg(False) else: conf.fatal('could not configure a C++ compiler!') diff --git a/waflib/Tools/compiler_d.py b/waflib/Tools/compiler_d.py index 98f68809..9003a92d 100644 --- a/waflib/Tools/compiler_d.py +++ b/waflib/Tools/compiler_d.py @@ -58,7 +58,9 @@ def configure(conf): if conf.env.D: conf.end_msg(conf.env.get_flat('D')) conf.env['COMPILER_D'] = compiler + conf.env.commit() break + conf.env.revert() conf.end_msg(False) else: conf.fatal('could not configure a D compiler!') diff --git a/waflib/Tools/compiler_fc.py b/waflib/Tools/compiler_fc.py index e92793cd..f36496ec 100644 --- a/waflib/Tools/compiler_fc.py +++ b/waflib/Tools/compiler_fc.py @@ -44,7 +44,9 @@ def configure(conf): if conf.env['FC']: conf.end_msg(conf.env.get_flat('FC')) conf.env.COMPILER_FORTRAN = compiler + conf.env.commit() break + conf.env.revert() conf.end_msg(False) else: conf.fatal('could not configure a Fortran compiler!') diff --git a/waflib/extras/boost.py b/waflib/extras/boost.py index 9e2c0bdc..222b77e7 100644 --- a/waflib/extras/boost.py +++ b/waflib/extras/boost.py @@ -410,12 +410,14 @@ def check_boost(self, *k, **kw): self.env["CXXFLAGS_%s" % var] += cxxflags try: try_link() - self.end_msg("ok: winning cxxflags combination: %s" % (self.env["CXXFLAGS_%s" % var])) - exc = None - break except Errors.ConfigurationError as e: self.env.revert() exc = e + else: + self.end_msg("ok: winning cxxflags combination: %s" % (self.env["CXXFLAGS_%s" % var])) + exc = None + self.env.commit() + break if exc is not None: self.end_msg("Could not auto-detect boost linking flags combination, you may report it to boost.py author", ex=exc)