cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for Ninja
The Ninja build system does not support a in-file verbositiy switch. Instead teach 'cmake --build' to extract the CMAKE_VERBOSE_MAKEFILE setting and pass it as an optional '-v' argument to Ninja. This can serve as a reasonable fallback. Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
This commit is contained in:
parent
4817d2814a
commit
ce935ebe50
|
@ -664,7 +664,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
|
||||||
globalGenerator->GenerateBuildCommand(buildCommand, cmakeMakeProgram,
|
globalGenerator->GenerateBuildCommand(buildCommand, cmakeMakeProgram,
|
||||||
installProjectName, installDirectory,
|
installProjectName, installDirectory,
|
||||||
globalGenerator->GetPreinstallTargetName(),
|
globalGenerator->GetPreinstallTargetName(),
|
||||||
buildConfig, false);
|
buildConfig, false, false);
|
||||||
std::string buildCommandStr =
|
std::string buildCommandStr =
|
||||||
cmSystemTools::PrintSingleCommand(buildCommand);
|
cmSystemTools::PrintSingleCommand(buildCommand);
|
||||||
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
cmCPackLogger(cmCPackLog::LOG_DEBUG,
|
||||||
|
|
|
@ -310,7 +310,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
|
||||||
output, this->BuildMakeProgram,
|
output, this->BuildMakeProgram,
|
||||||
config,
|
config,
|
||||||
!this->BuildNoClean,
|
!this->BuildNoClean,
|
||||||
false, remainingTime);
|
false, false, remainingTime);
|
||||||
out << output;
|
out << output;
|
||||||
// if the build failed then return
|
// if the build failed then return
|
||||||
if (retVal)
|
if (retVal)
|
||||||
|
|
|
@ -1677,14 +1677,14 @@ int cmGlobalGenerator::TryCompile(const std::string& srcdir,
|
||||||
mf->GetSafeDefinition("CMAKE_TRY_COMPILE_CONFIGURATION");
|
mf->GetSafeDefinition("CMAKE_TRY_COMPILE_CONFIGURATION");
|
||||||
return this->Build(srcdir,bindir,projectName,
|
return this->Build(srcdir,bindir,projectName,
|
||||||
newTarget,
|
newTarget,
|
||||||
output,"",config,false,fast,
|
output,"",config,false,fast,false,
|
||||||
this->TryCompileTimeout);
|
this->TryCompileTimeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cmGlobalGenerator::GenerateBuildCommand(
|
void cmGlobalGenerator::GenerateBuildCommand(
|
||||||
std::vector<std::string>& makeCommand, const std::string&,
|
std::vector<std::string>& makeCommand, const std::string&,
|
||||||
const std::string&, const std::string&, const std::string&,
|
const std::string&, const std::string&, const std::string&,
|
||||||
const std::string&, bool,
|
const std::string&, bool, bool,
|
||||||
std::vector<std::string> const&)
|
std::vector<std::string> const&)
|
||||||
{
|
{
|
||||||
makeCommand.push_back(
|
makeCommand.push_back(
|
||||||
|
@ -1697,7 +1697,7 @@ int cmGlobalGenerator::Build(
|
||||||
std::string& output,
|
std::string& output,
|
||||||
const std::string& makeCommandCSTR,
|
const std::string& makeCommandCSTR,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool clean, bool fast,
|
bool clean, bool fast, bool verbose,
|
||||||
double timeout,
|
double timeout,
|
||||||
cmSystemTools::OutputOption outputflag,
|
cmSystemTools::OutputOption outputflag,
|
||||||
std::vector<std::string> const& nativeOptions)
|
std::vector<std::string> const& nativeOptions)
|
||||||
|
@ -1722,7 +1722,7 @@ int cmGlobalGenerator::Build(
|
||||||
{
|
{
|
||||||
std::vector<std::string> cleanCommand;
|
std::vector<std::string> cleanCommand;
|
||||||
this->GenerateBuildCommand(cleanCommand, makeCommandCSTR, projectName,
|
this->GenerateBuildCommand(cleanCommand, makeCommandCSTR, projectName,
|
||||||
bindir, "clean", config, fast);
|
bindir, "clean", config, fast, verbose);
|
||||||
output += "\nRun Clean Command:";
|
output += "\nRun Clean Command:";
|
||||||
output += cmSystemTools::PrintSingleCommand(cleanCommand);
|
output += cmSystemTools::PrintSingleCommand(cleanCommand);
|
||||||
output += "\n";
|
output += "\n";
|
||||||
|
@ -1745,7 +1745,8 @@ int cmGlobalGenerator::Build(
|
||||||
// now build
|
// now build
|
||||||
std::vector<std::string> makeCommand;
|
std::vector<std::string> makeCommand;
|
||||||
this->GenerateBuildCommand(makeCommand, makeCommandCSTR, projectName,
|
this->GenerateBuildCommand(makeCommand, makeCommandCSTR, projectName,
|
||||||
bindir, target, config, fast, nativeOptions);
|
bindir, target, config, fast, verbose,
|
||||||
|
nativeOptions);
|
||||||
std::string makeCommandStr = cmSystemTools::PrintSingleCommand(makeCommand);
|
std::string makeCommandStr = cmSystemTools::PrintSingleCommand(makeCommand);
|
||||||
output += "\nRun Build Command:";
|
output += "\nRun Build Command:";
|
||||||
output += makeCommandStr;
|
output += makeCommandStr;
|
||||||
|
|
|
@ -134,7 +134,7 @@ public:
|
||||||
const std::string& projectName, const std::string& targetName,
|
const std::string& projectName, const std::string& targetName,
|
||||||
std::string& output,
|
std::string& output,
|
||||||
const std::string& makeProgram, const std::string& config,
|
const std::string& makeProgram, const std::string& config,
|
||||||
bool clean, bool fast,
|
bool clean, bool fast, bool verbose,
|
||||||
double timeout,
|
double timeout,
|
||||||
cmSystemTools::OutputOption outputflag=cmSystemTools::OUTPUT_NONE,
|
cmSystemTools::OutputOption outputflag=cmSystemTools::OUTPUT_NONE,
|
||||||
std::vector<std::string> const& nativeOptions =
|
std::vector<std::string> const& nativeOptions =
|
||||||
|
@ -144,7 +144,8 @@ public:
|
||||||
std::vector<std::string>& makeCommand,
|
std::vector<std::string>& makeCommand,
|
||||||
const std::string& makeProgram,
|
const std::string& makeProgram,
|
||||||
const std::string& projectName, const std::string& projectDir,
|
const std::string& projectName, const std::string& projectDir,
|
||||||
const std::string& targetName, const std::string& config, bool fast,
|
const std::string& targetName, const std::string& config,
|
||||||
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -574,12 +574,18 @@ void cmGlobalNinjaGenerator
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& /*config*/,
|
const std::string& /*config*/,
|
||||||
bool /*fast*/,
|
bool /*fast*/,
|
||||||
|
bool verbose,
|
||||||
std::vector<std::string> const& makeOptions)
|
std::vector<std::string> const& makeOptions)
|
||||||
{
|
{
|
||||||
makeCommand.push_back(
|
makeCommand.push_back(
|
||||||
this->SelectMakeProgram(makeProgram)
|
this->SelectMakeProgram(makeProgram)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if(verbose)
|
||||||
|
{
|
||||||
|
makeCommand.push_back("-v");
|
||||||
|
}
|
||||||
|
|
||||||
makeCommand.insert(makeCommand.end(),
|
makeCommand.insert(makeCommand.end(),
|
||||||
makeOptions.begin(), makeOptions.end());
|
makeOptions.begin(), makeOptions.end());
|
||||||
if(!targetName.empty())
|
if(!targetName.empty())
|
||||||
|
|
|
@ -196,7 +196,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -554,7 +554,7 @@ void cmGlobalUnixMakefileGenerator3
|
||||||
const std::string& /*projectDir*/,
|
const std::string& /*projectDir*/,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& /*config*/,
|
const std::string& /*config*/,
|
||||||
bool fast,
|
bool fast, bool /*verbose*/,
|
||||||
std::vector<std::string> const& makeOptions)
|
std::vector<std::string> const& makeOptions)
|
||||||
{
|
{
|
||||||
makeCommand.push_back(
|
makeCommand.push_back(
|
||||||
|
|
|
@ -114,7 +114,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -459,7 +459,7 @@ void cmGlobalVisualStudio10Generator::GenerateBuildCommand(
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions)
|
std::vector<std::string> const& makeOptions)
|
||||||
{
|
{
|
||||||
// Select the caller- or user-preferred make program, else MSBuild.
|
// Select the caller- or user-preferred make program, else MSBuild.
|
||||||
|
@ -507,7 +507,7 @@ void cmGlobalVisualStudio10Generator::GenerateBuildCommand(
|
||||||
// Use devenv to build solutions containing Intel Fortran projects.
|
// Use devenv to build solutions containing Intel Fortran projects.
|
||||||
cmGlobalVisualStudio7Generator::GenerateBuildCommand(
|
cmGlobalVisualStudio7Generator::GenerateBuildCommand(
|
||||||
makeCommand, makeProgram, projectName, projectDir,
|
makeCommand, makeProgram, projectName, projectDir,
|
||||||
targetName, config, fast, makeOptions);
|
targetName, config, fast, verbose, makeOptions);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,7 @@ cmGlobalVisualStudio6Generator::GenerateBuildCommand(
|
||||||
const std::string& /*projectDir*/,
|
const std::string& /*projectDir*/,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool /*fast*/,
|
bool /*fast*/, bool /*verbose*/,
|
||||||
std::vector<std::string> const& makeOptions
|
std::vector<std::string> const& makeOptions
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
|
@ -59,7 +59,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ void cmGlobalVisualStudio7Generator::GenerateBuildCommand(
|
||||||
const std::string& /*projectDir*/,
|
const std::string& /*projectDir*/,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool /*fast*/,
|
bool /*fast*/, bool /*verbose*/,
|
||||||
std::vector<std::string> const& makeOptions)
|
std::vector<std::string> const& makeOptions)
|
||||||
{
|
{
|
||||||
// Select the caller- or user-preferred make program, else devenv.
|
// Select the caller- or user-preferred make program, else devenv.
|
||||||
|
|
|
@ -69,7 +69,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -310,7 +310,7 @@ cmGlobalXCodeGenerator::GenerateBuildCommand(
|
||||||
const std::string& /*projectDir*/,
|
const std::string& /*projectDir*/,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool /*fast*/,
|
bool /*fast*/, bool /*verbose*/,
|
||||||
std::vector<std::string> const& makeOptions)
|
std::vector<std::string> const& makeOptions)
|
||||||
{
|
{
|
||||||
// now build the test
|
// now build the test
|
||||||
|
|
|
@ -60,7 +60,7 @@ public:
|
||||||
const std::string& projectDir,
|
const std::string& projectDir,
|
||||||
const std::string& targetName,
|
const std::string& targetName,
|
||||||
const std::string& config,
|
const std::string& config,
|
||||||
bool fast,
|
bool fast, bool verbose,
|
||||||
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
std::vector<std::string> const& makeOptions = std::vector<std::string>()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -2789,11 +2789,16 @@ int cmake::Build(const std::string& dir,
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
projName = it.GetValue();
|
projName = it.GetValue();
|
||||||
|
bool verbose = false;
|
||||||
|
if(it.Find("CMAKE_VERBOSE_MAKEFILE"))
|
||||||
|
{
|
||||||
|
verbose = it.GetValueAsBool();
|
||||||
|
}
|
||||||
return gen->Build("", dir,
|
return gen->Build("", dir,
|
||||||
projName, target,
|
projName, target,
|
||||||
output,
|
output,
|
||||||
"",
|
"",
|
||||||
config, clean, false, 0,
|
config, clean, false, verbose, 0,
|
||||||
cmSystemTools::OUTPUT_PASSTHROUGH,
|
cmSystemTools::OUTPUT_PASSTHROUGH,
|
||||||
nativeOptions);
|
nativeOptions);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue