summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorGregor Jasny <gjasny@googlemail.com>2015-02-26 10:32:26 (GMT)
committerBrad King <brad.king@kitware.com>2015-02-26 14:51:11 (GMT)
commitce935ebe50926bde199d86fbde4a78974a4043f9 (patch)
tree407a8769628db398480ee33bd04be164d0cf3bfd /Source
parent4817d2814a6d82e35590f9bfff2b088c95d45395 (diff)
downloadCMake-ce935ebe50926bde199d86fbde4a78974a4043f9.zip
CMake-ce935ebe50926bde199d86fbde4a78974a4043f9.tar.gz
CMake-ce935ebe50926bde199d86fbde4a78974a4043f9.tar.bz2
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>
Diffstat (limited to 'Source')
-rw-r--r--Source/CPack/cmCPackGenerator.cxx2
-rw-r--r--Source/CTest/cmCTestBuildAndTestHandler.cxx2
-rw-r--r--Source/cmGlobalGenerator.cxx11
-rw-r--r--Source/cmGlobalGenerator.h5
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx6
-rw-r--r--Source/cmGlobalNinjaGenerator.h2
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.cxx2
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.h2
-rw-r--r--Source/cmGlobalVisualStudio10Generator.cxx4
-rw-r--r--Source/cmGlobalVisualStudio10Generator.h2
-rw-r--r--Source/cmGlobalVisualStudio6Generator.cxx2
-rw-r--r--Source/cmGlobalVisualStudio6Generator.h2
-rw-r--r--Source/cmGlobalVisualStudio7Generator.cxx2
-rw-r--r--Source/cmGlobalVisualStudio7Generator.h2
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx2
-rw-r--r--Source/cmGlobalXCodeGenerator.h2
-rw-r--r--Source/cmake.cxx7
17 files changed, 35 insertions, 22 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 006239a..ee255af 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -664,7 +664,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
globalGenerator->GenerateBuildCommand(buildCommand, cmakeMakeProgram,
installProjectName, installDirectory,
globalGenerator->GetPreinstallTargetName(),
- buildConfig, false);
+ buildConfig, false, false);
std::string buildCommandStr =
cmSystemTools::PrintSingleCommand(buildCommand);
cmCPackLogger(cmCPackLog::LOG_DEBUG,
diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx
index 4cdce71..0827037 100644
--- a/Source/CTest/cmCTestBuildAndTestHandler.cxx
+++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx
@@ -310,7 +310,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
output, this->BuildMakeProgram,
config,
!this->BuildNoClean,
- false, remainingTime);
+ false, false, remainingTime);
out << output;
// if the build failed then return
if (retVal)
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 6147009..36395aa 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1677,14 +1677,14 @@ int cmGlobalGenerator::TryCompile(const std::string& srcdir,
mf->GetSafeDefinition("CMAKE_TRY_COMPILE_CONFIGURATION");
return this->Build(srcdir,bindir,projectName,
newTarget,
- output,"",config,false,fast,
+ output,"",config,false,fast,false,
this->TryCompileTimeout);
}
void cmGlobalGenerator::GenerateBuildCommand(
std::vector<std::string>& makeCommand, 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&)
{
makeCommand.push_back(
@@ -1697,7 +1697,7 @@ int cmGlobalGenerator::Build(
std::string& output,
const std::string& makeCommandCSTR,
const std::string& config,
- bool clean, bool fast,
+ bool clean, bool fast, bool verbose,
double timeout,
cmSystemTools::OutputOption outputflag,
std::vector<std::string> const& nativeOptions)
@@ -1722,7 +1722,7 @@ int cmGlobalGenerator::Build(
{
std::vector<std::string> cleanCommand;
this->GenerateBuildCommand(cleanCommand, makeCommandCSTR, projectName,
- bindir, "clean", config, fast);
+ bindir, "clean", config, fast, verbose);
output += "\nRun Clean Command:";
output += cmSystemTools::PrintSingleCommand(cleanCommand);
output += "\n";
@@ -1745,7 +1745,8 @@ int cmGlobalGenerator::Build(
// now build
std::vector<std::string> makeCommand;
this->GenerateBuildCommand(makeCommand, makeCommandCSTR, projectName,
- bindir, target, config, fast, nativeOptions);
+ bindir, target, config, fast, verbose,
+ nativeOptions);
std::string makeCommandStr = cmSystemTools::PrintSingleCommand(makeCommand);
output += "\nRun Build Command:";
output += makeCommandStr;
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 08f061a..5b9ddee 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -134,7 +134,7 @@ public:
const std::string& projectName, const std::string& targetName,
std::string& output,
const std::string& makeProgram, const std::string& config,
- bool clean, bool fast,
+ bool clean, bool fast, bool verbose,
double timeout,
cmSystemTools::OutputOption outputflag=cmSystemTools::OUTPUT_NONE,
std::vector<std::string> const& nativeOptions =
@@ -144,7 +144,8 @@ public:
std::vector<std::string>& makeCommand,
const std::string& makeProgram,
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>()
);
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 3c07be1..69b1a9d 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -574,12 +574,18 @@ void cmGlobalNinjaGenerator
const std::string& targetName,
const std::string& /*config*/,
bool /*fast*/,
+ bool verbose,
std::vector<std::string> const& makeOptions)
{
makeCommand.push_back(
this->SelectMakeProgram(makeProgram)
);
+ if(verbose)
+ {
+ makeCommand.push_back("-v");
+ }
+
makeCommand.insert(makeCommand.end(),
makeOptions.begin(), makeOptions.end());
if(!targetName.empty())
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index 3d443d8..c7bb782 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -196,7 +196,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx
index e0ccaa9..1d2dd34 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator3.cxx
@@ -554,7 +554,7 @@ void cmGlobalUnixMakefileGenerator3
const std::string& /*projectDir*/,
const std::string& targetName,
const std::string& /*config*/,
- bool fast,
+ bool fast, bool /*verbose*/,
std::vector<std::string> const& makeOptions)
{
makeCommand.push_back(
diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h
index c61c36e..50a901e 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.h
+++ b/Source/cmGlobalUnixMakefileGenerator3.h
@@ -114,7 +114,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 531a714..7df2073 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -459,7 +459,7 @@ void cmGlobalVisualStudio10Generator::GenerateBuildCommand(
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions)
{
// 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.
cmGlobalVisualStudio7Generator::GenerateBuildCommand(
makeCommand, makeProgram, projectName, projectDir,
- targetName, config, fast, makeOptions);
+ targetName, config, fast, verbose, makeOptions);
return;
}
diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h
index 3b0a5cf..92202ba 100644
--- a/Source/cmGlobalVisualStudio10Generator.h
+++ b/Source/cmGlobalVisualStudio10Generator.h
@@ -41,7 +41,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmGlobalVisualStudio6Generator.cxx b/Source/cmGlobalVisualStudio6Generator.cxx
index 455a7a2..62a308e 100644
--- a/Source/cmGlobalVisualStudio6Generator.cxx
+++ b/Source/cmGlobalVisualStudio6Generator.cxx
@@ -120,7 +120,7 @@ cmGlobalVisualStudio6Generator::GenerateBuildCommand(
const std::string& /*projectDir*/,
const std::string& targetName,
const std::string& config,
- bool /*fast*/,
+ bool /*fast*/, bool /*verbose*/,
std::vector<std::string> const& makeOptions
)
{
diff --git a/Source/cmGlobalVisualStudio6Generator.h b/Source/cmGlobalVisualStudio6Generator.h
index 58efb25..a59a0b2 100644
--- a/Source/cmGlobalVisualStudio6Generator.h
+++ b/Source/cmGlobalVisualStudio6Generator.h
@@ -59,7 +59,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx
index 401e475..0e0e63a 100644
--- a/Source/cmGlobalVisualStudio7Generator.cxx
+++ b/Source/cmGlobalVisualStudio7Generator.cxx
@@ -191,7 +191,7 @@ void cmGlobalVisualStudio7Generator::GenerateBuildCommand(
const std::string& /*projectDir*/,
const std::string& targetName,
const std::string& config,
- bool /*fast*/,
+ bool /*fast*/, bool /*verbose*/,
std::vector<std::string> const& makeOptions)
{
// Select the caller- or user-preferred make program, else devenv.
diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h
index b591653..d641c02 100644
--- a/Source/cmGlobalVisualStudio7Generator.h
+++ b/Source/cmGlobalVisualStudio7Generator.h
@@ -69,7 +69,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index aea134e..e89161d 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -310,7 +310,7 @@ cmGlobalXCodeGenerator::GenerateBuildCommand(
const std::string& /*projectDir*/,
const std::string& targetName,
const std::string& config,
- bool /*fast*/,
+ bool /*fast*/, bool /*verbose*/,
std::vector<std::string> const& makeOptions)
{
// now build the test
diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h
index f513e28..b272f6a 100644
--- a/Source/cmGlobalXCodeGenerator.h
+++ b/Source/cmGlobalXCodeGenerator.h
@@ -60,7 +60,7 @@ public:
const std::string& projectDir,
const std::string& targetName,
const std::string& config,
- bool fast,
+ bool fast, bool verbose,
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 47be481..80e90a8 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -2789,11 +2789,16 @@ int cmake::Build(const std::string& dir,
return 1;
}
projName = it.GetValue();
+ bool verbose = false;
+ if(it.Find("CMAKE_VERBOSE_MAKEFILE"))
+ {
+ verbose = it.GetValueAsBool();
+ }
return gen->Build("", dir,
projName, target,
output,
"",
- config, clean, false, 0,
+ config, clean, false, verbose, 0,
cmSystemTools::OUTPUT_PASSTHROUGH,
nativeOptions);
}