diff options
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/SCons/Taskmaster.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Warnings.py | 24 | ||||
| -rw-r--r-- | src/engine/SCons/WarningsTests.py | 4 |
3 files changed, 29 insertions, 3 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py index f360402..934e28b 100644 --- a/src/engine/SCons/Taskmaster.py +++ b/src/engine/SCons/Taskmaster.py @@ -58,6 +58,7 @@ import traceback import SCons.Errors import SCons.Node +import SCons.Warnings StateString = SCons.Node.StateString NODE_NO_STATE = SCons.Node.no_state @@ -202,6 +203,9 @@ class Task: # Deprecation Cycle) so the desired behavior is explicitly # determined by which concrete subclass is used. #raise NotImplementedError + msg = ('Direct use of the Taskmaster.Task class will be deprecated\n' + + '\tin a future release.') + SCons.Warnings.warn(SCons.Warnings.TaskmasterNeedsExecuteWarning, msg) return True def execute(self): diff --git a/src/engine/SCons/Warnings.py b/src/engine/SCons/Warnings.py index 03ab9ae..83e3ccb 100644 --- a/src/engine/SCons/Warnings.py +++ b/src/engine/SCons/Warnings.py @@ -37,6 +37,21 @@ import SCons.Errors class Warning(SCons.Errors.UserError): pass +class MandatoryWarning(Warning): + pass + + + +class FutureDeprecatedWarning(Warning): + pass + +class DeprecatedWarning(Warning): + pass + +class MandatoryDeprecatedWarning(MandatoryWarning): + pass + + # NOTE: If you add a new warning class, add it to the man page, too! @@ -49,9 +64,6 @@ class CorruptSConsignWarning(Warning): class DependencyWarning(Warning): pass -class DeprecatedWarning(Warning): - pass - class DeprecatedCopyWarning(DeprecatedWarning): pass @@ -97,6 +109,9 @@ class ReservedVariableWarning(Warning): class StackSizeWarning(Warning): pass +class TaskmasterNeedsExecuteWarning(FutureDeprecatedWarning): + pass + class FortranCxxMixWarning(LinkWarning): pass @@ -186,5 +201,8 @@ def process_warn_strings(arguments): else: if enable: enableWarningClass(clazz) + elif issubclass(clazz, MandatoryDeprecatedWarning): + fmt = "Can not disable mandataory warning: '%s'\n" + sys.stderr.write(fmt % arg) else: suppressWarningClass(clazz) diff --git a/src/engine/SCons/WarningsTests.py b/src/engine/SCons/WarningsTests.py index 0964699..228c82c 100644 --- a/src/engine/SCons/WarningsTests.py +++ b/src/engine/SCons/WarningsTests.py @@ -94,6 +94,10 @@ class WarningsTestCase(unittest.TestCase): "Foo") assert to.out is None, to.out + SCons.Warnings.warn(SCons.Warnings.MandatoryWarning, + "Foo") + assert to.out is None, to.out + SCons.Warnings.enableWarningClass(SCons.Warnings.Warning) SCons.Warnings.warn(SCons.Warnings.DeprecatedWarning, "Foo") |
