Merge topic 'compiler-features'
7647f6af
Add CM_OVERRIDE to some functions5286110d
cxx features: add check for override09aa2c94
Use <unordered_set> where availableea5477e4
Make C++ feature checks extensible
This commit is contained in:
commit
d3544d023b
|
@ -67,7 +67,7 @@ if(NOT DEFINED CMAKE_CXX_STANDARD AND NOT CMake_NO_CXX_STANDARD)
|
|||
endif()
|
||||
endif()
|
||||
if(NOT CMake_TEST_EXTERNAL_CMAKE)
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx11_unordered_map.cmake)
|
||||
include(${CMake_SOURCE_DIR}/Source/Checks/cm_cxx_features.cmake)
|
||||
endif()
|
||||
|
||||
# option to set the internal encoding of CMake to UTF-8
|
||||
|
|
|
@ -177,7 +177,7 @@ public:
|
|||
bool patched;
|
||||
|
||||
protected:
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
xout.StartElement(name);
|
||||
StartFragment(atts);
|
||||
|
@ -192,7 +192,7 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "Updates" && !patched) {
|
||||
repository->WriteRepositoryUpdates(xout);
|
||||
|
@ -208,7 +208,7 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
std::string content(data, data + length);
|
||||
if (content == "" || content == " " || content == " " ||
|
||||
|
|
|
@ -101,7 +101,7 @@ private:
|
|||
bool CheckOutFound;
|
||||
cmsys::RegularExpression RegexCheckOut;
|
||||
cmsys::RegularExpression RegexParent;
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexCheckOut.find(this->Line)) {
|
||||
this->BZR->URL = this->RegexCheckOut.match(1);
|
||||
|
@ -126,7 +126,7 @@ public:
|
|||
private:
|
||||
std::string& Rev;
|
||||
cmsys::RegularExpression RegexRevno;
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexRevno.find(this->Line)) {
|
||||
this->Rev = this->RegexRevno.match(1);
|
||||
|
@ -185,7 +185,7 @@ public:
|
|||
}
|
||||
~LogParser() { this->CleanupParser(); }
|
||||
|
||||
virtual int InitializeParser()
|
||||
int InitializeParser() CM_OVERRIDE
|
||||
{
|
||||
int res = cmXMLParser::InitializeParser();
|
||||
if (res) {
|
||||
|
@ -207,14 +207,14 @@ private:
|
|||
|
||||
cmsys::RegularExpression EmailRegex;
|
||||
|
||||
virtual bool ProcessChunk(const char* data, int length)
|
||||
bool ProcessChunk(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->OutputLogger::ProcessChunk(data, length);
|
||||
this->ParseChunk(data, length);
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char**)
|
||||
void StartElement(const std::string& name, const char**) CM_OVERRIDE
|
||||
{
|
||||
this->CData.clear();
|
||||
if (name == "log") {
|
||||
|
@ -239,12 +239,12 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->CData.insert(this->CData.end(), data, data + length);
|
||||
}
|
||||
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "log") {
|
||||
this->BZR->DoRevision(this->Rev, this->Changes);
|
||||
|
@ -274,7 +274,7 @@ private:
|
|||
this->CData.clear();
|
||||
}
|
||||
|
||||
virtual void ReportError(int, int, const char* msg)
|
||||
void ReportError(int, int, const char* msg) CM_OVERRIDE
|
||||
{
|
||||
this->BZR->Log << "Error parsing bzr log xml: " << msg << "\n";
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ private:
|
|||
cmCTestBZR* BZR;
|
||||
cmsys::RegularExpression RegexUpdate;
|
||||
|
||||
virtual bool ProcessChunk(const char* first, int length)
|
||||
bool ProcessChunk(const char* first, int length) CM_OVERRIDE
|
||||
{
|
||||
bool last_is_new_line = (*first == '\r' || *first == '\n');
|
||||
|
||||
|
@ -325,7 +325,7 @@ private:
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexUpdate.find(this->Line)) {
|
||||
this->DoPath(this->RegexUpdate.match(1)[0],
|
||||
|
@ -431,7 +431,7 @@ public:
|
|||
private:
|
||||
cmCTestBZR* BZR;
|
||||
cmsys::RegularExpression RegexStatus;
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexStatus.find(this->Line)) {
|
||||
this->DoPath(this->RegexStatus.match(1)[0],
|
||||
|
|
|
@ -53,7 +53,7 @@ private:
|
|||
cmsys::RegularExpression RegexFileRemoved1;
|
||||
cmsys::RegularExpression RegexFileRemoved2;
|
||||
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexFileUpdated.find(this->Line)) {
|
||||
this->DoFile(PathUpdated, this->RegexFileUpdated.match(2));
|
||||
|
@ -140,7 +140,7 @@ private:
|
|||
SectionType Section;
|
||||
Revision Rev;
|
||||
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->Line == ("======================================="
|
||||
"======================================")) {
|
||||
|
|
|
@ -52,7 +52,7 @@ public:
|
|||
|
||||
private:
|
||||
std::string& Line1;
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
// Only the first line is of interest.
|
||||
this->Line1 = this->Line;
|
||||
|
@ -355,7 +355,7 @@ protected:
|
|||
this->Changes.clear();
|
||||
}
|
||||
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->Line[0] == ':') {
|
||||
this->DiffField = DiffFieldChange;
|
||||
|
@ -513,7 +513,7 @@ private:
|
|||
person.TimeZone = strtol(c, (char**)&c, 10);
|
||||
}
|
||||
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->Line.empty()) {
|
||||
if (this->Section == SectionBody && this->LineEnd == '\0') {
|
||||
|
|
|
@ -41,7 +41,7 @@ private:
|
|||
std::string& Rev;
|
||||
cmsys::RegularExpression RegexIdentify;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexIdentify.find(this->Line)) {
|
||||
this->Rev = this->RegexIdentify.match(1);
|
||||
|
@ -65,7 +65,7 @@ private:
|
|||
cmCTestHG* HG;
|
||||
cmsys::RegularExpression RegexStatus;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexStatus.find(this->Line)) {
|
||||
this->DoPath(this->RegexStatus.match(1)[0], this->RegexStatus.match(2));
|
||||
|
@ -182,14 +182,14 @@ private:
|
|||
Change CurChange;
|
||||
std::vector<char> CData;
|
||||
|
||||
virtual bool ProcessChunk(const char* data, int length)
|
||||
bool ProcessChunk(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->OutputLogger::ProcessChunk(data, length);
|
||||
this->ParseChunk(data, length);
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
this->CData.clear();
|
||||
if (name == "logentry") {
|
||||
|
@ -201,12 +201,12 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->CData.insert(this->CData.end(), data, data + length);
|
||||
}
|
||||
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "logentry") {
|
||||
this->HG->DoRevision(this->Rev, this->Changes);
|
||||
|
@ -261,7 +261,7 @@ private:
|
|||
return output;
|
||||
}
|
||||
|
||||
virtual void ReportError(int, int, const char* msg)
|
||||
void ReportError(int, int, const char* msg) CM_OVERRIDE
|
||||
{
|
||||
this->HG->Log << "Error parsing hg log xml: " << msg << "\n";
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ public:
|
|||
this->CTest = c;
|
||||
this->SetErrorCallback(xmlReportError, (void*)c);
|
||||
}
|
||||
void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
if (name == "MemoryLeak" || name == "ResourceLeak") {
|
||||
this->Errors.push_back(cmCTestMemCheckHandler::MLK);
|
||||
|
@ -78,7 +78,7 @@ public:
|
|||
ostr << "\n";
|
||||
this->Log += ostr.str();
|
||||
}
|
||||
void EndElement(const std::string&) {}
|
||||
void EndElement(const std::string&) CM_OVERRIDE {}
|
||||
|
||||
const char* GetAttribute(const char* name, const char** atts)
|
||||
{
|
||||
|
|
|
@ -45,7 +45,7 @@ private:
|
|||
std::string& Rev;
|
||||
cmsys::RegularExpression RegexIdentify;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexIdentify.find(this->Line)) {
|
||||
this->Rev = this->RegexIdentify.match(1);
|
||||
|
@ -69,7 +69,7 @@ private:
|
|||
cmsys::RegularExpression RegexIdentify;
|
||||
cmCTestP4* P4;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexIdentify.find(this->Line)) {
|
||||
P4->ChangeLists.push_back(this->RegexIdentify.match(1));
|
||||
|
@ -92,7 +92,7 @@ private:
|
|||
cmsys::RegularExpression RegexUser;
|
||||
cmCTestP4* P4;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexUser.find(this->Line)) {
|
||||
User NewUser;
|
||||
|
@ -135,7 +135,7 @@ private:
|
|||
std::string CurrentPath;
|
||||
cmsys::RegularExpression RegexDiff;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (!this->Line.empty() && this->Line[0] == '=' &&
|
||||
this->RegexDiff.find(this->Line)) {
|
||||
|
@ -225,7 +225,7 @@ private:
|
|||
SectionType Section;
|
||||
Revision Rev;
|
||||
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->Line.empty()) {
|
||||
this->NextSection();
|
||||
|
|
|
@ -62,7 +62,7 @@ private:
|
|||
cmsys::RegularExpression RegexRev;
|
||||
cmsys::RegularExpression RegexURL;
|
||||
cmsys::RegularExpression RegexRoot;
|
||||
virtual bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexRev.find(this->Line)) {
|
||||
this->Rev = this->RegexRev.match(1);
|
||||
|
@ -206,7 +206,7 @@ private:
|
|||
cmCTestSVN* SVN;
|
||||
cmsys::RegularExpression RegexUpdate;
|
||||
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexUpdate.find(this->Line)) {
|
||||
this->DoPath(this->RegexUpdate.match(1)[0],
|
||||
|
@ -323,14 +323,14 @@ private:
|
|||
Change CurChange;
|
||||
std::vector<char> CData;
|
||||
|
||||
virtual bool ProcessChunk(const char* data, int length)
|
||||
bool ProcessChunk(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->OutputLogger::ProcessChunk(data, length);
|
||||
this->ParseChunk(data, length);
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
this->CData.clear();
|
||||
if (name == "logentry") {
|
||||
|
@ -348,12 +348,12 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->CData.insert(this->CData.end(), data, data + length);
|
||||
}
|
||||
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "logentry") {
|
||||
this->SVN->DoRevisionSVN(this->Rev, this->Changes);
|
||||
|
@ -372,7 +372,7 @@ private:
|
|||
this->CData.clear();
|
||||
}
|
||||
|
||||
virtual void ReportError(int, int, const char* msg)
|
||||
void ReportError(int, int, const char* msg) CM_OVERRIDE
|
||||
{
|
||||
this->SVN->Log << "Error parsing svn log xml: " << msg << "\n";
|
||||
}
|
||||
|
@ -441,7 +441,7 @@ public:
|
|||
private:
|
||||
cmCTestSVN* SVN;
|
||||
cmsys::RegularExpression RegexStatus;
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexStatus.find(this->Line)) {
|
||||
this->DoPath(this->RegexStatus.match(1)[0],
|
||||
|
@ -506,7 +506,7 @@ public:
|
|||
private:
|
||||
cmCTestSVN* SVN;
|
||||
cmsys::RegularExpression RegexExternal;
|
||||
bool ProcessLine()
|
||||
bool ProcessLine() CM_OVERRIDE
|
||||
{
|
||||
if (this->RegexExternal.find(this->Line)) {
|
||||
this->DoPath(this->RegexExternal.match(1));
|
||||
|
|
|
@ -60,8 +60,8 @@ class cmCTestScriptFunctionBlocker : public cmFunctionBlocker
|
|||
public:
|
||||
cmCTestScriptFunctionBlocker() {}
|
||||
virtual ~cmCTestScriptFunctionBlocker() {}
|
||||
virtual bool IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile& mf,
|
||||
cmExecutionStatus&);
|
||||
bool IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile& mf,
|
||||
cmExecutionStatus&) CM_OVERRIDE;
|
||||
// virtual bool ShouldRemove(const cmListFileFunction& lff, cmMakefile &mf);
|
||||
// virtual void ScopeEnded(cmMakefile &mf);
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ private:
|
|||
return val;
|
||||
}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
this->CurrentValue.clear();
|
||||
if (name == "cdash") {
|
||||
|
@ -77,12 +77,12 @@ private:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
this->CurrentValue.insert(this->CurrentValue.end(), data, data + length);
|
||||
}
|
||||
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "status") {
|
||||
std::string status = cmSystemTools::UpperCase(this->GetCurrentValue());
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
cmCommand* Clone() CM_OVERRIDE
|
||||
{
|
||||
cmCTestSubdirCommand* c = new cmCTestSubdirCommand;
|
||||
c->TestHandler = this->TestHandler;
|
||||
|
@ -53,13 +53,13 @@ public:
|
|||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string> const& args,
|
||||
cmExecutionStatus&);
|
||||
bool InitialPass(std::vector<std::string> const& args,
|
||||
cmExecutionStatus&) CM_OVERRIDE;
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual std::string GetName() const { return "subdirs"; }
|
||||
std::string GetName() const CM_OVERRIDE { return "subdirs"; }
|
||||
|
||||
cmTypeMacro(cmCTestSubdirCommand, cmCommand);
|
||||
|
||||
|
@ -123,7 +123,7 @@ public:
|
|||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
cmCommand* Clone() CM_OVERRIDE
|
||||
{
|
||||
cmCTestAddSubdirectoryCommand* c = new cmCTestAddSubdirectoryCommand;
|
||||
c->TestHandler = this->TestHandler;
|
||||
|
@ -134,13 +134,13 @@ public:
|
|||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string> const& args,
|
||||
cmExecutionStatus&);
|
||||
bool InitialPass(std::vector<std::string> const& args,
|
||||
cmExecutionStatus&) CM_OVERRIDE;
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual std::string GetName() const { return "add_subdirectory"; }
|
||||
std::string GetName() const CM_OVERRIDE { return "add_subdirectory"; }
|
||||
|
||||
cmTypeMacro(cmCTestAddSubdirectoryCommand, cmCommand);
|
||||
|
||||
|
@ -197,7 +197,7 @@ public:
|
|||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
cmCommand* Clone() CM_OVERRIDE
|
||||
{
|
||||
cmCTestAddTestCommand* c = new cmCTestAddTestCommand;
|
||||
c->TestHandler = this->TestHandler;
|
||||
|
@ -208,13 +208,13 @@ public:
|
|||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string> const&,
|
||||
cmExecutionStatus&);
|
||||
bool InitialPass(std::vector<std::string> const&,
|
||||
cmExecutionStatus&) CM_OVERRIDE;
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual std::string GetName() const { return "add_test"; }
|
||||
std::string GetName() const CM_OVERRIDE { return "add_test"; }
|
||||
|
||||
cmTypeMacro(cmCTestAddTestCommand, cmCommand);
|
||||
|
||||
|
@ -237,7 +237,7 @@ public:
|
|||
/**
|
||||
* This is a virtual constructor for the command.
|
||||
*/
|
||||
virtual cmCommand* Clone()
|
||||
cmCommand* Clone() CM_OVERRIDE
|
||||
{
|
||||
cmCTestSetTestsPropertiesCommand* c = new cmCTestSetTestsPropertiesCommand;
|
||||
c->TestHandler = this->TestHandler;
|
||||
|
@ -248,13 +248,13 @@ public:
|
|||
* This is called when the command is first encountered in
|
||||
* the CMakeLists.txt file.
|
||||
*/
|
||||
virtual bool InitialPass(std::vector<std::string> const&,
|
||||
cmExecutionStatus&);
|
||||
bool InitialPass(std::vector<std::string> const&,
|
||||
cmExecutionStatus&) CM_OVERRIDE;
|
||||
|
||||
/**
|
||||
* The name of the command as specified in CMakeList.txt.
|
||||
*/
|
||||
virtual std::string GetName() const { return "set_tests_properties"; }
|
||||
std::string GetName() const CM_OVERRIDE { return "set_tests_properties"; }
|
||||
|
||||
cmTypeMacro(cmCTestSetTestsPropertiesCommand, cmCommand);
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
virtual ~XMLParser() {}
|
||||
|
||||
protected:
|
||||
virtual void EndElement(const std::string& name)
|
||||
void EndElement(const std::string& name) CM_OVERRIDE
|
||||
{
|
||||
if (name == "source") {
|
||||
this->InSource = false;
|
||||
|
@ -34,7 +34,7 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void CharacterDataHandler(const char* data, int length)
|
||||
void CharacterDataHandler(const char* data, int length) CM_OVERRIDE
|
||||
{
|
||||
std::string tmp;
|
||||
tmp.insert(0, data, length);
|
||||
|
@ -46,7 +46,7 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
std::string FoundSource;
|
||||
std::string finalpath = "";
|
||||
|
|
|
@ -23,9 +23,9 @@ public:
|
|||
virtual ~XMLParser() {}
|
||||
|
||||
protected:
|
||||
virtual void EndElement(const std::string&) {}
|
||||
void EndElement(const std::string&) CM_OVERRIDE {}
|
||||
|
||||
virtual void StartElement(const std::string& name, const char** atts)
|
||||
void StartElement(const std::string& name, const char** atts) CM_OVERRIDE
|
||||
{
|
||||
if (name == "package") {
|
||||
this->PackageName = atts[1];
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
|
||||
if(CMAKE_CXX_STANDARD AND NOT DEFINED CMake_HAVE_CXX11_UNORDERED_MAP)
|
||||
message(STATUS "Checking if compiler supports C++11 unordered_map")
|
||||
try_compile(CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_LIST_DIR}/cm_cxx11_unordered_map.cpp
|
||||
CMAKE_FLAGS -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
)
|
||||
if(CMake_HAVE_CXX11_UNORDERED_MAP)
|
||||
message(STATUS "Checking if compiler supports C++11 unordered_map - yes")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if compiler supports C++11 unordered_map passed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"\n"
|
||||
)
|
||||
else()
|
||||
message(STATUS "Checking if compiler supports C++11 unordered_map - no")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if compiler supports C++11 unordered_map failed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"\n"
|
||||
)
|
||||
endif()
|
||||
endif()
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
function(cm_check_cxx_feature name)
|
||||
string(TOUPPER ${name} FEATURE)
|
||||
if(NOT DEFINED CMake_HAVE_CXX_${FEATURE})
|
||||
message(STATUS "Checking if compiler supports C++ ${name}")
|
||||
try_compile(CMake_HAVE_CXX_${FEATURE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_LIST_DIR}/cm_cxx_${name}.cxx
|
||||
CMAKE_FLAGS -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
|
||||
OUTPUT_VARIABLE OUTPUT
|
||||
)
|
||||
# If using the feature causes warnings, treat it as broken/unavailable.
|
||||
if(OUTPUT MATCHES "warning")
|
||||
set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE)
|
||||
endif()
|
||||
if(CMake_HAVE_CXX_${FEATURE})
|
||||
message(STATUS "Checking if compiler supports C++ ${name} - yes")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if compiler supports C++ ${name} passed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"\n"
|
||||
)
|
||||
else()
|
||||
message(STATUS "Checking if compiler supports C++ ${name} - no")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if compiler supports C++ ${name} failed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"\n"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if(CMAKE_CXX_STANDARD)
|
||||
cm_check_cxx_feature(override)
|
||||
cm_check_cxx_feature(unordered_map)
|
||||
cm_check_cxx_feature(unordered_set)
|
||||
endif()
|
|
@ -0,0 +1,20 @@
|
|||
struct Foo
|
||||
{
|
||||
virtual int test() const = 0;
|
||||
};
|
||||
|
||||
struct Bar : Foo
|
||||
{
|
||||
int test() const override { return 0; }
|
||||
};
|
||||
|
||||
int test(Foo const& foo)
|
||||
{
|
||||
return foo.test();
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
Bar const bar;
|
||||
return test(bar);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
#include <unordered_set>
|
||||
int main()
|
||||
{
|
||||
std::unordered_set<int> set;
|
||||
set.insert(0);
|
||||
return 0;
|
||||
}
|
|
@ -29,8 +29,16 @@
|
|||
#cmakedefine CMAKE_USE_ELF_PARSER
|
||||
#cmakedefine CMAKE_USE_MACH_PARSER
|
||||
#cmakedefine CMAKE_ENCODING_UTF8
|
||||
#cmakedefine CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#cmakedefine CMake_HAVE_CXX_OVERRIDE
|
||||
#cmakedefine CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#cmakedefine CMake_HAVE_CXX_UNORDERED_SET
|
||||
#define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@"
|
||||
#define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
|
||||
|
||||
#ifdef CMake_HAVE_CXX_OVERRIDE
|
||||
#define CM_OVERRIDE override
|
||||
#else
|
||||
#define CM_OVERRIDE
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
#include "cmLinkedTree.h"
|
||||
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include "cmsys/hash_map.hxx"
|
||||
|
@ -92,7 +92,7 @@ private:
|
|||
static Def NoDef;
|
||||
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, Def> MapType;
|
||||
#else
|
||||
typedef cmsys::hash_map<std::string, Def> MapType;
|
||||
|
|
|
@ -241,20 +241,20 @@ public:
|
|||
ByteOrderType order);
|
||||
|
||||
// Return the number of sections as specified by the ELF header.
|
||||
virtual unsigned int GetNumberOfSections() const
|
||||
unsigned int GetNumberOfSections() const CM_OVERRIDE
|
||||
{
|
||||
return static_cast<unsigned int>(this->ELFHeader.e_shnum);
|
||||
}
|
||||
|
||||
// Get the file position and size of a dynamic section entry.
|
||||
virtual unsigned int GetDynamicEntryCount();
|
||||
virtual unsigned long GetDynamicEntryPosition(int j);
|
||||
unsigned int GetDynamicEntryCount() CM_OVERRIDE;
|
||||
unsigned long GetDynamicEntryPosition(int j) CM_OVERRIDE;
|
||||
|
||||
// Lookup a string from the dynamic section with the given tag.
|
||||
virtual StringEntry const* GetDynamicSectionString(unsigned int tag);
|
||||
StringEntry const* GetDynamicSectionString(unsigned int tag) CM_OVERRIDE;
|
||||
|
||||
// Print information about the ELF file.
|
||||
virtual void PrintInfo(std::ostream& os) const
|
||||
void PrintInfo(std::ostream& os) const CM_OVERRIDE
|
||||
{
|
||||
os << "ELF " << Types::GetName();
|
||||
if (this->ByteOrder == ByteOrderMSB) {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
// Use a hash table to avoid duplicate file time checks from disk.
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include <cmsys/hash_map.hxx>
|
||||
|
@ -47,13 +47,13 @@ private:
|
|||
{
|
||||
public:
|
||||
size_t operator()(const std::string& s) const { return h(s.c_str()); }
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
std::hash<const char*> h;
|
||||
#else
|
||||
cmsys::hash<const char*> h;
|
||||
#endif
|
||||
};
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string,
|
||||
#else
|
||||
typedef cmsys::hash_map<std::string,
|
||||
|
|
|
@ -42,14 +42,14 @@ static const struct ZeroNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
ZeroNode() {}
|
||||
|
||||
virtual bool GeneratesContent() const { return false; }
|
||||
bool GeneratesContent() const CM_OVERRIDE { return false; }
|
||||
|
||||
virtual bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return std::string();
|
||||
}
|
||||
|
@ -59,12 +59,12 @@ static const struct OneNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
OneNode() {}
|
||||
|
||||
virtual bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return parameters.front();
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ static const struct NotNode : public cmGeneratorExpressionNode
|
|||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
if (*parameters.begin() != "0" && *parameters.begin() != "1") {
|
||||
reportError(
|
||||
|
@ -129,12 +129,12 @@ static const struct BoolNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
BoolNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 1; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 1; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return !cmSystemTools::IsOff(parameters.begin()->c_str()) ? "1" : "0";
|
||||
}
|
||||
|
@ -144,12 +144,12 @@ static const struct StrEqualNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
StrEqualNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return *parameters.begin() == parameters[1] ? "1" : "0";
|
||||
}
|
||||
|
@ -159,12 +159,12 @@ static const struct EqualNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
EqualNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
char* pEnd;
|
||||
|
||||
|
@ -236,12 +236,12 @@ static const struct LowerCaseNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
LowerCaseNode() {}
|
||||
|
||||
bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::LowerCase(parameters.front());
|
||||
}
|
||||
|
@ -251,12 +251,12 @@ static const struct UpperCaseNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
UpperCaseNode() {}
|
||||
|
||||
bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::UpperCase(parameters.front());
|
||||
}
|
||||
|
@ -266,12 +266,12 @@ static const struct MakeCIdentifierNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
MakeCIdentifierNode() {}
|
||||
|
||||
bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::MakeCidentifier(parameters.front());
|
||||
}
|
||||
|
@ -281,12 +281,12 @@ static const struct Angle_RNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
Angle_RNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 0; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 0; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return ">";
|
||||
}
|
||||
|
@ -296,12 +296,12 @@ static const struct CommaNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
CommaNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 0; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 0; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return ",";
|
||||
}
|
||||
|
@ -311,12 +311,12 @@ static const struct SemicolonNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
SemicolonNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 0; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 0; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return ";";
|
||||
}
|
||||
|
@ -326,7 +326,7 @@ struct CompilerIdNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
CompilerIdNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrZeroParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrZeroParameters; }
|
||||
|
||||
std::string EvaluateWithLanguage(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
|
@ -381,6 +381,7 @@ static const struct CCompilerIdNode : public CompilerIdNode
|
|||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (!context->HeadTarget) {
|
||||
reportError(
|
||||
|
@ -402,6 +403,7 @@ static const struct CXXCompilerIdNode : public CompilerIdNode
|
|||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (!context->HeadTarget) {
|
||||
reportError(
|
||||
|
@ -419,7 +421,7 @@ struct CompilerVersionNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
CompilerVersionNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrZeroParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrZeroParameters; }
|
||||
|
||||
std::string EvaluateWithLanguage(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
|
@ -460,6 +462,7 @@ static const struct CCompilerVersionNode : public CompilerVersionNode
|
|||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (!context->HeadTarget) {
|
||||
reportError(
|
||||
|
@ -481,6 +484,7 @@ static const struct CxxCompilerVersionNode : public CompilerVersionNode
|
|||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (!context->HeadTarget) {
|
||||
reportError(
|
||||
|
@ -498,12 +502,12 @@ struct PlatformIdNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
PlatformIdNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrZeroParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrZeroParameters; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
const char* platformId =
|
||||
context->LG->GetMakefile()->GetSafeDefinition("CMAKE_SYSTEM_NAME");
|
||||
|
@ -526,12 +530,12 @@ static const struct VersionGreaterNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
VersionGreaterNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER,
|
||||
parameters.front().c_str(),
|
||||
|
@ -545,12 +549,12 @@ static const struct VersionLessNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
VersionLessNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS,
|
||||
parameters.front().c_str(),
|
||||
|
@ -564,12 +568,12 @@ static const struct VersionEqualNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
VersionEqualNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return cmSystemTools::VersionCompare(cmSystemTools::OP_EQUAL,
|
||||
parameters.front().c_str(),
|
||||
|
@ -583,10 +587,10 @@ static const struct LinkOnlyNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
LinkOnlyNode() {}
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
std::string Evaluate(
|
||||
const std::vector<std::string>& parameters, cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const CM_OVERRIDE
|
||||
{
|
||||
if (!dagChecker->GetTransitivePropertiesOnly()) {
|
||||
return parameters.front();
|
||||
|
@ -599,12 +603,12 @@ static const struct ConfigurationNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
ConfigurationNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 0; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 0; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
context->HadContextSensitiveCondition = true;
|
||||
return context->Config;
|
||||
|
@ -615,12 +619,12 @@ static const struct ConfigurationTestNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
ConfigurationTestNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrZeroParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrZeroParameters; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
if (parameters.empty()) {
|
||||
return configurationNode.Evaluate(parameters, context, content, 0);
|
||||
|
@ -673,14 +677,14 @@ static const struct JoinNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
JoinNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 2; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||
|
||||
virtual bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
std::vector<std::string> list;
|
||||
cmSystemTools::ExpandListArgument(parameters.front(), list);
|
||||
|
@ -692,12 +696,13 @@ static const struct CompileLanguageNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
CompileLanguageNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrZeroParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrZeroParameters; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (context->Language.empty()) {
|
||||
reportError(
|
||||
|
@ -795,12 +800,13 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
|
|||
TargetPropertyNode() {}
|
||||
|
||||
// This node handles errors on parameter count itself.
|
||||
virtual int NumExpectedParameters() const { return OneOrMoreParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrMoreParameters; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagCheckerParent) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
if (parameters.size() != 1 && parameters.size() != 2) {
|
||||
reportError(
|
||||
|
@ -1087,20 +1093,20 @@ static const struct TargetNameNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
TargetNameNode() {}
|
||||
|
||||
virtual bool GeneratesContent() const { return true; }
|
||||
bool GeneratesContent() const CM_OVERRIDE { return true; }
|
||||
|
||||
virtual bool AcceptsArbitraryContentParameter() const { return true; }
|
||||
virtual bool RequiresLiteralInput() const { return true; }
|
||||
bool AcceptsArbitraryContentParameter() const CM_OVERRIDE { return true; }
|
||||
bool RequiresLiteralInput() const CM_OVERRIDE { return true; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext*,
|
||||
const GeneratorExpressionContent*,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
return parameters.front();
|
||||
}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 1; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 1; }
|
||||
|
||||
} targetNameNode;
|
||||
|
||||
|
@ -1111,7 +1117,7 @@ static const struct TargetObjectsNode : public cmGeneratorExpressionNode
|
|||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
if (!context->EvaluateForBuildsystem) {
|
||||
std::ostringstream e;
|
||||
|
@ -1179,12 +1185,13 @@ static const struct CompileFeaturesNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
CompileFeaturesNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return OneOrMoreParameters; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return OneOrMoreParameters; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
cmGeneratorTarget const* target = context->HeadTarget;
|
||||
if (!target) {
|
||||
|
@ -1306,12 +1313,12 @@ static const struct TargetPolicyNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
TargetPolicyNode() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 1; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 1; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
if (!context->HeadTarget) {
|
||||
reportError(
|
||||
|
@ -1365,13 +1372,13 @@ static const struct InstallPrefixNode : public cmGeneratorExpressionNode
|
|||
{
|
||||
InstallPrefixNode() {}
|
||||
|
||||
virtual bool GeneratesContent() const { return true; }
|
||||
virtual int NumExpectedParameters() const { return 0; }
|
||||
bool GeneratesContent() const CM_OVERRIDE { return true; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 0; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>&,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
reportError(context, content->GetOriginalExpression(),
|
||||
"INSTALL_PREFIX is a marker for install(EXPORT) only. It "
|
||||
|
@ -1529,12 +1536,13 @@ struct TargetFilesystemArtifact : public cmGeneratorExpressionNode
|
|||
{
|
||||
TargetFilesystemArtifact() {}
|
||||
|
||||
virtual int NumExpectedParameters() const { return 1; }
|
||||
int NumExpectedParameters() const CM_OVERRIDE { return 1; }
|
||||
|
||||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker* dagChecker) const
|
||||
CM_OVERRIDE
|
||||
{
|
||||
// Lookup the referenced target.
|
||||
std::string name = *parameters.begin();
|
||||
|
@ -1606,7 +1614,7 @@ static const struct ShellPathNode : public cmGeneratorExpressionNode
|
|||
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||
cmGeneratorExpressionContext* context,
|
||||
const GeneratorExpressionContent* content,
|
||||
cmGeneratorExpressionDAGChecker*) const
|
||||
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||
{
|
||||
if (!cmSystemTools::FileIsFullPath(parameters.front())) {
|
||||
reportError(context, content->GetOriginalExpression(),
|
||||
|
|
|
@ -27,7 +27,10 @@
|
|||
#include "assert.h"
|
||||
#include <errno.h>
|
||||
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#if defined(CMake_HAVE_CXX_UNORDERED_SET)
|
||||
#include <unordered_set>
|
||||
#define UNORDERED_SET std::unordered_set
|
||||
#elif defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#include <cmsys/hash_set.hxx>
|
||||
#define UNORDERED_SET cmsys::hash_set
|
||||
#else
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#include "cmFileLockPool.h"
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include <cmsys/hash_map.hxx>
|
||||
|
@ -433,7 +433,7 @@ protected:
|
|||
|
||||
private:
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, cmTarget*> TargetMap;
|
||||
typedef std::unordered_map<std::string, cmGeneratorTarget*>
|
||||
GeneratorTargetMap;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <cmsys/RegularExpression.hxx>
|
||||
#include <cmsys/auto_ptr.hxx>
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include <cmsys/hash_map.hxx>
|
||||
|
@ -796,7 +796,7 @@ protected:
|
|||
// libraries, classes, and executables
|
||||
mutable cmTargets Targets;
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, cmTarget*> TargetMap;
|
||||
#else
|
||||
typedef cmsys::hash_map<std::string, cmTarget*> TargetMap;
|
||||
|
@ -915,7 +915,7 @@ private:
|
|||
|
||||
// A map for fast output to input look up.
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, cmSourceFile*> OutputToSourceMap;
|
||||
#else
|
||||
typedef cmsys::hash_map<std::string, cmSourceFile*> OutputToSourceMap;
|
||||
|
|
|
@ -157,7 +157,7 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
virtual void Report(std::ostream& e)
|
||||
void Report(std::ostream& e) CM_OVERRIDE
|
||||
{
|
||||
e << "runtime library [";
|
||||
if (this->SOName.empty()) {
|
||||
|
@ -168,7 +168,7 @@ public:
|
|||
e << "]";
|
||||
}
|
||||
|
||||
virtual bool FindConflict(std::string const& dir);
|
||||
bool FindConflict(std::string const& dir) CM_OVERRIDE;
|
||||
|
||||
private:
|
||||
// The soname of the shared library if it is known.
|
||||
|
@ -212,12 +212,12 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual void Report(std::ostream& e)
|
||||
void Report(std::ostream& e) CM_OVERRIDE
|
||||
{
|
||||
e << "link library [" << this->FileName << "]";
|
||||
}
|
||||
|
||||
virtual bool FindConflict(std::string const& dir);
|
||||
bool FindConflict(std::string const& dir) CM_OVERRIDE;
|
||||
};
|
||||
|
||||
bool cmOrderDirectoriesConstraintLibrary::FindConflict(std::string const& dir)
|
||||
|
|
|
@ -27,7 +27,11 @@
|
|||
#include <map>
|
||||
#include <set>
|
||||
#include <stdlib.h> // required for atof
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
|
||||
#if defined(CMake_HAVE_CXX_UNORDERED_SET)
|
||||
#include <unordered_set>
|
||||
#define UNORDERED_SET std::unordered_set
|
||||
#elif defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#include <cmsys/hash_set.hxx>
|
||||
#define UNORDERED_SET cmsys::hash_set
|
||||
#else
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
#include <cmsys/auto_ptr.hxx>
|
||||
#if defined(CMAKE_BUILD_WITH_CMAKE)
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
#include <unordered_map>
|
||||
#else
|
||||
#include <cmsys/hash_map.hxx>
|
||||
|
@ -331,7 +331,7 @@ private:
|
|||
};
|
||||
|
||||
#ifdef CMAKE_BUILD_WITH_CMAKE
|
||||
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
|
||||
#ifdef CMake_HAVE_CXX_UNORDERED_MAP
|
||||
typedef std::unordered_map<std::string, cmTarget> cmTargets;
|
||||
#else
|
||||
typedef cmsys::hash_map<std::string, cmTarget> cmTargets;
|
||||
|
|
|
@ -1272,6 +1272,7 @@ cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP_BINARY_DIR \"${CMAKE_
|
|||
cmake_report cmConfigure.h${_tmp} "#define CMAKE_BIN_DIR \"/bootstrap-not-insalled\""
|
||||
cmake_report cmConfigure.h${_tmp} "#define CMAKE_DATA_DIR \"/bootstrap-not-insalled\""
|
||||
cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP"
|
||||
cmake_report cmConfigure.h${_tmp} "#define CM_OVERRIDE"
|
||||
|
||||
# Regenerate configured headers
|
||||
for h in Configure VersionConfig; do
|
||||
|
|
Loading…
Reference in New Issue