Commit bcd5de77 authored by Brad King's avatar Brad King
Browse files

cmake: Always pass through stdout/stderr in --build mode

Enable the --use-stderr behavior by default and ignore the old option.
Passing through the pipes allows color terminal output and other things
to work as if one ran the native build command directly.
parent 919e1e84
......@@ -64,10 +64,7 @@ native tool on their platform.
--config <cfg> = For multi-configuration tools, choose <cfg>.
--clean-first = Build target 'clean' first, then build.
(To clean only, use --target 'clean'.)
--use-stderr = Don't merge stdout/stderr output and pass the
original stdout/stderr handles to the native
tool so it can use the capabilities of the
calling terminal (e.g. colored output).
--use-stderr = Ignored. Behavior is default in CMake >= 3.0.
-- = Pass remaining options to the native tool.
Run cmake --build with no options for quick help.
......
......@@ -2875,8 +2875,7 @@ int cmake::Build(const std::string& dir,
const std::string& target,
const std::string& config,
const std::vector<std::string>& nativeOptions,
bool clean,
cmSystemTools::OutputOption outputflag)
bool clean)
{
if(!cmSystemTools::FileIsDirectory(dir.c_str()))
{
......@@ -2918,7 +2917,8 @@ int cmake::Build(const std::string& dir,
projName.c_str(), target.c_str(),
&output,
makeProgram.c_str(),
config.c_str(), clean, false, 0, outputflag,
config.c_str(), clean, false, 0,
cmSystemTools::OUTPUT_PASSTHROUGH,
0, nativeOptions);
}
......
......@@ -362,8 +362,7 @@ class cmake
const std::string& target,
const std::string& config,
const std::vector<std::string>& nativeOptions,
bool clean,
cmSystemTools::OutputOption outputflag);
bool clean);
void UnwatchUnusedCli(const char* var);
void WatchUnusedCli(const char* var);
......
......@@ -50,10 +50,7 @@ static const char * cmDocumentationUsage[][2] =
" --config <cfg> = For multi-configuration tools, choose <cfg>.\n" \
" --clean-first = Build target 'clean' first, then build.\n" \
" (To clean only, use --target 'clean'.)\n" \
" --use-stderr = Don't merge stdout/stderr output and pass the\n" \
" original stdout/stderr handles to the native\n" \
" tool so it can use the capabilities of the\n" \
" calling terminal (e.g. colored output).\n" \
" --use-stderr = Ignored. Behavior is default in CMake >= 3.0.\n" \
" -- = Pass remaining options to the native tool.\n"
//----------------------------------------------------------------------------
......@@ -372,7 +369,6 @@ static int do_build(int ac, char** av)
std::string dir;
std::vector<std::string> nativeOptions;
bool clean = false;
cmSystemTools::OutputOption outputflag = cmSystemTools::OUTPUT_MERGE;
enum Doing { DoingNone, DoingDir, DoingTarget, DoingConfig, DoingNative};
Doing doing = DoingDir;
......@@ -397,7 +393,7 @@ static int do_build(int ac, char** av)
}
else if(strcmp(av[i], "--use-stderr") == 0)
{
outputflag = cmSystemTools::OUTPUT_PASSTHROUGH;
/* tolerate legacy option */
}
else if(strcmp(av[i], "--") == 0)
{
......@@ -444,6 +440,6 @@ static int do_build(int ac, char** av)
}
cmake cm;
return cm.Build(dir, target, config, nativeOptions, clean, outputflag);
return cm.Build(dir, target, config, nativeOptions, clean);
#endif
}
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