[Cmake-commits] CMake branch, master, updated. v3.15.3-1140-gdf0586d
Kitware Robot
kwrobot at kitware.com
Fri Sep 20 10:38:00 EDT 2019
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, master has been updated
via df0586d8d5c99d870369f1f60f63431deb98a6ba (commit)
via cd607ef5606cef0ffac822afe1dafa2615a5554d (commit)
via 9d2ac86f45e6f05e8873a0cb3e5e61545fb7c8a7 (commit)
via 14da7aedf2a3a8f5d25be9c577aaff01fa1f70b6 (commit)
from 01d2944458289ac2601855b3fce2e3f66d850ed4 (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=df0586d8d5c99d870369f1f60f63431deb98a6ba
commit df0586d8d5c99d870369f1f60f63431deb98a6ba
Merge: cd607ef 9d2ac86
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Sep 20 14:27:58 2019 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Sep 20 10:29:16 2019 -0400
Merge topic 'pch-source-list'
9d2ac86f45 Precompile Headers: Add precompile header file to source list
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !3832
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cd607ef5606cef0ffac822afe1dafa2615a5554d
commit cd607ef5606cef0ffac822afe1dafa2615a5554d
Merge: 01d2944 14da7ae
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Sep 20 14:26:43 2019 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Sep 20 10:28:04 2019 -0400
Merge topic 'smart_ptr/cmComputeLinkDepends'
14da7aedf2 cmComputeLinkDepends: remove manual memory deallocation
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !3831
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9d2ac86f45e6f05e8873a0cb3e5e61545fb7c8a7
commit 9d2ac86f45e6f05e8873a0cb3e5e61545fb7c8a7
Author: Cristian Adam <cristian.adam at gmail.com>
AuthorDate: Wed Sep 18 18:22:11 2019 +0200
Commit: Cristian Adam <cristian.adam at gmail.com>
CommitDate: Thu Sep 19 13:23:00 2019 +0200
Precompile Headers: Add precompile header file to source list
The precompile header file will be added to the list of files,
and be part of the newly "Precompile Header File" source group.
Also make sure the sources have the header as dependency.
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index afcd69f..521677a 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -2375,6 +2375,14 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target,
pch_sf->SetProperty("PCH_EXTENSION", pchExtension.c_str());
}
+ // Add pchHeader to source files, which will
+ // be grouped as "Precompile Header File"
+ auto pchHeader_sf = this->Makefile->GetOrCreateSource(
+ pchHeader, false, cmSourceFileLocationKind::Known);
+ std::string err;
+ pchHeader_sf->ResolveFullPath(&err);
+ target->AddSource(pchHeader);
+
for (auto& str : { std::ref(useOptionList), std::ref(createOptionList) }) {
cmSystemTools::ReplaceString(str, "<PCH_HEADER>", pchHeader);
cmSystemTools::ReplaceString(str, "<PCH_FILE>", pchFile);
@@ -2399,7 +2407,8 @@ void cmLocalGenerator::AddPchDependencies(cmGeneratorTarget* target,
}
if (!this->GetGlobalGenerator()->IsXcode()) {
- sf->SetProperty("OBJECT_DEPENDS", pchFile.c_str());
+ sf->AppendProperty("OBJECT_DEPENDS", pchFile.c_str());
+ sf->AppendProperty("OBJECT_DEPENDS", pchHeader.c_str());
sf->SetProperty("COMPILE_OPTIONS", useOptionList.c_str());
}
}
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index c593939..acae17a 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -104,6 +104,7 @@ cmMakefile::cmMakefile(cmGlobalGenerator* globalGenerator,
this->AddSourceGroup("", "^.*$");
this->AddSourceGroup("Source Files", CM_SOURCE_REGEX);
this->AddSourceGroup("Header Files", CM_HEADER_REGEX);
+ this->AddSourceGroup("Precompile Header File", CM_PCH_REGEX);
this->AddSourceGroup("CMake Rules", "\\.rule$");
this->AddSourceGroup("Resources", CM_RESOURCE_REGEX);
this->AddSourceGroup("Object Files", "\\.(lo|o|obj)$");
diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h
index dd36d45..ff465c7 100644
--- a/Source/cmSourceFile.h
+++ b/Source/cmSourceFile.h
@@ -135,6 +135,8 @@ private:
"hpj" \
"|bat)$"
+#define CM_PCH_REGEX "cmake_pch\\.(h|hxx)$"
+
#define CM_RESOURCE_REGEX "\\.(pdf|plist|png|jpeg|jpg|storyboard|xcassets)$"
#endif
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=14da7aedf2a3a8f5d25be9c577aaff01fa1f70b6
commit 14da7aedf2a3a8f5d25be9c577aaff01fa1f70b6
Author: Tushar Maheshwari <tushar27192 at gmail.com>
AuthorDate: Sun Sep 8 17:33:03 2019 +0530
Commit: Brad King <brad.king at kitware.com>
CommitDate: Wed Sep 18 14:32:56 2019 -0400
cmComputeLinkDepends: remove manual memory deallocation
- Replace owning raw `DependSetList` pointer with direct object.
- Use an extra `bool Initialized` flag to imitate `nullptr` semantics.
diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx
index 2ee4ca2..08113de 100644
--- a/Source/cmComputeLinkDepends.cxx
+++ b/Source/cmComputeLinkDepends.cxx
@@ -2,7 +2,6 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmComputeLinkDepends.h"
-#include "cmAlgorithms.h"
#include "cmComputeComponentGraph.h"
#include "cmGeneratorTarget.h"
#include "cmGlobalGenerator.h"
@@ -201,10 +200,7 @@ cmComputeLinkDepends::cmComputeLinkDepends(const cmGeneratorTarget* target,
this->CCG = nullptr;
}
-cmComputeLinkDepends::~cmComputeLinkDepends()
-{
- cmDeleteAll(this->InferredDependSets);
-}
+cmComputeLinkDepends::~cmComputeLinkDepends() = default;
void cmComputeLinkDepends::SetOldLinkDirMode(bool b)
{
@@ -285,7 +281,7 @@ std::map<cmLinkItem, int>::iterator cmComputeLinkDepends::AllocateLinkEntry(
item, static_cast<int>(this->EntryList.size()));
auto lei = this->LinkEntryIndex.insert(index_entry).first;
this->EntryList.emplace_back();
- this->InferredDependSets.push_back(nullptr);
+ this->InferredDependSets.emplace_back();
this->EntryConstraintGraph.emplace_back();
return lei;
}
@@ -325,7 +321,7 @@ int cmComputeLinkDepends::AddLinkEntry(cmLinkItem const& item)
this->BFSQueue.push(qe);
} else if (!entry.IsFlag) {
// The item dependencies are not known. We need to infer them.
- this->InferredDependSets[index] = new DependSetList;
+ this->InferredDependSets[index].Initialized = true;
}
}
@@ -538,7 +534,7 @@ void cmComputeLinkDepends::AddLinkEntries(int depender_index,
}
// If this item needs to have dependencies inferred, do so.
- if (this->InferredDependSets[dependee_index]) {
+ if (this->InferredDependSets[dependee_index].Initialized) {
// Make sure an entry exists to hold the set for the item.
dependSets[dependee_index];
}
@@ -546,7 +542,7 @@ void cmComputeLinkDepends::AddLinkEntries(int depender_index,
// Store the inferred dependency sets discovered for this list.
for (auto const& dependSet : dependSets) {
- this->InferredDependSets[dependSet.first]->push_back(dependSet.second);
+ this->InferredDependSets[dependSet.first].push_back(dependSet.second);
}
}
@@ -573,14 +569,14 @@ void cmComputeLinkDepends::InferDependencies()
depender_index < this->InferredDependSets.size(); ++depender_index) {
// Skip items for which dependencies do not need to be inferred or
// for which the inferred dependency sets are empty.
- DependSetList* sets = this->InferredDependSets[depender_index];
- if (!sets || sets->empty()) {
+ DependSetList& sets = this->InferredDependSets[depender_index];
+ if (!sets.Initialized || sets.empty()) {
continue;
}
// Intersect the sets for this item.
- DependSet common = sets->front();
- for (DependSet const& i : cmMakeRange(*sets).advance(1)) {
+ DependSet common = sets.front();
+ for (DependSet const& i : cmMakeRange(sets).advance(1)) {
DependSet intersection;
std::set_intersection(common.begin(), common.end(), i.begin(), i.end(),
std::inserter(intersection, intersection.begin()));
diff --git a/Source/cmComputeLinkDepends.h b/Source/cmComputeLinkDepends.h
index f0ac771..203cc68 100644
--- a/Source/cmComputeLinkDepends.h
+++ b/Source/cmComputeLinkDepends.h
@@ -106,8 +106,9 @@ private:
};
struct DependSetList : public std::vector<DependSet>
{
+ bool Initialized = false;
};
- std::vector<DependSetList*> InferredDependSets;
+ std::vector<DependSetList> InferredDependSets;
void InferDependencies();
// Ordering constraint graph adjacency list.
-----------------------------------------------------------------------
Summary of changes:
Source/cmComputeLinkDepends.cxx | 22 +++++++++-------------
Source/cmComputeLinkDepends.h | 3 ++-
Source/cmLocalGenerator.cxx | 11 ++++++++++-
Source/cmMakefile.cxx | 1 +
Source/cmSourceFile.h | 2 ++
5 files changed, 24 insertions(+), 15 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list