[Cmake-commits] CMake branch, next, updated. v3.8.0-714-g0cd590f
Kitware Robot
kwrobot at kitware.com
Tue Apr 11 09:55:02 EDT 2017
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
discards dc2bac8b8f4dd8c1d003e828e3c2a33ef2593437 (commit)
discards 51adb683f2c2f56e265513500e2a197db76b03cf (commit)
discards 6db1761dfc8775897376c41d17ba581e7c5840b8 (commit)
discards 972992f75be9c74820cd5620c111793fe18f9108 (commit)
via 0cd590fbd0107804940c86e6b193dad512614af4 (commit)
via cb03887fe5f4e510294c2cc6fbccbc1222035fcc (commit)
via 77cbbb361d53cc76ebe1d690ad1db35254e2d162 (commit)
via 7ae40e560745a2aa857a210bfc28446bf98337fe (commit)
This update added new revisions after undoing existing revisions. That is
to say, the old revision is not a strict subset of the new revision. This
situation occurs when you --force push a change and generate a repository
containing something like this:
* -- * -- B -- O -- O -- O (dc2bac8b8f4dd8c1d003e828e3c2a33ef2593437)
\
N -- N -- N (0cd590fbd0107804940c86e6b193dad512614af4)
When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.
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=0cd590fbd0107804940c86e6b193dad512614af4
commit 0cd590fbd0107804940c86e6b193dad512614af4
Merge: 4a18347 cb03887
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Apr 11 13:46:35 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Apr 11 09:46:38 2017 -0400
Stage topic 'vs-remove-UseObjectLibraries'
Topic-id: 23581
Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/686
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cb03887fe5f4e510294c2cc6fbccbc1222035fcc
commit cb03887fe5f4e510294c2cc6fbccbc1222035fcc
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Apr 10 14:50:53 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 11 09:45:01 2017 -0400
VS: Simplify logic collecting object library files as sources
Object library files are already included by `GetExternalObjects`
and `GetConfigCommonSourceFiles` so we don't need to call
`UseObjectLibraries` to get them.
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 260a84b..9e83c77 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1306,14 +1306,21 @@ void cmLocalVisualStudio7GeneratorInternals::OutputObjects(
// list object library content on the link line instead.
cmLocalVisualStudio7Generator* lg = this->LocalGenerator;
std::string currentBinDir = lg->GetCurrentBinaryDirectory();
- std::vector<std::string> objs;
- gt->UseObjectLibraries(objs, "");
+
+ std::vector<cmSourceFile*> sources;
+ if (!gt->GetConfigCommonSourceFiles(sources)) {
+ return;
+ }
+
const char* sep = isep ? isep : "";
- for (std::vector<std::string>::const_iterator oi = objs.begin();
- oi != objs.end(); ++oi) {
- std::string rel = lg->ConvertToRelativePath(currentBinDir, oi->c_str());
- fout << sep << lg->ConvertToXMLOutputPath(rel.c_str());
- sep = " ";
+ for (std::vector<cmSourceFile*>::const_iterator i = sources.begin();
+ i != sources.end(); i++) {
+ if (!(*i)->GetObjectLibrary().empty()) {
+ std::string const& objFile = (*i)->GetFullPath();
+ std::string rel = lg->ConvertToRelativePath(currentBinDir, objFile);
+ fout << sep << lg->ConvertToXMLOutputPath(rel.c_str());
+ sep = " ";
+ }
}
}
@@ -1370,7 +1377,13 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
for (std::vector<cmSourceFile*>::const_iterator i = classes.begin();
i != classes.end(); i++) {
if (!(*i)->GetObjectLibrary().empty()) {
- continue;
+ if (this->GetVersion() < cmGlobalVisualStudioGenerator::VS8 ||
+ this->FortranProject) {
+ // VS < 8 does not support per-config source locations so we
+ // list object library content on the link line instead.
+ // See OutputObjects.
+ continue;
+ }
}
// Add the file to the list of sources.
std::string source = (*i)->GetFullPath();
@@ -1392,24 +1405,6 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
this->WriteGroup(&sg, target, fout, libName, configs);
}
- if (this->GetVersion() >= cmGlobalVisualStudioGenerator::VS8 &&
- !this->FortranProject) {
- // VS >= 8 support per-config source locations so we
- // list object library content as external objects.
- std::vector<std::string> objs;
- target->UseObjectLibraries(objs, "");
- if (!objs.empty()) {
- // TODO: Separate sub-filter for each object library used?
- fout << "\t\t<Filter Name=\"Object Libraries\">\n";
- for (std::vector<std::string>::const_iterator oi = objs.begin();
- oi != objs.end(); ++oi) {
- std::string o = this->ConvertToXMLOutputPathSingle(oi->c_str());
- fout << "\t\t\t<File RelativePath=\"" << o << "\" />\n";
- }
- fout << "\t\t</Filter>\n";
- }
- }
-
fout << "\t</Files>\n";
// Write the VCProj file's footer.
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index a9ccc68..419989a 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1337,23 +1337,6 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
this->WriteString("</ItemGroup>\n", 1);
}
- // Add object library contents as external objects.
- std::vector<std::string> objs;
- this->GeneratorTarget->UseObjectLibraries(objs, "");
- if (!objs.empty()) {
- this->WriteString("<ItemGroup>\n", 1);
- for (std::vector<std::string>::const_iterator oi = objs.begin();
- oi != objs.end(); ++oi) {
- std::string obj = *oi;
- this->WriteString("<Object Include=\"", 2);
- this->ConvertToWindowsSlash(obj);
- (*this->BuildFileStream) << cmVS10EscapeXML(obj) << "\">\n";
- this->WriteString("<Filter>Object Libraries</Filter>\n", 3);
- this->WriteString("</Object>\n", 2);
- }
- this->WriteString("</ItemGroup>\n", 1);
- }
-
this->WriteString("<ItemGroup>\n", 1);
for (std::set<cmSourceGroup*>::iterator g = groupsUsed.begin();
g != groupsUsed.end(); ++g) {
@@ -1371,15 +1354,6 @@ void cmVisualStudio10TargetGenerator::WriteGroups()
this->WriteString("</Filter>\n", 2);
}
}
- if (!objs.empty()) {
- this->WriteString("<Filter Include=\"Object Libraries\">\n", 2);
- std::string guidName = "SG_Filter_Object Libraries";
- this->WriteString("<UniqueIdentifier>", 3);
- std::string guid = this->GlobalGenerator->GetGUID(guidName.c_str());
- (*this->BuildFileStream) << "{" << guid << "}"
- << "</UniqueIdentifier>\n";
- this->WriteString("</Filter>\n", 2);
- }
if (!resxObjs.empty() || !this->AddedFiles.empty()) {
this->WriteString("<Filter Include=\"Resource Files\">\n", 2);
@@ -1824,14 +1798,6 @@ void cmVisualStudio10TargetGenerator::WriteAllSources()
std::vector<cmSourceFile const*> externalObjects;
this->GeneratorTarget->GetExternalObjects(externalObjects, "");
- for (std::vector<cmSourceFile const*>::iterator si = externalObjects.begin();
- si != externalObjects.end();) {
- if (!(*si)->GetObjectLibrary().empty()) {
- si = externalObjects.erase(si);
- } else {
- ++si;
- }
- }
if (this->LocalGenerator->GetVersion() >
cmGlobalVisualStudioGenerator::VS10) {
// For VS >= 11 we use LinkObjects to avoid linking custom command
@@ -1857,17 +1823,6 @@ void cmVisualStudio10TargetGenerator::WriteAllSources()
this->WriteExtraSource(*si);
}
- // Add object library contents as external objects.
- std::vector<std::string> objs;
- this->GeneratorTarget->UseObjectLibraries(objs, "");
- for (std::vector<std::string>::const_iterator oi = objs.begin();
- oi != objs.end(); ++oi) {
- std::string obj = *oi;
- this->WriteString("<Object Include=\"", 2);
- this->ConvertToWindowsSlash(obj);
- (*this->BuildFileStream) << cmVS10EscapeXML(obj) << "\" />\n";
- }
-
std::vector<cmSourceFile const*> defSources;
this->GeneratorTarget->GetModuleDefinitionSources(defSources, "");
this->WriteSources("None", defSources);
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=77cbbb361d53cc76ebe1d690ad1db35254e2d162
commit 77cbbb361d53cc76ebe1d690ad1db35254e2d162
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Apr 10 14:14:59 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 11 09:45:01 2017 -0400
VS: Simplify use of object libraries in WINDOWS_EXPORT_ALL_SYMBOLS
Object library files are already included by `GetExternalObjects`
so we don't need to call `UseObjectLibraries` to get them.
diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx
index 6d16881..eae1dc4 100644
--- a/Source/cmGlobalVisualStudioGenerator.cxx
+++ b/Source/cmGlobalVisualStudioGenerator.cxx
@@ -887,7 +887,6 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand(
objs.push_back((*it)->GetFullPath());
}
- gt->UseObjectLibraries(objs, configName);
for (std::vector<std::string>::iterator it = objs.begin();
it != objs.end(); ++it) {
std::string objFile = *it;
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7ae40e560745a2aa857a210bfc28446bf98337fe
commit 7ae40e560745a2aa857a210bfc28446bf98337fe
Author: Brad King <brad.king at kitware.com>
AuthorDate: Mon Apr 10 14:48:57 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Apr 11 09:45:01 2017 -0400
cmMakefile: Create an explicit "Object Libraries" source group
The generators should not need special logic to place object library
object files in this group.
diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx
index 4443499..54554ff 100644
--- a/Source/cmGeneratorExpressionNode.cxx
+++ b/Source/cmGeneratorExpressionNode.cxx
@@ -14,7 +14,6 @@
#include "cmMakefile.h"
#include "cmOutputConverter.h"
#include "cmPolicies.h"
-#include "cmSourceFile.h"
#include "cmStateTypes.h"
#include "cmSystemTools.h"
#include "cmTarget.h"
@@ -1265,6 +1264,8 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
gt->LocalGenerator->ComputeObjectFilenames(mapping, gt);
+ cmMakefile* mf = context->LG->GetMakefile();
+
std::string obj_dir = gt->ObjectDirectory;
std::string result;
const char* sep = "";
@@ -1278,10 +1279,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
assert(!map_it->second.empty());
result += sep;
std::string objFile = obj_dir + map_it->second;
- cmSourceFile* sf =
- context->LG->GetMakefile()->GetOrCreateSource(objFile, true);
- sf->SetObjectLibrary(tgtName);
- sf->SetProperty("EXTERNAL_OBJECT", "1");
+ mf->AddTargetObject(tgtName, objFile);
result += objFile;
sep = ";";
}
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index f7d822a..9c68ccf 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -94,6 +94,10 @@ cmMakefile::cmMakefile(cmGlobalGenerator* globalGenerator,
this->AddSourceGroup("CMake Rules", "\\.rule$");
this->AddSourceGroup("Resources", "\\.plist$");
this->AddSourceGroup("Object Files", "\\.(lo|o|obj)$");
+
+ this->ObjectLibrariesSourceGroupIndex = this->SourceGroups.size();
+ this->SourceGroups.push_back(
+ cmSourceGroup("Object Libraries", "^MATCH_NO_SOURCES$"));
#endif
}
@@ -3124,6 +3128,18 @@ cmSourceFile* cmMakefile::GetOrCreateSource(const std::string& sourceName,
return this->CreateSource(sourceName, generated);
}
+void cmMakefile::AddTargetObject(std::string const& tgtName,
+ std::string const& objFile)
+{
+ cmSourceFile* sf = this->GetOrCreateSource(objFile, true);
+ sf->SetObjectLibrary(tgtName);
+ sf->SetProperty("EXTERNAL_OBJECT", "1");
+#if defined(CMAKE_BUILD_WITH_CMAKE)
+ this->SourceGroups[this->ObjectLibrariesSourceGroupIndex].AddGroupFile(
+ sf->GetFullPath());
+#endif
+}
+
void cmMakefile::EnableLanguage(std::vector<std::string> const& lang,
bool optional)
{
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 4e48c88..e242142 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -406,6 +406,8 @@ public:
cmSourceFile* GetOrCreateSource(const std::string& sourceName,
bool generated = false);
+ void AddTargetObject(std::string const& tgtName, std::string const& objFile);
+
/**
* Given a variable name, return its value (as a string).
* If the variable is not found in this makefile instance, the
@@ -817,6 +819,7 @@ protected:
#if defined(CMAKE_BUILD_WITH_CMAKE)
std::vector<cmSourceGroup> SourceGroups;
+ size_t ObjectLibrariesSourceGroupIndex;
#endif
std::vector<cmCommand*> FinalPassCommands;
-----------------------------------------------------------------------
Summary of changes:
Source/cmGeneratorExpressionNode.cxx | 1 -
1 file changed, 1 deletion(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list