Commit 1d398478 authored by Michael Ensslin's avatar Michael Ensslin Committed by Brad King

Makefile: Optionally disable target completion messages in build output

Add a TARGET_MESSAGES property to control whether Makefile targets print
the "Built target " completion messages.  Default to ON to preserve
existing behavior.
parent d560b46f
......@@ -40,6 +40,7 @@ Properties of Global Scope
/prop_gbl/RULE_LAUNCH_LINK
/prop_gbl/RULE_MESSAGES
/prop_gbl/TARGET_ARCHIVES_MAY_BE_SHARED_LIBS
/prop_gbl/TARGET_MESSAGES
/prop_gbl/TARGET_SUPPORTS_SHARED_LIBS
/prop_gbl/USE_FOLDERS
......
TARGET_MESSAGES
---------------
Specify whether to report the completion of each target.
This property specifies whether :ref:`Makefile Generators` should
add a progress message describing that each target has been completed.
If the property is not set the default is ``ON``. Set the property
to ``OFF`` to disable target completion messages.
This option is intended to reduce build output when little or no
work needs to be done to bring the build tree up to date.
If a ``CMAKE_TARGET_MESSAGES`` cache entry exists its value
initializes the value of this property.
Non-Makefile generators currently ignore this property.
See the counterpart property :prop_gbl:`RULE_MESSAGES` to disable
everything except for target completion messages.
makefile-target-messages
------------------------
* A :prop_gbl:`TARGET_MESSAGES` global property was added to tell the
:ref:`Makefile Generators` whether to generate commands to print output
after each target is completed.
......@@ -52,6 +52,9 @@ if(CMAKE_GENERATOR MATCHES "Make")
if(DEFINED CMAKE_RULE_MESSAGES)
set_property(GLOBAL PROPERTY RULE_MESSAGES ${CMAKE_RULE_MESSAGES})
endif()
if(DEFINED CMAKE_TARGET_MESSAGES)
set_property(GLOBAL PROPERTY TARGET_MESSAGES ${CMAKE_TARGET_MESSAGES})
endif()
if(CMAKE_GENERATOR MATCHES "Unix Makefiles")
set(CMAKE_EXPORT_COMPILE_COMMANDS OFF CACHE BOOL
"Enable/Disable output of compile commands during generation."
......
......@@ -801,8 +801,20 @@ cmGlobalUnixMakefileGenerator3
}
progress.Arg = progressArg.str();
}
lg->AppendEcho(commands, "Built target " + name,
cmLocalUnixMakefileGenerator3::EchoNormal, &progress);
bool targetMessages = true;
if (const char* tgtMsg = this->GetCMakeInstance()
->GetState()
->GetGlobalProperty("TARGET_MESSAGES"))
{
targetMessages = cmSystemTools::IsOn(tgtMsg);
}
if (targetMessages)
{
lg->AppendEcho(commands, "Built target " + name,
cmLocalUnixMakefileGenerator3::EchoNormal, &progress);
}
this->AppendGlobalTargetDepends(depends, gtarget);
lg->WriteMakeRule(ruleFileStream, "All Build rule for target.",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment