[Cmake-commits] CMake branch, next, updated. v3.3.0-1531-g3a9ec35
Brad King
brad.king at kitware.com
Wed Jul 29 11:52:36 EDT 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 3a9ec35c7b11d020b7ef5d0b0943bb02e35c0fc5 (commit)
via 211666900dfa38fbcc9f65ff3894fa875a99a597 (commit)
via 5f9c5fc547988250733a07154b6ac941376c9273 (commit)
via 9c587a085e66c23fcb76e56fa9a63dab0443e4e9 (commit)
via 53728a7819fe1e76bb606ae63d2b96a13bf799bb (commit)
via bcd34ed976acd56c73a696ee99c265ad3d01a849 (commit)
via 348de9be921cdf647c9baeb75a3b4c09194f58e0 (commit)
via aa85121e38ce0d4a310564affe61f10abe8c1b2a (commit)
via ae65b8ef2e424c26f8dfdb1178f64f5aca02b000 (commit)
via aa2407d84d8bcd983b3df294032831bbd54cf25d (commit)
via 610572b7d27e122ebf8e5c5d430019844567a996 (commit)
via 2e94cba3565105aaa23720d9ffdcb9fe1ccee6b9 (commit)
via fb9355c50e366bd0f7cb6df6ea19118bd7dae899 (commit)
via 29e8b7bfcc8b3530fb4fd2dd04dca59744588b61 (commit)
via 1ef9b2b6007356ab26cdec42bdf9c79d53745bf6 (commit)
via 5c14f78005ba5b4a2ccf0899fc50805a9de7b9ee (commit)
via a1209be550172a95d3254158c121abf184e60bcd (commit)
via 32e4f6beca6f13165ec5a40bf363d005ebda9263 (commit)
via 34b902a5a6fd55ef3857d74aab986a8d96d57659 (commit)
via aaa322a5cb5603742273282fb12f1e368697a625 (commit)
from 6ba4780f2a66af33b444b6a61b3abb7120cedd0b (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 -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a9ec35c7b11d020b7ef5d0b0943bb02e35c0fc5
commit 3a9ec35c7b11d020b7ef5d0b0943bb02e35c0fc5
Merge: 6ba4780 2116669
Author: Brad King <brad.king at kitware.com>
AuthorDate: Wed Jul 29 11:52:35 2015 -0400
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jul 29 11:52:35 2015 -0400
Merge topic 'refactor-install' into next
21166690 cmInstallTargetGenerator: Port to cmGeneratorTarget.
5f9c5fc5 cmInstallCommand: Store only a targetName, not a cmTarget.
9c587a08 cmInstallGenerator: Add a Compute() virtual hook.
53728a78 cmInstallCommand: Move the SetHaveInstallRule invocation.
bcd34ed9 cmScriptGenerator: Remove unused method.
348de9be cmGlobalGenerator: Move QtAutogen handling to Compute().
aa85121e cmGlobalGenerator: Virtualize the Compute step and override it.
ae65b8ef cmGlobalGenerator: Move generation object creation to Compute().
aa2407d8 Xcode: Use allBuild target return value.
610572b7 cmMakefile: Simplify generate-time cmGeneratorTarget creation.
2e94cba3 cmGlobalGenerator: Move FinalizeTargetCompileInfo to Compute().
fb9355c5 cmGlobalGenerator: Return from Compute whether to generate.
29e8b7bf cmGlobalGenerator: Create a new Compute step before generation.
1ef9b2b6 cmGlobalGenerator: Remove the TargetManifest member.
5c14f780 cmGlobalGenerator: Remove unused manifest accessor.
a1209be5 VisualStudio: Skip global targets when processing.
...
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=211666900dfa38fbcc9f65ff3894fa875a99a597
commit 211666900dfa38fbcc9f65ff3894fa875a99a597
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 19:58:52 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:35 2015 -0400
cmInstallTargetGenerator: Port to cmGeneratorTarget.
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index 6c7d97e..1d75f43 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -398,7 +398,7 @@ cmExportInstallFileGenerator
}
// Get the target to be installed.
- cmTarget* target = itgen->GetTarget();
+ cmTarget* target = itgen->GetTarget()->Target;
// Construct the installed location of the target.
std::string dest = itgen->GetDestination(config);
diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx
index a5d8a74..01d4b77 100644
--- a/Source/cmInstallTargetGenerator.cxx
+++ b/Source/cmInstallTargetGenerator.cxx
@@ -16,6 +16,7 @@
#include "cmGlobalGenerator.h"
#include "cmLocalGenerator.h"
#include "cmMakefile.h"
+#include "cmGeneratorTarget.h"
#include "cmake.h"
#include <assert.h>
@@ -71,15 +72,17 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
{
// Compute the build tree directory from which to copy the target.
std::string fromDirConfig;
- if(this->Target->NeedRelinkBeforeInstall(config))
+ if(this->Target->Target->NeedRelinkBeforeInstall(config))
{
- fromDirConfig = this->Target->GetMakefile()->GetCurrentBinaryDirectory();
+ fromDirConfig =
+ this->Target->Target->GetMakefile()->GetCurrentBinaryDirectory();
fromDirConfig += cmake::GetCMakeFilesDirectory();
fromDirConfig += "/CMakeRelink.dir/";
}
else
{
- fromDirConfig = this->Target->GetDirectory(config, this->ImportLibrary);
+ fromDirConfig =
+ this->Target->Target->GetDirectory(config, this->ImportLibrary);
fromDirConfig += "/";
}
std::string toDir =
@@ -90,7 +93,8 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
std::vector<std::string> filesFrom;
std::vector<std::string> filesTo;
std::string literal_args;
- cmTarget::TargetType targetType = this->Target->GetType();
+ cmTarget::TargetType targetType =
+ static_cast<cmTarget::TargetType>(this->Target->GetType());
cmInstallType type = cmInstallType();
switch(targetType)
{
@@ -107,7 +111,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
case cmTarget::UTILITY:
case cmTarget::GLOBAL_TARGET:
case cmTarget::UNKNOWN_LIBRARY:
- this->Target->GetMakefile()->IssueMessage(cmake::INTERNAL_ERROR,
+ this->Target->Target->GetMakefile()->IssueMessage(cmake::INTERNAL_ERROR,
"cmInstallTargetGenerator created with non-installable target.");
return;
}
@@ -120,7 +124,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
std::string targetNameReal;
std::string targetNameImport;
std::string targetNamePDB;
- this->Target->GetExecutableNames(targetName, targetNameReal,
+ this->Target->Target->GetExecutableNames(targetName, targetNameReal,
targetNameImport, targetNamePDB,
config);
if(this->ImportLibrary)
@@ -130,7 +134,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
filesFrom.push_back(from1);
filesTo.push_back(to1);
std::string targetNameImportLib;
- if(this->Target->GetImplibGNUtoMS(targetNameImport,
+ if(this->Target->Target->GetImplibGNUtoMS(targetNameImport,
targetNameImportLib))
{
filesFrom.push_back(fromDirConfig + targetNameImportLib);
@@ -146,7 +150,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
std::string to1 = toDir + targetName;
// Handle OSX Bundles.
- if(this->Target->IsAppBundleOnApple())
+ if(this->Target->Target->IsAppBundleOnApple())
{
// Install the whole app bundle directory.
type = cmInstallType_DIRECTORY;
@@ -180,7 +184,8 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
std::string targetNameReal;
std::string targetNameImport;
std::string targetNamePDB;
- this->Target->GetLibraryNames(targetName, targetNameSO, targetNameReal,
+ this->Target->Target->GetLibraryNames(targetName, targetNameSO,
+ targetNameReal,
targetNameImport, targetNamePDB,
config);
if(this->ImportLibrary)
@@ -193,7 +198,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
filesFrom.push_back(from1);
filesTo.push_back(to1);
std::string targetNameImportLib;
- if(this->Target->GetImplibGNUtoMS(targetNameImport,
+ if(this->Target->Target->GetImplibGNUtoMS(targetNameImport,
targetNameImportLib))
{
filesFrom.push_back(fromDirConfig + targetNameImportLib);
@@ -203,7 +208,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
// An import library looks like a static library.
type = cmInstallType_STATIC_LIBRARY;
}
- else if(this->Target->IsFrameworkOnApple())
+ else if(this->Target->Target->IsFrameworkOnApple())
{
// There is a bug in cmInstallCommand if this fails.
assert(this->NamelinkMode == NamelinkModeNone);
@@ -221,7 +226,7 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
filesFrom.push_back(from1);
filesTo.push_back(to1);
}
- else if(this->Target->IsCFBundleOnApple())
+ else if(this->Target->Target->IsCFBundleOnApple())
{
// Install the whole app bundle directory.
type = cmInstallType_DIRECTORY;
@@ -345,7 +350,7 @@ cmInstallTargetGenerator::GetDestination(std::string const& config) const
{
cmGeneratorExpression ge;
return ge.Parse(this->Destination)
- ->Evaluate(this->Target->GetMakefile(), config);
+ ->Evaluate(this->Target->Target->GetMakefile(), config);
}
//----------------------------------------------------------------------------
@@ -354,7 +359,7 @@ cmInstallTargetGenerator::GetInstallFilename(const std::string& config) const
{
NameType nameType = this->ImportLibrary? NameImplib : NameNormal;
return
- cmInstallTargetGenerator::GetInstallFilename(this->Target, config,
+ cmInstallTargetGenerator::GetInstallFilename(this->Target->Target, config,
nameType);
}
@@ -435,7 +440,8 @@ cmInstallTargetGenerator::GetInstallFilename(cmTarget const* target,
void cmInstallTargetGenerator::Compute(cmLocalGenerator* lg)
{
- this->Target = lg->GetMakefile()->FindTarget(this->TargetName);
+ this->Target = lg->GetGlobalGenerator()->GetGeneratorTarget(
+ lg->GetMakefile()->FindTarget(this->TargetName));
}
//----------------------------------------------------------------------------
@@ -540,8 +546,8 @@ cmInstallTargetGenerator
}
// Fix the install_name settings in installed binaries.
- std::string installNameTool =
- this->Target->GetMakefile()->GetSafeDefinition("CMAKE_INSTALL_NAME_TOOL");
+ std::string installNameTool = this->Target->Target->GetMakefile()
+ ->GetSafeDefinition("CMAKE_INSTALL_NAME_TOOL");
if(installNameTool.empty())
{
@@ -551,7 +557,8 @@ cmInstallTargetGenerator
// Build a map of build-tree install_name to install-tree install_name for
// shared libraries linked to this target.
std::map<std::string, std::string> install_name_remap;
- if(cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config))
+ if(cmComputeLinkInformation* cli =
+ this->Target->Target->GetLinkInformation(config))
{
std::set<cmTarget const*> const& sharedLibs
= cli->GetSharedLibrariesLinked();
@@ -595,11 +602,11 @@ cmInstallTargetGenerator
if(this->Target->GetType() == cmTarget::SHARED_LIBRARY)
{
std::string for_build =
- this->Target->GetInstallNameDirForBuildTree(config);
+ this->Target->Target->GetInstallNameDirForBuildTree(config);
std::string for_install =
- this->Target->GetInstallNameDirForInstallTree();
+ this->Target->Target->GetInstallNameDirForInstallTree();
- if(this->Target->IsFrameworkOnApple() && for_install.empty())
+ if(this->Target->Target->IsFrameworkOnApple() && for_install.empty())
{
// Frameworks seem to have an id corresponding to their own full
// path.
@@ -613,7 +620,7 @@ cmInstallTargetGenerator
{
// Prepare to refer to the install-tree install_name.
new_id = for_install;
- new_id += this->GetInstallFilename(this->Target, config, NameSO);
+ new_id += this->GetInstallFilename(this->Target->Target, config, NameSO);
}
}
@@ -646,20 +653,22 @@ cmInstallTargetGenerator
std::string const& toDestDirPath)
{
// Skip the chrpath if the target does not need it.
- if(this->ImportLibrary || !this->Target->IsChrpathUsed(config))
+ if(this->ImportLibrary || !this->Target->Target->IsChrpathUsed(config))
{
return;
}
// Skip if on Apple
- if(this->Target->GetMakefile()->IsOn("CMAKE_PLATFORM_HAS_INSTALLNAME"))
+ if(this->Target->Target->GetMakefile()
+ ->IsOn("CMAKE_PLATFORM_HAS_INSTALLNAME"))
{
return;
}
// Get the link information for this target.
// It can provide the RPATH.
- cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config);
+ cmComputeLinkInformation* cli =
+ this->Target->Target->GetLinkInformation(config);
if(!cli)
{
return;
@@ -684,20 +693,21 @@ cmInstallTargetGenerator
std::string const& toDestDirPath)
{
// Skip the chrpath if the target does not need it.
- if(this->ImportLibrary || !this->Target->IsChrpathUsed(config))
+ if(this->ImportLibrary || !this->Target->Target->IsChrpathUsed(config))
{
return;
}
// Get the link information for this target.
// It can provide the RPATH.
- cmComputeLinkInformation* cli = this->Target->GetLinkInformation(config);
+ cmComputeLinkInformation* cli =
+ this->Target->Target->GetLinkInformation(config);
if(!cli)
{
return;
}
- cmMakefile* mf = this->Target->GetMakefile();
+ cmMakefile* mf = this->Target->Target->GetMakefile();
if(mf->IsOn("CMAKE_PLATFORM_HAS_INSTALLNAME"))
{
@@ -809,20 +819,20 @@ cmInstallTargetGenerator::AddStripRule(std::ostream& os,
}
// Don't handle OSX Bundles.
- if(this->Target->GetMakefile()->IsOn("APPLE") &&
- this->Target->GetPropertyAsBool("MACOSX_BUNDLE"))
+ if(this->Target->Target->GetMakefile()->IsOn("APPLE") &&
+ this->Target->Target->GetPropertyAsBool("MACOSX_BUNDLE"))
{
return;
}
- if(! this->Target->GetMakefile()->IsSet("CMAKE_STRIP"))
+ if(! this->Target->Target->GetMakefile()->IsSet("CMAKE_STRIP"))
{
return;
}
os << indent << "if(CMAKE_INSTALL_DO_STRIP)\n";
os << indent << " execute_process(COMMAND \""
- << this->Target->GetMakefile()->GetDefinition("CMAKE_STRIP")
+ << this->Target->Target->GetMakefile()->GetDefinition("CMAKE_STRIP")
<< "\" \"" << toDestDirPath << "\")\n";
os << indent << "endif()\n";
}
@@ -841,13 +851,13 @@ cmInstallTargetGenerator::AddRanlibRule(std::ostream& os,
// Perform post-installation processing on the file depending
// on its type.
- if(!this->Target->GetMakefile()->IsOn("APPLE"))
+ if(!this->Target->Target->GetMakefile()->IsOn("APPLE"))
{
return;
}
std::string ranlib =
- this->Target->GetMakefile()->GetRequiredDefinition("CMAKE_RANLIB");
+ this->Target->Target->GetMakefile()->GetRequiredDefinition("CMAKE_RANLIB");
if(ranlib.empty())
{
return;
diff --git a/Source/cmInstallTargetGenerator.h b/Source/cmInstallTargetGenerator.h
index 128e1a2..a8f4a75 100644
--- a/Source/cmInstallTargetGenerator.h
+++ b/Source/cmInstallTargetGenerator.h
@@ -13,7 +13,9 @@
#define cmInstallTargetGenerator_h
#include "cmInstallGenerator.h"
-#include "cmTarget.h"
+
+class cmTarget;
+class cmGeneratorTarget;
/** \class cmInstallTargetGenerator
* \brief Generate target installation rules.
@@ -58,7 +60,7 @@ public:
void Compute(cmLocalGenerator* lg);
- cmTarget* GetTarget() const { return this->Target; }
+ cmGeneratorTarget* GetTarget() const { return this->Target; }
bool IsImportLibrary() const { return this->ImportLibrary; }
@@ -102,7 +104,7 @@ protected:
const std::string& toDestDirPath);
std::string TargetName;
- cmTarget* Target;
+ cmGeneratorTarget* Target;
std::string FilePermissions;
NamelinkModeType NamelinkMode;
bool ImportLibrary;
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5f9c5fc547988250733a07154b6ac941376c9273
commit 5f9c5fc547988250733a07154b6ac941376c9273
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 19:32:03 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:35 2015 -0400
cmInstallCommand: Store only a targetName, not a cmTarget.
Compute the cmTarget at Compute() time.
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index a33acad..f548f5d 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -27,7 +27,8 @@ static cmInstallTargetGenerator* CreateInstallTargetGenerator(cmTarget& target,
{
cmInstallGenerator::MessageLevel message =
cmInstallGenerator::SelectMessageLevel(target.GetMakefile());
- return new cmInstallTargetGenerator(target, args.GetDestination().c_str(),
+ return new cmInstallTargetGenerator(target.GetName(),
+ args.GetDestination().c_str(),
impLib, args.GetPermissions().c_str(),
args.GetConfigurations(), args.GetComponent().c_str(),
message,
diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx
index 09af56e..a5d8a74 100644
--- a/Source/cmInstallTargetGenerator.cxx
+++ b/Source/cmInstallTargetGenerator.cxx
@@ -22,13 +22,16 @@
//----------------------------------------------------------------------------
cmInstallTargetGenerator
-::cmInstallTargetGenerator(cmTarget& t, const char* dest, bool implib,
+::cmInstallTargetGenerator(const std::string& targetName,
+ const char* dest, bool implib,
const char* file_permissions,
std::vector<std::string> const& configurations,
const char* component,
MessageLevel message,
bool optional):
- cmInstallGenerator(dest, configurations, component, message), Target(&t),
+ cmInstallGenerator(dest, configurations, component, message),
+ TargetName(targetName),
+ Target(0),
FilePermissions(file_permissions),
ImportLibrary(implib),
Optional(optional)
@@ -430,6 +433,11 @@ cmInstallTargetGenerator::GetInstallFilename(cmTarget const* target,
return fname;
}
+void cmInstallTargetGenerator::Compute(cmLocalGenerator* lg)
+{
+ this->Target = lg->GetMakefile()->FindTarget(this->TargetName);
+}
+
//----------------------------------------------------------------------------
void
cmInstallTargetGenerator
diff --git a/Source/cmInstallTargetGenerator.h b/Source/cmInstallTargetGenerator.h
index db69220..128e1a2 100644
--- a/Source/cmInstallTargetGenerator.h
+++ b/Source/cmInstallTargetGenerator.h
@@ -22,7 +22,7 @@ class cmInstallTargetGenerator: public cmInstallGenerator
{
public:
cmInstallTargetGenerator(
- cmTarget& t, const char* dest, bool implib,
+ std::string const& targetName, const char* dest, bool implib,
const char* file_permissions,
std::vector<std::string> const& configurations,
const char* component,
@@ -56,7 +56,10 @@ public:
const std::string& config,
NameType nameType = NameNormal);
+ void Compute(cmLocalGenerator* lg);
+
cmTarget* GetTarget() const { return this->Target; }
+
bool IsImportLibrary() const { return this->ImportLibrary; }
std::string GetDestination(std::string const& config) const;
@@ -98,6 +101,7 @@ protected:
void AddRanlibRule(std::ostream& os, Indent const& indent,
const std::string& toDestDirPath);
+ std::string TargetName;
cmTarget* Target;
std::string FilePermissions;
NamelinkModeType NamelinkMode;
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 2e20ee2..6b48a44 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2375,11 +2375,15 @@ cmLocalGenerator::ConstructComment(cmCustomCommandGenerator const& ccg,
class cmInstallTargetGeneratorLocal: public cmInstallTargetGenerator
{
public:
- cmInstallTargetGeneratorLocal(cmTarget& t, const char* dest, bool implib):
+ cmInstallTargetGeneratorLocal(cmLocalGenerator* lg, std::string const& t,
+ const char* dest, bool implib):
cmInstallTargetGenerator(
t, dest, implib, "", std::vector<std::string>(), "Unspecified",
- cmInstallGenerator::SelectMessageLevel(t.GetMakefile()),
- false) {}
+ cmInstallGenerator::SelectMessageLevel(lg->GetMakefile()),
+ false)
+ {
+ this->Compute(lg);
+ }
};
//----------------------------------------------------------------------------
@@ -2428,7 +2432,7 @@ cmLocalGenerator
{
// Use a target install generator.
cmInstallTargetGeneratorLocal
- g(l->second, destination.c_str(), false);
+ g(this, l->first, destination.c_str(), false);
g.Generate(os, config, configurationTypes);
}
break;
@@ -2439,18 +2443,18 @@ cmLocalGenerator
// to the normal destination and the DLL to the runtime
// destination.
cmInstallTargetGeneratorLocal
- g1(l->second, destination.c_str(), true);
+ g1(this, l->first, destination.c_str(), true);
g1.Generate(os, config, configurationTypes);
// We also skip over the leading slash given by the user.
destination = l->second.GetRuntimeInstallPath().substr(1);
cmSystemTools::ConvertToUnixSlashes(destination);
cmInstallTargetGeneratorLocal
- g2(l->second, destination.c_str(), false);
+ g2(this, l->first, destination.c_str(), false);
g2.Generate(os, config, configurationTypes);
#else
// Use a target install generator.
cmInstallTargetGeneratorLocal
- g(l->second, destination.c_str(), false);
+ g(this, l->first, destination.c_str(), false);
g.Generate(os, config, configurationTypes);
#endif
}
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9c587a085e66c23fcb76e56fa9a63dab0443e4e9
commit 9c587a085e66c23fcb76e56fa9a63dab0443e4e9
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 19:49:16 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:35 2015 -0400
cmInstallGenerator: Add a Compute() virtual hook.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 463f526..1d6608b 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -34,6 +34,7 @@
#include "cmExportBuildFileGenerator.h"
#include "cmCPackPropertiesGenerator.h"
#include "cmAlgorithms.h"
+#include "cmInstallGenerator.h"
#include <cmsys/Directory.hxx>
#include <cmsys/FStream.hxx>
@@ -1260,6 +1261,17 @@ bool cmGlobalGenerator::Compute()
}
#endif
+ for (i = 0; i < this->LocalGenerators.size(); ++i)
+ {
+ cmMakefile* mf = this->LocalGenerators[i]->GetMakefile();
+ std::vector<cmInstallGenerator*>& gens = mf->GetInstallGenerators();
+ for (std::vector<cmInstallGenerator*>::const_iterator git = gens.begin();
+ git != gens.end(); ++git)
+ {
+ (*git)->Compute(this->LocalGenerators[i]);
+ }
+ }
+
return true;
}
diff --git a/Source/cmInstallGenerator.h b/Source/cmInstallGenerator.h
index c4191e4..b8e5b53 100644
--- a/Source/cmInstallGenerator.h
+++ b/Source/cmInstallGenerator.h
@@ -62,6 +62,8 @@ public:
/** Select message level from CMAKE_INSTALL_MESSAGE or 'never'. */
static MessageLevel SelectMessageLevel(cmMakefile* mf, bool never = false);
+ virtual void Compute(cmLocalGenerator*) {}
+
protected:
virtual void GenerateScript(std::ostream& os);
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=53728a7819fe1e76bb606ae63d2b96a13bf799bb
commit 53728a7819fe1e76bb606ae63d2b96a13bf799bb
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 22:00:27 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:35 2015 -0400
cmInstallCommand: Move the SetHaveInstallRule invocation.
Remove the call from cmInstallTargetGenerator because that is
to be ported away from cmTarget.
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index 899b088..a33acad 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -752,6 +752,12 @@ bool cmInstallCommand::HandleTargetsMode(std::vector<std::string> const& args)
installsPublicHeader = installsPublicHeader || publicHeaderGenerator != 0;
installsResource = installsResource || resourceGenerator;
+ if (installsArchive || installsRuntime || installsFramework
+ || installsLibrary || installsBundle)
+ {
+ target.SetHaveInstallRule(true);
+ }
+
this->Makefile->AddInstallGenerator(archiveGenerator);
this->Makefile->AddInstallGenerator(libraryGenerator);
this->Makefile->AddInstallGenerator(runtimeGenerator);
diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx
index 5115788..09af56e 100644
--- a/Source/cmInstallTargetGenerator.cxx
+++ b/Source/cmInstallTargetGenerator.cxx
@@ -35,7 +35,6 @@ cmInstallTargetGenerator
{
this->ActionsPerConfig = true;
this->NamelinkMode = NamelinkModeNone;
- this->Target->SetHaveInstallRule(true);
}
//----------------------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bcd34ed976acd56c73a696ee99c265ad3d01a849
commit bcd34ed976acd56c73a696ee99c265ad3d01a849
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:12:03 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:34 2015 -0400
cmScriptGenerator: Remove unused method.
diff --git a/Source/cmScriptGenerator.h b/Source/cmScriptGenerator.h
index 9ab04f1..bc9372f 100644
--- a/Source/cmScriptGenerator.h
+++ b/Source/cmScriptGenerator.h
@@ -54,9 +54,6 @@ public:
void Generate(std::ostream& os, const std::string& config,
std::vector<std::string> const& configurationTypes);
- const std::vector<std::string>& GetConfigurations() const
- { return this->Configurations; }
-
protected:
typedef cmScriptGeneratorIndent Indent;
virtual void GenerateScript(std::ostream& os);
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=348de9be921cdf647c9baeb75a3b4c09194f58e0
commit 348de9be921cdf647c9baeb75a3b4c09194f58e0
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:58:26 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:34 2015 -0400
cmGlobalGenerator: Move QtAutogen handling to Compute().
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index b79576c..463f526 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1230,11 +1230,6 @@ bool cmGlobalGenerator::Compute()
this->CreateGenerationObjects();
- return true;
-}
-
-void cmGlobalGenerator::Generate()
-{
#ifdef CMAKE_BUILD_WITH_CMAKE
// Iterate through all targets and set up automoc for those which have
// the AUTOMOC, AUTOUIC or AUTORCC property set
@@ -1265,6 +1260,13 @@ void cmGlobalGenerator::Generate()
}
#endif
+ return true;
+}
+
+void cmGlobalGenerator::Generate()
+{
+ unsigned int i;
+
// Trace the dependencies, after that no custom commands should be added
// because their dependencies might not be handled correctly
for (i = 0; i < this->LocalGenerators.size(); ++i)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa85121e38ce0d4a310564affe61f10abe8c1b2a
commit aa85121e38ce0d4a310564affe61f10abe8c1b2a
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 25 19:03:51 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:34 2015 -0400
cmGlobalGenerator: Virtualize the Compute step and override it.
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 7bf6b24..9492372 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -86,7 +86,7 @@ public:
*/
virtual void Configure();
- bool Compute();
+ virtual bool Compute();
enum TargetTypes {
AllTargets,
diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx
index 4e8ada4..8ec4fd9 100644
--- a/Source/cmGlobalVisualStudio10Generator.cxx
+++ b/Source/cmGlobalVisualStudio10Generator.cxx
@@ -314,9 +314,18 @@ cmGlobalVisualStudio10Generator::CreateLocalGenerator(cmLocalGenerator* parent,
}
//----------------------------------------------------------------------------
-void cmGlobalVisualStudio10Generator::Generate()
+bool cmGlobalVisualStudio10Generator::Compute()
{
+ if (!cmGlobalVisualStudio8Generator::Compute())
+ {
+ return false;
+ }
this->LongestSource = LongestSourcePath();
+ return true;
+}
+
+void cmGlobalVisualStudio10Generator::Generate()
+{
this->cmGlobalVisualStudio8Generator::Generate();
if(this->LongestSource.Length > 0)
{
diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h
index 74d5022..3d34a3f 100644
--- a/Source/cmGlobalVisualStudio10Generator.h
+++ b/Source/cmGlobalVisualStudio10Generator.h
@@ -45,6 +45,8 @@ public:
std::vector<std::string> const& makeOptions = std::vector<std::string>()
);
+ virtual bool Compute();
+
///! create the correct local generator
virtual cmLocalGenerator *CreateLocalGenerator(cmLocalGenerator* parent,
cmState::Snapshot snapshot);
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index 16e3f9b..d5a5585 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -347,8 +347,13 @@ bool cmGlobalVisualStudio8Generator::AddCheckTarget()
}
//----------------------------------------------------------------------------
-void cmGlobalVisualStudio8Generator::Generate()
+bool cmGlobalVisualStudio8Generator::Compute()
{
+ if (!cmGlobalVisualStudio7Generator::Compute())
+ {
+ return false;
+ }
+
if(this->AddCheckTarget())
{
// All targets depend on the build-system check target.
@@ -362,9 +367,7 @@ void cmGlobalVisualStudio8Generator::Generate()
}
}
}
-
- // Now perform the main generation.
- this->cmGlobalVisualStudio7Generator::Generate();
+ return true;
}
//----------------------------------------------------------------------------
diff --git a/Source/cmGlobalVisualStudio8Generator.h b/Source/cmGlobalVisualStudio8Generator.h
index cc02b78..1c61103 100644
--- a/Source/cmGlobalVisualStudio8Generator.h
+++ b/Source/cmGlobalVisualStudio8Generator.h
@@ -67,7 +67,7 @@ public:
return !this->WindowsCEVersion.empty(); }
protected:
- virtual void Generate();
+ virtual bool Compute();
virtual const char* GetIDEVersion() { return "8.0"; }
virtual std::string FindDevEnvCommand();
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index a147eb3..2f9d79a 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -64,8 +64,13 @@ std::string cmGlobalVisualStudioGenerator::GetRegistryBase(
}
//----------------------------------------------------------------------------
-void cmGlobalVisualStudioGenerator::Generate()
+bool cmGlobalVisualStudioGenerator::Compute()
{
+ if (!cmGlobalGenerator::Compute())
+ {
+ return false;
+ }
+
// Add a special target that depends on ALL projects for easy build
// of one configuration only.
const char* no_working_dir = 0;
@@ -136,9 +141,7 @@ void cmGlobalVisualStudioGenerator::Generate()
static_cast<cmLocalVisualStudioGenerator*>(*lgi);
lg->AddCMakeListsRules();
}
-
- // Run all the local generators.
- this->cmGlobalGenerator::Generate();
+ return true;
}
//----------------------------------------------------------------------------
diff --git a/Source/cmGlobalVisualStudioGenerator.h b/Source/cmGlobalVisualStudioGenerator.h
index 8e2d6a4..64440ad 100644
--- a/Source/cmGlobalVisualStudioGenerator.h
+++ b/Source/cmGlobalVisualStudioGenerator.h
@@ -108,7 +108,7 @@ public:
cmGeneratorTarget*, std::vector<cmCustomCommand>& commands,
std::string const& configName);
protected:
- virtual void Generate();
+ virtual bool Compute();
// Does this VS version link targets to each other if there are
// dependencies in the SLN file? This was done for VS versions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 56134f2..c129c4c 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -378,8 +378,13 @@ cmGlobalXCodeGenerator::CreateLocalGenerator(cmLocalGenerator* parent,
}
//----------------------------------------------------------------------------
-void cmGlobalXCodeGenerator::Generate()
+bool cmGlobalXCodeGenerator::Compute()
{
+ if (!cmGlobalGenerator::Compute())
+ {
+ return false;
+ }
+
std::map<std::string, std::vector<cmLocalGenerator*> >::iterator it;
// make sure extra targets are added before calling
// the parent generate which will call trace depends
@@ -390,11 +395,17 @@ void cmGlobalXCodeGenerator::Generate()
// add ALL_BUILD, INSTALL, etc
this->AddExtraTargets(root, it->second);
}
+ return true;
+}
+
+void cmGlobalXCodeGenerator::Generate()
+{
this->cmGlobalGenerator::Generate();
if(cmSystemTools::GetErrorOccuredFlag())
{
return;
}
+ std::map<std::string, std::vector<cmLocalGenerator*> >::iterator it;
for(it = this->ProjectMap.begin(); it!= this->ProjectMap.end(); ++it)
{
cmLocalGenerator* root = it->second[0];
diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h
index c36e4af..ee8bf2c 100644
--- a/Source/cmGlobalXCodeGenerator.h
+++ b/Source/cmGlobalXCodeGenerator.h
@@ -88,6 +88,7 @@ public:
virtual bool SetGeneratorToolset(std::string const& ts, cmMakefile* mf);
void AppendFlag(std::string& flags, std::string const& flag);
protected:
+ virtual bool Compute();
virtual void Generate();
private:
cmXCodeObject* CreateOrGetPBXGroup(cmTarget& cmtarget,
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ae65b8ef2e424c26f8dfdb1178f64f5aca02b000
commit ae65b8ef2e424c26f8dfdb1178f64f5aca02b000
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:57:29 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:34 2015 -0400
cmGlobalGenerator: Move generation object creation to Compute().
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index dcbc558..b79576c 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1228,13 +1228,13 @@ bool cmGlobalGenerator::Compute()
}
this->FinalizeTargetCompileInfo();
+ this->CreateGenerationObjects();
+
return true;
}
void cmGlobalGenerator::Generate()
{
- this->CreateGenerationObjects();
-
#ifdef CMAKE_BUILD_WITH_CMAKE
// Iterate through all targets and set up automoc for those which have
// the AUTOMOC, AUTOUIC or AUTORCC property set
diff --git a/Source/cmGlobalVisualStudio8Generator.cxx b/Source/cmGlobalVisualStudio8Generator.cxx
index f3cf36e..16e3f9b 100644
--- a/Source/cmGlobalVisualStudio8Generator.cxx
+++ b/Source/cmGlobalVisualStudio8Generator.cxx
@@ -254,6 +254,8 @@ bool cmGlobalVisualStudio8Generator::AddCheckTarget()
mf->AddUtilityCommand(CMAKE_CHECK_BUILD_SYSTEM_TARGET, false,
no_working_directory, no_depends,
noCommandLines);
+ cmGeneratorTarget* gt = new cmGeneratorTarget(tgt, lg);
+ mf->AddGeneratorTarget(tgt, gt);
// Organize in the "predefined targets" folder:
//
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index d6973aa..a147eb3 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -85,6 +85,8 @@ void cmGlobalVisualStudioGenerator::Generate()
AddUtilityCommand("ALL_BUILD", true, no_working_dir,
no_depends, no_commands, false,
"Build all projects");
+ cmGeneratorTarget* gt = new cmGeneratorTarget(allBuild, gen[0]);
+ allBuild->GetMakefile()->AddGeneratorTarget(allBuild, gt);
#if 0
// Can't activate this code because we want ALL_BUILD
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 91b8186..56134f2 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -452,6 +452,8 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
cmTarget* allbuild = mf->AddUtilityCommand("ALL_BUILD", true, no_depends,
no_working_directory,
"echo", "Build all projects");
+ cmGeneratorTarget* gt = new cmGeneratorTarget(allbuild, root);
+ mf->AddGeneratorTarget(allbuild, gt);
// Refer to the main build configuration file for easy editing.
std::string listfile = mf->GetCurrentSourceDirectory();
@@ -480,9 +482,12 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
std::string file = this->ConvertToRelativeForMake(
this->CurrentReRunCMakeMakefile.c_str());
cmSystemTools::ReplaceString(file, "\\ ", " ");
- mf->AddUtilityCommand(CMAKE_CHECK_BUILD_SYSTEM_TARGET, true, no_depends,
+ cmTarget* check = mf->AddUtilityCommand(CMAKE_CHECK_BUILD_SYSTEM_TARGET,
+ true, no_depends,
no_working_directory,
"make", "-f", file.c_str());
+ cmGeneratorTarget* gt = new cmGeneratorTarget(check, root);
+ mf->AddGeneratorTarget(check, gt);
}
// now make the allbuild depend on all the non-utility targets
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa2407d84d8bcd983b3df294032831bbd54cf25d
commit aa2407d84d8bcd983b3df294032831bbd54cf25d
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:32:40 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:34 2015 -0400
Xcode: Use allBuild target return value.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index d6f5a00..91b8186 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -449,10 +449,9 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
// Add ALL_BUILD
const char* no_working_directory = 0;
std::vector<std::string> no_depends;
- mf->AddUtilityCommand("ALL_BUILD", true, no_depends,
+ cmTarget* allbuild = mf->AddUtilityCommand("ALL_BUILD", true, no_depends,
no_working_directory,
"echo", "Build all projects");
- cmTarget* allbuild = mf->FindTarget("ALL_BUILD");
// Refer to the main build configuration file for easy editing.
std::string listfile = mf->GetCurrentSourceDirectory();
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=610572b7d27e122ebf8e5c5d430019844567a996
commit 610572b7d27e122ebf8e5c5d430019844567a996
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:31:23 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:33 2015 -0400
cmMakefile: Simplify generate-time cmGeneratorTarget creation.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 20c56ba..4bdc9d5 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1909,6 +1909,7 @@ const char* cmMakefile::GetCurrentBinaryDirectory() const
void cmMakefile::AddGeneratorTarget(cmTarget* t, cmGeneratorTarget* gt)
{
this->GeneratorTargets[t] = gt;
+ this->GetGlobalGenerator()->AddGeneratorTarget(t, gt);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx
index 979db91..1322dea 100644
--- a/Source/cmQtAutoGenerators.cxx
+++ b/Source/cmQtAutoGenerators.cxx
@@ -476,7 +476,6 @@ bool cmQtAutoGenerators::InitializeAutogenTarget(cmLocalGenerator* lg,
commandLines, false, autogenComment.c_str());
cmGeneratorTarget* gt = new cmGeneratorTarget(autogenTarget, lg);
- lg->GetGlobalGenerator()->AddGeneratorTarget(autogenTarget, gt);
makefile->AddGeneratorTarget(autogenTarget, gt);
// Set target folder
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e94cba3565105aaa23720d9ffdcb9fe1ccee6b9
commit 2e94cba3565105aaa23720d9ffdcb9fe1ccee6b9
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:56:59 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:33 2015 -0400
cmGlobalGenerator: Move FinalizeTargetCompileInfo to Compute().
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 65d74bd..dcbc558 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1226,13 +1226,13 @@ bool cmGlobalGenerator::Compute()
{
return false;
}
+ this->FinalizeTargetCompileInfo();
+
return true;
}
void cmGlobalGenerator::Generate()
{
- this->FinalizeTargetCompileInfo();
-
this->CreateGenerationObjects();
#ifdef CMAKE_BUILD_WITH_CMAKE
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fb9355c50e366bd0f7cb6df6ea19118bd7dae899
commit fb9355c50e366bd0f7cb6df6ea19118bd7dae899
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 25 18:44:58 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:33 2015 -0400
cmGlobalGenerator: Return from Compute whether to generate.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 390d6b4..65d74bd 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1212,7 +1212,7 @@ bool cmGlobalGenerator::CheckALLOW_DUPLICATE_CUSTOM_TARGETS() const
return false;
}
-void cmGlobalGenerator::Compute()
+bool cmGlobalGenerator::Compute()
{
// Some generators track files replaced during the Generate.
// Start with an empty vector:
@@ -1220,16 +1220,17 @@ void cmGlobalGenerator::Compute()
// clear targets to issue warning CMP0042 for
this->CMP0042WarnTargets.clear();
-}
-void cmGlobalGenerator::Generate()
-{
// Check whether this generator is allowed to run.
if(!this->CheckALLOW_DUPLICATE_CUSTOM_TARGETS())
{
- return;
+ return false;
}
+ return true;
+}
+void cmGlobalGenerator::Generate()
+{
this->FinalizeTargetCompileInfo();
this->CreateGenerationObjects();
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index 9c36cca..7bf6b24 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -86,7 +86,7 @@ public:
*/
virtual void Configure();
- void Compute();
+ bool Compute();
enum TargetTypes {
AllTargets,
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 619374e..ec8276e 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1607,7 +1607,10 @@ int cmake::Generate()
{
return -1;
}
- this->GlobalGenerator->Compute();
+ if (!this->GlobalGenerator->Compute())
+ {
+ return -1;
+ }
this->GlobalGenerator->Generate();
if ( !this->GraphVizFile.empty() )
{
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=29e8b7bfcc8b3530fb4fd2dd04dca59744588b61
commit 29e8b7bfcc8b3530fb4fd2dd04dca59744588b61
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 25 18:43:28 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:33 2015 -0400
cmGlobalGenerator: Create a new Compute step before generation.
Replace the DoGenerate method.
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 06777e6..390d6b4 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1212,7 +1212,7 @@ bool cmGlobalGenerator::CheckALLOW_DUPLICATE_CUSTOM_TARGETS() const
return false;
}
-void cmGlobalGenerator::DoGenerate()
+void cmGlobalGenerator::Compute()
{
// Some generators track files replaced during the Generate.
// Start with an empty vector:
@@ -1220,8 +1220,6 @@ void cmGlobalGenerator::DoGenerate()
// clear targets to issue warning CMP0042 for
this->CMP0042WarnTargets.clear();
-
- this->Generate();
}
void cmGlobalGenerator::Generate()
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index fe99a00..9c36cca 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -86,6 +86,7 @@ public:
*/
virtual void Configure();
+ void Compute();
enum TargetTypes {
AllTargets,
@@ -99,7 +100,7 @@ public:
* basically creates a series of LocalGenerators for each directory and
* requests that they Generate.
*/
- void DoGenerate();
+ virtual void Generate();
/**
* Set/Get and Clear the enabled languages.
@@ -368,8 +369,6 @@ public:
std::string MakeSilentFlag;
protected:
- virtual void Generate();
-
typedef std::vector<cmLocalGenerator*> GeneratorVector;
// for a project collect all its targets by following depend
// information, and also collect all the targets
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 9d2c19e..619374e 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1607,7 +1607,8 @@ int cmake::Generate()
{
return -1;
}
- this->GlobalGenerator->DoGenerate();
+ this->GlobalGenerator->Compute();
+ this->GlobalGenerator->Generate();
if ( !this->GraphVizFile.empty() )
{
std::cout << "Generate graphviz: " << this->GraphVizFile << std::endl;
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ef9b2b6007356ab26cdec42bdf9c79d53745bf6
commit 1ef9b2b6007356ab26cdec42bdf9c79d53745bf6
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 25 19:10:44 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:32 2015 -0400
cmGlobalGenerator: Remove the TargetManifest member.
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index edd89e8..bd57b3d 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -1150,35 +1150,35 @@ void cmGeneratorTarget::GenerateTargetManifest(
f = dir;
f += "/";
f += name;
- gg->AddToManifest(config, f);
+ gg->AddToManifest(f);
}
if(!soName.empty())
{
f = dir;
f += "/";
f += soName;
- gg->AddToManifest(config, f);
+ gg->AddToManifest(f);
}
if(!realName.empty())
{
f = dir;
f += "/";
f += realName;
- gg->AddToManifest(config, f);
+ gg->AddToManifest(f);
}
if(!pdbName.empty())
{
f = dir;
f += "/";
f += pdbName;
- gg->AddToManifest(config, f);
+ gg->AddToManifest(f);
}
if(!impName.empty())
{
f = this->Target->GetDirectory(config, true);
f += "/";
f += impName;
- gg->AddToManifest(config, f);
+ gg->AddToManifest(f);
}
}
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 5599854..06777e6 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -2698,12 +2698,8 @@ void cmGlobalGenerator::AddTargetDepends(cmGeneratorTarget const* target,
//----------------------------------------------------------------------------
-void cmGlobalGenerator::AddToManifest(const std::string& config,
- std::string const& f)
+void cmGlobalGenerator::AddToManifest(std::string const& f)
{
- // Add to the main manifest for this configuration.
- this->TargetManifest[config].insert(f);
-
// Add to the content listing for the file's directory.
std::string dir = cmSystemTools::GetFilenamePath(f);
std::string file = cmSystemTools::GetFilenameName(f);
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index e517c5c..fe99a00 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -200,7 +200,7 @@ public:
cmExportSetMap& GetExportSets() {return this->ExportSets;}
/** Add a file to the manifest of generated targets for a configuration. */
- void AddToManifest(const std::string& config, std::string const& f);
+ void AddToManifest(std::string const& f);
void EnableInstallTarget();
@@ -424,10 +424,6 @@ protected:
std::map<std::string, cmExportBuildFileGenerator*> BuildExportSets;
std::map<std::string, cmExportBuildFileGenerator*> BuildExportExportSets;
- // Manifest of all targets that will be built for each configuration.
- // This is computed just before local generators generate.
- cmTargetManifest TargetManifest;
-
// All targets in the entire project.
#if defined(CMAKE_BUILD_WITH_CMAKE)
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5c14f78005ba5b4a2ccf0899fc50805a9de7b9ee
commit 5c14f78005ba5b4a2ccf0899fc50805a9de7b9ee
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Sat Jul 25 19:08:08 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:32 2015 -0400
cmGlobalGenerator: Remove unused manifest accessor.
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index d486003..e517c5c 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -264,11 +264,6 @@ public:
const std::string& suffix,
std::string& dir);
- /** Get the manifest of all targets that will be built for each
- configuration. This is valid during generation only. */
- cmTargetManifest const& GetTargetManifest() const
- { return this->TargetManifest; }
-
/** Get the content of a directory. Directory listings are cached
and re-loaded from disk only when modified. During the generation
step the content will include the target files to be built even if
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a1209be550172a95d3254158c121abf184e60bcd
commit a1209be550172a95d3254158c121abf184e60bcd
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:48:40 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:32 2015 -0400
VisualStudio: Skip global targets when processing.
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index 1d583eb..d6973aa 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -108,6 +108,10 @@ void cmGlobalVisualStudioGenerator::Generate()
for(cmTargets::iterator t = targets.begin();
t != targets.end(); ++t)
{
+ if (t->second.GetType() == cmTarget::GLOBAL_TARGET)
+ {
+ continue;
+ }
if(!this->IsExcluded(gen[0], t->second))
{
allBuild->AddUtility(t->second.GetName());
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index f1c8def..cab5a47 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -88,7 +88,8 @@ void cmLocalVisualStudio6Generator::AddCMakeListsRules()
for(cmTargets::iterator l = tgts.begin();
l != tgts.end(); l++)
{
- if (l->second.GetType() == cmTarget::INTERFACE_LIBRARY)
+ if (l->second.GetType() == cmTarget::INTERFACE_LIBRARY
+ || l->second.GetType() == cmTarget::GLOBAL_TARGET)
{
continue;
}
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index f199a41..572dbde 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -108,6 +108,10 @@ void cmLocalVisualStudio7Generator::AddCMakeListsRules()
// Add the rule to targets that need it.
for(cmTargets::iterator l = tgts.begin(); l != tgts.end(); ++l)
{
+ if (l->second.GetType() == cmTarget::GLOBAL_TARGET)
+ {
+ continue;
+ }
if(l->first != CMAKE_CHECK_BUILD_SYSTEM_TARGET)
{
l->second.AddSource(sf->GetFullPath());
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=32e4f6beca6f13165ec5a40bf363d005ebda9263
commit 32e4f6beca6f13165ec5a40bf363d005ebda9263
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:37:55 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:32 2015 -0400
Xcode: Skip Global targets when processing.
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index ba5ff30..d6f5a00 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -502,6 +502,11 @@ cmGlobalXCodeGenerator::AddExtraTargets(cmLocalGenerator* root,
{
cmTarget& target = l->second;
+ if (target.GetType() == cmTarget::GLOBAL_TARGET)
+ {
+ continue;
+ }
+
if (regenerate && (l->first != CMAKE_CHECK_BUILD_SYSTEM_TARGET))
{
target.AddUtility(CMAKE_CHECK_BUILD_SYSTEM_TARGET);
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=34b902a5a6fd55ef3857d74aab986a8d96d57659
commit 34b902a5a6fd55ef3857d74aab986a8d96d57659
Author: Stephen Kelly <steveire at gmail.com>
AuthorDate: Tue Jul 28 18:30:15 2015 +0200
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:31 2015 -0400
cmMakefile: Move method out of line.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 17bde41..20c56ba 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1906,6 +1906,11 @@ const char* cmMakefile::GetCurrentBinaryDirectory() const
return this->StateSnapshot.GetDirectory().GetCurrentBinary();
}
+void cmMakefile::AddGeneratorTarget(cmTarget* t, cmGeneratorTarget* gt)
+{
+ this->GeneratorTargets[t] = gt;
+}
+
//----------------------------------------------------------------------------
void cmMakefile::AddIncludeDirectories(const std::vector<std::string> &incs,
bool before)
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 4fa5822..1e5c301 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -417,10 +417,7 @@ public:
{
this->GeneratorTargets = targets;
}
- void AddGeneratorTarget(cmTarget* t, cmGeneratorTarget* gt)
- {
- this->GeneratorTargets[t] = gt;
- }
+ void AddGeneratorTarget(cmTarget* t, cmGeneratorTarget* gt);
cmTarget* FindTarget(const std::string& name,
bool excludeAliases = false) const;
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aaa322a5cb5603742273282fb12f1e368697a625
commit aaa322a5cb5603742273282fb12f1e368697a625
Author: Brad King <brad.king at kitware.com>
AuthorDate: Wed Jul 29 10:41:30 2015 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 29 10:43:31 2015 -0400
cmMakefile: Return target from all AddUtilityCommand signatures
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 57e33df..17bde41 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1205,15 +1205,16 @@ cmMakefile::AddCustomCommandOldStyle(const std::string& target,
}
//----------------------------------------------------------------------------
-void cmMakefile::AddUtilityCommand(const std::string& utilityName,
- bool excludeFromAll,
- const std::vector<std::string>& depends,
- const char* workingDirectory,
- const char* command,
- const char* arg1,
- const char* arg2,
- const char* arg3,
- const char* arg4)
+cmTarget*
+cmMakefile::AddUtilityCommand(const std::string& utilityName,
+ bool excludeFromAll,
+ const std::vector<std::string>& depends,
+ const char* workingDirectory,
+ const char* command,
+ const char* arg1,
+ const char* arg2,
+ const char* arg3,
+ const char* arg4)
{
// Construct the command line for the custom command.
cmCustomCommandLine commandLine;
@@ -1238,8 +1239,8 @@ void cmMakefile::AddUtilityCommand(const std::string& utilityName,
commandLines.push_back(commandLine);
// Call the real signature of this method.
- this->AddUtilityCommand(utilityName, excludeFromAll, workingDirectory,
- depends, commandLines);
+ return this->AddUtilityCommand(utilityName, excludeFromAll, workingDirectory,
+ depends, commandLines);
}
//----------------------------------------------------------------------------
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 7938fcc..4fa5822 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -194,14 +194,15 @@ public:
* Add a utility to the build. A utiltity target is a command that
* is run every time the target is built.
*/
- void AddUtilityCommand(const std::string& utilityName, bool excludeFromAll,
- const std::vector<std::string>& depends,
- const char* workingDirectory,
- const char* command,
- const char* arg1=0,
- const char* arg2=0,
- const char* arg3=0,
- const char* arg4=0);
+ cmTarget* AddUtilityCommand(const std::string& utilityName,
+ bool excludeFromAll,
+ const std::vector<std::string>& depends,
+ const char* workingDirectory,
+ const char* command,
+ const char* arg1=0,
+ const char* arg2=0,
+ const char* arg3=0,
+ const char* arg4=0);
cmTarget* AddUtilityCommand(const std::string& utilityName,
bool excludeFromAll,
const char* workingDirectory,
-----------------------------------------------------------------------
Summary of changes:
Source/cmExportInstallFileGenerator.cxx | 2 +-
Source/cmGeneratorTarget.cxx | 10 ++--
Source/cmGlobalGenerator.cxx | 35 +++++++----
Source/cmGlobalGenerator.h | 16 +----
Source/cmGlobalVisualStudio10Generator.cxx | 11 +++-
Source/cmGlobalVisualStudio10Generator.h | 2 +
Source/cmGlobalVisualStudio8Generator.cxx | 13 ++--
Source/cmGlobalVisualStudio8Generator.h | 2 +-
Source/cmGlobalVisualStudioGenerator.cxx | 17 ++++--
Source/cmGlobalVisualStudioGenerator.h | 2 +-
Source/cmGlobalXCodeGenerator.cxx | 28 +++++++--
Source/cmGlobalXCodeGenerator.h | 1 +
Source/cmInstallCommand.cxx | 9 ++-
Source/cmInstallGenerator.h | 2 +
Source/cmInstallTargetGenerator.cxx | 89 +++++++++++++++++-----------
Source/cmInstallTargetGenerator.h | 14 +++--
Source/cmLocalGenerator.cxx | 18 +++---
Source/cmLocalVisualStudio6Generator.cxx | 3 +-
Source/cmLocalVisualStudio7Generator.cxx | 4 ++
Source/cmMakefile.cxx | 29 +++++----
Source/cmMakefile.h | 22 ++++---
Source/cmQtAutoGenerators.cxx | 1 -
Source/cmScriptGenerator.h | 3 -
Source/cmake.cxx | 6 +-
24 files changed, 215 insertions(+), 124 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list