[Cmake-commits] CMake branch, next, updated. v3.4.0-rc3-1240-g3dd60a3
Brad King
brad.king at kitware.com
Wed Nov 4 10:21:10 EST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, next has been updated
via 3dd60a3574b97ae10e437fa6ed31aa530dda62ca (commit)
via a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2 (commit)
via ed67f4052264003133b19edde2c85791d501e001 (commit)
from 0d669fb472061be4fa988febf6318e45f37883e8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3dd60a3574b97ae10e437fa6ed31aa530dda62ca
commit 3dd60a3574b97ae10e437fa6ed31aa530dda62ca
Merge: 0d669fb a3c5ca9
Author: Brad King <brad.king at kitware.com>
AuthorDate: Wed Nov 4 10:21:09 2015 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Nov 4 10:21:09 2015 -0500
Merge topic 'ninja-version-refactor' into next
a3c5ca96 cmGlobalNinjaGenerator: Save 'ninja' version very early
ed67f405 cmGlobalNinjaGenerator: Save path to 'ninja' tool very early
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2
commit a3c5ca960bdf7c136fc64e3bb6d6619ca30623d2
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Nov 2 16:31:27 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Nov 2 16:37:59 2015 -0500
cmGlobalNinjaGenerator: Save 'ninja' version very early
Keep it in a member variable for convenient reference. Store the
value as soon as it is known.
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 6e7c43a..a8a307c 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -548,11 +548,11 @@ void cmGlobalNinjaGenerator::Generate()
{
// Check minimum Ninja version.
if (cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
- CurrentNinjaVersion().c_str(),
+ this->NinjaVersion.c_str(),
RequiredNinjaVersion().c_str()))
{
std::ostringstream msg;
- msg << "The detected version of Ninja (" << this->CurrentNinjaVersion();
+ msg << "The detected version of Ninja (" << this->NinjaVersion;
msg << ") is less than the version of Ninja required by CMake (";
msg << this->RequiredNinjaVersion() << ").";
this->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, msg.str());
@@ -591,6 +591,14 @@ void cmGlobalNinjaGenerator::FindMakeProgram(cmMakefile* mf)
if (const char* ninjaCommand = mf->GetDefinition("CMAKE_MAKE_PROGRAM"))
{
this->NinjaCommand = ninjaCommand;
+ std::vector<std::string> command;
+ command.push_back(this->NinjaCommand);
+ command.push_back("--version");
+ std::string version;
+ cmSystemTools::RunSingleCommand(command,
+ &version, 0, 0, 0,
+ cmSystemTools::OUTPUT_NONE);
+ this->NinjaVersion = cmSystemTools::TrimWhitespace(version);
}
}
@@ -1275,21 +1283,10 @@ std::string cmGlobalNinjaGenerator::ninjaCmd() const
return "ninja";
}
-std::string cmGlobalNinjaGenerator::CurrentNinjaVersion() const
-{
- std::string version;
- std::string command = ninjaCmd() + " --version";
- cmSystemTools::RunSingleCommand(command.c_str(),
- &version, 0, 0, 0,
- cmSystemTools::OUTPUT_NONE);
-
- return cmSystemTools::TrimWhitespace(version);
-}
-
bool cmGlobalNinjaGenerator::SupportsConsolePool() const
{
return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
- CurrentNinjaVersion().c_str(),
+ this->NinjaVersion.c_str(),
RequiredNinjaVersionForConsolePool().c_str()) == false;
}
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index f228340..46bd588 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -305,7 +305,6 @@ public:
virtual void ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const;
- std::string CurrentNinjaVersion() const;
// Ninja generator uses 'deps' and 'msvc_deps_prefix' introduced in 1.3
static std::string RequiredNinjaVersion() { return "1.3"; }
static std::string RequiredNinjaVersionForConsolePool() { return "1.5"; }
@@ -394,6 +393,7 @@ private:
TargetAliasMap TargetAliases;
std::string NinjaCommand;
+ std::string NinjaVersion;
};
#endif // ! cmGlobalNinjaGenerator_h
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed67f4052264003133b19edde2c85791d501e001
commit ed67f4052264003133b19edde2c85791d501e001
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Nov 2 16:27:31 2015 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Mon Nov 2 16:27:31 2015 -0500
cmGlobalNinjaGenerator: Save path to 'ninja' tool very early
Keep it in a member variable for convenient reference. Set the
value as soon as it is known.
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 8498e39..6e7c43a 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -585,6 +585,15 @@ void cmGlobalNinjaGenerator::Generate()
this->CloseBuildFileStream();
}
+void cmGlobalNinjaGenerator::FindMakeProgram(cmMakefile* mf)
+{
+ this->cmGlobalGenerator::FindMakeProgram(mf);
+ if (const char* ninjaCommand = mf->GetDefinition("CMAKE_MAKE_PROGRAM"))
+ {
+ this->NinjaCommand = ninjaCommand;
+ }
+}
+
void cmGlobalNinjaGenerator
::EnableLanguage(std::vector<std::string>const& langs,
cmMakefile* mf,
@@ -1260,9 +1269,8 @@ std::string cmGlobalNinjaGenerator::ninjaCmd() const
{
cmLocalGenerator* lgen = this->LocalGenerators[0];
if (lgen) {
- return lgen->ConvertToOutputFormat(
- lgen->GetMakefile()->GetRequiredDefinition("CMAKE_MAKE_PROGRAM"),
- cmLocalGenerator::SHELL);
+ return lgen->ConvertToOutputFormat(this->NinjaCommand,
+ cmLocalGenerator::SHELL);
}
return "ninja";
}
diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h
index 7547f16..f228340 100644
--- a/Source/cmGlobalNinjaGenerator.h
+++ b/Source/cmGlobalNinjaGenerator.h
@@ -320,7 +320,7 @@ protected:
private:
virtual std::string GetEditCacheCommand() const;
-
+ virtual void FindMakeProgram(cmMakefile* mf);
void OpenBuildFileStream();
void CloseBuildFileStream();
@@ -392,6 +392,8 @@ private:
typedef std::map<std::string, cmGeneratorTarget*> TargetAliasMap;
TargetAliasMap TargetAliases;
+
+ std::string NinjaCommand;
};
#endif // ! cmGlobalNinjaGenerator_h
-----------------------------------------------------------------------
Summary of changes:
Source/cmGlobalNinjaGenerator.cxx | 39 +++++++++++++++++++++----------------
Source/cmGlobalNinjaGenerator.h | 6 ++++--
2 files changed, 26 insertions(+), 19 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list