The -fixupmessages
instruction is intended to fixup the errors and warnings. It allows you to remove errors and/or warnings, turn errors into warnings, and turn warnings into errors. With this instruction you can fail a build based on a warning or succeed a build that runs into errors.
The default of this instruction is to list a number of patterns. Any error or warning that matches this pattern is then removed. The following example will remove any error/warning that matches 'some error'
, 'another error'
, or 'and yet another error'
.
-fixupmessages: \
some error,
another error,
and yet another error
The pattern is a SELECTOR, which makes it possible to do case insensitive matches, wildcards, literals, etc.
The basic format of -fixupmessages
is:
-fixupmessages ::= fixup ( ',' fixup ) *
fixup ::= SELECTOR directive *
directive ::= ';' ( restrict | is | replace )
restrict ::= 'restrict:=' ( 'error' | 'warning' )
is ::= 'is:=' ( 'ignore' | 'error' | 'warning' )
replace ::= 'replace:=' <<text>>
The value of a fixup clause is a globbing expression.
The following directives are supported:
restrict:
– By default, the fixup clause is applied to all errors and warnings. You can restrict its application to either errors or warnings specifying either restrict:=error
or restrict:=warning
.is:
– By default an error remains an error and a warning remains a warning. However, if you specify the is:
directive you can force an error to become a warning or vice versa. This can be very useful if you build fails with an error that you do not consider a failure.replace:
– Replace the message with a new message. The replacement will be processed by the macro processor, the ${@}
macro will contain the current message.The -fixupmessages
instruction is a merged property. This means that you can define it in many different places like for example in a file in cnf/ext
. Just put an extension on the instruction. For example:
-fixupmessages.one: 'Some error'
-fixupmessages.two: 'Another error'
# Turn an error into a warning
-fixupmessages
"Invalid character'; \
restrict:=error;
is:=warning
# Replace a message
-fixupmessages \
"split";replace:=broken
# Ignore case by appending :i
-fixupmessages \
"case insensitive:i"
# Wildcards
-fixupmessages \
"prefix*suffix"
# Turn properties parser messages into warnings
-fixupmessages.parser: \
"Invalid character in properties"; \
"No value specified for key"; \
"Invalid property key"; \
"Invalid unicode string"; \
"Found \\<whitespace>";
is:=warning