From kwrobot at kitware.com Wed Mar 1 00:01:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 1 Mar 2017 00:01:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-346-ge9cfe63 Message-ID: <20170301050106.F10BEFA5E7@public.kitware.com> 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 e9cfe63dfca48688064b56777508ab20c5f2aed4 (commit) from 78104bd7bca4bd9b4b7a5c17622838a33843138e (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=e9cfe63dfca48688064b56777508ab20c5f2aed4 commit e9cfe63dfca48688064b56777508ab20c5f2aed4 Author: Kitware Robot AuthorDate: Wed Mar 1 00:01:04 2017 -0500 Commit: Kitware Robot CommitDate: Wed Mar 1 00:01:04 2017 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 28cbbe4..f85bd64 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) -set(CMake_VERSION_PATCH 20170228) +set(CMake_VERSION_PATCH 20170301) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From gjasny at googlemail.com Wed Mar 1 05:13:33 2017 From: gjasny at googlemail.com (Gregor Jasny) Date: Wed, 1 Mar 2017 05:13:33 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-654-g7f38595 Message-ID: <20170301101333.86DA4F3E4B@public.kitware.com> 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 7f38595c96edc9059776b1e8fe3b409f1082b45a (commit) via 54a48c6781dd02f2ebbdb19a77c9a4fb59e67735 (commit) via f4977d056b2295679ce723c639f16823cfe489d5 (commit) via 7202db5db46bfe7499244af315249820e883c8cf (commit) via 5995082101a1959f303f9f3d6c0a1e483630749e (commit) via 6a54d28e44c3e539a0f6b45a5bdd748df5ef29ca (commit) from 0412b809f4d426ad1826c10e7f4b2d172906b0ee (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=7f38595c96edc9059776b1e8fe3b409f1082b45a commit 7f38595c96edc9059776b1e8fe3b409f1082b45a Merge: 0412b80 54a48c6 Author: Gregor Jasny AuthorDate: Wed Mar 1 05:13:29 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 05:13:29 2017 -0500 Merge topic 'xcode-enhance-schemes' into next 54a48c67 Xcode: Use proper buildable name for schema f4977d05 Xcode: Select executable target for execution in schema 7202db5d Xcode: Fix schema container location calculation 59950821 Xcode: Do not autocreate schemes 6a54d28e Xcode: Use proper indentation for schemes https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=54a48c6781dd02f2ebbdb19a77c9a4fb59e67735 commit 54a48c6781dd02f2ebbdb19a77c9a4fb59e67735 Author: Gregor Jasny AuthorDate: Sat Feb 25 21:26:17 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Feb 28 22:38:30 2017 +0100 Xcode: Use proper buildable name for schema diff --git a/Source/cmXCodeScheme.cxx b/Source/cmXCodeScheme.cxx index 1596e5c..5c22531 100644 --- a/Source/cmXCodeScheme.cxx +++ b/Source/cmXCodeScheme.cxx @@ -15,6 +15,7 @@ cmXCodeScheme::cmXCodeScheme(cmXCodeObject* xcObj, unsigned int xcVersion) : Target(xcObj) , TargetName(xcObj->GetTarget()->GetName()) + , BuildableName(xcObj->GetTarget()->GetFullName()) , TargetId(xcObj->GetId()) , ConfigList(configList) , XcodeVersion(xcVersion) @@ -87,7 +88,7 @@ void cmXCodeScheme::WriteBuildAction(cmXMLWriter& xout, xout.BreakAttributes(); xout.Attribute("BuildableIdentifier", "primary"); xout.Attribute("BlueprintIdentifier", this->TargetId); - xout.Attribute("BuildableName", this->TargetName); + xout.Attribute("BuildableName", this->BuildableName); xout.Attribute("BlueprintName", this->TargetName); xout.Attribute("ReferencedContainer", "container:" + container); xout.EndElement(); @@ -149,7 +150,7 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout, xout.BreakAttributes(); xout.Attribute("BuildableIdentifier", "primary"); xout.Attribute("BlueprintIdentifier", this->TargetId); - xout.Attribute("BuildableName", this->TargetName); + xout.Attribute("BuildableName", this->BuildableName); xout.Attribute("BlueprintName", this->TargetName); xout.Attribute("ReferencedContainer", "container:" + container); xout.EndElement(); diff --git a/Source/cmXCodeScheme.h b/Source/cmXCodeScheme.h index 470b5fd..0a8e737 100644 --- a/Source/cmXCodeScheme.h +++ b/Source/cmXCodeScheme.h @@ -26,6 +26,7 @@ public: private: const cmXCodeObject* const Target; const std::string& TargetName; + const std::string BuildableName; const std::string& TargetId; const std::vector& ConfigList; const unsigned int XcodeVersion; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f4977d056b2295679ce723c639f16823cfe489d5 commit f4977d056b2295679ce723c639f16823cfe489d5 Author: Gregor Jasny AuthorDate: Fri Feb 24 18:47:58 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Feb 28 22:38:29 2017 +0100 Xcode: Select executable target for execution in schema diff --git a/Source/cmXCodeScheme.cxx b/Source/cmXCodeScheme.cxx index e5031fd..1596e5c 100644 --- a/Source/cmXCodeScheme.cxx +++ b/Source/cmXCodeScheme.cxx @@ -13,7 +13,8 @@ cmXCodeScheme::cmXCodeScheme(cmXCodeObject* xcObj, const std::vector& configList, unsigned int xcVersion) - : TargetName(xcObj->GetTarget()->GetName()) + : Target(xcObj) + , TargetName(xcObj->GetTarget()->GetName()) , TargetId(xcObj->GetId()) , ConfigList(configList) , XcodeVersion(xcVersion) @@ -135,7 +136,14 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout, xout.Attribute("debugServiceExtension", "internal"); xout.Attribute("allowLocationSimulation", "YES"); - xout.StartElement("MacroExpansion"); + if (IsExecutable(this->Target)) { + xout.StartElement("BuildableProductRunnable"); + xout.BreakAttributes(); + xout.Attribute("runnableDebuggingMode", "0"); + + } else { + xout.StartElement("MacroExpansion"); + } xout.StartElement("BuildableReference"); xout.BreakAttributes(); @@ -205,3 +213,14 @@ std::string cmXCodeScheme::FindConfiguration(const std::string& name) return name; } + +bool cmXCodeScheme::IsExecutable(const cmXCodeObject* target) +{ + cmGeneratorTarget* gt = target->GetTarget(); + if (!gt) { + cmSystemTools::Error("Error no target on xobject\n"); + return false; + } + + return gt->GetType() == cmStateEnums::EXECUTABLE; +} diff --git a/Source/cmXCodeScheme.h b/Source/cmXCodeScheme.h index 7a7d930..470b5fd 100644 --- a/Source/cmXCodeScheme.h +++ b/Source/cmXCodeScheme.h @@ -24,6 +24,7 @@ public: const std::string& container); private: + const cmXCodeObject* const Target; const std::string& TargetName; const std::string& TargetId; const std::vector& ConfigList; @@ -41,6 +42,8 @@ private: std::string WriteVersionString(); std::string FindConfiguration(const std::string& name); + + static bool IsExecutable(const cmXCodeObject* target); }; #endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7202db5db46bfe7499244af315249820e883c8cf commit 7202db5db46bfe7499244af315249820e883c8cf Author: Gregor Jasny AuthorDate: Fri Feb 24 17:31:24 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Feb 28 22:38:29 2017 +0100 Xcode: Fix schema container location calculation diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index f0ebf88..b023d5c 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3344,7 +3344,7 @@ void cmGlobalXCodeGenerator::OutputXCodeProject( if (this->GetCMakeInstance()->GetState()->GetGlobalPropertyAsBool( "XCODE_GENERATE_SCHEME") && this->XcodeVersion >= 70) { - this->OutputXCodeSharedSchemes(xcodeDir, root); + this->OutputXCodeSharedSchemes(xcodeDir); this->OutputXCodeWorkspaceSettings(xcodeDir); } @@ -3357,7 +3357,7 @@ void cmGlobalXCodeGenerator::OutputXCodeProject( } void cmGlobalXCodeGenerator::OutputXCodeSharedSchemes( - const std::string& xcProjDir, cmLocalGenerator* root) + const std::string& xcProjDir) { for (std::vector::const_iterator i = this->XCodeObjects.begin(); @@ -3369,7 +3369,7 @@ void cmGlobalXCodeGenerator::OutputXCodeSharedSchemes( cmXCodeScheme schm(obj, this->CurrentConfigurationTypes, this->XcodeVersion); schm.WriteXCodeSharedScheme(xcProjDir, - root->GetCurrentSourceDirectory()); + this->RelativeToSource(xcProjDir.c_str())); } } } diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index dcbc77a..9eacdef 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -166,8 +166,7 @@ private: void OutputXCodeProject(cmLocalGenerator* root, std::vector& generators); // Write shared scheme files for all the native targets - void OutputXCodeSharedSchemes(const std::string& xcProjDir, - cmLocalGenerator* root); + void OutputXCodeSharedSchemes(const std::string& xcProjDir); void OutputXCodeWorkspaceSettings(const std::string& xcProjDir); void WriteXCodePBXProj(std::ostream& fout, cmLocalGenerator* root, std::vector& generators); diff --git a/Source/cmXCodeScheme.cxx b/Source/cmXCodeScheme.cxx index c2d49d8..e5031fd 100644 --- a/Source/cmXCodeScheme.cxx +++ b/Source/cmXCodeScheme.cxx @@ -3,6 +3,7 @@ #include "cmXCodeScheme.h" #include +#include #include #include "cmGeneratedFileStream.h" @@ -20,7 +21,7 @@ cmXCodeScheme::cmXCodeScheme(cmXCodeObject* xcObj, } void cmXCodeScheme::WriteXCodeSharedScheme(const std::string& xcProjDir, - const std::string sourceRoot) + const std::string& container) { // Create shared scheme sub-directory tree // @@ -39,12 +40,11 @@ void cmXCodeScheme::WriteXCodeSharedScheme(const std::string& xcProjDir, return; } - std::string xcProjRelDir = xcProjDir.substr(sourceRoot.size() + 1); - WriteXCodeXCScheme(fout, xcProjRelDir); + WriteXCodeXCScheme(fout, container); } void cmXCodeScheme::WriteXCodeXCScheme(std::ostream& fout, - const std::string& xcProjDir) + const std::string& container) { cmXMLWriter xout(fout); xout.SetIndentationElement(std::string(3, ' ')); @@ -55,9 +55,9 @@ void cmXCodeScheme::WriteXCodeXCScheme(std::ostream& fout, xout.Attribute("LastUpgradeVersion", WriteVersionString()); xout.Attribute("version", "1.3"); - WriteBuildAction(xout, xcProjDir); + WriteBuildAction(xout, container); WriteTestAction(xout, FindConfiguration("Debug")); - WriteLaunchAction(xout, FindConfiguration("Debug"), xcProjDir); + WriteLaunchAction(xout, FindConfiguration("Debug"), container); WriteProfileAction(xout, FindConfiguration("Release")); WriteAnalyzeAction(xout, FindConfiguration("Debug")); WriteArchiveAction(xout, FindConfiguration("Release")); @@ -66,7 +66,7 @@ void cmXCodeScheme::WriteXCodeXCScheme(std::ostream& fout, } void cmXCodeScheme::WriteBuildAction(cmXMLWriter& xout, - const std::string& xcProjDir) + const std::string& container) { xout.StartElement("BuildAction"); xout.BreakAttributes(); @@ -88,7 +88,7 @@ void cmXCodeScheme::WriteBuildAction(cmXMLWriter& xout, xout.Attribute("BlueprintIdentifier", this->TargetId); xout.Attribute("BuildableName", this->TargetName); xout.Attribute("BlueprintName", this->TargetName); - xout.Attribute("ReferencedContainer", "container:" + xcProjDir); + xout.Attribute("ReferencedContainer", "container:" + container); xout.EndElement(); xout.EndElement(); // BuildActionEntry @@ -119,7 +119,7 @@ void cmXCodeScheme::WriteTestAction(cmXMLWriter& xout, void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout, std::string configuration, - const std::string& xcProjDir) + const std::string& container) { xout.StartElement("LaunchAction"); xout.BreakAttributes(); @@ -143,7 +143,7 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout, xout.Attribute("BlueprintIdentifier", this->TargetId); xout.Attribute("BuildableName", this->TargetName); xout.Attribute("BlueprintName", this->TargetName); - xout.Attribute("ReferencedContainer", "container:" + xcProjDir); + xout.Attribute("ReferencedContainer", "container:" + container); xout.EndElement(); xout.EndElement(); // MacroExpansion diff --git a/Source/cmXCodeScheme.h b/Source/cmXCodeScheme.h index b174c51..7a7d930 100644 --- a/Source/cmXCodeScheme.h +++ b/Source/cmXCodeScheme.h @@ -21,7 +21,7 @@ public: unsigned int xcVersion); void WriteXCodeSharedScheme(const std::string& xcProjDir, - const std::string sourceRoot); + const std::string& container); private: const std::string& TargetName; @@ -29,12 +29,12 @@ private: const std::vector& ConfigList; const unsigned int XcodeVersion; - void WriteXCodeXCScheme(std::ostream& fout, const std::string& xcProjDir); + void WriteXCodeXCScheme(std::ostream& fout, const std::string& container); - void WriteBuildAction(cmXMLWriter& xout, const std::string& xcProjDir); + void WriteBuildAction(cmXMLWriter& xout, const std::string& container); void WriteTestAction(cmXMLWriter& xout, std::string configuration); void WriteLaunchAction(cmXMLWriter& xout, std::string configuration, - const std::string& xcProjDir); + const std::string& container); void WriteProfileAction(cmXMLWriter& xout, std::string configuration); void WriteAnalyzeAction(cmXMLWriter& xout, std::string configuration); void WriteArchiveAction(cmXMLWriter& xout, std::string configuration); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5995082101a1959f303f9f3d6c0a1e483630749e commit 5995082101a1959f303f9f3d6c0a1e483630749e Author: Gregor Jasny AuthorDate: Fri Feb 24 16:19:14 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Feb 28 22:38:29 2017 +0100 Xcode: Do not autocreate schemes diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index d1b6130..f0ebf88 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3345,6 +3345,7 @@ void cmGlobalXCodeGenerator::OutputXCodeProject( "XCODE_GENERATE_SCHEME") && this->XcodeVersion >= 70) { this->OutputXCodeSharedSchemes(xcodeDir, root); + this->OutputXCodeWorkspaceSettings(xcodeDir); } this->ClearXCodeObjects(); @@ -3373,6 +3374,36 @@ void cmGlobalXCodeGenerator::OutputXCodeSharedSchemes( } } +void cmGlobalXCodeGenerator::OutputXCodeWorkspaceSettings( + const std::string& xcProjDir) +{ + std::string xcodeSharedDataDir = xcProjDir; + xcodeSharedDataDir += "/project.xcworkspace/xcshareddata"; + cmSystemTools::MakeDirectory(xcodeSharedDataDir); + + std::string workspaceSettingsFile = xcodeSharedDataDir; + workspaceSettingsFile += "/WorkspaceSettings.xcsettings"; + + cmGeneratedFileStream fout(workspaceSettingsFile.c_str()); + fout.SetCopyIfDifferent(true); + if (!fout) { + return; + } + + cmXMLWriter xout(fout); + xout.StartDocument(); + xout.Doctype("plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\"" + "\"http://www.apple.com/DTDs/PropertyList-1.0.dtd\""); + xout.StartElement("plist"); + xout.Attribute("version", "1.0"); + xout.StartElement("dict"); + xout.Element("key", "IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded"); + xout.Element("false"); + xout.EndElement(); // dict + xout.EndElement(); // plist + xout.EndDocument(); +} + void cmGlobalXCodeGenerator::WriteXCodePBXProj(std::ostream& fout, cmLocalGenerator*, std::vector&) diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index c9157b0..dcbc77a 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -168,6 +168,7 @@ private: // Write shared scheme files for all the native targets void OutputXCodeSharedSchemes(const std::string& xcProjDir, cmLocalGenerator* root); + void OutputXCodeWorkspaceSettings(const std::string& xcProjDir); void WriteXCodePBXProj(std::ostream& fout, cmLocalGenerator* root, std::vector& generators); cmXCodeObject* CreateXCodeFileReferenceFromPath(const std::string& fullpath, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6a54d28e44c3e539a0f6b45a5bdd748df5ef29ca commit 6a54d28e44c3e539a0f6b45a5bdd748df5ef29ca Author: Gregor Jasny AuthorDate: Fri Feb 24 13:04:21 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Feb 28 22:27:21 2017 +0100 Xcode: Use proper indentation for schemes diff --git a/Source/cmXCodeScheme.cxx b/Source/cmXCodeScheme.cxx index 3c8c0b7..c2d49d8 100644 --- a/Source/cmXCodeScheme.cxx +++ b/Source/cmXCodeScheme.cxx @@ -47,6 +47,7 @@ void cmXCodeScheme::WriteXCodeXCScheme(std::ostream& fout, const std::string& xcProjDir) { cmXMLWriter xout(fout); + xout.SetIndentationElement(std::string(3, ' ')); xout.StartDocument(); xout.StartElement("Scheme"); diff --git a/Source/cmXMLWriter.cxx b/Source/cmXMLWriter.cxx index 2f50fe9..541cb3d 100644 --- a/Source/cmXMLWriter.cxx +++ b/Source/cmXMLWriter.cxx @@ -7,6 +7,7 @@ cmXMLWriter::cmXMLWriter(std::ostream& output, std::size_t level) : Output(output) + , IndentationElement(1, '\t') , Level(level) , ElementOpen(false) , BreakAttrib(false) @@ -100,10 +101,18 @@ void cmXMLWriter::FragmentFile(const char* fname) this->Output << fin.rdbuf(); } +void cmXMLWriter::SetIndentationElement(std::string const& element) +{ + this->IndentationElement = element; +} + void cmXMLWriter::ConditionalLineBreak(bool condition, std::size_t indent) { if (condition) { - this->Output << '\n' << std::string(indent + this->Level, '\t'); + this->Output << '\n'; + for (std::size_t i = 0; i < indent + this->Level; ++i) { + this->Output << this->IndentationElement; + } } } diff --git a/Source/cmXMLWriter.h b/Source/cmXMLWriter.h index 904f73b..6d1e6b4 100644 --- a/Source/cmXMLWriter.h +++ b/Source/cmXMLWriter.h @@ -60,6 +60,8 @@ public: void FragmentFile(const char* fname); + void SetIndentationElement(std::string const& element); + private: cmXMLWriter(const cmXMLWriter&); cmXMLWriter& operator=(const cmXMLWriter&); @@ -107,6 +109,7 @@ private: private: std::ostream& Output; std::stack > Elements; + std::string IndentationElement; std::size_t Level; bool ElementOpen; bool BreakAttrib; ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalXCodeGenerator.cxx | 37 +++++++++++++++++++++++++--- Source/cmGlobalXCodeGenerator.h | 4 +-- Source/cmXCodeScheme.cxx | 49 ++++++++++++++++++++++++++----------- Source/cmXCodeScheme.h | 12 ++++++--- Source/cmXMLWriter.cxx | 11 ++++++++- Source/cmXMLWriter.h | 3 +++ 6 files changed, 92 insertions(+), 24 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 08:15:23 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 08:15:23 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-664-gedf4587 Message-ID: <20170301131523.83A0BFA015@public.kitware.com> 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 edf45878ed265bf1678b3fbb5b977085b048ac89 (commit) via 2186b323c0bc43b7eecec0f906cff9fe2e57fc0f (commit) via 16f1dd0d16365448f9d483a5d00aba356eb2906b (commit) via b2de6da2f161cde26178e568974fa5ef7f7480fc (commit) via 003c91385a050fc3b469e9f4d1ccf22e70f0f709 (commit) via bf67fff0356f1d0d6996a52eb6fda2358b17b57c (commit) via e629be4a7affe8615c2321b1a08bebb42bb81b15 (commit) via 1c7a9119d29568a1e3da82e8e96c8db464d599ab (commit) via 8250a520aacdeab2c22a24bbd31c23fee787b86e (commit) via 4b847f12f645b953feada796de66bc40b876f4f5 (commit) from 7f38595c96edc9059776b1e8fe3b409f1082b45a (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=edf45878ed265bf1678b3fbb5b977085b048ac89 commit edf45878ed265bf1678b3fbb5b977085b048ac89 Merge: 7f38595 2186b32 Author: Brad King AuthorDate: Wed Mar 1 08:15:22 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 08:15:22 2017 -0500 Merge topic 'FindHDF5-updates' into next 2186b323 FindHDF5: initialize HDF5_DEFINITIONS when using hdf5-config.cmake 16f1dd0d FindHDF5: document HDF5__DEFINITIONS b2de6da2 FindHDF5: use import libraries when using hdf5-config.cmake on Windows 003c9138 FindHDF5: do not cache library locations when using hdf5-config.cmake bf67fff0 FindHDF5: recognize hdf5:: prefix when using hdf5-config.cmake e629be4a FindHDF5: fix typo in comment 1c7a9119 FindHDF5: remove mark_as_advanced for non-cached variables 8250a520 FindHDF5: add HDF5_FIND_DEBUG variable to get debugging output 4b847f12 FindHDF5: hide HDF5_DIR if HDF5 was found in another way https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2186b323c0bc43b7eecec0f906cff9fe2e57fc0f commit 2186b323c0bc43b7eecec0f906cff9fe2e57fc0f Author: Kris Thielemans AuthorDate: Thu Feb 16 23:35:46 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:13:58 2017 -0500 FindHDF5: initialize HDF5_DEFINITIONS when using hdf5-config.cmake diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 96d4960..927ec64 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -418,6 +418,7 @@ if(NOT HDF5_FOUND) set(HDF5_CXX_HL_TARGET ${_target_prefix}hdf5_hl_cpp) set(HDF5_Fortran_TARGET ${_target_prefix}hdf5_fortran) set(HDF5_Fortran_HL_TARGET ${_target_prefix}hdf5_hl_fortran) + set(HDF5_DEFINITIONS "") if(HDF5_USE_STATIC_LIBRARIES) set(_suffix "-static") else() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16f1dd0d16365448f9d483a5d00aba356eb2906b commit 16f1dd0d16365448f9d483a5d00aba356eb2906b Author: Kris Thielemans AuthorDate: Thu Feb 16 23:35:46 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:13:58 2017 -0500 FindHDF5: document HDF5__DEFINITIONS diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index a85b9ac..96d4960 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -59,12 +59,16 @@ # bindings, if the HL component is enabled # # Available components are: C CXX Fortran and HL. For each enabled language -# binding, a corresponding HDF5_${LANG}_LIBRARIES variable will be defined. +# binding, a corresponding HDF5_${LANG}_LIBRARIES variable, and potentially +# HDF5_${LANG}_DEFINITIONS, will be defined. # If the HL component is enabled, then an HDF5_${LANG}_HL_LIBRARIES will # also be defined. With all components enabled, the following variables will be defined: # # :: # +# HDF5_C_DEFINITIONS -- Required compiler definitions for HDF5 C bindings +# HDF5_CXX_DEFINITIONS -- Required compiler definitions for HDF5 C++ bindings +# HDF5_Fortran_DEFINITIONS -- Required compiler definitions for HDF5 Fortran bindings # HDF5_C_LIBRARIES - Required libraries for the HDF5 C bindings # HDF5_CXX_LIBRARIES - Required libraries for the HDF5 C++ bindings # HDF5_Fortran_LIBRARIES - Required libraries for the HDF5 Fortran bindings https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b2de6da2f161cde26178e568974fa5ef7f7480fc commit b2de6da2f161cde26178e568974fa5ef7f7480fc Author: Kris Thielemans AuthorDate: Mon Feb 6 01:27:56 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:12:56 2017 -0500 FindHDF5: use import libraries when using hdf5-config.cmake on Windows The `LOCATION` of imported shared libraries on Windows is that of the `.dll`. Use the import library instead to get the `.lib` to be linked. Fixes: #16534 diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index ae2c707..a85b9ac 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -436,8 +436,13 @@ if(NOT HDF5_FOUND) if(HDF5_FIND_DEBUG) message(STATUS "Trying to get properties of target ${HDF5_${_lang}_TARGET}${_suffix}") endif() - get_target_property(_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION) - + # Find library for this target. Complicated as on Windows with a DLL, we need to search for the import-lib. + get_target_property(_imported_conf ${HDF5_${_lang}_TARGET}${_suffix} IMPORTED_CONFIGURATIONS) + get_target_property(_lang_location ${HDF5_${_lang}_TARGET}${_suffix} IMPORTED_IMPLIB_${_imported_conf} ) + if (NOT _lang_location) + # no import lib, just try LOCATION + get_target_property(_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION) + endif() if( _lang_location ) set(HDF5_${_lang}_LIBRARY ${_lang_location}) list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) @@ -445,7 +450,10 @@ if(NOT HDF5_FOUND) set(HDF5_${_lang}_FOUND True) endif() if(FIND_HL) - get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION) + get_target_property(__lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} IMPORTED_IMPLIB_${_imported_conf} ) + if (NOT _lang_hl_location) + get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION) + endif() if( _lang_hl_location ) set(HDF5_${_lang}_HL_LIBRARY ${_lang_hl_location}) list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=003c91385a050fc3b469e9f4d1ccf22e70f0f709 commit 003c91385a050fc3b469e9f4d1ccf22e70f0f709 Author: Kris Thielemans AuthorDate: Mon Feb 6 01:27:56 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:11:37 2017 -0500 FindHDF5: do not cache library locations when using hdf5-config.cmake The imported targets provide a persistent reference of their location, so we do not need to cache the values. diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 8d2a034..ae2c707 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -439,9 +439,7 @@ if(NOT HDF5_FOUND) get_target_property(_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION) if( _lang_location ) - set(HDF5_${_lang}_LIBRARY ${_lang_location} CACHE PATH - "HDF5 ${_lang} library" ) - mark_as_advanced(HDF5_${_lang}_LIBRARY) + set(HDF5_${_lang}_LIBRARY ${_lang_location}) list(APPEND HDF5_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) set(HDF5_${_lang}_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) set(HDF5_${_lang}_FOUND True) @@ -449,9 +447,7 @@ if(NOT HDF5_FOUND) if(FIND_HL) get_target_property(_lang_hl_location ${HDF5_${_lang}_HL_TARGET}${_suffix} LOCATION) if( _lang_hl_location ) - set(HDF5_${_lang}_HL_LIBRARY ${_lang_hl_location} CACHE PATH - "HDF5 ${_lang} HL library" ) - mark_as_advanced(HDF5_${_lang}_HL_LIBRARY) + set(HDF5_${_lang}_HL_LIBRARY ${_lang_hl_location}) list(APPEND HDF5_HL_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) set(HDF5_${_lang}_HL_LIBRARIES ${HDF5_${_lang}_TARGET}${_suffix}) set(HDF5_HL_FOUND True) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bf67fff0356f1d0d6996a52eb6fda2358b17b57c commit bf67fff0356f1d0d6996a52eb6fda2358b17b57c Author: Kris Thielemans AuthorDate: Mon Feb 6 01:27:56 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:11:22 2017 -0500 FindHDF5: recognize hdf5:: prefix when using hdf5-config.cmake Some versions of HDF5 use this prefix on their imported targets. diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 1388aab..8d2a034 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -404,12 +404,16 @@ if(NOT HDF5_FOUND) set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL}) set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR}) set(HDF5_LIBRARIES) - set(HDF5_C_TARGET hdf5) - set(HDF5_C_HL_TARGET hdf5_hl) - set(HDF5_CXX_TARGET hdf5_cpp) - set(HDF5_CXX_HL_TARGET hdf5_hl_cpp) - set(HDF5_Fortran_TARGET hdf5_fortran) - set(HDF5_Fortran_HL_TARGET hdf5_hl_fortran) + if (NOT TARGET hdf5 AND NOT TARGET hdf5-static AND NOT TARGET hdf5-shared) + # Some HDF5 versions (e.g. 1.8.18) used hdf5::hdf5 etc + set(_target_prefix "hdf5::") + endif() + set(HDF5_C_TARGET ${_target_prefix}hdf5) + set(HDF5_C_HL_TARGET ${_target_prefix}hdf5_hl) + set(HDF5_CXX_TARGET ${_target_prefix}hdf5_cpp) + set(HDF5_CXX_HL_TARGET ${_target_prefix}hdf5_hl_cpp) + set(HDF5_Fortran_TARGET ${_target_prefix}hdf5_fortran) + set(HDF5_Fortran_HL_TARGET ${_target_prefix}hdf5_hl_fortran) if(HDF5_USE_STATIC_LIBRARIES) set(_suffix "-static") else() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e629be4a7affe8615c2321b1a08bebb42bb81b15 commit e629be4a7affe8615c2321b1a08bebb42bb81b15 Author: Kris Thielemans AuthorDate: Mon Feb 6 01:27:56 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:06:26 2017 -0500 FindHDF5: fix typo in comment diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 875098e..1388aab 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -421,7 +421,7 @@ if(NOT HDF5_FOUND) #if we detect that occurrence clear the suffix if(_suffix AND NOT TARGET ${HDF5_${_lang}_TARGET}${_suffix}) if(NOT TARGET ${HDF5_${_lang}_TARGET}) - #cant find this component with our without the suffix + #cant find this component with or without the suffix #so bail out, and let the following locate HDF5 set(HDF5_FOUND FALSE) break() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c7a9119d29568a1e3da82e8e96c8db464d599ab commit 1c7a9119d29568a1e3da82e8e96c8db464d599ab Author: Kris Thielemans AuthorDate: Tue Feb 28 00:57:29 2017 +0000 Commit: Brad King CommitDate: Wed Mar 1 08:06:26 2017 -0500 FindHDF5: remove mark_as_advanced for non-cached variables diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index f84b10e..875098e 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -492,10 +492,6 @@ if(NOT HDF5_FOUND) set(HDF5_${__lang}_HL_LIBRARIES) mark_as_advanced(HDF5_${__lang}_COMPILER_EXECUTABLE_NO_INTERROGATE) - mark_as_advanced(HDF5_${__lang}_DEFINITIONS) - mark_as_advanced(HDF5_${__lang}_INCLUDE_DIRS) - mark_as_advanced(HDF5_${__lang}_LIBRARIES) - mark_as_advanced(HDF5_${__lang}_HL_LIBRARIES) set(HDF5_${__lang}_FOUND True) set(HDF5_HL_FOUND True) @@ -585,9 +581,6 @@ if(NOT HDF5_FOUND) endif() set(HDF5_${__lang}_FOUND True) - mark_as_advanced(HDF5_${__lang}_DEFINITIONS) - mark_as_advanced(HDF5_${__lang}_INCLUDE_DIRS) - mark_as_advanced(HDF5_${__lang}_LIBRARIES) _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_DEFINITIONS) _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_INCLUDE_DIRS) _HDF5_remove_duplicates_from_beginning(HDF5_${__lang}_LIBRARIES) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8250a520aacdeab2c22a24bbd31c23fee787b86e commit 8250a520aacdeab2c22a24bbd31c23fee787b86e Author: Kris Thielemans AuthorDate: Tue Feb 28 01:37:11 2017 +0000 Commit: Brad King CommitDate: Tue Feb 28 16:10:11 2017 -0500 FindHDF5: add HDF5_FIND_DEBUG variable to get debugging output diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index c538a81..f84b10e 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -90,6 +90,8 @@ # The following variable can be set to guide the search for HDF5 libraries and includes: # # HDF5_ROOT +# +# Set HDF5_FIND_DEBUG to true to get some extra debugging output. # This module is maintained by Will Dicharry . @@ -396,6 +398,9 @@ if(NOT HDF5_FOUND) ${_HDF5_SEARCH_OPTS} ) if( HDF5_FOUND) + if(HDF5_FIND_DEBUG) + message(STATUS "Found HDF5 at ${HDF5_DIR} via NO_MODULE. Now trying to extract locations etc.") + endif() set(HDF5_IS_PARALLEL ${HDF5_ENABLE_PARALLEL}) set(HDF5_INCLUDE_DIRS ${HDF5_INCLUDE_DIR}) set(HDF5_LIBRARIES) @@ -424,7 +429,11 @@ if(NOT HDF5_FOUND) set(_suffix "") endif() + if(HDF5_FIND_DEBUG) + message(STATUS "Trying to get properties of target ${HDF5_${_lang}_TARGET}${_suffix}") + endif() get_target_property(_lang_location ${HDF5_${_lang}_TARGET}${_suffix} LOCATION) + if( _lang_location ) set(HDF5_${_lang}_LIBRARY ${_lang_location} CACHE PATH "HDF5 ${_lang} library" ) @@ -828,3 +837,17 @@ if( HDF5_FOUND AND NOT HDF5_DIR) # HDF5_DIR-NOT_FOUND while HDF5 was found. mark_as_advanced(HDF5_DIR) endif() + +if (HDF5_FIND_DEBUG) + message(STATUS "HDF5_DIR: ${HDF5_DIR}") + message(STATUS "HDF5_DEFINITIONS: ${HDF5_DEFINITIONS}") + message(STATUS "HDF5_INCLUDE_DIRS: ${HDF5_INCLUDE_DIRS}") + message(STATUS "HDF5_LIBRARIES: ${HDF5_LIBRARIES}") + foreach(__lang IN LISTS HDF5_LANGUAGE_BINDINGS) + message(STATUS "HDF5_${__lang}_DEFINITIONS: ${HDF5_${__lang}_DEFINITIONS}") + message(STATUS "HDF5_${__lang}_INCLUDE_DIR: ${HDF5_${__lang}_INCLUDE_DIR}") + message(STATUS "HDF5_${__lang}_INCLUDE_DIRS: ${HDF5_${__lang}_INCLUDE_DIRS}") + message(STATUS "HDF5_${__lang}_LIBRARY: ${HDF5_${__lang}_LIBRARY}") + message(STATUS "HDF5_${__lang}_LIBRARIES: ${HDF5_${__lang}_LIBRARIES}") + endforeach() +endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4b847f12f645b953feada796de66bc40b876f4f5 commit 4b847f12f645b953feada796de66bc40b876f4f5 Author: Kris Thielemans AuthorDate: Tue Feb 28 01:00:27 2017 +0000 Commit: Brad King CommitDate: Tue Feb 28 16:01:04 2017 -0500 FindHDF5: hide HDF5_DIR if HDF5 was found in another way diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 65a825d..c538a81 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -822,3 +822,9 @@ find_package_handle_standard_args(HDF5 ) unset(_HDF5_SEARCH_OPTS) + +if( HDF5_FOUND AND NOT HDF5_DIR) + # hide HDF5_DIR for the non-advanced user to avoid confusion with + # HDF5_DIR-NOT_FOUND while HDF5 was found. + mark_as_advanced(HDF5_DIR) +endif() ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 81 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 23 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:00:39 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:00:39 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-348-ga9113ae Message-ID: <20170301140039.A0439FA73C@public.kitware.com> 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 a9113ae37bae72ee2f7a765da732f2b21d1491ce (commit) via 48b56504bf2c9be2151cc507aaf5d59e50f456ae (commit) from e9cfe63dfca48688064b56777508ab20c5f2aed4 (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=a9113ae37bae72ee2f7a765da732f2b21d1491ce commit a9113ae37bae72ee2f7a765da732f2b21d1491ce Merge: e9cfe63 48b5650 Author: Brad King AuthorDate: Wed Mar 1 09:00:37 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:00:37 2017 -0500 Merge topic 'autogen_json_fix' 48b56504 Autogen: Fix for Q_PLUGIN_METADATA change detection test ----------------------------------------------------------------------- Summary of changes: Tests/QtAutogen/CMakeLists.txt | 77 +++++++++++++------------- Tests/QtAutogen/mocPlugin/CMakeLists.txt | 10 ++-- Tests/QtAutogen/mocPlugin/jsonIn/StyleC.json | 2 +- Tests/QtAutogen/mocPlugin/jsonIn/StyleD.json | 2 +- 4 files changed, 46 insertions(+), 45 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:00:43 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:00:43 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-351-g4fc64ce Message-ID: <20170301140043.129C3FA73F@public.kitware.com> 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 4fc64ce76d9981674ababaa3279952544ba8ac01 (commit) via 6f5aede71642b05a351d5cf92e0c884ed9b4fd3c (commit) via e67963ed7316768bf0ebfbe42137d028c0d1d2a4 (commit) from a9113ae37bae72ee2f7a765da732f2b21d1491ce (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=4fc64ce76d9981674ababaa3279952544ba8ac01 commit 4fc64ce76d9981674ababaa3279952544ba8ac01 Merge: a9113ae 6f5aede Author: Brad King AuthorDate: Wed Mar 1 09:00:40 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:00:40 2017 -0500 Merge topic 'find-libarch-not-symlink' 6f5aede7 find_library: Skip 'lib => lib' searches if one symlinks the other e67963ed cmFindLibraryCommand: Refactor AddArchitecturePath logic ----------------------------------------------------------------------- Summary of changes: Source/cmFindLibraryCommand.cxx | 64 +++++++++++++++----- Tests/RunCMake/find_library/LibArchLink-stderr.txt | 2 + Tests/RunCMake/find_library/LibArchLink.cmake | 24 ++++++++ Tests/RunCMake/find_library/RunCMakeTest.cmake | 3 + 4 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 Tests/RunCMake/find_library/LibArchLink-stderr.txt create mode 100644 Tests/RunCMake/find_library/LibArchLink.cmake hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:00:45 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:00:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-353-g86563cf Message-ID: <20170301140045.D4788FA73F@public.kitware.com> 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 86563cf7c8e6dd4fa98a35b9153e4108e8a2286f (commit) via 85e08370d0774397f42a7d45d07f22b3a817fe10 (commit) from 4fc64ce76d9981674ababaa3279952544ba8ac01 (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=86563cf7c8e6dd4fa98a35b9153e4108e8a2286f commit 86563cf7c8e6dd4fa98a35b9153e4108e8a2286f Merge: 4fc64ce 85e0837 Author: Brad King AuthorDate: Wed Mar 1 09:00:43 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:00:43 2017 -0500 Merge topic 'export-executable-symbols' 85e08370 bindexplib: Always export executable symbols, even they are also readable ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 3 ++- Tests/RunCMake/AutoExportDll/AutoExport.cmake | 6 ++++++ Tests/RunCMake/AutoExportDll/nop.asm | 12 ++++++++++++ Tests/RunCMake/AutoExportDll/say.cxx | 4 ++++ 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 Tests/RunCMake/AutoExportDll/nop.asm hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:00:48 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:00:48 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-355-gf782b31 Message-ID: <20170301140048.6CCDFFA741@public.kitware.com> 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 f782b31368059ce17aee9758de5709ffa43841bf (commit) via 8d71fa92838f9fd3d444963c6ea6ea0d7be39cf3 (commit) from 86563cf7c8e6dd4fa98a35b9153e4108e8a2286f (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=f782b31368059ce17aee9758de5709ffa43841bf commit f782b31368059ce17aee9758de5709ffa43841bf Merge: 86563cf 8d71fa9 Author: Brad King AuthorDate: Wed Mar 1 09:00:46 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:00:46 2017 -0500 Merge topic 'FindPkgConfig-version-ops' 8d71fa92 FindPkgConfig: use new version checking "library >= version" syntax ----------------------------------------------------------------------- Summary of changes: Modules/FindPkgConfig.cmake | 35 +++++++-------------- Tests/RunCMake/FindPkgConfig/dummy-pkg-config.bat | 11 ++++++- Tests/RunCMake/FindPkgConfig/dummy-pkg-config.sh | 32 ++++++++++--------- 3 files changed, 38 insertions(+), 40 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:01:02 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:01:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-670-g62305ad Message-ID: <20170301140102.73D1DFA73C@public.kitware.com> 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 62305adb00f39a06dddcaf44efb09dd0830a66dd (commit) via f782b31368059ce17aee9758de5709ffa43841bf (commit) via 86563cf7c8e6dd4fa98a35b9153e4108e8a2286f (commit) via 4fc64ce76d9981674ababaa3279952544ba8ac01 (commit) via a9113ae37bae72ee2f7a765da732f2b21d1491ce (commit) via e9cfe63dfca48688064b56777508ab20c5f2aed4 (commit) from edf45878ed265bf1678b3fbb5b977085b048ac89 (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=62305adb00f39a06dddcaf44efb09dd0830a66dd commit 62305adb00f39a06dddcaf44efb09dd0830a66dd Merge: edf4587 f782b31 Author: Brad King AuthorDate: Wed Mar 1 09:00:53 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 09:00:53 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:03:57 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:03:57 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-359-gebc28c1 Message-ID: <20170301140357.12E2AFA741@public.kitware.com> 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 ebc28c156ee56c878990c53cbd62779249b139bb (commit) via 66bdc792a0500e0e5ad57a55bee4f3d4cc25999e (commit) via baed38107eff0da23fc91b18d926fab9a4750f8c (commit) via f566ab2747d24468a16daca919b472fc9de33a54 (commit) from f782b31368059ce17aee9758de5709ffa43841bf (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:03:57 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:03:57 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-675-gfb13f14 Message-ID: <20170301140357.2E64CFA74D@public.kitware.com> 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 fb13f14f1323f157a519faee26eb8e8c17141f4b (commit) via ebc28c156ee56c878990c53cbd62779249b139bb (commit) via 66bdc792a0500e0e5ad57a55bee4f3d4cc25999e (commit) via baed38107eff0da23fc91b18d926fab9a4750f8c (commit) via f566ab2747d24468a16daca919b472fc9de33a54 (commit) from 62305adb00f39a06dddcaf44efb09dd0830a66dd (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=fb13f14f1323f157a519faee26eb8e8c17141f4b commit fb13f14f1323f157a519faee26eb8e8c17141f4b Merge: 62305ad ebc28c1 Author: Brad King AuthorDate: Wed Mar 1 09:03:16 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 09:03:16 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:03:57 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:03:57 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc1-61-gbaed381 Message-ID: <20170301140357.8463AFA760@public.kitware.com> 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, release has been updated via baed38107eff0da23fc91b18d926fab9a4750f8c (commit) via 6f5aede71642b05a351d5cf92e0c884ed9b4fd3c (commit) via e67963ed7316768bf0ebfbe42137d028c0d1d2a4 (commit) from 220b799c8a7ff6039254c90bbeba1890d816b523 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmFindLibraryCommand.cxx | 64 +++++++++++++++----- Tests/RunCMake/find_library/LibArchLink-stderr.txt | 2 + Tests/RunCMake/find_library/LibArchLink.cmake | 24 ++++++++ Tests/RunCMake/find_library/RunCMakeTest.cmake | 3 + 4 files changed, 77 insertions(+), 16 deletions(-) create mode 100644 Tests/RunCMake/find_library/LibArchLink-stderr.txt create mode 100644 Tests/RunCMake/find_library/LibArchLink.cmake hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:09:18 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:09:18 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-677-ge575ac5 Message-ID: <20170301140918.EC97420C02@public.kitware.com> 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 e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 (commit) via 47b7641c0bdb6a89dd4f89279270ed888001fb32 (commit) from fb13f14f1323f157a519faee26eb8e8c17141f4b (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=e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 commit e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 Merge: fb13f14 47b7641 Author: Brad King AuthorDate: Wed Mar 1 09:09:18 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:09:18 2017 -0500 Merge topic 'csproj_add_free_source_tags' into next 47b7641c Revert topic 'csproj_add_free_source_tags' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47b7641c0bdb6a89dd4f89279270ed888001fb32 commit 47b7641c0bdb6a89dd4f89279270ed888001fb32 Author: Brad King AuthorDate: Wed Mar 1 09:08:54 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 09:08:54 2017 -0500 Revert topic 'csproj_add_free_source_tags' It will be revised and restored. diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index 5e96d79..2dd56c7 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -66,7 +66,6 @@ All Modules /module/CPackRPM /module/CPack /module/CPackWIX - /module/CSharpUtilities /module/CTest /module/CTestCoverageCollectGCOV /module/CTestScriptMode diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index ac21d48..5fad10c 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -367,7 +367,6 @@ Properties on Source Files /prop_sf/SKIP_AUTOUIC /prop_sf/SYMBOLIC /prop_sf/VS_COPY_TO_OUT_DIR - /prop_sf/VS_CSHARP_tagname /prop_sf/VS_DEPLOYMENT_CONTENT /prop_sf/VS_DEPLOYMENT_LOCATION /prop_sf/VS_INCLUDE_IN_VSIX diff --git a/Help/module/CSharpUtilities.rst b/Help/module/CSharpUtilities.rst deleted file mode 100644 index 3621bbc..0000000 --- a/Help/module/CSharpUtilities.rst +++ /dev/null @@ -1 +0,0 @@ -.. cmake-module:: ../../Modules/CSharpUtilities.cmake diff --git a/Help/prop_sf/VS_CSHARP_tagname.rst b/Help/prop_sf/VS_CSHARP_tagname.rst deleted file mode 100644 index d42159f..0000000 --- a/Help/prop_sf/VS_CSHARP_tagname.rst +++ /dev/null @@ -1,19 +0,0 @@ -VS_CSHARP_ -------------------- - -Visual Studio and CSharp source-file-specific configuration. - -Tell the Visual Studio generator to set the source file tag -```` to a given value in the generated Visual Studio CSharp -project. Ignored on other generators and languages. This property -can be used to define dependencies between source files or set any -other Visual Studio specific parameters. - -Example usage: - -.. code-block:: cmake - - set_source_files_property( - PROPERTIES - VS_CSHARP_DependentUpon - VS_CSHARP_SubType "Form") diff --git a/Help/release/dev/CSharpUtilities.rst b/Help/release/dev/CSharpUtilities.rst deleted file mode 100644 index e33bd88..0000000 --- a/Help/release/dev/CSharpUtilities.rst +++ /dev/null @@ -1,7 +0,0 @@ -CSharpUtilities ---------------- - -* A new :module:`CSharpUtilities` module was added to make parameterization - of Visual Studio CSharp targets easier and more flexible. Provided functions - allow automated setting of source file properties to support Windows Forms, - WPF/XAML or other technologies as needed. diff --git a/Help/release/dev/VS_CSHARP_tagname.rst b/Help/release/dev/VS_CSHARP_tagname.rst deleted file mode 100644 index 3fce83d..0000000 --- a/Help/release/dev/VS_CSHARP_tagname.rst +++ /dev/null @@ -1,6 +0,0 @@ -VS_CSHARP_ -------------------- - -* :ref:`Visual Studio Generators` for VS 2010 and above learned a - new :prop_sf:`VS_CSHARP_` source file property to specify - custom ``.csproj`` content for source files. diff --git a/Modules/CSharpUtilities.cmake b/Modules/CSharpUtilities.cmake deleted file mode 100644 index ddad85a..0000000 --- a/Modules/CSharpUtilities.cmake +++ /dev/null @@ -1,298 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. - -#[=======================================================================[.rst: -CSharpUtilities ---------------- - -Functions to make configuration of CSharp/.NET targets easier. - -A collection of CMake utility functions useful for dealing with CSharp -targets for Visual Studio generators from version 2010 and later. - -The following functions are provided by this module: - -**Main functions** - -- :command:`csharp_set_windows_forms_properties` -- :command:`csharp_set_designer_cs_properties` -- :command:`csharp_set_xaml_cs_properties` - -**Helper functions** - -- :command:`csharp_get_filename_keys` -- :command:`csharp_get_filename_key_base` -- :command:`csharp_get_dependentupon_name` - -Main functions provided by the module -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. command:: csharp_set_windows_forms_properties - - Sets source file properties for use of Windows Forms. Use this, if your CSharp - target uses windows forms:: - - csharp_set_windows_forms_properties([ [ [...]]]) - - ```` - List of all source files which are relevant for setting the - :prop_sf:`VS_CSHARP_` properties (including ``.cs``, ``.resx`` and - ``.Designer.cs`` extensions). - - In the list of all given files for all files ending with ``.Designer.cs`` and - ``.resx`` is searched. For every *designer* or *resource* file a file with the - same base name but only ``.cs`` as extension is searched. If this is found, the - :prop_sf:`VS_CSHARP_` properties are set as follows: - - for the **.cs** file: - - VS_CSHARP_SubType "Form" - - for the **.Designer.cs** file (if it exists): - - VS_CSHARP_DependentUpon - - VS_CSHARP_DesignTime "" (delete tag if previously defined) - - VS_CSHARP_AutoGen ""(delete tag if previously defined) - - for the **.resx** file (if it exists): - - VS_RESOURCE_GENERATOR "" (delete tag if previously defined) - - VS_CSHARP_DependentUpon - - VS_CSHARP_SubType "Designer" - -.. command:: csharp_set_designer_cs_properties - - Sets source file properties for use of WPF/XAML. Use this, if your CSharp - target uses WPF/XAML:: - - csharp_set_designer_cs_properties([ [ [...]]]) - - ```` - List of all source files which are relevant for setting the - :prop_sf:`VS_CSHARP_` properties (including ``.cs``, - ``.resx``, ``.settings`` and ``.Designer.cs`` extensions). - - In the list of all given files for all files ending with - ``.Designer.cs`` is searched. For every *designer* file all files - with the same base name but different extensions are searched. If - a match is found, the source file properties of the *designer* file - are set depending on the extension of the matched file: - - if match is **.resx** file: - - VS_CSHARP_AutoGen "True" - - VS_CSHARP_DesignTime "True" - - VS_CSHARP_DependentUpon - - if match is **.cs** file: - - VS_CSHARP_DependentUpon - - if match is **.settings** file: - - VS_CSHARP_AutoGen "True" - - VS_CSHARP_DesignTimeSharedInput "True" - - VS_CSHARP_DependentUpon - -.. command:: csharp_set_xaml_cs_properties - - Sets source file properties for use of WPF/XAML. Use this, if your - CSharp target uses WPF/XAML:: - - csharp_set_xaml_cs_properties([ [ [...]]]) - - ```` - List of all source files which are relevant for setting the - :prop_sf:`VS_CSHARP_` properties (including ``.cs``, - ``.xaml``, and ``.xaml.cs`` extensions). - - In the list of all given files for all files ending with - ``.xaml.cs`` is searched. For every xaml file, a file - with the same base name but extension ``.xaml`` is searched. - If a match is found, the source file properties of the ``.xaml.cs`` - file are set: - - - VS_CSHARP_DependentUpon - -Helper functions which are used by the above ones -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. command:: csharp_get_filename_keys - - Helper function which computes a list of key values to identify - source files independently of relative/absolute paths given in cmake - and eliminates case sensitivity:: - - csharp_get_filename_keys(OUT [ [ [...]]]) - - ``OUT`` - name of the variable in which the list of keys is stored - - ```` - filename as given to to CSharp target using :command:`add_library` - or :command:`add_executable` - - In some way the function applies a canonicalization to the source names. - This is necessary to find file matches if the files have been added to - the target with different directory prefixes: - - .. code-block:: cmake - - add_library(lib - myfile.cs - ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs) - - set_source_files_properties(myfile.Designer.cs PROPERTIES - VS_CSHARP_DependentUpon myfile.cs) - - # this will fail, because in cmake - # - ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs - # - myfile.Designer.cs - # are not the same source file. The source file property is not set. - -.. command:: csharp_get_filename_key_base - - Returns the full filepath and name **withouth** extension of a key. - KEY is expected to be a key from csharp_get_filename_keys. In BASE - the value of KEY without the file extension is returned:: - - csharp_get_filename_key_base(BASE KEY) - - ``BASE`` - The computed "base" of ``KEY``. - - ``KEY`` - The key of which the base will be computed. Expected to be a - upper case full filename. - -.. command:: csharp_get_dependentupon_name - - Computes a string which can be used as value for the source file property - :prop_sf:`VS_CSHARP_` with *target* being ``DependentUpon``:: - - csharp_get_dependentupon_name(NAME FILE) - - ``NAME`` - result value - - ``FILE`` - filename to convert to DependentUpon value - - Actually this is only the filename without any path given at the moment. - -#]=======================================================================] - -function(csharp_get_filename_keys OUT) - set(${OUT} "") - foreach(f ${ARGN}) - get_filename_component(f ${f} REALPATH) - string(TOUPPER ${f} f) - list(APPEND ${OUT} ${f}) - endforeach() - set(${OUT} "${${OUT}}" PARENT_SCOPE) -endfunction() - -function(csharp_get_filename_key_base base key) - get_filename_component(dir ${key} DIRECTORY) - get_filename_component(fil ${key} NAME_WE) - set(${base} "${dir}/${fil}" PARENT_SCOPE) -endfunction() - -function(csharp_get_dependentupon_name out in) - get_filename_component(${out} ${in} NAME) - set(${out} ${${out}} PARENT_SCOPE) -endfunction() - -function(csharp_set_windows_forms_properties) - csharp_get_filename_keys(fileKeys ${ARGN}) - foreach(key ${fileKeys}) - get_filename_component(ext ${key} EXT) - if(${ext} STREQUAL ".DESIGNER.CS" OR - ${ext} STREQUAL ".RESX") - csharp_get_filename_key_base(NAME_BASE ${key}) - list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) - if(NOT ${FILE_INDEX} EQUAL -1) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - # set properties of main form file - set_source_files_properties("${FILE_NAME}" - PROPERTIES - VS_CSHARP_SubType "Form") - csharp_get_dependentupon_name(LINK "${FILE_NAME}") - # set properties of designer file (if found) - list(FIND fileKeys "${NAME_BASE}.DESIGNER.CS" FILE_INDEX) - if(NOT ${FILE_INDEX} EQUAL -1) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - set_source_files_properties("${FILE_NAME}" - PROPERTIES - VS_CSHARP_DependentUpon "${LINK}" - VS_CSHARP_DesignTime "" - VS_CSHARP_AutoGen "") - endif() - # set properties of corresponding resource file (if found) - list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) - if(NOT ${FILE_INDEX} EQUAL -1) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - set_source_files_properties("${FILE_NAME}" - PROPERTIES - VS_RESOURCE_GENERATOR "" - VS_CSHARP_DependentUpon "${LINK}" - VS_CSHARP_SubType "Designer") - endif() - endif() - endif() - endforeach() -endfunction() - -function(csharp_set_designer_cs_properties) - csharp_get_filename_keys(fileKeys ${ARGN}) - set(INDEX -1) - foreach(key ${fileKeys}) - math(EXPR INDEX "${INDEX}+1") - list(GET ARGN ${INDEX} source) - get_filename_component(ext ${key} EXT) - if(${ext} STREQUAL ".DESIGNER.CS") - csharp_get_filename_key_base(NAME_BASE ${key}) - if("${NAME_BASE}.RESX" IN_LIST fileKeys) - list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - csharp_get_dependentupon_name(LINK "${FILE_NAME}") - set_source_files_properties("${source}" - PROPERTIES - VS_CSHARP_AutoGen "True" - VS_CSHARP_DesignTime "True" - VS_CSHARP_DependentUpon "${LINK}") - elseif("${NAME_BASE}.CS" IN_LIST fileKeys) - list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - csharp_get_dependentupon_name(LINK "${FILE_NAME}") - set_source_files_properties("${source}" - PROPERTIES - VS_CSHARP_DependentUpon "${LINK}") - elseif("${NAME_BASE}.SETTINGS" IN_LIST fileKeys) - list(FIND fileKeys "${NAME_BASE}.SETTINGS" FILE_INDEX) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - csharp_get_dependentupon_name(LINK "${FILE_NAME}") - set_source_files_properties("${source}" - PROPERTIES - VS_CSHARP_AutoGen "True" - VS_CSHARP_DesignTimeSharedInput "True" - VS_CSHARP_DependentUpon "${LINK}") - endif() - endif() - endforeach() -endfunction() - -function(csharp_set_xaml_cs_properties) - csharp_get_filename_keys(fileKeys ${ARGN}) - set(INDEX -1) - foreach(key ${fileKeys}) - math(EXPR INDEX "${INDEX}+1") - list(GET ARGN ${INDEX} source) - get_filename_component(ext ${key} EXT) - if(${ext} STREQUAL ".XAML.CS") - csharp_get_filename_key_base(NAME_BASE ${key}) - if("${NAME_BASE}.XAML" IN_LIST fileKeys) - list(FIND fileKeys "${NAME_BASE}.XAML" FILE_INDEX) - list(GET ARGN ${FILE_INDEX} FILE_NAME) - csharp_get_dependentupon_name(LINK "${FILE_NAME}") - set_source_files_properties("${source}" - PROPERTIES - VS_CSHARP_DependentUpon "${LINK}") - endif() - endif() - endforeach() -endfunction() diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h index bbcc300..b193f65 100644 --- a/Source/cmSourceFile.h +++ b/Source/cmSourceFile.h @@ -86,7 +86,6 @@ public: // Get the properties cmPropertyMap& GetProperties() { return this->Properties; } - const cmPropertyMap& GetProperties() const { return this->Properties; } /** * Check whether the given source file location could refer to this diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7f270db..e3853ed 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -706,40 +706,20 @@ void cmVisualStudio10TargetGenerator::WriteEmbeddedResourceGroup() if (const char* g = (*oi)->GetProperty("VS_RESOURCE_GENERATOR")) { generator = g; } - if (!generator.empty()) { - this->WriteString("", 3); - (*this->BuildFileStream) << cmVS10EscapeXML(generator) - << "\n"; - if (designerResource.find(srcDir) == 0) { - designerResource = designerResource.substr(srcDir.length() + 1); - } else if (designerResource.find(binDir) == 0) { - designerResource = designerResource.substr(binDir.length() + 1); - } else { - designerResource = - cmsys::SystemTools::GetFilenameName(designerResource); - } - this->ConvertToWindowsSlash(designerResource); - this->WriteString("", 3); - (*this->BuildFileStream) << designerResource - << "\n"; - } - } - const cmPropertyMap& props = (*oi)->GetProperties(); - for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); - ++p) { - static const std::string propNamePrefix = "VS_CSHARP_"; - if (p->first.find(propNamePrefix.c_str()) == 0) { - std::string tagName = p->first.substr(propNamePrefix.length()); - if (!tagName.empty()) { - std::string value = props.GetPropertyValue(p->first); - if (!value.empty()) { - this->WriteString("<", 3); - (*this->BuildFileStream) << tagName << ">"; - (*this->BuildFileStream) << cmVS10EscapeXML(value); - (*this->BuildFileStream) << "\n"; - } - } + this->WriteString("", 3); + (*this->BuildFileStream) << cmVS10EscapeXML(generator) + << "\n"; + if (designerResource.find(srcDir) == 0) { + designerResource = designerResource.substr(srcDir.length() + 1); + } else if (designerResource.find(binDir) == 0) { + designerResource = designerResource.substr(binDir.length() + 1); + } else { + designerResource = + cmsys::SystemTools::GetFilenameName(designerResource); } + this->ConvertToWindowsSlash(designerResource); + this->WriteString("", 3); + (*this->BuildFileStream) << designerResource << "\n"; } } @@ -1988,21 +1968,42 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags( sourceFileTags["Link"] = link; } } - const cmPropertyMap& props = sf.GetProperties(); - for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); - ++p) { - static const std::string propNamePrefix = "VS_CSHARP_"; - if (p->first.find(propNamePrefix.c_str()) == 0) { - std::string tagName = p->first.substr(propNamePrefix.length()); - if (!tagName.empty()) { - const std::string val = props.GetPropertyValue(p->first); - if (!val.empty()) { - sourceFileTags[tagName] = val; - } else { - sourceFileTags.erase(tagName); - } + // check if file is a generated .Designer.cs or .xaml.cs file + // to add additional necessary tags + const std::string fileExtension = + cmsys::SystemTools::GetFilenameExtension(f); + if (fileExtension == ".Designer.cs" || fileExtension == ".xaml.cs") { + f = f.substr(0, f.length() - fileExtension.length()); + if (sourceFileTags.find("Link") == sourceFileTags.end() && + !this->InSourceBuild) { + // add link fallback + sourceFileTags["Link"] = + cmsys::SystemTools::GetFilenameName(f) + fileExtension; + } + std::vector extensions; + extensions.push_back(".resx"); + extensions.push_back(".settings"); + extensions.push_back(".xaml"); + extensions.push_back(".cs"); + std::string dependencyExtension; + for (std::vector::iterator i = extensions.begin(); + i != extensions.end(); ++i) { + if (cmsys::SystemTools::FileExists(f + *i)) { + dependencyExtension = *i; + // There should never be more than one match. Otherwise + // one cannot tell on which match the file depends. + break; } } + if (dependencyExtension == ".resx") { + sourceFileTags["DesignTime"] = "True"; + sourceFileTags["AutoGen"] = "True"; + } else if (dependencyExtension == ".settings") { + sourceFileTags["DesignTimeSharedInput"] = "True"; + sourceFileTags["AutoGen"] = "True"; + } + sourceFileTags["DependentUpon"] = + cmsys::SystemTools::GetFilenameName(f) + dependencyExtension; } // write source file specific tags if (!sourceFileTags.empty()) { diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake index 3af877f..bc1ec97 100644 --- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake +++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake @@ -3,4 +3,3 @@ run_cmake(VsConfigurationType) run_cmake(VsTargetsFileReferences) run_cmake(VsCustomProps) run_cmake(VsDebuggerWorkingDir) -run_cmake(VsCSharpCustomTags) diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake deleted file mode 100644 index 70ea193..0000000 --- a/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake +++ /dev/null @@ -1,23 +0,0 @@ -set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj") -if(NOT EXISTS "${csProjectFile}") - set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") - return() -endif() - -set(tagFound FALSE) - -set(tagName "MyCustomTag") -set(tagValue "MyCustomValue") - -file(STRINGS "${csProjectFile}" lines) -foreach(line IN LISTS lines) - if(line MATCHES "^ *<${tagName}>${tagValue}") - message(STATUS "foo.csproj has tag ${tagName} with value ${tagValue} defined") - set(tagFound TRUE) - endif() -endforeach() - -if(NOT tagFound) - set(RunCMake_TEST_FAILED "Source file tag ${tagName} with value ${tagValue} not found.") - return() -endif() diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake deleted file mode 100644 index c51e9c3..0000000 --- a/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake +++ /dev/null @@ -1,11 +0,0 @@ -enable_language(CSharp) -add_library(foo foo.cs) - -set(props_file "${CMAKE_CURRENT_SOURCE_DIR}/my.props") - -set(tagName "MyCustomTag") -set(tagValue "MyCustomValue") - -set_source_files_properties(foo.cs - PROPERTIES - VS_CSHARP_${tagName} "${tagValue}") diff --git a/Tests/RunCMake/VS10Project/foo.cs b/Tests/RunCMake/VS10Project/foo.cs deleted file mode 100644 index 3695dc9..0000000 --- a/Tests/RunCMake/VS10Project/foo.cs +++ /dev/null @@ -1,3 +0,0 @@ -void foo() -{ -} ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 - Help/manual/cmake-properties.7.rst | 1 - Help/module/CSharpUtilities.rst | 1 - Help/prop_sf/VS_CSHARP_tagname.rst | 19 -- Help/release/dev/CSharpUtilities.rst | 7 - Help/release/dev/VS_CSHARP_tagname.rst | 6 - Modules/CSharpUtilities.cmake | 298 -------------------- Source/cmSourceFile.h | 1 - Source/cmVisualStudio10TargetGenerator.cxx | 93 +++--- Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 - .../VS10Project/VsCSharpCustomTags-check.cmake | 23 -- .../RunCMake/VS10Project/VsCSharpCustomTags.cmake | 11 - Tests/RunCMake/VS10Project/foo.cs | 3 - 13 files changed, 47 insertions(+), 418 deletions(-) delete mode 100644 Help/module/CSharpUtilities.rst delete mode 100644 Help/prop_sf/VS_CSHARP_tagname.rst delete mode 100644 Help/release/dev/CSharpUtilities.rst delete mode 100644 Help/release/dev/VS_CSHARP_tagname.rst delete mode 100644 Modules/CSharpUtilities.cmake delete mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake delete mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake delete mode 100644 Tests/RunCMake/VS10Project/foo.cs hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 09:17:46 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 09:17:46 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-681-g4d363fa Message-ID: <20170301141746.D8F87F9C8B@public.kitware.com> 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 4d363faaf9158c54e576552620e48ac09d102765 (commit) via d698bdfd55350f68c8c810571e530345641281b3 (commit) via ff741a77cdc6f777ca16a81a0929b82008e3e9a1 (commit) via bd0f96baafce1ed7a50cfb130f05d49763013273 (commit) from e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 (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=4d363faaf9158c54e576552620e48ac09d102765 commit 4d363faaf9158c54e576552620e48ac09d102765 Merge: e575ac5 d698bdf Author: Brad King AuthorDate: Wed Mar 1 09:17:45 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 09:17:45 2017 -0500 Merge topic 'csproj_add_free_source_tags' into next d698bdfd VS: add test for VS_CSHARP_* source file property ff741a77 VS: add CSharpUtilities module bd0f96ba VS: add VS_CSHARP_ sourcefile property https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d698bdfd55350f68c8c810571e530345641281b3 commit d698bdfd55350f68c8c810571e530345641281b3 Author: Michael St?rmer AuthorDate: Fri Feb 24 09:28:13 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 09:08:18 2017 -0500 VS: add test for VS_CSHARP_* source file property diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index b3852d6..1ac2951 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -709,7 +709,7 @@ void cmVisualStudio10TargetGenerator::WriteEmbeddedResourceGroup() if (!value.empty()) { this->WriteString("<", 3); (*this->BuildFileStream) << tagName << ">"; - (*this->BuildFileStream) << value; + (*this->BuildFileStream) << cmVS10EscapeXML(value); (*this->BuildFileStream) << "\n"; } } diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake index bc1ec97..3af877f 100644 --- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake +++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake @@ -3,3 +3,4 @@ run_cmake(VsConfigurationType) run_cmake(VsTargetsFileReferences) run_cmake(VsCustomProps) run_cmake(VsDebuggerWorkingDir) +run_cmake(VsCSharpCustomTags) diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake new file mode 100644 index 0000000..70ea193 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake @@ -0,0 +1,23 @@ +set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj") +if(NOT EXISTS "${csProjectFile}") + set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") + return() +endif() + +set(tagFound FALSE) + +set(tagName "MyCustomTag") +set(tagValue "MyCustomValue") + +file(STRINGS "${csProjectFile}" lines) +foreach(line IN LISTS lines) + if(line MATCHES "^ *<${tagName}>${tagValue}") + message(STATUS "foo.csproj has tag ${tagName} with value ${tagValue} defined") + set(tagFound TRUE) + endif() +endforeach() + +if(NOT tagFound) + set(RunCMake_TEST_FAILED "Source file tag ${tagName} with value ${tagValue} not found.") + return() +endif() diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake new file mode 100644 index 0000000..c51e9c3 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake @@ -0,0 +1,11 @@ +enable_language(CSharp) +add_library(foo foo.cs) + +set(props_file "${CMAKE_CURRENT_SOURCE_DIR}/my.props") + +set(tagName "MyCustomTag") +set(tagValue "MyCustomValue") + +set_source_files_properties(foo.cs + PROPERTIES + VS_CSHARP_${tagName} "${tagValue}") diff --git a/Tests/RunCMake/VS10Project/foo.cs b/Tests/RunCMake/VS10Project/foo.cs new file mode 100644 index 0000000..3695dc9 --- /dev/null +++ b/Tests/RunCMake/VS10Project/foo.cs @@ -0,0 +1,3 @@ +void foo() +{ +} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ff741a77cdc6f777ca16a81a0929b82008e3e9a1 commit ff741a77cdc6f777ca16a81a0929b82008e3e9a1 Author: Michael St?rmer AuthorDate: Thu Feb 23 16:49:37 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 09:08:11 2017 -0500 VS: add CSharpUtilities module diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index d4712ba..c478a1b 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -66,6 +66,7 @@ All Modules /module/CPackRPM /module/CPack /module/CPackWIX + /module/CSharpUtilities /module/CTest /module/CTestCoverageCollectGCOV /module/CTestScriptMode diff --git a/Help/module/CSharpUtilities.rst b/Help/module/CSharpUtilities.rst new file mode 100644 index 0000000..3621bbc --- /dev/null +++ b/Help/module/CSharpUtilities.rst @@ -0,0 +1 @@ +.. cmake-module:: ../../Modules/CSharpUtilities.cmake diff --git a/Help/release/3.8.rst b/Help/release/3.8.rst index d427a63..936afa0 100644 --- a/Help/release/3.8.rst +++ b/Help/release/3.8.rst @@ -229,6 +229,11 @@ Properties Modules ------- +* A :module:`CSharpUtilities` module was added to aid parameterization of + Visual Studio C# targets. It provides functions to allow automated + setting of source file properties to support Windows Forms, WPF/XAML or + other technologies as needed. + * The :module:`ExternalData` module learned to support multiple content links for one data file using different hashes, e.g. ``img.png.sha256`` and ``img.png.sha1``. This allows objects diff --git a/Modules/CSharpUtilities.cmake b/Modules/CSharpUtilities.cmake new file mode 100644 index 0000000..ddad85a --- /dev/null +++ b/Modules/CSharpUtilities.cmake @@ -0,0 +1,298 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +CSharpUtilities +--------------- + +Functions to make configuration of CSharp/.NET targets easier. + +A collection of CMake utility functions useful for dealing with CSharp +targets for Visual Studio generators from version 2010 and later. + +The following functions are provided by this module: + +**Main functions** + +- :command:`csharp_set_windows_forms_properties` +- :command:`csharp_set_designer_cs_properties` +- :command:`csharp_set_xaml_cs_properties` + +**Helper functions** + +- :command:`csharp_get_filename_keys` +- :command:`csharp_get_filename_key_base` +- :command:`csharp_get_dependentupon_name` + +Main functions provided by the module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. command:: csharp_set_windows_forms_properties + + Sets source file properties for use of Windows Forms. Use this, if your CSharp + target uses windows forms:: + + csharp_set_windows_forms_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, ``.resx`` and + ``.Designer.cs`` extensions). + + In the list of all given files for all files ending with ``.Designer.cs`` and + ``.resx`` is searched. For every *designer* or *resource* file a file with the + same base name but only ``.cs`` as extension is searched. If this is found, the + :prop_sf:`VS_CSHARP_` properties are set as follows: + + for the **.cs** file: + - VS_CSHARP_SubType "Form" + + for the **.Designer.cs** file (if it exists): + - VS_CSHARP_DependentUpon + - VS_CSHARP_DesignTime "" (delete tag if previously defined) + - VS_CSHARP_AutoGen ""(delete tag if previously defined) + + for the **.resx** file (if it exists): + - VS_RESOURCE_GENERATOR "" (delete tag if previously defined) + - VS_CSHARP_DependentUpon + - VS_CSHARP_SubType "Designer" + +.. command:: csharp_set_designer_cs_properties + + Sets source file properties for use of WPF/XAML. Use this, if your CSharp + target uses WPF/XAML:: + + csharp_set_designer_cs_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, + ``.resx``, ``.settings`` and ``.Designer.cs`` extensions). + + In the list of all given files for all files ending with + ``.Designer.cs`` is searched. For every *designer* file all files + with the same base name but different extensions are searched. If + a match is found, the source file properties of the *designer* file + are set depending on the extension of the matched file: + + if match is **.resx** file: + - VS_CSHARP_AutoGen "True" + - VS_CSHARP_DesignTime "True" + - VS_CSHARP_DependentUpon + + if match is **.cs** file: + - VS_CSHARP_DependentUpon + + if match is **.settings** file: + - VS_CSHARP_AutoGen "True" + - VS_CSHARP_DesignTimeSharedInput "True" + - VS_CSHARP_DependentUpon + +.. command:: csharp_set_xaml_cs_properties + + Sets source file properties for use of WPF/XAML. Use this, if your + CSharp target uses WPF/XAML:: + + csharp_set_xaml_cs_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, + ``.xaml``, and ``.xaml.cs`` extensions). + + In the list of all given files for all files ending with + ``.xaml.cs`` is searched. For every xaml file, a file + with the same base name but extension ``.xaml`` is searched. + If a match is found, the source file properties of the ``.xaml.cs`` + file are set: + + - VS_CSHARP_DependentUpon + +Helper functions which are used by the above ones +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. command:: csharp_get_filename_keys + + Helper function which computes a list of key values to identify + source files independently of relative/absolute paths given in cmake + and eliminates case sensitivity:: + + csharp_get_filename_keys(OUT [ [ [...]]]) + + ``OUT`` + name of the variable in which the list of keys is stored + + ```` + filename as given to to CSharp target using :command:`add_library` + or :command:`add_executable` + + In some way the function applies a canonicalization to the source names. + This is necessary to find file matches if the files have been added to + the target with different directory prefixes: + + .. code-block:: cmake + + add_library(lib + myfile.cs + ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs) + + set_source_files_properties(myfile.Designer.cs PROPERTIES + VS_CSHARP_DependentUpon myfile.cs) + + # this will fail, because in cmake + # - ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs + # - myfile.Designer.cs + # are not the same source file. The source file property is not set. + +.. command:: csharp_get_filename_key_base + + Returns the full filepath and name **withouth** extension of a key. + KEY is expected to be a key from csharp_get_filename_keys. In BASE + the value of KEY without the file extension is returned:: + + csharp_get_filename_key_base(BASE KEY) + + ``BASE`` + The computed "base" of ``KEY``. + + ``KEY`` + The key of which the base will be computed. Expected to be a + upper case full filename. + +.. command:: csharp_get_dependentupon_name + + Computes a string which can be used as value for the source file property + :prop_sf:`VS_CSHARP_` with *target* being ``DependentUpon``:: + + csharp_get_dependentupon_name(NAME FILE) + + ``NAME`` + result value + + ``FILE`` + filename to convert to DependentUpon value + + Actually this is only the filename without any path given at the moment. + +#]=======================================================================] + +function(csharp_get_filename_keys OUT) + set(${OUT} "") + foreach(f ${ARGN}) + get_filename_component(f ${f} REALPATH) + string(TOUPPER ${f} f) + list(APPEND ${OUT} ${f}) + endforeach() + set(${OUT} "${${OUT}}" PARENT_SCOPE) +endfunction() + +function(csharp_get_filename_key_base base key) + get_filename_component(dir ${key} DIRECTORY) + get_filename_component(fil ${key} NAME_WE) + set(${base} "${dir}/${fil}" PARENT_SCOPE) +endfunction() + +function(csharp_get_dependentupon_name out in) + get_filename_component(${out} ${in} NAME) + set(${out} ${${out}} PARENT_SCOPE) +endfunction() + +function(csharp_set_windows_forms_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + foreach(key ${fileKeys}) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".DESIGNER.CS" OR + ${ext} STREQUAL ".RESX") + csharp_get_filename_key_base(NAME_BASE ${key}) + list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + # set properties of main form file + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_CSHARP_SubType "Form") + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + # set properties of designer file (if found) + list(FIND fileKeys "${NAME_BASE}.DESIGNER.CS" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}" + VS_CSHARP_DesignTime "" + VS_CSHARP_AutoGen "") + endif() + # set properties of corresponding resource file (if found) + list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_RESOURCE_GENERATOR "" + VS_CSHARP_DependentUpon "${LINK}" + VS_CSHARP_SubType "Designer") + endif() + endif() + endif() + endforeach() +endfunction() + +function(csharp_set_designer_cs_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + set(INDEX -1) + foreach(key ${fileKeys}) + math(EXPR INDEX "${INDEX}+1") + list(GET ARGN ${INDEX} source) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".DESIGNER.CS") + csharp_get_filename_key_base(NAME_BASE ${key}) + if("${NAME_BASE}.RESX" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_AutoGen "True" + VS_CSHARP_DesignTime "True" + VS_CSHARP_DependentUpon "${LINK}") + elseif("${NAME_BASE}.CS" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}") + elseif("${NAME_BASE}.SETTINGS" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.SETTINGS" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_AutoGen "True" + VS_CSHARP_DesignTimeSharedInput "True" + VS_CSHARP_DependentUpon "${LINK}") + endif() + endif() + endforeach() +endfunction() + +function(csharp_set_xaml_cs_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + set(INDEX -1) + foreach(key ${fileKeys}) + math(EXPR INDEX "${INDEX}+1") + list(GET ARGN ${INDEX} source) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".XAML.CS") + csharp_get_filename_key_base(NAME_BASE ${key}) + if("${NAME_BASE}.XAML" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.XAML" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}") + endif() + endif() + endforeach() +endfunction() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bd0f96baafce1ed7a50cfb130f05d49763013273 commit bd0f96baafce1ed7a50cfb130f05d49763013273 Author: Michael St?rmer AuthorDate: Thu Feb 23 16:48:16 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 09:05:21 2017 -0500 VS: add VS_CSHARP_ sourcefile property diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 38aba81..0e3eb86 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -366,6 +366,7 @@ Properties on Source Files /prop_sf/SKIP_AUTOUIC /prop_sf/SYMBOLIC /prop_sf/VS_COPY_TO_OUT_DIR + /prop_sf/VS_CSHARP_tagname /prop_sf/VS_DEPLOYMENT_CONTENT /prop_sf/VS_DEPLOYMENT_LOCATION /prop_sf/VS_INCLUDE_IN_VSIX diff --git a/Help/prop_sf/VS_CSHARP_tagname.rst b/Help/prop_sf/VS_CSHARP_tagname.rst new file mode 100644 index 0000000..d42159f --- /dev/null +++ b/Help/prop_sf/VS_CSHARP_tagname.rst @@ -0,0 +1,19 @@ +VS_CSHARP_ +------------------- + +Visual Studio and CSharp source-file-specific configuration. + +Tell the Visual Studio generator to set the source file tag +```` to a given value in the generated Visual Studio CSharp +project. Ignored on other generators and languages. This property +can be used to define dependencies between source files or set any +other Visual Studio specific parameters. + +Example usage: + +.. code-block:: cmake + + set_source_files_property( + PROPERTIES + VS_CSHARP_DependentUpon + VS_CSHARP_SubType "Form") diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h index b193f65..bbcc300 100644 --- a/Source/cmSourceFile.h +++ b/Source/cmSourceFile.h @@ -86,6 +86,7 @@ public: // Get the properties cmPropertyMap& GetProperties() { return this->Properties; } + const cmPropertyMap& GetProperties() const { return this->Properties; } /** * Check whether the given source file location could refer to this diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 2e6c19b..b3852d6 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -680,20 +680,40 @@ void cmVisualStudio10TargetGenerator::WriteEmbeddedResourceGroup() if (const char* g = (*oi)->GetProperty("VS_RESOURCE_GENERATOR")) { generator = g; } - this->WriteString("", 3); - (*this->BuildFileStream) << cmVS10EscapeXML(generator) - << "\n"; - if (designerResource.find(srcDir) == 0) { - designerResource = designerResource.substr(srcDir.length() + 1); - } else if (designerResource.find(binDir) == 0) { - designerResource = designerResource.substr(binDir.length() + 1); - } else { - designerResource = - cmsys::SystemTools::GetFilenameName(designerResource); + if (!generator.empty()) { + this->WriteString("", 3); + (*this->BuildFileStream) << cmVS10EscapeXML(generator) + << "\n"; + if (designerResource.find(srcDir) == 0) { + designerResource = designerResource.substr(srcDir.length() + 1); + } else if (designerResource.find(binDir) == 0) { + designerResource = designerResource.substr(binDir.length() + 1); + } else { + designerResource = + cmsys::SystemTools::GetFilenameName(designerResource); + } + this->ConvertToWindowsSlash(designerResource); + this->WriteString("", 3); + (*this->BuildFileStream) << designerResource + << "\n"; + } + } + const cmPropertyMap& props = (*oi)->GetProperties(); + for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); + ++p) { + static const std::string propNamePrefix = "VS_CSHARP_"; + if (p->first.find(propNamePrefix.c_str()) == 0) { + std::string tagName = p->first.substr(propNamePrefix.length()); + if (!tagName.empty()) { + std::string value = props.GetPropertyValue(p->first); + if (!value.empty()) { + this->WriteString("<", 3); + (*this->BuildFileStream) << tagName << ">"; + (*this->BuildFileStream) << value; + (*this->BuildFileStream) << "\n"; + } + } } - this->ConvertToWindowsSlash(designerResource); - this->WriteString("", 3); - (*this->BuildFileStream) << designerResource << "\n"; } } @@ -1940,42 +1960,21 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags( sourceFileTags["Link"] = link; } } - // check if file is a generated .Designer.cs or .xaml.cs file - // to add additional necessary tags - const std::string fileExtension = - cmsys::SystemTools::GetFilenameExtension(f); - if (fileExtension == ".Designer.cs" || fileExtension == ".xaml.cs") { - f = f.substr(0, f.length() - fileExtension.length()); - if (sourceFileTags.find("Link") == sourceFileTags.end() && - !this->InSourceBuild) { - // add link fallback - sourceFileTags["Link"] = - cmsys::SystemTools::GetFilenameName(f) + fileExtension; - } - std::vector extensions; - extensions.push_back(".resx"); - extensions.push_back(".settings"); - extensions.push_back(".xaml"); - extensions.push_back(".cs"); - std::string dependencyExtension; - for (std::vector::iterator i = extensions.begin(); - i != extensions.end(); ++i) { - if (cmsys::SystemTools::FileExists(f + *i)) { - dependencyExtension = *i; - // There should never be more than one match. Otherwise - // one cannot tell on which match the file depends. - break; + const cmPropertyMap& props = sf.GetProperties(); + for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); + ++p) { + static const std::string propNamePrefix = "VS_CSHARP_"; + if (p->first.find(propNamePrefix.c_str()) == 0) { + std::string tagName = p->first.substr(propNamePrefix.length()); + if (!tagName.empty()) { + const std::string val = props.GetPropertyValue(p->first); + if (!val.empty()) { + sourceFileTags[tagName] = val; + } else { + sourceFileTags.erase(tagName); + } } } - if (dependencyExtension == ".resx") { - sourceFileTags["DesignTime"] = "True"; - sourceFileTags["AutoGen"] = "True"; - } else if (dependencyExtension == ".settings") { - sourceFileTags["DesignTimeSharedInput"] = "True"; - sourceFileTags["AutoGen"] = "True"; - } - sourceFileTags["DependentUpon"] = - cmsys::SystemTools::GetFilenameName(f) + dependencyExtension; } // write source file specific tags if (!sourceFileTags.empty()) { ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/manual/cmake-properties.7.rst | 1 + Help/module/CSharpUtilities.rst | 1 + Help/prop_sf/VS_CSHARP_tagname.rst | 19 ++ Help/release/3.8.rst | 5 + Modules/CSharpUtilities.cmake | 298 ++++++++++++++++++++ Source/cmSourceFile.h | 1 + Source/cmVisualStudio10TargetGenerator.cxx | 93 +++--- Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 + .../VS10Project/VsCSharpCustomTags-check.cmake | 23 ++ .../RunCMake/VS10Project/VsCSharpCustomTags.cmake | 11 + .../foo.cpp => RunCMake/VS10Project/foo.cs} | 0 12 files changed, 407 insertions(+), 47 deletions(-) create mode 100644 Help/module/CSharpUtilities.rst create mode 100644 Help/prop_sf/VS_CSHARP_tagname.rst create mode 100644 Modules/CSharpUtilities.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject/3rdparty/foo.cpp => RunCMake/VS10Project/foo.cs} (100%) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 11:24:05 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 11:24:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-692-g53c4967 Message-ID: <20170301162405.C3A97FA5BA@public.kitware.com> 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 53c496702fa99a57f8f83e60c479eb39f66b2263 (commit) via 15140222af1c415acd227c778bbb3fdc1d03fc39 (commit) via d72a73320ae4697e60d7485e953d950443345927 (commit) via 15c1cc55b4123ffb207d6f731ae5152bc99a1540 (commit) via 793a505e3cf03c6841df92f46ed0aaf15c2479d7 (commit) via 959748f1c963e9e2d44ef650a2faa3a82985655f (commit) via 92525eb7b3ad6c71610fead557185aaf8db98739 (commit) via 851638db8a5fdb9ae974ac32351bc936300b50c9 (commit) via 0abd89e0eb51b77590210f21d9095ff85771bf1d (commit) via 55f8d63cdbb15fbee9f3486f8511c7fa16edaaf3 (commit) via db431ecfe33dbfa9eb43e4edd72ebc35b2c7c563 (commit) from 4d363faaf9158c54e576552620e48ac09d102765 (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=53c496702fa99a57f8f83e60c479eb39f66b2263 commit 53c496702fa99a57f8f83e60c479eb39f66b2263 Merge: 4d363fa 1514022 Author: Brad King AuthorDate: Wed Mar 1 11:24:02 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 11:24:02 2017 -0500 Merge topic 'autogen_uic_paths' into next 15140222 Autogen: New short InfoGet functions d72a7332 Autogen: Parse enabled feature configuration only 15c1cc55 Autogen: Add missing return on error 793a505e Autogen: Rename and merge moc related methods 959748f1 Autogen: Add AUTOUIC_SEARCH_PATHS release notes 92525eb7 Autogen: Add AUTOUIC_SEARCH_PATHS documentation 851638db Autogen: Add AUTOUIC_SEARCH_PATHS test 0abd89e0 Autogen: Add AUTOUIC_SEARCH_PATHS support 55f8d63c Autogen: Add subDirPrefix function db431ecf Autogen: Merge FindInIncludeDirectories into FindIncludeFile https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=15140222af1c415acd227c778bbb3fdc1d03fc39 commit 15140222af1c415acd227c778bbb3fdc1d03fc39 Author: Sebastian Holtermann AuthorDate: Mon Feb 27 14:22:07 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:30 2017 +0100 Autogen: New short InfoGet functions diff --git a/Modules/AutogenInfo.cmake.in b/Modules/AutogenInfo.cmake.in index f8ffe91..fcecb6c 100644 --- a/Modules/AutogenInfo.cmake.in +++ b/Modules/AutogenInfo.cmake.in @@ -16,7 +16,7 @@ set(AM_QT_UIC_EXECUTABLE @_qt_uic_executable@) set(AM_QT_RCC_EXECUTABLE @_qt_rcc_executable@) # MOC settings set(AM_MOC_SKIP @_moc_skip@) -set(AM_MOC_COMPILE_DEFINITIONS @_moc_compile_defs@) +set(AM_MOC_DEFINITIONS @_moc_compile_defs@) set(AM_MOC_INCLUDES @_moc_incs@) set(AM_MOC_OPTIONS @_moc_options@) set(AM_MOC_RELAXED_MODE @_moc_relaxed_mode@) diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 5460f73..a45b3d5 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -972,7 +972,7 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( it = configMocDefines.begin(), end = configMocDefines.end(); it != end; ++it) { - infoFile << "set(AM_MOC_COMPILE_DEFINITIONS_" << it->first << " " + infoFile << "set(AM_MOC_DEFINITIONS_" << it->first << " " << it->second << ")\n"; } } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 79100fe..26dc376 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -55,20 +55,38 @@ static std::string Quoted(const std::string& text) return res; } -static std::string GetConfigDefinition(cmMakefile* makefile, - const std::string& key, - const std::string& config) +static void InfoGet(cmMakefile* makefile, const char* key, std::string& value) { - std::string keyConf = key; - if (!config.empty()) { - keyConf += "_"; - keyConf += config; + value = makefile->GetSafeDefinition(key); +} + +static void InfoGet(cmMakefile* makefile, const char* key, bool& value) +{ + value = makefile->IsOn(key); +} + +static void InfoGet(cmMakefile* makefile, const char* key, + std::vector& list) +{ + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition(key), list); +} + +static void InfoGet(cmMakefile* makefile, const char* key, + const std::string& config, std::vector& list) +{ + const char* valueConf = CM_NULLPTR; + { + std::string keyConf = key; + if (!config.empty()) { + keyConf += "_"; + keyConf += config; + } + valueConf = makefile->GetDefinition(keyConf); } - const char* valueConf = makefile->GetDefinition(keyConf); - if (valueConf != CM_NULLPTR) { - return valueConf; + if (valueConf == CM_NULLPTR) { + valueConf = makefile->GetSafeDefinition(key); } - return makefile->GetSafeDefinition(key); + cmSystemTools::ExpandListArgument(valueConf, list); } static std::string SettingsFile(const std::string& targetDirectory) @@ -328,59 +346,44 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } // - Target names - this->OriginTargetName = - makefile->GetSafeDefinition("AM_ORIGIN_TARGET_NAME"); - this->AutogenTargetName = makefile->GetSafeDefinition("AM_TARGET_NAME"); + InfoGet(makefile, "AM_TARGET_NAME", this->AutogenTargetName); + InfoGet(makefile, "AM_ORIGIN_TARGET_NAME", this->OriginTargetName); // - Files and directories - this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR"); - this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR"); - this->CurrentSourceDir = - makefile->GetSafeDefinition("AM_CMAKE_CURRENT_SOURCE_DIR"); - this->CurrentBinaryDir = - makefile->GetSafeDefinition("AM_CMAKE_CURRENT_BINARY_DIR"); - - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), - this->Sources); - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), - this->Headers); - this->IncludeProjectDirsBefore = - makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); + InfoGet(makefile, "AM_CMAKE_SOURCE_DIR", this->ProjectSourceDir); + InfoGet(makefile, "AM_CMAKE_BINARY_DIR", this->ProjectBinaryDir); + InfoGet(makefile, "AM_CMAKE_CURRENT_SOURCE_DIR", this->CurrentSourceDir); + InfoGet(makefile, "AM_CMAKE_CURRENT_BINARY_DIR", this->CurrentBinaryDir); + InfoGet(makefile, "AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE", + this->IncludeProjectDirsBefore); + InfoGet(makefile, "AM_SOURCES", this->Sources); + InfoGet(makefile, "AM_HEADERS", this->Headers); // - Qt environment - this->QtMajorVersion = makefile->GetSafeDefinition("AM_QT_VERSION_MAJOR"); - if (this->QtMajorVersion == "") { - this->QtMajorVersion = - makefile->GetSafeDefinition("AM_Qt5Core_VERSION_MAJOR"); + InfoGet(makefile, "AM_QT_VERSION_MAJOR", this->QtMajorVersion); + if (this->QtMajorVersion.empty()) { + InfoGet(makefile, "AM_Qt5Core_VERSION_MAJOR", this->QtMajorVersion); } + InfoGet(makefile, "AM_QT_MOC_EXECUTABLE", this->MocExecutable); + InfoGet(makefile, "AM_QT_UIC_EXECUTABLE", this->UicExecutable); + InfoGet(makefile, "AM_QT_RCC_EXECUTABLE", this->RccExecutable); // Check Qt version if ((this->QtMajorVersion != "4") && (this->QtMajorVersion != "5")) { this->LogError("AutoGen: Error: Unsupported Qt version: " + Quoted(this->QtMajorVersion)); return false; } - // Qt executables - this->MocExecutable = makefile->GetSafeDefinition("AM_QT_MOC_EXECUTABLE"); - this->UicExecutable = makefile->GetSafeDefinition("AM_QT_UIC_EXECUTABLE"); - this->RccExecutable = makefile->GetSafeDefinition("AM_QT_RCC_EXECUTABLE"); // - Moc if (this->MocEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_SKIP"), this->MocSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), - this->MocDefinitions); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), - this->MocIncludePaths); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); + InfoGet(makefile, "AM_MOC_SKIP", this->MocSkipList); + InfoGet(makefile, "AM_MOC_DEFINITIONS", config, this->MocDefinitions); + InfoGet(makefile, "AM_MOC_INCLUDES", config, this->MocIncludePaths); + InfoGet(makefile, "AM_MOC_OPTIONS", this->MocOptions); + InfoGet(makefile, "AM_MOC_RELAXED_MODE", this->MocRelaxedMode); { std::vector mocDependFilters; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), - mocDependFilters); + InfoGet(makefile, "AM_MOC_DEPEND_FILTERS", mocDependFilters); // Insert Q_PLUGIN_METADATA dependency filter if (this->QtMajorVersion != "4") { this->MocDependFilterPush("Q_PLUGIN_METADATA", @@ -403,24 +406,18 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( return false; } } - - this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); } // - Uic if (this->UicEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SKIP"), this->UicSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), - this->UicTargetOptions); + InfoGet(makefile, "AM_UIC_SKIP", this->UicSkipList); + InfoGet(makefile, "AM_UIC_SEARCH_PATHS", this->UicSearchPaths); + InfoGet(makefile, "AM_UIC_TARGET_OPTIONS", config, this->UicTargetOptions); { std::vector uicFilesVec; std::vector uicOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); + InfoGet(makefile, "AM_UIC_OPTIONS_FILES", uicFilesVec); + InfoGet(makefile, "AM_UIC_OPTIONS_OPTIONS", uicOptionsVec); // Compare list sizes if (uicFilesVec.size() == uicOptionsVec.size()) { for (std::vector::iterator @@ -437,22 +434,16 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( return false; } } - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), - this->UicSearchPaths); } // - Rcc if (this->RccEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); + InfoGet(makefile, "AM_RCC_SOURCES", this->RccSources); { std::vector rccFilesVec; std::vector rccOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); + InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); + InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); if (rccFilesVec.size() != rccOptionsVec.size()) { this->LogError( "AutoGen: Error: RCC files/options lists size missmatch in: " + @@ -468,8 +459,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } { std::vector rccInputLists; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); + InfoGet(makefile, "AM_RCC_INPUTS", rccInputLists); // qrc files in the end of the list may have been empty if (rccInputLists.size() < this->RccSources.size()) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d72a73320ae4697e60d7485e953d950443345927 commit d72a73320ae4697e60d7485e953d950443345927 Author: Sebastian Holtermann AuthorDate: Mon Feb 27 13:48:08 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:30 2017 +0100 Autogen: Parse enabled feature configuration only diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index cdae236..79100fe 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -332,7 +332,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( makefile->GetSafeDefinition("AM_ORIGIN_TARGET_NAME"); this->AutogenTargetName = makefile->GetSafeDefinition("AM_TARGET_NAME"); - // - Directories + // - Files and directories this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR"); this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR"); this->CurrentSourceDir = @@ -340,6 +340,13 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( this->CurrentBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_CURRENT_BINARY_DIR"); + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), + this->Sources); + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), + this->Headers); + this->IncludeProjectDirsBefore = + makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); + // - Qt environment this->QtMajorVersion = makefile->GetSafeDefinition("AM_QT_VERSION_MAJOR"); if (this->QtMajorVersion == "") { @@ -352,138 +359,140 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( Quoted(this->QtMajorVersion)); return false; } - + // Qt executables this->MocExecutable = makefile->GetSafeDefinition("AM_QT_MOC_EXECUTABLE"); this->UicExecutable = makefile->GetSafeDefinition("AM_QT_UIC_EXECUTABLE"); this->RccExecutable = makefile->GetSafeDefinition("AM_QT_RCC_EXECUTABLE"); - // - File Lists - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), - this->Sources); - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), - this->Headers); - // - Moc - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_MOC_SKIP"), - this->MocSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), - this->MocDefinitions); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), - this->MocIncludePaths); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); - { - std::vector mocDependFilters; + if (this->MocEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), mocDependFilters); - // Insert Q_PLUGIN_METADATA dependency filter - if (this->QtMajorVersion != "4") { - this->MocDependFilterPush("Q_PLUGIN_METADATA", - "[\n][ \t]*Q_PLUGIN_METADATA[ \t]*\\(" - "[^\\)]*FILE[ \t]*\"([^\"]+)\""); - } - // Insert user defined dependency filters - if ((mocDependFilters.size() % 2) == 0) { - for (std::vector::const_iterator dit = - mocDependFilters.begin(); - dit != mocDependFilters.end(); dit += 2) { - if (!this->MocDependFilterPush(*dit, *(dit + 1))) { - return false; + makefile->GetSafeDefinition("AM_MOC_SKIP"), this->MocSkipList); + cmSystemTools::ExpandListArgument( + GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), + this->MocDefinitions); + cmSystemTools::ExpandListArgument( + GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), + this->MocIncludePaths); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); + { + std::vector mocDependFilters; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), + mocDependFilters); + // Insert Q_PLUGIN_METADATA dependency filter + if (this->QtMajorVersion != "4") { + this->MocDependFilterPush("Q_PLUGIN_METADATA", + "[\n][ \t]*Q_PLUGIN_METADATA[ \t]*\\(" + "[^\\)]*FILE[ \t]*\"([^\"]+)\""); + } + // Insert user defined dependency filters + if ((mocDependFilters.size() % 2) == 0) { + for (std::vector::const_iterator dit = + mocDependFilters.begin(); + dit != mocDependFilters.end(); dit += 2) { + if (!this->MocDependFilterPush(*dit, *(dit + 1))) { + return false; + } } + } else { + this->LogError( + "AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " + "a multiple of 2"); + return false; } - } else { - this->LogError("AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " - "a multiple of 2"); - return false; } + + this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); } // - Uic - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_UIC_SKIP"), - this->UicSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), - this->UicTargetOptions); - { - std::vector uicFilesVec; - std::vector uicOptionsVec; + if (this->UicEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); + makefile->GetSafeDefinition("AM_UIC_SKIP"), this->UicSkipList); cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); - // Compare list sizes - if (uicFilesVec.size() == uicOptionsVec.size()) { - for (std::vector::iterator fileIt = uicFilesVec.begin(), - optionIt = uicOptionsVec.begin(); - fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->UicOptions[*fileIt] = *optionIt; + GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), + this->UicTargetOptions); + { + std::vector uicFilesVec; + std::vector uicOptionsVec; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); + // Compare list sizes + if (uicFilesVec.size() == uicOptionsVec.size()) { + for (std::vector::iterator + fileIt = uicFilesVec.begin(), + optionIt = uicOptionsVec.begin(); + fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->UicOptions[*fileIt] = *optionIt; + } + } else { + this->LogError( + "AutoGen: Error: Uic files/options lists size missmatch in: " + + filename); + return false; } - } else { - this->LogError( - "AutoGen: Error: Uic files/options lists size missmatch in: " + - filename); - return false; } + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), + this->UicSearchPaths); } - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), this->UicSearchPaths); // - Rcc - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); - { - std::vector rccFilesVec; - std::vector rccOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); + if (this->RccEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); - if (rccFilesVec.size() != rccOptionsVec.size()) { - this->LogError( - "AutoGen: Error: RCC files/options lists size missmatch in: " + - filename); - return false; - } - for (std::vector::iterator fileIt = rccFilesVec.begin(), - optionIt = rccOptionsVec.begin(); - fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->RccOptions[*fileIt] = *optionIt; + makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); + { + std::vector rccFilesVec; + std::vector rccOptionsVec; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); + if (rccFilesVec.size() != rccOptionsVec.size()) { + this->LogError( + "AutoGen: Error: RCC files/options lists size missmatch in: " + + filename); + return false; + } + for (std::vector::iterator fileIt = rccFilesVec.begin(), + optionIt = rccOptionsVec.begin(); + fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->RccOptions[*fileIt] = *optionIt; + } } - } - { - std::vector rccInputLists; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); + { + std::vector rccInputLists; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); - // qrc files in the end of the list may have been empty - if (rccInputLists.size() < this->RccSources.size()) { - rccInputLists.resize(this->RccSources.size()); - } - if (this->RccSources.size() != rccInputLists.size()) { - this->LogError( - "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + - filename); - return false; - } - for (std::vector::iterator fileIt = this->RccSources.begin(), - inputIt = rccInputLists.begin(); - fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); - std::vector rccInputFiles; - cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); - this->RccInputs[*fileIt] = rccInputFiles; + // qrc files in the end of the list may have been empty + if (rccInputLists.size() < this->RccSources.size()) { + rccInputLists.resize(this->RccSources.size()); + } + if (this->RccSources.size() != rccInputLists.size()) { + this->LogError( + "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + + filename); + return false; + } + for (std::vector::iterator + fileIt = this->RccSources.begin(), + inputIt = rccInputLists.begin(); + fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { + cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); + std::vector rccInputFiles; + cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); + this->RccInputs[*fileIt] = rccInputFiles; + } } } - // - Flags - this->IncludeProjectDirsBefore = - makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); - this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); - return true; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=15c1cc55b4123ffb207d6f731ae5152bc99a1540 commit 15c1cc55b4123ffb207d6f731ae5152bc99a1540 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 12:21:31 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add missing return on error diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index ddb29a6..cdae236 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -396,6 +396,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } else { this->LogError("AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " "a multiple of 2"); + return false; } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=793a505e3cf03c6841df92f46ed0aaf15c2479d7 commit 793a505e3cf03c6841df92f46ed0aaf15c2479d7 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 12:11:55 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Rename and merge moc related methods diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 756735f..ddb29a6 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -740,6 +740,7 @@ void cmQtAutoGenerators::MocFindDepends( // regular expression check if (contentText.find(filter.key) != std::string::npos) { // Run regular expression check loop + const std::string sourcePath = subDirPrefix(absFilename); const char* contentChars = contentText.c_str(); while (filter.regExp.find(contentChars)) { // Evaluate match @@ -747,7 +748,7 @@ void cmQtAutoGenerators::MocFindDepends( if (!match.empty()) { // Find the dependency file std::string incFile; - if (this->FindIncludedFile(incFile, absFilename, match)) { + if (this->MocFindIncludedFile(incFile, sourcePath, match)) { mocDepends[absFilename].insert(incFile); if (this->Verbose) { this->LogInfo("AutoMoc: Found dependency:\n " + @@ -886,7 +887,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( // Remove the moc_ part const std::string incRealBasename = incBasename.substr(4); const std::string headerToMoc = - this->FindMocHeader(scannedFileAbsPath, incRealBasename, incSubDir); + this->MocFindHeader(scannedFileAbsPath, incSubDir + incRealBasename); if (!headerToMoc.empty()) { // Register moc job mocsIncluded[headerToMoc] = incString; @@ -919,7 +920,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( } else { // In relaxed mode try to find a header instead but issue a warning const std::string headerToMoc = - this->FindMocHeader(scannedFileAbsPath, incBasename, incSubDir); + this->MocFindHeader(scannedFileAbsPath, incSubDir + incBasename); if (!headerToMoc.empty()) { // This is for KDE4 compatibility: fileToMoc = headerToMoc; @@ -1782,39 +1783,22 @@ bool cmQtAutoGenerators::FindHeader(std::string& header, return false; } -bool cmQtAutoGenerators::FindHeaderGlobal( - std::string& header, const std::string& testBasePath) const -{ - for (std::vector::const_iterator iit = - this->MocIncludePaths.begin(); - iit != this->MocIncludePaths.end(); ++iit) { - const std::string fullPath = ((*iit) + '/' + testBasePath); - if (FindHeader(header, fullPath)) { - return true; - } - } - return false; -} - -std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath, - const std::string& baseName, - const std::string& subDir) const +std::string cmQtAutoGenerators::MocFindHeader( + const std::string& sourcePath, const std::string& includeBase) const { std::string header; - do { - if (!subDir.empty()) { - if (this->FindHeader(header, basePath + subDir + baseName)) { + // Search in vicinity of the source + if (!this->FindHeader(header, sourcePath + includeBase)) { + // Search in include directories + for (std::vector::const_iterator iit = + this->MocIncludePaths.begin(); + iit != this->MocIncludePaths.end(); ++iit) { + const std::string fullPath = ((*iit) + '/' + includeBase); + if (FindHeader(header, fullPath)) { break; } } - if (this->FindHeader(header, basePath + baseName)) { - break; - } - // Try include directories - if (this->FindHeaderGlobal(header, subDir + baseName)) { - break; - } - } while (false); + } // Sanitize if (!header.empty()) { header = cmsys::SystemTools::GetRealPath(header); @@ -1822,14 +1806,14 @@ std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath, return header; } -bool cmQtAutoGenerators::FindIncludedFile( - std::string& absFile, const std::string& sourceFile, +bool cmQtAutoGenerators::MocFindIncludedFile( + std::string& absFile, const std::string& sourcePath, const std::string& includeString) const { bool success = false; // Search in vicinity of the source { - std::string testPath = subDirPrefix(sourceFile); + std::string testPath = sourcePath; testPath += includeString; if (cmsys::SystemTools::FileExists(testPath.c_str())) { absFile = cmsys::SystemTools::GetRealPath(testPath); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 46c86ff..3bff2b2 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -144,13 +144,11 @@ private: bool MakeParentDirectory(const std::string& filename) const; bool FindHeader(std::string& header, const std::string& testBasePath) const; - bool FindHeaderGlobal(std::string& header, - const std::string& testBasePath) const; - std::string FindMocHeader(const std::string& basePath, - const std::string& baseName, - const std::string& subDir) const; - bool FindIncludedFile(std::string& absFile, const std::string& sourceFile, - const std::string& includeString) const; + + std::string MocFindHeader(const std::string& sourcePath, + const std::string& includeBase) const; + bool MocFindIncludedFile(std::string& absFile, const std::string& sourceFile, + const std::string& includeString) const; // - Target names std::string OriginTargetName; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=959748f1c963e9e2d44ef650a2faa3a82985655f commit 959748f1c963e9e2d44ef650a2faa3a82985655f Author: Sebastian Holtermann AuthorDate: Sat Feb 25 14:37:09 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add AUTOUIC_SEARCH_PATHS release notes diff --git a/Help/release/dev/Autogen_uic_paths.rst b/Help/release/dev/Autogen_uic_paths.rst new file mode 100644 index 0000000..0893194 --- /dev/null +++ b/Help/release/dev/Autogen_uic_paths.rst @@ -0,0 +1,10 @@ +AutoGen uic paths +----------------- + +* Variable :variable:`CMAKE_AUTOUIC_SEARCH_PATHS` was introduced to + allow :variable:`CMAKE_AUTOUIC` to search for ``foo.ui`` in more + places than the vicinity of the ``ui_foo.h`` including file. + +* The new target property :prop_tgt:`AUTOUIC_SEARCH_PATHS` was introduced to + allow :prop_tgt:`AUTOUIC` to search for ``foo.ui`` in more + places than the vicinity of the ``ui_foo.h`` including file. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92525eb7b3ad6c71610fead557185aaf8db98739 commit 92525eb7b3ad6c71610fead557185aaf8db98739 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 23:13:39 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add AUTOUIC_SEARCH_PATHS documentation diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index f31b0f8..3db2e41 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -121,6 +121,7 @@ Properties on Targets /prop_tgt/AUTOMOC /prop_tgt/AUTOUIC /prop_tgt/AUTOUIC_OPTIONS + /prop_tgt/AUTOUIC_SEARCH_PATHS /prop_tgt/AUTORCC /prop_tgt/AUTORCC_OPTIONS /prop_tgt/BINARY_DIR diff --git a/Help/manual/cmake-qt.7.rst b/Help/manual/cmake-qt.7.rst index 3b9931e..3b95b05 100644 --- a/Help/manual/cmake-qt.7.rst +++ b/Help/manual/cmake-qt.7.rst @@ -104,7 +104,9 @@ be run, and to create rules to execute ``uic`` at the appropriate time. If a preprocessor ``#include`` directive is found which matches ``ui_.h``, and a ``.ui`` file exists, then ``uic`` will -be executed to generate the appropriate file. +be executed to generate the appropriate file. The ``.ui`` file is +searched for first in the vicinity of including file and afterwards in the +optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target. The generated generated ``ui_*.h`` files are placed in the ``/_autogen/include`` directory which is diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 259d87b..73fd73c 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -263,6 +263,7 @@ Variables that Control the Build /variable/CMAKE_AUTORCC_OPTIONS /variable/CMAKE_AUTOUIC /variable/CMAKE_AUTOUIC_OPTIONS + /variable/CMAKE_AUTOUIC_SEARCH_PATHS /variable/CMAKE_BUILD_RPATH /variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR /variable/CMAKE_BUILD_WITH_INSTALL_RPATH diff --git a/Help/prop_tgt/AUTOUIC.rst b/Help/prop_tgt/AUTOUIC.rst index fbf24c3..91d95e5 100644 --- a/Help/prop_tgt/AUTOUIC.rst +++ b/Help/prop_tgt/AUTOUIC.rst @@ -10,8 +10,13 @@ Qt4 and Qt5 are supported. When this property is ``ON``, CMake will scan the source files at build time and invoke ``uic`` accordingly. If an ``#include`` statement like -``#include "ui_foo.h"`` is found in ``foo.cpp``, a ``foo.ui`` file is -expected next to ``foo.cpp``, and ``uic`` is run on the ``foo.ui`` file. +``#include "ui_foo.h"`` is found in ``source.cpp``, a ``foo.ui`` file is +searched for first in the vicinity of ``source.cpp`` and afterwards in the +optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target. +``uic`` is run on the ``foo.ui`` file to generate ``ui_foo.h`` in the directory +``/_autogen/include``, +which is added to the target's :prop_tgt:`INCLUDE_DIRECTORIES` automatically. + This property is initialized by the value of the :variable:`CMAKE_AUTOUIC` variable if it is set when a target is created. diff --git a/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/Help/prop_tgt/AUTOUIC_OPTIONS.rst index dc3bee5..9fb042e 100644 --- a/Help/prop_tgt/AUTOUIC_OPTIONS.rst +++ b/Help/prop_tgt/AUTOUIC_OPTIONS.rst @@ -1,7 +1,7 @@ AUTOUIC_OPTIONS --------------- -Additional options for uic when using :prop_tgt:`AUTOUIC` +Additional options for ``uic`` when using :prop_tgt:`AUTOUIC` This property holds additional command line options which will be used when ``uic`` is executed during the build via :prop_tgt:`AUTOUIC`, i.e. it is diff --git a/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst b/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst new file mode 100644 index 0000000..96d9f89 --- /dev/null +++ b/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst @@ -0,0 +1,12 @@ +AUTOUIC_SEARCH_PATHS +-------------------- + +Search path list used by :prop_tgt:`AUTOUIC` to find included +``.ui`` files. + +This property is initialized by the value of the +:variable:`CMAKE_AUTOUIC_SEARCH_PATHS` variable if it is set +when a target is created. Otherwise it is empty. + +See the :manual:`cmake-qt(7)` manual for more information on using CMake +with Qt. diff --git a/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst b/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst new file mode 100644 index 0000000..aa132bf --- /dev/null +++ b/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst @@ -0,0 +1,11 @@ +CMAKE_AUTOUIC_SEARCH_PATHS +-------------------------- + +Search path list used by :variable:`CMAKE_AUTOUIC` to find included +``.ui`` files. + +This variable is used to initialize the :prop_tgt:`AUTOUIC_SEARCH_PATHS` +property on all the targets. See that target property for additional +information. + +By default it is empty. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=851638db8a5fdb9ae974ac32351bc936300b50c9 commit 851638db8a5fdb9ae974ac32351bc936300b50c9 Author: Sebastian Holtermann AuthorDate: Thu Feb 23 21:36:10 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add AUTOUIC_SEARCH_PATHS test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index dc631c6..4960472 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -287,5 +287,9 @@ if (NOT QT_TEST_VERSION STREQUAL 4) endif() # -- Test +# Tests various .ui include directories +add_subdirectory(uicInclude) + +# -- Test # Complex test case add_subdirectory(complex) diff --git a/Tests/QtAutogen/uicInclude/CMakeLists.txt b/Tests/QtAutogen/uicInclude/CMakeLists.txt new file mode 100644 index 0000000..f62ebb0 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/CMakeLists.txt @@ -0,0 +1,8 @@ +# Test moc include patterns + +set(CMAKE_AUTOUIC_SEARCH_PATHS "dirA") + +add_executable(uicInclude main.cpp) +target_link_libraries(uicInclude ${QT_LIBRARIES}) +set_target_properties(uicInclude PROPERTIES AUTOUIC ON) +set_property(TARGET uicInclude APPEND PROPERTY AUTOUIC_SEARCH_PATHS "dirB") diff --git a/Tests/QtAutogen/uicInclude/PageC.ui b/Tests/QtAutogen/uicInclude/PageC.ui new file mode 100644 index 0000000..bb2fb5e --- /dev/null +++ b/Tests/QtAutogen/uicInclude/PageC.ui @@ -0,0 +1,24 @@ + + + PageC + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/dirA/PageA.ui b/Tests/QtAutogen/uicInclude/dirA/PageA.ui new file mode 100644 index 0000000..dd81802 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/dirA/PageA.ui @@ -0,0 +1,24 @@ + + + PageA + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui b/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui new file mode 100644 index 0000000..fa6dfa6 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui @@ -0,0 +1,24 @@ + + + PageB + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/main.cpp b/Tests/QtAutogen/uicInclude/main.cpp new file mode 100644 index 0000000..4ca66a7 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/main.cpp @@ -0,0 +1,10 @@ + +#include "main.hpp" + +int main(int argv, char** args) +{ + return 0; +} + +#include "sub/ui_PageB.h" +#include "ui_PageC.h" diff --git a/Tests/QtAutogen/uicInclude/main.hpp b/Tests/QtAutogen/uicInclude/main.hpp new file mode 100644 index 0000000..58ddc26 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/main.hpp @@ -0,0 +1,6 @@ +#ifndef MAIN_HPP +#define MAIN_HPP + +#include "ui_PageA.h" + +#endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0abd89e0eb51b77590210f21d9095ff85771bf1d commit 0abd89e0eb51b77590210f21d9095ff85771bf1d Author: Sebastian Holtermann AuthorDate: Thu Feb 23 19:35:48 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add AUTOUIC_SEARCH_PATHS support Closes #15227 diff --git a/Modules/AutogenInfo.cmake.in b/Modules/AutogenInfo.cmake.in index fc5024f..f8ffe91 100644 --- a/Modules/AutogenInfo.cmake.in +++ b/Modules/AutogenInfo.cmake.in @@ -26,6 +26,7 @@ set(AM_UIC_SKIP @_uic_skip@) set(AM_UIC_TARGET_OPTIONS @_uic_target_options@) set(AM_UIC_OPTIONS_FILES @_qt_uic_options_files@) set(AM_UIC_OPTIONS_OPTIONS @_qt_uic_options_options@) +set(AM_UIC_SEARCH_PATHS @_uic_search_paths@) # RCC settings set(AM_RCC_SOURCES @_rcc_files@ ) set(AM_RCC_INPUTS @_rcc_inputs@) diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index de18265..5460f73 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -306,6 +306,19 @@ static void UicSetupAutoTarget( AddDefinitionEscaped(makefile, "_uic_skip", uicSkipList); + // Uic search paths + { + std::vector uicSearchPaths; + cmSystemTools::ExpandListArgument( + GetSafeProperty(target, "AUTOUIC_SEARCH_PATHS"), uicSearchPaths); + const std::string srcDir = makefile->GetCurrentSourceDirectory(); + for (std::vector::iterator it = uicSearchPaths.begin(); + it != uicSearchPaths.end(); ++it) { + *it = cmSystemTools::CollapseFullPath(*it, srcDir); + } + AddDefinitionEscaped(makefile, "_uic_search_paths", uicSearchPaths); + } + // Uic target options { std::string _uic_opts; diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 43cae04..756735f 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -412,19 +412,23 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); cmSystemTools::ExpandListArgument( makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); - if (uicFilesVec.size() != uicOptionsVec.size()) { + // Compare list sizes + if (uicFilesVec.size() == uicOptionsVec.size()) { + for (std::vector::iterator fileIt = uicFilesVec.begin(), + optionIt = uicOptionsVec.begin(); + fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->UicOptions[*fileIt] = *optionIt; + } + } else { this->LogError( "AutoGen: Error: Uic files/options lists size missmatch in: " + filename); return false; } - for (std::vector::iterator fileIt = uicFilesVec.begin(), - optionIt = uicOptionsVec.begin(); - fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->UicOptions[*fileIt] = *optionIt; - } } + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), this->UicSearchPaths); // - Rcc cmSystemTools::ExpandListArgument( @@ -831,12 +835,7 @@ void cmQtAutoGenerators::UicParseContent( const char* contentChars = contentText.c_str(); if (strstr(contentChars, "ui_") != CM_NULLPTR) { while (this->RegExpUicInclude.find(contentChars)) { - const std::string currentUi = this->RegExpUicInclude.match(1); - const std::string basename = - cmsys::SystemTools::GetFilenameWithoutLastExtension(currentUi); - // basename should be the part of the ui filename used for - // finding the correct header, so we need to remove the ui_ part - uisIncluded[absFilename].push_back(basename.substr(3)); + uisIncluded[absFilename].push_back(this->RegExpUicInclude.match(1)); contentChars += this->RegExpUicInclude.end(); } } @@ -1325,6 +1324,36 @@ bool cmQtAutoGenerators::MocGenerateFile( return mocGenerated; } +bool cmQtAutoGenerators::UicFindIncludedFile(std::string& absFile, + const std::string& sourceFile, + const std::string& includeString) +{ + bool success = false; + // Search in vicinity of the source + { + std::string testPath = subDirPrefix(sourceFile); + testPath += includeString; + if (cmsys::SystemTools::FileExists(testPath.c_str())) { + absFile = cmsys::SystemTools::GetRealPath(testPath); + success = true; + } + } + // Search in include directories + if (!success) { + for (std::vector::const_iterator iit = + this->UicSearchPaths.begin(); + iit != this->UicSearchPaths.end(); ++iit) { + const std::string fullPath = ((*iit) + '/' + includeString); + if (cmsys::SystemTools::FileExists(fullPath.c_str())) { + absFile = cmsys::SystemTools::GetRealPath(fullPath); + success = true; + break; + } + } + } + return success; +} + bool cmQtAutoGenerators::UicGenerateAll( const std::map >& uisIncluded) { @@ -1333,46 +1362,57 @@ bool cmQtAutoGenerators::UicGenerateAll( } // single map with input / output names - std::map > uiGenMap; - std::map testMap; - for (std::map >::const_iterator it = - uisIncluded.begin(); - it != uisIncluded.end(); ++it) { - // source file path - std::string sourcePath = cmsys::SystemTools::GetFilenamePath(it->first); - sourcePath += '/'; - // insert new map for source file an use new reference - uiGenMap[it->first] = std::map(); - std::map& sourceMap = uiGenMap[it->first]; - for (std::vector::const_iterator sit = it->second.begin(); - sit != it->second.end(); ++sit) { - const std::string& uiFileName = *sit; - const std::string uiInputFile = sourcePath + uiFileName + ".ui"; - const std::string uiOutputFile = "ui_" + uiFileName + ".h"; - sourceMap[uiInputFile] = uiOutputFile; - testMap[uiInputFile] = uiOutputFile; - } - } - - // look for name collisions + std::map > sourceGenMap; { - std::multimap collisions; - if (this->NameCollisionTest(testMap, collisions)) { - std::ostringstream ost; - ost << "AutoUic: Error: The same ui_NAME.h file will be generated " - "from different sources.\n" - "To avoid this error rename the source files.\n"; - this->LogErrorNameCollision(ost.str(), collisions); - return false; + // Collision lookup map + std::map testMap; + // Compile maps + for (std::map >::const_iterator sit = + uisIncluded.begin(); + sit != uisIncluded.end(); ++sit) { + const std::string& source(sit->first); + const std::vector& sourceIncs(sit->second); + // insert new source/destination map + std::map& uiGenMap = sourceGenMap[source]; + for (std::vector::const_iterator uit = sourceIncs.begin(); + uit != sourceIncs.end(); ++uit) { + // Remove ui_ from the begin filename by substr() + const std::string uiBasePath = subDirPrefix(*uit); + const std::string uiBaseName = + cmsys::SystemTools::GetFilenameWithoutLastExtension(*uit).substr(3); + const std::string searchFileName = uiBasePath + uiBaseName + ".ui"; + std::string uiInputFile; + if (UicFindIncludedFile(uiInputFile, source, searchFileName)) { + std::string uiOutputFile = uiBasePath + "ui_" + uiBaseName + ".h"; + cmSystemTools::ReplaceString(uiOutputFile, "..", "__"); + uiGenMap[uiInputFile] = uiOutputFile; + testMap[uiInputFile] = uiOutputFile; + } else { + this->LogError("AutoUic: Error: " + Quoted(sit->first) + + "\nCould not find " + Quoted(searchFileName)); + return false; + } + } + } + // look for name collisions + { + std::multimap collisions; + if (this->NameCollisionTest(testMap, collisions)) { + std::ostringstream ost; + ost << "AutoUic: Error: The same ui_NAME.h file will be generated " + "from different sources.\n" + "To avoid this error rename the source files.\n"; + this->LogErrorNameCollision(ost.str(), collisions); + return false; + } } } - testMap.clear(); // generate ui files for (std::map >::const_iterator it = - uiGenMap.begin(); - it != uiGenMap.end(); ++it) { + sourceGenMap.begin(); + it != sourceGenMap.end(); ++it) { for (std::map::const_iterator sit = it->second.begin(); sit != it->second.end(); ++sit) { @@ -1415,15 +1455,15 @@ bool cmQtAutoGenerators::UicGenerateFile(const std::string& realName, std::vector cmd; cmd.push_back(this->UicExecutable); { - std::vector opts = this->UicTargetOptions; + std::vector allOpts = this->UicTargetOptions; std::map::const_iterator optionIt = this->UicOptions.find(uiInputFile); if (optionIt != this->UicOptions.end()) { std::vector fileOpts; cmSystemTools::ExpandListArgument(optionIt->second, fileOpts); - UicMergeOptions(opts, fileOpts, (this->QtMajorVersion == "5")); + UicMergeOptions(allOpts, fileOpts, (this->QtMajorVersion == "5")); } - cmd.insert(cmd.end(), opts.begin(), opts.end()); + cmd.insert(cmd.end(), allOpts.begin(), allOpts.end()); } cmd.push_back("-o"); cmd.push_back(uicFileAbs); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index f9b9083..46c86ff 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -111,6 +111,8 @@ private: const std::map >& mocDepends); // - Uic file generation + bool UicFindIncludedFile(std::string& absFile, const std::string& sourceFile, + const std::string& includeString); bool UicGenerateAll( const std::map >& includedUis); bool UicGenerateFile(const std::string& realName, @@ -184,6 +186,7 @@ private: std::vector UicSkipList; std::vector UicTargetOptions; std::map UicOptions; + std::vector UicSearchPaths; // - Rcc std::vector RccSources; std::map RccOptions; diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 0f3d91b..c360c19 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -248,6 +248,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, this->SetPropertyDefault("AUTOMOC_DEPEND_FILTERS", CM_NULLPTR); this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", CM_NULLPTR); this->SetPropertyDefault("AUTOUIC_OPTIONS", CM_NULLPTR); + this->SetPropertyDefault("AUTOUIC_SEARCH_PATHS", CM_NULLPTR); this->SetPropertyDefault("AUTORCC_OPTIONS", CM_NULLPTR); this->SetPropertyDefault("LINK_DEPENDS_NO_SHARED", CM_NULLPTR); this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", CM_NULLPTR); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55f8d63cdbb15fbee9f3486f8511c7fa16edaaf3 commit 55f8d63cdbb15fbee9f3486f8511c7fa16edaaf3 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 11:41:50 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:29 2017 +0100 Autogen: Add subDirPrefix function diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 902e872..43cae04 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -94,6 +94,15 @@ static void SettingWrite(std::ostream& ostr, const char* key, } } +std::string subDirPrefix(const std::string fileName) +{ + std::string res(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!res.empty()) { + res += '/'; + } + return res; +} + static bool FileNameIsUnique(const std::string& filePath, const std::map& fileMap) { @@ -845,8 +854,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( this->LogInfo("AutoMoc: Checking " + absFilename); } - const std::string scannedFileAbsPath = - cmsys::SystemTools::GetFilenamePath(absFilename) + '/'; + const std::string scannedFileAbsPath = subDirPrefix(absFilename); const std::string scannedFileBasename = cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename); @@ -865,13 +873,9 @@ bool cmQtAutoGenerators::MocParseSourceContent( while (this->RegExpMocInclude.find(contentChars)) { const std::string incString = this->RegExpMocInclude.match(1); // Basename of the moc include + const std::string incSubDir(subDirPrefix(incString)); const std::string incBasename = cmsys::SystemTools::GetFilenameWithoutLastExtension(incString); - std::string incSubDir; - if (incString.find_first_of('/') != std::string::npos) { - incSubDir = cmsys::SystemTools::GetFilenamePath(incString); - incSubDir += '/'; - } // If the moc include is of the moc_foo.cpp style we expect // the Q_OBJECT class declaration in a header file. @@ -1055,8 +1059,7 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile( { std::string basepaths[2]; { - std::string bpath = cmsys::SystemTools::GetFilenamePath(absFilename); - bpath += '/'; + std::string bpath = subDirPrefix(absFilename); bpath += cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename); // search for default header files and private header files basepaths[0] = bpath; @@ -1234,14 +1237,14 @@ bool cmQtAutoGenerators::MocGenerateAll( */ bool cmQtAutoGenerators::MocGenerateFile( const std::string& sourceFile, const std::string& mocFileName, - const std::string& subDirPrefix, + const std::string& subDir, const std::map >& mocDepends) { bool mocGenerated = false; bool generateMoc = this->GenerateAllMoc; const std::string mocFileRel = - this->AutogenBuildSubDir + subDirPrefix + mocFileName; + this->AutogenBuildSubDir + subDir + mocFileName; const std::string mocFileAbs = this->CurrentBinaryDir + mocFileRel; if (!generateMoc) { @@ -1786,8 +1789,7 @@ bool cmQtAutoGenerators::FindIncludedFile( bool success = false; // Search in vicinity of the source { - std::string testPath = cmSystemTools::GetFilenamePath(sourceFile); - testPath += '/'; + std::string testPath = subDirPrefix(sourceFile); testPath += includeString; if (cmsys::SystemTools::FileExists(testPath.c_str())) { absFile = cmsys::SystemTools::GetRealPath(testPath); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index b83edf7..f9b9083 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -107,7 +107,7 @@ private: const std::map >& mocDepends); bool MocGenerateFile( const std::string& sourceFile, const std::string& mocFileName, - const std::string& subDirPrefix, + const std::string& subDir, const std::map >& mocDepends); // - Uic file generation https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=db431ecfe33dbfa9eb43e4edd72ebc35b2c7c563 commit db431ecfe33dbfa9eb43e4edd72ebc35b2c7c563 Author: Sebastian Holtermann AuthorDate: Thu Feb 23 19:44:29 2017 +0100 Commit: Sebastian Holtermann CommitDate: Wed Mar 1 15:30:28 2017 +0100 Autogen: Merge FindInIncludeDirectories into FindIncludeFile diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index e7e456a..902e872 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -733,9 +733,8 @@ void cmQtAutoGenerators::MocFindDepends( const std::string match = filter.regExp.match(1); if (!match.empty()) { // Find the dependency file - const std::string incFile = - this->FindIncludedFile(absFilename, match); - if (!incFile.empty()) { + std::string incFile; + if (this->FindIncludedFile(incFile, absFilename, match)) { mocDepends[absFilename].insert(incFile); if (this->Verbose) { this->LogInfo("AutoMoc: Found dependency:\n " + @@ -1780,40 +1779,35 @@ std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath, return header; } -std::string cmQtAutoGenerators::FindIncludedFile( - const std::string& sourceFile, const std::string& includeString) const +bool cmQtAutoGenerators::FindIncludedFile( + std::string& absFile, const std::string& sourceFile, + const std::string& includeString) const { + bool success = false; // Search in vicinity of the source { std::string testPath = cmSystemTools::GetFilenamePath(sourceFile); testPath += '/'; testPath += includeString; if (cmsys::SystemTools::FileExists(testPath.c_str())) { - return cmsys::SystemTools::GetRealPath(testPath); + absFile = cmsys::SystemTools::GetRealPath(testPath); + success = true; } } - // Search globally - return FindInIncludeDirectories(includeString); -} - -/** - * @brief Tries to find a file in the include directories - * @return True on success - */ -std::string cmQtAutoGenerators::FindInIncludeDirectories( - const std::string& includeString) const -{ - std::string res; - for (std::vector::const_iterator iit = - this->MocIncludePaths.begin(); - iit != this->MocIncludePaths.end(); ++iit) { - const std::string fullPath = ((*iit) + '/' + includeString); - if (cmsys::SystemTools::FileExists(fullPath.c_str())) { - res = cmsys::SystemTools::GetRealPath(fullPath); - break; + // Search in include directories + if (!success) { + for (std::vector::const_iterator iit = + this->MocIncludePaths.begin(); + iit != this->MocIncludePaths.end(); ++iit) { + const std::string fullPath = ((*iit) + '/' + includeString); + if (cmsys::SystemTools::FileExists(fullPath.c_str())) { + absFile = cmsys::SystemTools::GetRealPath(fullPath); + success = true; + break; + } } } - return res; + return success; } /** diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index e4b7f60..b83edf7 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -147,9 +147,8 @@ private: std::string FindMocHeader(const std::string& basePath, const std::string& baseName, const std::string& subDir) const; - std::string FindIncludedFile(const std::string& sourceFile, - const std::string& includeString) const; - std::string FindInIncludeDirectories(const std::string& includeString) const; + bool FindIncludedFile(std::string& absFile, const std::string& sourceFile, + const std::string& includeString) const; // - Target names std::string OriginTargetName; ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/manual/cmake-qt.7.rst | 4 +- Help/manual/cmake-variables.7.rst | 1 + Help/prop_tgt/AUTOUIC.rst | 9 +- Help/prop_tgt/AUTOUIC_OPTIONS.rst | 2 +- Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst | 12 + Help/release/dev/Autogen_uic_paths.rst | 10 + Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst | 11 + Modules/AutogenInfo.cmake.in | 3 +- Source/cmQtAutoGeneratorInitializer.cxx | 15 +- Source/cmQtAutoGenerators.cxx | 516 ++++++++++---------- Source/cmQtAutoGenerators.h | 18 +- Source/cmTarget.cxx | 1 + Tests/QtAutogen/CMakeLists.txt | 4 + Tests/QtAutogen/uicInclude/CMakeLists.txt | 8 + .../{skipSource/uigen1.ui => uicInclude/PageC.ui} | 4 +- .../uigen1.ui => uicInclude/dirA/PageA.ui} | 4 +- .../uigen1.ui => uicInclude/dirB/sub/PageB.ui} | 4 +- Tests/QtAutogen/uicInclude/main.cpp | 10 + Tests/QtAutogen/uicInclude/main.hpp | 6 + 20 files changed, 374 insertions(+), 269 deletions(-) create mode 100644 Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst create mode 100644 Help/release/dev/Autogen_uic_paths.rst create mode 100644 Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst create mode 100644 Tests/QtAutogen/uicInclude/CMakeLists.txt copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/PageC.ui} (87%) copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/dirA/PageA.ui} (87%) copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/dirB/sub/PageB.ui} (87%) create mode 100644 Tests/QtAutogen/uicInclude/main.cpp create mode 100644 Tests/QtAutogen/uicInclude/main.hpp hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 12:35:35 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 12:35:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-695-g250ee3c Message-ID: <20170301173535.15EFDFA5AB@public.kitware.com> 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 250ee3ced01448ab865b36de56278afb850d0a94 (commit) via 10c044c33862792667f6fc036c397d56f9d7530b (commit) via 49c9759abb0e3ebe7a1597ca7acbe51330f94583 (commit) from 53c496702fa99a57f8f83e60c479eb39f66b2263 (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=250ee3ced01448ab865b36de56278afb850d0a94 commit 250ee3ced01448ab865b36de56278afb850d0a94 Merge: 53c4967 10c044c Author: Brad King AuthorDate: Wed Mar 1 12:35:33 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 12:35:33 2017 -0500 Merge topic 'implicit-dir-symlinks' into next 10c044c3 cmOrderDirectories: Consider symlinks when checking implicit directories 49c9759a cmOrderDirectories: Factor out implicit directory check https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=10c044c33862792667f6fc036c397d56f9d7530b commit 10c044c33862792667f6fc036c397d56f9d7530b Author: Brad King AuthorDate: Wed Mar 1 11:55:51 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:34:07 2017 -0500 cmOrderDirectories: Consider symlinks when checking implicit directories When checking whether a directory is "implicit" (e.g. implicit link directory or implicit rpath directory), resolve the real path of both sides of the comparison. Otherwise we will not recognize paths like `/usr/lib32` as implicit when `/usr/lib` is implicit and `lib32` is actually a symlink to `lib`. This can lead to addition of unnecessary entries to the RPATH of a binary, for example. Fixes: #16682 diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index d93debe..dfba80e 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -345,12 +345,17 @@ void cmOrderDirectories::AddLanguageDirectories( void cmOrderDirectories::SetImplicitDirectories( std::set const& implicitDirs) { - this->ImplicitDirectories = implicitDirs; + this->ImplicitDirectories.clear(); + for (std::set::iterator i = implicitDirs.begin(); + i != implicitDirs.end(); ++i) { + this->ImplicitDirectories.insert(this->GetRealPath(*i)); + } } bool cmOrderDirectories::IsImplicitDirectory(std::string const& dir) { - return this->ImplicitDirectories.find(dir) != + std::string const& real = this->GetRealPath(dir); + return this->ImplicitDirectories.find(real) != this->ImplicitDirectories.end(); } diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 9dc540f..e1297fa 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -153,6 +153,9 @@ add_RunCMake_test(TargetPropertyGeneratorExpressions) add_RunCMake_test(Languages) add_RunCMake_test(LinkStatic) add_RunCMake_test(ObjectLibrary) +if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + add_RunCMake_test(RuntimePath) +endif() add_RunCMake_test(Swift) add_RunCMake_test(TargetObjects) add_RunCMake_test(TargetSources) diff --git a/Tests/RunCMake/RuntimePath/A.c b/Tests/RunCMake/RuntimePath/A.c new file mode 100644 index 0000000..e9d4195 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/A.c @@ -0,0 +1,4 @@ +int libA(void) +{ + return 0; +} diff --git a/Tests/RunCMake/RuntimePath/CMakeLists.txt b/Tests/RunCMake/RuntimePath/CMakeLists.txt new file mode 100644 index 0000000..a640c56 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.7) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake new file mode 100644 index 0000000..a9a7f05 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake @@ -0,0 +1,18 @@ +include(RunCMake) + + +function(run_SymlinkImplicit) + # Use a single build tree for a few tests without cleaning. + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SymlinkImplicit-build) + set(RunCMake_TEST_NO_CLEAN 1) + if(RunCMake_GENERATOR MATCHES "Make|Ninja") + set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) + endif() + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + run_cmake(SymlinkImplicit) + run_cmake_command(SymlinkImplicit-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(SymlinkImplicitCheck + ${CMAKE_COMMAND} -Ddir=${RunCMake_TEST_BINARY_DIR} -P ${RunCMake_SOURCE_DIR}/SymlinkImplicitCheck.cmake) +endfunction() +run_SymlinkImplicit() diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake new file mode 100644 index 0000000..6578f8f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake @@ -0,0 +1,17 @@ +enable_language(C) + +set(lib_dir ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(lib_link ${CMAKE_CURRENT_BINARY_DIR}/libLink) +set(lib_always ${CMAKE_CURRENT_BINARY_DIR}/libAlways) +file(MAKE_DIRECTORY ${lib_dir}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_link}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_always}) + +add_library(A SHARED A.c) +list(APPEND CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${lib_dir}) +set_property(TARGET A PROPERTY LIBRARY_OUTPUT_DIRECTORY ${lib_link}) + +add_executable(exe main.c) +target_link_libraries(exe A) +set_property(TARGET exe PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) +set_property(TARGET exe PROPERTY BUILD_RPATH ${lib_always}) diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt new file mode 100644 index 0000000..ad51fd3 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -0,0 +1,18 @@ +^CMake Error at .*/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake:[0-9]+ \(file\): + file RPATH_CHANGE could not write new RPATH: + + old-should-not-exist + + to the file: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe + + The current RUNPATH is: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways + + which does not contain: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink + + as was expected\.$ diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake new file mode 100644 index 0000000..d34742e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake @@ -0,0 +1,2 @@ +file(COPY ${dir}/bin/exe DESTINATION ${dir}) +file(RPATH_CHANGE FILE "${dir}/exe" OLD_RPATH "${dir}/libLink" NEW_RPATH "old-should-not-exist") diff --git a/Tests/RunCMake/RuntimePath/main.c b/Tests/RunCMake/RuntimePath/main.c new file mode 100644 index 0000000..8488f4e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49c9759abb0e3ebe7a1597ca7acbe51330f94583 commit 49c9759abb0e3ebe7a1597ca7acbe51330f94583 Author: Brad King AuthorDate: Wed Mar 1 11:55:37 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:34:07 2017 -0500 cmOrderDirectories: Factor out implicit directory check diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index 7744a5a..d93debe 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -287,8 +287,7 @@ void cmOrderDirectories::AddRuntimeLibrary(std::string const& fullPath, } } - if (this->ImplicitDirectories.find(dir) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(dir)) { this->ImplicitDirEntries.push_back( new cmOrderDirectoriesConstraintSOName(this, fullPath, soname)); return; @@ -316,8 +315,7 @@ void cmOrderDirectories::AddLinkLibrary(std::string const& fullPath) // Implicit link directories need special handling. if (!this->ImplicitDirectories.empty()) { std::string dir = cmSystemTools::GetFilenamePath(fullPath); - if (this->ImplicitDirectories.find(dir) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(dir)) { this->ImplicitDirEntries.push_back( new cmOrderDirectoriesConstraintLibrary(this, fullPath)); return; @@ -350,6 +348,12 @@ void cmOrderDirectories::SetImplicitDirectories( this->ImplicitDirectories = implicitDirs; } +bool cmOrderDirectories::IsImplicitDirectory(std::string const& dir) +{ + return this->ImplicitDirectories.find(dir) != + this->ImplicitDirectories.end(); +} + void cmOrderDirectories::SetLinkExtensionInfo( std::vector const& linkExtensions, std::string const& removeExtRegex) @@ -394,8 +398,7 @@ void cmOrderDirectories::AddOriginalDirectories( for (std::vector::const_iterator di = dirs.begin(); di != dirs.end(); ++di) { // We never explicitly specify implicit link directories. - if (this->ImplicitDirectories.find(*di) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(*di)) { continue; } diff --git a/Source/cmOrderDirectories.h b/Source/cmOrderDirectories.h index 90a67e7..d9e0126 100644 --- a/Source/cmOrderDirectories.h +++ b/Source/cmOrderDirectories.h @@ -82,6 +82,8 @@ private: // Compare directories after resolving symlinks. bool IsSameDirectory(std::string const& l, std::string const& r); + bool IsImplicitDirectory(std::string const& dir); + std::string const& GetRealPath(std::string const& dir); std::map RealPaths; ----------------------------------------------------------------------- Summary of changes: Source/cmOrderDirectories.cxx | 22 +++++++++++++------- Source/cmOrderDirectories.h | 2 ++ Tests/RunCMake/CMakeLists.txt | 3 +++ .../RunCMake/RuntimePath/A.c | 2 +- .../{Cpplint => RuntimePath}/CMakeLists.txt | 0 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake | 18 ++++++++++++++++ Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake | 17 +++++++++++++++ .../SymlinkImplicitCheck-result.txt} | 0 .../RuntimePath/SymlinkImplicitCheck-stderr.txt | 18 ++++++++++++++++ .../RuntimePath/SymlinkImplicitCheck.cmake | 2 ++ .../RuntimePath}/main.c | 0 11 files changed, 76 insertions(+), 8 deletions(-) copy Modules/DummyCXXFile.cxx => Tests/RunCMake/RuntimePath/A.c (51%) copy Tests/RunCMake/{Cpplint => RuntimePath}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => RuntimePath/SymlinkImplicitCheck-result.txt} (100%) create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake copy Tests/{CMakeOnly/LinkInterfaceLoop => RunCMake/RuntimePath}/main.c (100%) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 12:40:35 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 12:40:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-700-gc708c66 Message-ID: <20170301174035.A080AB0091@public.kitware.com> 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 c708c66f568477a305fd98f689608a32eff4cd4a (commit) via a13fa05f3f4336d76a5163d6ee1516cb6eb50926 (commit) via fa5419947d78e5e9adcf3abbefa226fdb35bca6c (commit) via 62a5b8e4a00de7403591958c5e5da198051a3255 (commit) via b1a37362b87c24d409f4037cd59c33056468c11b (commit) from 250ee3ced01448ab865b36de56278afb850d0a94 (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=c708c66f568477a305fd98f689608a32eff4cd4a commit c708c66f568477a305fd98f689608a32eff4cd4a Merge: 250ee3c a13fa05 Author: Brad King AuthorDate: Wed Mar 1 12:40:34 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 12:40:34 2017 -0500 Merge topic 'implicit-dir-symlinks' into next a13fa05f Tests: Add case for RPATH exclusion of symlinks to implicit directories fa541994 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks 62a5b8e4 cmOrderDirectories: Consider symlinks when checking implicit directories b1a37362 cmOrderDirectories: Factor out implicit directory check https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a13fa05f3f4336d76a5163d6ee1516cb6eb50926 commit a13fa05f3f4336d76a5163d6ee1516cb6eb50926 Author: Brad King AuthorDate: Wed Mar 1 12:38:10 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:40:11 2017 -0500 Tests: Add case for RPATH exclusion of symlinks to implicit directories Issue: #16682 diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 63016f1..a16efb3 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -153,6 +153,9 @@ add_RunCMake_test(TargetPropertyGeneratorExpressions) add_RunCMake_test(Languages) add_RunCMake_test(LinkStatic) add_RunCMake_test(ObjectLibrary) +if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + add_RunCMake_test(RuntimePath) +endif() add_RunCMake_test(Swift) add_RunCMake_test(TargetObjects) add_RunCMake_test(TargetSources) diff --git a/Tests/RunCMake/RuntimePath/A.c b/Tests/RunCMake/RuntimePath/A.c new file mode 100644 index 0000000..e9d4195 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/A.c @@ -0,0 +1,4 @@ +int libA(void) +{ + return 0; +} diff --git a/Tests/RunCMake/RuntimePath/CMakeLists.txt b/Tests/RunCMake/RuntimePath/CMakeLists.txt new file mode 100644 index 0000000..a640c56 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.7) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake new file mode 100644 index 0000000..a9a7f05 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake @@ -0,0 +1,18 @@ +include(RunCMake) + + +function(run_SymlinkImplicit) + # Use a single build tree for a few tests without cleaning. + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SymlinkImplicit-build) + set(RunCMake_TEST_NO_CLEAN 1) + if(RunCMake_GENERATOR MATCHES "Make|Ninja") + set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) + endif() + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + run_cmake(SymlinkImplicit) + run_cmake_command(SymlinkImplicit-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(SymlinkImplicitCheck + ${CMAKE_COMMAND} -Ddir=${RunCMake_TEST_BINARY_DIR} -P ${RunCMake_SOURCE_DIR}/SymlinkImplicitCheck.cmake) +endfunction() +run_SymlinkImplicit() diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake new file mode 100644 index 0000000..6578f8f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake @@ -0,0 +1,17 @@ +enable_language(C) + +set(lib_dir ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(lib_link ${CMAKE_CURRENT_BINARY_DIR}/libLink) +set(lib_always ${CMAKE_CURRENT_BINARY_DIR}/libAlways) +file(MAKE_DIRECTORY ${lib_dir}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_link}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_always}) + +add_library(A SHARED A.c) +list(APPEND CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${lib_dir}) +set_property(TARGET A PROPERTY LIBRARY_OUTPUT_DIRECTORY ${lib_link}) + +add_executable(exe main.c) +target_link_libraries(exe A) +set_property(TARGET exe PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) +set_property(TARGET exe PROPERTY BUILD_RPATH ${lib_always}) diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt new file mode 100644 index 0000000..ad51fd3 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -0,0 +1,18 @@ +^CMake Error at .*/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake:[0-9]+ \(file\): + file RPATH_CHANGE could not write new RPATH: + + old-should-not-exist + + to the file: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe + + The current RUNPATH is: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways + + which does not contain: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink + + as was expected\.$ diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake new file mode 100644 index 0000000..d34742e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake @@ -0,0 +1,2 @@ +file(COPY ${dir}/bin/exe DESTINATION ${dir}) +file(RPATH_CHANGE FILE "${dir}/exe" OLD_RPATH "${dir}/libLink" NEW_RPATH "old-should-not-exist") diff --git a/Tests/RunCMake/RuntimePath/main.c b/Tests/RunCMake/RuntimePath/main.c new file mode 100644 index 0000000..8488f4e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fa5419947d78e5e9adcf3abbefa226fdb35bca6c commit fa5419947d78e5e9adcf3abbefa226fdb35bca6c Merge: 6cbad49 62a5b8e Author: Brad King AuthorDate: Wed Mar 1 12:40:04 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:40:04 2017 -0500 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62a5b8e4a00de7403591958c5e5da198051a3255 commit 62a5b8e4a00de7403591958c5e5da198051a3255 Author: Brad King AuthorDate: Wed Mar 1 11:55:51 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:39:22 2017 -0500 cmOrderDirectories: Consider symlinks when checking implicit directories When checking whether a directory is "implicit" (e.g. implicit link directory or implicit rpath directory), resolve the real path of both sides of the comparison. Otherwise we will not recognize paths like `/usr/lib32` as implicit when `/usr/lib` is implicit and `lib32` is actually a symlink to `lib`. This can lead to addition of unnecessary entries to the RPATH of a binary, for example. Fixes: #16682 diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index d93debe..dfba80e 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -345,12 +345,17 @@ void cmOrderDirectories::AddLanguageDirectories( void cmOrderDirectories::SetImplicitDirectories( std::set const& implicitDirs) { - this->ImplicitDirectories = implicitDirs; + this->ImplicitDirectories.clear(); + for (std::set::iterator i = implicitDirs.begin(); + i != implicitDirs.end(); ++i) { + this->ImplicitDirectories.insert(this->GetRealPath(*i)); + } } bool cmOrderDirectories::IsImplicitDirectory(std::string const& dir) { - return this->ImplicitDirectories.find(dir) != + std::string const& real = this->GetRealPath(dir); + return this->ImplicitDirectories.find(real) != this->ImplicitDirectories.end(); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b1a37362b87c24d409f4037cd59c33056468c11b commit b1a37362b87c24d409f4037cd59c33056468c11b Author: Brad King AuthorDate: Wed Mar 1 11:55:37 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 12:39:18 2017 -0500 cmOrderDirectories: Factor out implicit directory check diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index 7744a5a..d93debe 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -287,8 +287,7 @@ void cmOrderDirectories::AddRuntimeLibrary(std::string const& fullPath, } } - if (this->ImplicitDirectories.find(dir) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(dir)) { this->ImplicitDirEntries.push_back( new cmOrderDirectoriesConstraintSOName(this, fullPath, soname)); return; @@ -316,8 +315,7 @@ void cmOrderDirectories::AddLinkLibrary(std::string const& fullPath) // Implicit link directories need special handling. if (!this->ImplicitDirectories.empty()) { std::string dir = cmSystemTools::GetFilenamePath(fullPath); - if (this->ImplicitDirectories.find(dir) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(dir)) { this->ImplicitDirEntries.push_back( new cmOrderDirectoriesConstraintLibrary(this, fullPath)); return; @@ -350,6 +348,12 @@ void cmOrderDirectories::SetImplicitDirectories( this->ImplicitDirectories = implicitDirs; } +bool cmOrderDirectories::IsImplicitDirectory(std::string const& dir) +{ + return this->ImplicitDirectories.find(dir) != + this->ImplicitDirectories.end(); +} + void cmOrderDirectories::SetLinkExtensionInfo( std::vector const& linkExtensions, std::string const& removeExtRegex) @@ -394,8 +398,7 @@ void cmOrderDirectories::AddOriginalDirectories( for (std::vector::const_iterator di = dirs.begin(); di != dirs.end(); ++di) { // We never explicitly specify implicit link directories. - if (this->ImplicitDirectories.find(*di) != - this->ImplicitDirectories.end()) { + if (this->IsImplicitDirectory(*di)) { continue; } diff --git a/Source/cmOrderDirectories.h b/Source/cmOrderDirectories.h index 90a67e7..d9e0126 100644 --- a/Source/cmOrderDirectories.h +++ b/Source/cmOrderDirectories.h @@ -82,6 +82,8 @@ private: // Compare directories after resolving symlinks. bool IsSameDirectory(std::string const& l, std::string const& r); + bool IsImplicitDirectory(std::string const& dir); + std::string const& GetRealPath(std::string const& dir); std::map RealPaths; ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 13:10:55 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 13:10:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-702-gf011926 Message-ID: <20170301181055.CB74CADB71@public.kitware.com> 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 f011926fd6d07a2fe7d44d0209c3280d4b4ad27b (commit) via ac7b7a6c8156f94443a94f63c02571f4c03a2315 (commit) from c708c66f568477a305fd98f689608a32eff4cd4a (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=f011926fd6d07a2fe7d44d0209c3280d4b4ad27b commit f011926fd6d07a2fe7d44d0209c3280d4b4ad27b Merge: c708c66 ac7b7a6 Author: Brad King AuthorDate: Wed Mar 1 13:10:55 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 13:10:55 2017 -0500 Merge topic 'implicit-dir-symlinks' into next ac7b7a6c fixup! Tests: Add case for RPATH exclusion of symlinks to implicit directories https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac7b7a6c8156f94443a94f63c02571f4c03a2315 commit ac7b7a6c8156f94443a94f63c02571f4c03a2315 Author: Brad King AuthorDate: Wed Mar 1 13:10:10 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 13:10:10 2017 -0500 fixup! Tests: Add case for RPATH exclusion of symlinks to implicit directories diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt index ad51fd3..7115011 100644 --- a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -7,7 +7,7 @@ .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe - The current RUNPATH is: + The current (RPATH|RUNPATH) is: .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 13:33:53 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 13:33:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-704-g38c9f22 Message-ID: <20170301183354.8E66BFA27B@public.kitware.com> 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 38c9f229707f23329d420ed563a7dec26bb69318 (commit) via 17e13e4de8095f543341e96a2fa7f4199214169a (commit) from f011926fd6d07a2fe7d44d0209c3280d4b4ad27b (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=38c9f229707f23329d420ed563a7dec26bb69318 commit 38c9f229707f23329d420ed563a7dec26bb69318 Merge: f011926 17e13e4 Author: Brad King AuthorDate: Wed Mar 1 13:33:53 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 13:33:53 2017 -0500 Merge topic 'implicit-dir-symlinks' into next 17e13e4d Tests: Add case for RPATH exclusion of symlinks to implicit directories https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=17e13e4de8095f543341e96a2fa7f4199214169a commit 17e13e4de8095f543341e96a2fa7f4199214169a Author: Brad King AuthorDate: Wed Mar 1 12:38:10 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 13:33:37 2017 -0500 Tests: Add case for RPATH exclusion of symlinks to implicit directories Issue: #16682 diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 63016f1..a16efb3 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -153,6 +153,9 @@ add_RunCMake_test(TargetPropertyGeneratorExpressions) add_RunCMake_test(Languages) add_RunCMake_test(LinkStatic) add_RunCMake_test(ObjectLibrary) +if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + add_RunCMake_test(RuntimePath) +endif() add_RunCMake_test(Swift) add_RunCMake_test(TargetObjects) add_RunCMake_test(TargetSources) diff --git a/Tests/RunCMake/RuntimePath/A.c b/Tests/RunCMake/RuntimePath/A.c new file mode 100644 index 0000000..e9d4195 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/A.c @@ -0,0 +1,4 @@ +int libA(void) +{ + return 0; +} diff --git a/Tests/RunCMake/RuntimePath/CMakeLists.txt b/Tests/RunCMake/RuntimePath/CMakeLists.txt new file mode 100644 index 0000000..a640c56 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.7) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake new file mode 100644 index 0000000..a9a7f05 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake @@ -0,0 +1,18 @@ +include(RunCMake) + + +function(run_SymlinkImplicit) + # Use a single build tree for a few tests without cleaning. + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SymlinkImplicit-build) + set(RunCMake_TEST_NO_CLEAN 1) + if(RunCMake_GENERATOR MATCHES "Make|Ninja") + set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) + endif() + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + run_cmake(SymlinkImplicit) + run_cmake_command(SymlinkImplicit-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(SymlinkImplicitCheck + ${CMAKE_COMMAND} -Ddir=${RunCMake_TEST_BINARY_DIR} -P ${RunCMake_SOURCE_DIR}/SymlinkImplicitCheck.cmake) +endfunction() +run_SymlinkImplicit() diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake new file mode 100644 index 0000000..6578f8f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake @@ -0,0 +1,17 @@ +enable_language(C) + +set(lib_dir ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(lib_link ${CMAKE_CURRENT_BINARY_DIR}/libLink) +set(lib_always ${CMAKE_CURRENT_BINARY_DIR}/libAlways) +file(MAKE_DIRECTORY ${lib_dir}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_link}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_always}) + +add_library(A SHARED A.c) +list(APPEND CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${lib_dir}) +set_property(TARGET A PROPERTY LIBRARY_OUTPUT_DIRECTORY ${lib_link}) + +add_executable(exe main.c) +target_link_libraries(exe A) +set_property(TARGET exe PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) +set_property(TARGET exe PROPERTY BUILD_RPATH ${lib_always}) diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt new file mode 100644 index 0000000..7115011 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -0,0 +1,18 @@ +^CMake Error at .*/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake:[0-9]+ \(file\): + file RPATH_CHANGE could not write new RPATH: + + old-should-not-exist + + to the file: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe + + The current (RPATH|RUNPATH) is: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways + + which does not contain: + + .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink + + as was expected\.$ diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake new file mode 100644 index 0000000..d34742e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake @@ -0,0 +1,2 @@ +file(COPY ${dir}/bin/exe DESTINATION ${dir}) +file(RPATH_CHANGE FILE "${dir}/exe" OLD_RPATH "${dir}/libLink" NEW_RPATH "old-should-not-exist") diff --git a/Tests/RunCMake/RuntimePath/main.c b/Tests/RunCMake/RuntimePath/main.c new file mode 100644 index 0000000..8488f4e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 13:35:17 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 13:35:17 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-706-g87429d9 Message-ID: <20170301183517.76FE8FA2D2@public.kitware.com> 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 87429d96864221e36f0e33362f8ba4ae2b885c7a (commit) via 503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81 (commit) from 38c9f229707f23329d420ed563a7dec26bb69318 (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=87429d96864221e36f0e33362f8ba4ae2b885c7a commit 87429d96864221e36f0e33362f8ba4ae2b885c7a Merge: 38c9f22 503f25d Author: Brad King AuthorDate: Wed Mar 1 13:35:16 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 13:35:16 2017 -0500 Merge topic 'find_library-custom-lib-suffix' into next 503f25d4 find_library: Allow custom lib suffix be used as find path https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81 commit 503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81 Author: Christian Schmidbauer AuthorDate: Sat Feb 25 19:47:49 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 09:49:42 2017 -0500 find_library: Allow custom lib suffix be used as find path Add a new `CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable to allow use of a custom suffix on `lib` directory names. This is a more general option than that added by commit v3.7.0-rc1~504^2 (Teach find_library and find_package to search lib32 paths, 2016-06-10). It allows the find path to be more deterministic on custom setups. See discussion in #10287 and #15994. diff --git a/Help/command/find_library.rst b/Help/command/find_library.rst index 1eb50f7..e912040 100644 --- a/Help/command/find_library.rst +++ b/Help/command/find_library.rst @@ -49,6 +49,13 @@ path to the framework ``/A.framework``. When a full path to a framework is used as a library, CMake will use a ``-framework A``, and a ``-F`` to link the framework to the target. +If the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable is set all +search paths will be tested as normal, with the suffix appended, and with +all matches of ``lib/`` replaced with +``lib${CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}/``. This variable overrides +the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` +and :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global properties. + If the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global property is set all search paths will be tested as normal, with ``32/`` appended, and with all matches of ``lib/`` replaced with ``lib32/``. This property is diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 259d87b..a25efe7 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -130,6 +130,7 @@ Variables that Change Behavior /variable/CMAKE_SYSROOT /variable/CMAKE_FIND_APPBUNDLE /variable/CMAKE_FIND_FRAMEWORK + /variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX /variable/CMAKE_FIND_LIBRARY_PREFIXES /variable/CMAKE_FIND_LIBRARY_SUFFIXES /variable/CMAKE_FIND_NO_INSTALL_PREFIX diff --git a/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst b/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst index ce18b65..8396026 100644 --- a/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst +++ b/Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst @@ -8,3 +8,5 @@ Whether the :command:`find_library` command should automatically search :command:`find_library` command should automatically search the ``lib32`` variant of directories called ``lib`` in the search path when building 32-bit binaries. + +See also the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable. diff --git a/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst b/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst index e52f8eb..ed343ba 100644 --- a/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst +++ b/Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst @@ -8,3 +8,5 @@ FIND_LIBRARY_USE_LIB64_PATHS is a boolean specifying whether the :command:`find_library` command should automatically search the lib64 variant of directories called lib in the search path when building 64-bit binaries. + +See also the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable. diff --git a/Help/release/dev/find_library-custom-lib-suffix.rst b/Help/release/dev/find_library-custom-lib-suffix.rst new file mode 100644 index 0000000..824b27e --- /dev/null +++ b/Help/release/dev/find_library-custom-lib-suffix.rst @@ -0,0 +1,6 @@ +find_library-custom-lib-suffix +------------------------------ + +* A :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable was added to + tell the :command:`find_library` command to search in a ``lib`` + directory before each ``lib`` directory that would normally be searched. diff --git a/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst new file mode 100644 index 0000000..f7c6524 --- /dev/null +++ b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst @@ -0,0 +1,11 @@ +CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX +------------------------------------ + +Specify a ```` to tell the :command:`find_library` command to +search in a ``lib`` directory before each ``lib`` directory that +would normally be searched. + +This overrides the behavior of related global properties: + +* :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` +* :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index 2feedf3..c506d66 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -43,20 +43,22 @@ bool cmFindLibraryCommand::InitialPass(std::vector const& argsIn, return true; } - if (this->Makefile->GetState()->GetGlobalPropertyAsBool( - "FIND_LIBRARY_USE_LIB32_PATHS")) { - // add special 32 bit paths if this is a 32 bit compile. - if (this->Makefile->PlatformIs32Bit()) { - this->AddArchitecturePaths("32"); - } + // add custom lib paths instead of using fixed lib32 or lib64 + if (const char* customLib = this->Makefile->GetDefinition( + "CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX")) { + this->AddArchitecturePaths(customLib); } - - if (this->Makefile->GetState()->GetGlobalPropertyAsBool( - "FIND_LIBRARY_USE_LIB64_PATHS")) { - // add special 64 bit paths if this is a 64 bit compile. - if (this->Makefile->PlatformIs64Bit()) { - this->AddArchitecturePaths("64"); - } + // add special 32 bit paths if this is a 32 bit compile. + else if (this->Makefile->PlatformIs32Bit() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIB32_PATHS")) { + this->AddArchitecturePaths("32"); + } + // add special 64 bit paths if this is a 64 bit compile. + else if (this->Makefile->PlatformIs64Bit() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIB64_PATHS")) { + this->AddArchitecturePaths("64"); } std::string library = this->FindLibrary(); diff --git a/Tests/CMakeOnly/find_library/CMakeLists.txt b/Tests/CMakeOnly/find_library/CMakeLists.txt index 9958650..9c1aad8 100644 --- a/Tests/CMakeOnly/find_library/CMakeLists.txt +++ b/Tests/CMakeOnly/find_library/CMakeLists.txt @@ -24,7 +24,7 @@ endmacro() macro(test_find_library_subst expected) get_filename_component(dir ${expected} PATH) get_filename_component(name ${expected} NAME) - string(REGEX REPLACE "lib/?64" "lib" dir "${dir}") + string(REGEX REPLACE "lib/?[36X][24Y][Z]*" "lib" dir "${dir}") test_find_library(", searched as ${dir}" "${expected}" NAMES ${name} PATHS ${CMAKE_CURRENT_SOURCE_DIR}/${dir} @@ -79,3 +79,16 @@ test_find_library("" A/libtestA.a NAMES testB testA NAMES_PER_DIR PATHS ${CMAKE_CURRENT_SOURCE_DIR}/A ${CMAKE_CURRENT_SOURCE_DIR}/B ) + +set(CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX "XYZ") +foreach(libXYZ + lib/XYZ/libtest1.a + lib/A/libXYZ/libtest2.a + lib/libtest3.a + libXYZ/A/lib/libtest4.a + libXYZ/A/libXYZ/libtest5.a + libXYZ/A/libtest6.a + libXYZ/libtest7.a + ) + test_find_library_subst(${libXYZ}) +endforeach() diff --git a/Tests/CMakeOnly/find_library/lib/A/libXYZ/libtest2.a b/Tests/CMakeOnly/find_library/lib/A/libXYZ/libtest2.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/lib/XYZ/libtest1.a b/Tests/CMakeOnly/find_library/lib/XYZ/libtest1.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libXYZ/A/lib/libtest4.a b/Tests/CMakeOnly/find_library/libXYZ/A/lib/libtest4.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libXYZ/A/libXYZ/libtest5.a b/Tests/CMakeOnly/find_library/libXYZ/A/libXYZ/libtest5.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libXYZ/A/libtest6.a b/Tests/CMakeOnly/find_library/libXYZ/A/libtest6.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libXYZ/libtest7.a b/Tests/CMakeOnly/find_library/libXYZ/libtest7.a new file mode 100644 index 0000000..e69de29 ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 7 +++++ Help/manual/cmake-variables.7.rst | 1 + Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst | 2 ++ Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst | 2 ++ .../release/dev/find_library-custom-lib-suffix.rst | 6 +++++ .../CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 11 ++++++++ Source/cmFindLibraryCommand.cxx | 28 +++++++++++--------- Tests/CMakeOnly/find_library/CMakeLists.txt | 15 ++++++++++- .../find_library/lib/{64 => A/libXYZ}/libtest2.a | 0 .../find_library/lib/{A/lib => XYZ}/libtest1.a | 0 .../{lib32/A/lib32 => libXYZ/A/lib}/libtest4.a | 0 .../{lib/32 => libXYZ/A/libXYZ}/libtest5.a | 0 .../CMakeOnly/find_library/libXYZ/A/libtest6.a | 0 .../CMakeOnly/find_library/libXYZ/libtest7.a | 0 14 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 Help/release/dev/find_library-custom-lib-suffix.rst create mode 100644 Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst copy Tests/CMakeOnly/find_library/lib/{64 => A/libXYZ}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/lib/{A/lib => XYZ}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib32/A/lib32 => libXYZ/A/lib}/libtest4.a (100%) copy Tests/CMakeOnly/find_library/{lib/32 => libXYZ/A/libXYZ}/libtest5.a (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/CMakeOnly/find_library/libXYZ/A/libtest6.a (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/CMakeOnly/find_library/libXYZ/libtest7.a (100%) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 15:18:52 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 15:18:52 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-708-g8d4d7c1 Message-ID: <20170301201853.03F01F3E71@public.kitware.com> 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 8d4d7c1468690e96c24c912b9a4239477166ca5d (commit) via bd4045067cd170870cbceb5401f0fc28b11d4e5b (commit) from 87429d96864221e36f0e33362f8ba4ae2b885c7a (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=8d4d7c1468690e96c24c912b9a4239477166ca5d commit 8d4d7c1468690e96c24c912b9a4239477166ca5d Merge: 87429d9 bd40450 Author: Brad King AuthorDate: Wed Mar 1 15:18:51 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 15:18:51 2017 -0500 Merge topic 'autogen_uic_paths' into next bd404506 fixup! Autogen: Add subDirPrefix function https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bd4045067cd170870cbceb5401f0fc28b11d4e5b commit bd4045067cd170870cbceb5401f0fc28b11d4e5b Author: Brad King AuthorDate: Wed Mar 1 15:18:30 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 15:18:30 2017 -0500 fixup! Autogen: Add subDirPrefix function diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 26dc376..c83f9a9 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -112,7 +112,7 @@ static void SettingWrite(std::ostream& ostr, const char* key, } } -std::string subDirPrefix(const std::string fileName) +std::string subDirPrefix(const std::string& fileName) { std::string res(cmsys::SystemTools::GetFilenamePath(fileName)); if (!res.empty()) { ----------------------------------------------------------------------- Summary of changes: Source/cmQtAutoGenerators.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 15:34:16 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 15:34:16 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-710-g59c494b Message-ID: <20170301203416.E3CA0FA2D1@public.kitware.com> 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 59c494b6956cfef51da86dd617aa7d5debe27557 (commit) via 690af1efc6b18018e4b1f3468edfb36d322156db (commit) from 8d4d7c1468690e96c24c912b9a4239477166ca5d (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=59c494b6956cfef51da86dd617aa7d5debe27557 commit 59c494b6956cfef51da86dd617aa7d5debe27557 Merge: 8d4d7c1 690af1e Author: Brad King AuthorDate: Wed Mar 1 15:34:15 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 15:34:15 2017 -0500 Merge topic 'csproj_add_free_source_tags' into next 690af1ef fixup! VS: add VS_CSHARP_ sourcefile property https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=690af1efc6b18018e4b1f3468edfb36d322156db commit 690af1efc6b18018e4b1f3468edfb36d322156db Author: Brad King AuthorDate: Wed Mar 1 15:33:57 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 15:33:57 2017 -0500 fixup! VS: add VS_CSHARP_ sourcefile property diff --git a/Help/release/3.8.rst b/Help/release/3.8.rst index 936afa0..efb2aa5 100644 --- a/Help/release/3.8.rst +++ b/Help/release/3.8.rst @@ -34,15 +34,6 @@ C# Visual Studio (``VS_*``) are worth a look (for setting toolset versions, root namespaces, assembly icons, ...). -* Auto-linking in ``.csproj`` files: In C#/.NET development with - Visual Studio there are a number of visual editors used which - generate code. Both the generated files and the ones edited - with the UI are connected in the ``.csproj`` file using - ```` tags. If CMake finds within a C# project - any source file with extension ``.Designer.cs`` or ``.xaml.cs``, - it checks sibling files with extension ``.xaml``, ``.settings``, - ``.resx`` or ``.cs`` and establishes the dependency connection. - CUDA ^^^^ ----------------------------------------------------------------------- Summary of changes: Help/release/3.8.rst | 9 --------- 1 file changed, 9 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Wed Mar 1 15:34:40 2017 From: brad.king at kitware.com (Brad King) Date: Wed, 1 Mar 2017 15:34:40 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-714-ga1cca83 Message-ID: <20170301203440.69A65FA2EE@public.kitware.com> 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 a1cca83f3823109ad2728c3664b8895b5b528244 (commit) via 506207f928bfc8853864edb9a200a38e7ac2b02b (commit) via a202749c46f84563a6cccf6d5d31808fddf53408 (commit) via 9588d0a2e2442e6cc07dd4563399e257d95c792b (commit) from 59c494b6956cfef51da86dd617aa7d5debe27557 (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=a1cca83f3823109ad2728c3664b8895b5b528244 commit a1cca83f3823109ad2728c3664b8895b5b528244 Merge: 59c494b 506207f Author: Brad King AuthorDate: Wed Mar 1 15:34:38 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 15:34:38 2017 -0500 Merge topic 'csproj_add_free_source_tags' into next 506207f9 VS: add test for VS_CSHARP_* source file property a202749c VS: add CSharpUtilities module 9588d0a2 VS: add VS_CSHARP_ sourcefile property https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=506207f928bfc8853864edb9a200a38e7ac2b02b commit 506207f928bfc8853864edb9a200a38e7ac2b02b Author: Michael St?rmer AuthorDate: Fri Feb 24 09:28:13 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 15:31:05 2017 -0500 VS: add test for VS_CSHARP_* source file property diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake index bc1ec97..3af877f 100644 --- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake +++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake @@ -3,3 +3,4 @@ run_cmake(VsConfigurationType) run_cmake(VsTargetsFileReferences) run_cmake(VsCustomProps) run_cmake(VsDebuggerWorkingDir) +run_cmake(VsCSharpCustomTags) diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake new file mode 100644 index 0000000..70ea193 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake @@ -0,0 +1,23 @@ +set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj") +if(NOT EXISTS "${csProjectFile}") + set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") + return() +endif() + +set(tagFound FALSE) + +set(tagName "MyCustomTag") +set(tagValue "MyCustomValue") + +file(STRINGS "${csProjectFile}" lines) +foreach(line IN LISTS lines) + if(line MATCHES "^ *<${tagName}>${tagValue}") + message(STATUS "foo.csproj has tag ${tagName} with value ${tagValue} defined") + set(tagFound TRUE) + endif() +endforeach() + +if(NOT tagFound) + set(RunCMake_TEST_FAILED "Source file tag ${tagName} with value ${tagValue} not found.") + return() +endif() diff --git a/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake b/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake new file mode 100644 index 0000000..c51e9c3 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake @@ -0,0 +1,11 @@ +enable_language(CSharp) +add_library(foo foo.cs) + +set(props_file "${CMAKE_CURRENT_SOURCE_DIR}/my.props") + +set(tagName "MyCustomTag") +set(tagValue "MyCustomValue") + +set_source_files_properties(foo.cs + PROPERTIES + VS_CSHARP_${tagName} "${tagValue}") diff --git a/Tests/RunCMake/VS10Project/foo.cs b/Tests/RunCMake/VS10Project/foo.cs new file mode 100644 index 0000000..3695dc9 --- /dev/null +++ b/Tests/RunCMake/VS10Project/foo.cs @@ -0,0 +1,3 @@ +void foo() +{ +} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a202749c46f84563a6cccf6d5d31808fddf53408 commit a202749c46f84563a6cccf6d5d31808fddf53408 Author: Michael St?rmer AuthorDate: Thu Feb 23 16:49:37 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 15:31:05 2017 -0500 VS: add CSharpUtilities module diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index d4712ba..c478a1b 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -66,6 +66,7 @@ All Modules /module/CPackRPM /module/CPack /module/CPackWIX + /module/CSharpUtilities /module/CTest /module/CTestCoverageCollectGCOV /module/CTestScriptMode diff --git a/Help/module/CSharpUtilities.rst b/Help/module/CSharpUtilities.rst new file mode 100644 index 0000000..3621bbc --- /dev/null +++ b/Help/module/CSharpUtilities.rst @@ -0,0 +1 @@ +.. cmake-module:: ../../Modules/CSharpUtilities.cmake diff --git a/Help/release/3.8.rst b/Help/release/3.8.rst index a9bfe84..efb2aa5 100644 --- a/Help/release/3.8.rst +++ b/Help/release/3.8.rst @@ -220,6 +220,11 @@ Properties Modules ------- +* A :module:`CSharpUtilities` module was added to aid parameterization of + Visual Studio C# targets. It provides functions to allow automated + setting of source file properties to support Windows Forms, WPF/XAML or + other technologies as needed. + * The :module:`ExternalData` module learned to support multiple content links for one data file using different hashes, e.g. ``img.png.sha256`` and ``img.png.sha1``. This allows objects diff --git a/Modules/CSharpUtilities.cmake b/Modules/CSharpUtilities.cmake new file mode 100644 index 0000000..ddad85a --- /dev/null +++ b/Modules/CSharpUtilities.cmake @@ -0,0 +1,298 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +CSharpUtilities +--------------- + +Functions to make configuration of CSharp/.NET targets easier. + +A collection of CMake utility functions useful for dealing with CSharp +targets for Visual Studio generators from version 2010 and later. + +The following functions are provided by this module: + +**Main functions** + +- :command:`csharp_set_windows_forms_properties` +- :command:`csharp_set_designer_cs_properties` +- :command:`csharp_set_xaml_cs_properties` + +**Helper functions** + +- :command:`csharp_get_filename_keys` +- :command:`csharp_get_filename_key_base` +- :command:`csharp_get_dependentupon_name` + +Main functions provided by the module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. command:: csharp_set_windows_forms_properties + + Sets source file properties for use of Windows Forms. Use this, if your CSharp + target uses windows forms:: + + csharp_set_windows_forms_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, ``.resx`` and + ``.Designer.cs`` extensions). + + In the list of all given files for all files ending with ``.Designer.cs`` and + ``.resx`` is searched. For every *designer* or *resource* file a file with the + same base name but only ``.cs`` as extension is searched. If this is found, the + :prop_sf:`VS_CSHARP_` properties are set as follows: + + for the **.cs** file: + - VS_CSHARP_SubType "Form" + + for the **.Designer.cs** file (if it exists): + - VS_CSHARP_DependentUpon + - VS_CSHARP_DesignTime "" (delete tag if previously defined) + - VS_CSHARP_AutoGen ""(delete tag if previously defined) + + for the **.resx** file (if it exists): + - VS_RESOURCE_GENERATOR "" (delete tag if previously defined) + - VS_CSHARP_DependentUpon + - VS_CSHARP_SubType "Designer" + +.. command:: csharp_set_designer_cs_properties + + Sets source file properties for use of WPF/XAML. Use this, if your CSharp + target uses WPF/XAML:: + + csharp_set_designer_cs_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, + ``.resx``, ``.settings`` and ``.Designer.cs`` extensions). + + In the list of all given files for all files ending with + ``.Designer.cs`` is searched. For every *designer* file all files + with the same base name but different extensions are searched. If + a match is found, the source file properties of the *designer* file + are set depending on the extension of the matched file: + + if match is **.resx** file: + - VS_CSHARP_AutoGen "True" + - VS_CSHARP_DesignTime "True" + - VS_CSHARP_DependentUpon + + if match is **.cs** file: + - VS_CSHARP_DependentUpon + + if match is **.settings** file: + - VS_CSHARP_AutoGen "True" + - VS_CSHARP_DesignTimeSharedInput "True" + - VS_CSHARP_DependentUpon + +.. command:: csharp_set_xaml_cs_properties + + Sets source file properties for use of WPF/XAML. Use this, if your + CSharp target uses WPF/XAML:: + + csharp_set_xaml_cs_properties([ [ [...]]]) + + ```` + List of all source files which are relevant for setting the + :prop_sf:`VS_CSHARP_` properties (including ``.cs``, + ``.xaml``, and ``.xaml.cs`` extensions). + + In the list of all given files for all files ending with + ``.xaml.cs`` is searched. For every xaml file, a file + with the same base name but extension ``.xaml`` is searched. + If a match is found, the source file properties of the ``.xaml.cs`` + file are set: + + - VS_CSHARP_DependentUpon + +Helper functions which are used by the above ones +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. command:: csharp_get_filename_keys + + Helper function which computes a list of key values to identify + source files independently of relative/absolute paths given in cmake + and eliminates case sensitivity:: + + csharp_get_filename_keys(OUT [ [ [...]]]) + + ``OUT`` + name of the variable in which the list of keys is stored + + ```` + filename as given to to CSharp target using :command:`add_library` + or :command:`add_executable` + + In some way the function applies a canonicalization to the source names. + This is necessary to find file matches if the files have been added to + the target with different directory prefixes: + + .. code-block:: cmake + + add_library(lib + myfile.cs + ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs) + + set_source_files_properties(myfile.Designer.cs PROPERTIES + VS_CSHARP_DependentUpon myfile.cs) + + # this will fail, because in cmake + # - ${CMAKE_CURRENT_SOURCE_DIR}/myfile.Designer.cs + # - myfile.Designer.cs + # are not the same source file. The source file property is not set. + +.. command:: csharp_get_filename_key_base + + Returns the full filepath and name **withouth** extension of a key. + KEY is expected to be a key from csharp_get_filename_keys. In BASE + the value of KEY without the file extension is returned:: + + csharp_get_filename_key_base(BASE KEY) + + ``BASE`` + The computed "base" of ``KEY``. + + ``KEY`` + The key of which the base will be computed. Expected to be a + upper case full filename. + +.. command:: csharp_get_dependentupon_name + + Computes a string which can be used as value for the source file property + :prop_sf:`VS_CSHARP_` with *target* being ``DependentUpon``:: + + csharp_get_dependentupon_name(NAME FILE) + + ``NAME`` + result value + + ``FILE`` + filename to convert to DependentUpon value + + Actually this is only the filename without any path given at the moment. + +#]=======================================================================] + +function(csharp_get_filename_keys OUT) + set(${OUT} "") + foreach(f ${ARGN}) + get_filename_component(f ${f} REALPATH) + string(TOUPPER ${f} f) + list(APPEND ${OUT} ${f}) + endforeach() + set(${OUT} "${${OUT}}" PARENT_SCOPE) +endfunction() + +function(csharp_get_filename_key_base base key) + get_filename_component(dir ${key} DIRECTORY) + get_filename_component(fil ${key} NAME_WE) + set(${base} "${dir}/${fil}" PARENT_SCOPE) +endfunction() + +function(csharp_get_dependentupon_name out in) + get_filename_component(${out} ${in} NAME) + set(${out} ${${out}} PARENT_SCOPE) +endfunction() + +function(csharp_set_windows_forms_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + foreach(key ${fileKeys}) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".DESIGNER.CS" OR + ${ext} STREQUAL ".RESX") + csharp_get_filename_key_base(NAME_BASE ${key}) + list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + # set properties of main form file + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_CSHARP_SubType "Form") + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + # set properties of designer file (if found) + list(FIND fileKeys "${NAME_BASE}.DESIGNER.CS" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}" + VS_CSHARP_DesignTime "" + VS_CSHARP_AutoGen "") + endif() + # set properties of corresponding resource file (if found) + list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) + if(NOT ${FILE_INDEX} EQUAL -1) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + set_source_files_properties("${FILE_NAME}" + PROPERTIES + VS_RESOURCE_GENERATOR "" + VS_CSHARP_DependentUpon "${LINK}" + VS_CSHARP_SubType "Designer") + endif() + endif() + endif() + endforeach() +endfunction() + +function(csharp_set_designer_cs_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + set(INDEX -1) + foreach(key ${fileKeys}) + math(EXPR INDEX "${INDEX}+1") + list(GET ARGN ${INDEX} source) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".DESIGNER.CS") + csharp_get_filename_key_base(NAME_BASE ${key}) + if("${NAME_BASE}.RESX" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.RESX" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_AutoGen "True" + VS_CSHARP_DesignTime "True" + VS_CSHARP_DependentUpon "${LINK}") + elseif("${NAME_BASE}.CS" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.CS" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}") + elseif("${NAME_BASE}.SETTINGS" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.SETTINGS" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_AutoGen "True" + VS_CSHARP_DesignTimeSharedInput "True" + VS_CSHARP_DependentUpon "${LINK}") + endif() + endif() + endforeach() +endfunction() + +function(csharp_set_xaml_cs_properties) + csharp_get_filename_keys(fileKeys ${ARGN}) + set(INDEX -1) + foreach(key ${fileKeys}) + math(EXPR INDEX "${INDEX}+1") + list(GET ARGN ${INDEX} source) + get_filename_component(ext ${key} EXT) + if(${ext} STREQUAL ".XAML.CS") + csharp_get_filename_key_base(NAME_BASE ${key}) + if("${NAME_BASE}.XAML" IN_LIST fileKeys) + list(FIND fileKeys "${NAME_BASE}.XAML" FILE_INDEX) + list(GET ARGN ${FILE_INDEX} FILE_NAME) + csharp_get_dependentupon_name(LINK "${FILE_NAME}") + set_source_files_properties("${source}" + PROPERTIES + VS_CSHARP_DependentUpon "${LINK}") + endif() + endif() + endforeach() +endfunction() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9588d0a2e2442e6cc07dd4563399e257d95c792b commit 9588d0a2e2442e6cc07dd4563399e257d95c792b Author: Michael St?rmer AuthorDate: Thu Feb 23 16:48:16 2017 +0100 Commit: Brad King CommitDate: Wed Mar 1 15:31:05 2017 -0500 VS: add VS_CSHARP_ sourcefile property diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 38aba81..0e3eb86 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -366,6 +366,7 @@ Properties on Source Files /prop_sf/SKIP_AUTOUIC /prop_sf/SYMBOLIC /prop_sf/VS_COPY_TO_OUT_DIR + /prop_sf/VS_CSHARP_tagname /prop_sf/VS_DEPLOYMENT_CONTENT /prop_sf/VS_DEPLOYMENT_LOCATION /prop_sf/VS_INCLUDE_IN_VSIX diff --git a/Help/prop_sf/VS_CSHARP_tagname.rst b/Help/prop_sf/VS_CSHARP_tagname.rst new file mode 100644 index 0000000..d42159f --- /dev/null +++ b/Help/prop_sf/VS_CSHARP_tagname.rst @@ -0,0 +1,19 @@ +VS_CSHARP_ +------------------- + +Visual Studio and CSharp source-file-specific configuration. + +Tell the Visual Studio generator to set the source file tag +```` to a given value in the generated Visual Studio CSharp +project. Ignored on other generators and languages. This property +can be used to define dependencies between source files or set any +other Visual Studio specific parameters. + +Example usage: + +.. code-block:: cmake + + set_source_files_property( + PROPERTIES + VS_CSHARP_DependentUpon + VS_CSHARP_SubType "Form") diff --git a/Help/release/3.8.rst b/Help/release/3.8.rst index d427a63..a9bfe84 100644 --- a/Help/release/3.8.rst +++ b/Help/release/3.8.rst @@ -34,15 +34,6 @@ C# Visual Studio (``VS_*``) are worth a look (for setting toolset versions, root namespaces, assembly icons, ...). -* Auto-linking in ``.csproj`` files: In C#/.NET development with - Visual Studio there are a number of visual editors used which - generate code. Both the generated files and the ones edited - with the UI are connected in the ``.csproj`` file using - ```` tags. If CMake finds within a C# project - any source file with extension ``.Designer.cs`` or ``.xaml.cs``, - it checks sibling files with extension ``.xaml``, ``.settings``, - ``.resx`` or ``.cs`` and establishes the dependency connection. - CUDA ^^^^ diff --git a/Source/cmSourceFile.h b/Source/cmSourceFile.h index b193f65..bbcc300 100644 --- a/Source/cmSourceFile.h +++ b/Source/cmSourceFile.h @@ -86,6 +86,7 @@ public: // Get the properties cmPropertyMap& GetProperties() { return this->Properties; } + const cmPropertyMap& GetProperties() const { return this->Properties; } /** * Check whether the given source file location could refer to this diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 2e6c19b..1ac2951 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -680,20 +680,40 @@ void cmVisualStudio10TargetGenerator::WriteEmbeddedResourceGroup() if (const char* g = (*oi)->GetProperty("VS_RESOURCE_GENERATOR")) { generator = g; } - this->WriteString("", 3); - (*this->BuildFileStream) << cmVS10EscapeXML(generator) - << "\n"; - if (designerResource.find(srcDir) == 0) { - designerResource = designerResource.substr(srcDir.length() + 1); - } else if (designerResource.find(binDir) == 0) { - designerResource = designerResource.substr(binDir.length() + 1); - } else { - designerResource = - cmsys::SystemTools::GetFilenameName(designerResource); + if (!generator.empty()) { + this->WriteString("", 3); + (*this->BuildFileStream) << cmVS10EscapeXML(generator) + << "\n"; + if (designerResource.find(srcDir) == 0) { + designerResource = designerResource.substr(srcDir.length() + 1); + } else if (designerResource.find(binDir) == 0) { + designerResource = designerResource.substr(binDir.length() + 1); + } else { + designerResource = + cmsys::SystemTools::GetFilenameName(designerResource); + } + this->ConvertToWindowsSlash(designerResource); + this->WriteString("", 3); + (*this->BuildFileStream) << designerResource + << "\n"; + } + } + const cmPropertyMap& props = (*oi)->GetProperties(); + for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); + ++p) { + static const std::string propNamePrefix = "VS_CSHARP_"; + if (p->first.find(propNamePrefix.c_str()) == 0) { + std::string tagName = p->first.substr(propNamePrefix.length()); + if (!tagName.empty()) { + std::string value = props.GetPropertyValue(p->first); + if (!value.empty()) { + this->WriteString("<", 3); + (*this->BuildFileStream) << tagName << ">"; + (*this->BuildFileStream) << cmVS10EscapeXML(value); + (*this->BuildFileStream) << "\n"; + } + } } - this->ConvertToWindowsSlash(designerResource); - this->WriteString("", 3); - (*this->BuildFileStream) << designerResource << "\n"; } } @@ -1940,42 +1960,21 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags( sourceFileTags["Link"] = link; } } - // check if file is a generated .Designer.cs or .xaml.cs file - // to add additional necessary tags - const std::string fileExtension = - cmsys::SystemTools::GetFilenameExtension(f); - if (fileExtension == ".Designer.cs" || fileExtension == ".xaml.cs") { - f = f.substr(0, f.length() - fileExtension.length()); - if (sourceFileTags.find("Link") == sourceFileTags.end() && - !this->InSourceBuild) { - // add link fallback - sourceFileTags["Link"] = - cmsys::SystemTools::GetFilenameName(f) + fileExtension; - } - std::vector extensions; - extensions.push_back(".resx"); - extensions.push_back(".settings"); - extensions.push_back(".xaml"); - extensions.push_back(".cs"); - std::string dependencyExtension; - for (std::vector::iterator i = extensions.begin(); - i != extensions.end(); ++i) { - if (cmsys::SystemTools::FileExists(f + *i)) { - dependencyExtension = *i; - // There should never be more than one match. Otherwise - // one cannot tell on which match the file depends. - break; + const cmPropertyMap& props = sf.GetProperties(); + for (cmPropertyMap::const_iterator p = props.begin(); p != props.end(); + ++p) { + static const std::string propNamePrefix = "VS_CSHARP_"; + if (p->first.find(propNamePrefix.c_str()) == 0) { + std::string tagName = p->first.substr(propNamePrefix.length()); + if (!tagName.empty()) { + const std::string val = props.GetPropertyValue(p->first); + if (!val.empty()) { + sourceFileTags[tagName] = val; + } else { + sourceFileTags.erase(tagName); + } } } - if (dependencyExtension == ".resx") { - sourceFileTags["DesignTime"] = "True"; - sourceFileTags["AutoGen"] = "True"; - } else if (dependencyExtension == ".settings") { - sourceFileTags["DesignTimeSharedInput"] = "True"; - sourceFileTags["AutoGen"] = "True"; - } - sourceFileTags["DependentUpon"] = - cmsys::SystemTools::GetFilenameName(f) + dependencyExtension; } // write source file specific tags if (!sourceFileTags.empty()) { ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From daniel at pfeifer-mail.de Wed Mar 1 17:25:45 2017 From: daniel at pfeifer-mail.de (Daniel Pfeifer) Date: Wed, 1 Mar 2017 17:25:45 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-716-g6a1c761 Message-ID: <20170301222545.35E5FF9442@public.kitware.com> 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 6a1c76184210f5dc289293bb27d5d322c0a5f67d (commit) via e1418249313f35511a3162242d626785e4f51144 (commit) from a1cca83f3823109ad2728c3664b8895b5b528244 (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=6a1c76184210f5dc289293bb27d5d322c0a5f67d commit 6a1c76184210f5dc289293bb27d5d322c0a5f67d Merge: a1cca83 e141824 Author: Daniel Pfeifer AuthorDate: Wed Mar 1 17:25:41 2017 -0500 Commit: CMake Topic Stage CommitDate: Wed Mar 1 17:25:41 2017 -0500 Merge topic 'modernize-deprecated-headers' into next e1418249 Modernize deprecated headers https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e1418249313f35511a3162242d626785e4f51144 commit e1418249313f35511a3162242d626785e4f51144 Author: Daniel Pfeifer AuthorDate: Wed Mar 1 23:23:09 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 1 23:23:09 2017 +0100 Modernize deprecated headers Replace C standard library headers in C++ code with their C++ alternatives. diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx index d8bafee..71814bb 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx +++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx @@ -3,8 +3,8 @@ #include "cmCPackIFWInstaller.h" #include +#include #include -#include #include #include "CPack/cmCPackGenerator.h" diff --git a/Source/CPack/IFW/cmCPackIFWPackage.cxx b/Source/CPack/IFW/cmCPackIFWPackage.cxx index e23b1b9..7bf34ce 100644 --- a/Source/CPack/IFW/cmCPackIFWPackage.cxx +++ b/Source/CPack/IFW/cmCPackIFWPackage.cxx @@ -13,9 +13,9 @@ #include "cmXMLWriter.h" #include +#include #include #include -#include //----------------------------------------------------------------- Logger --- #ifdef cmCPackLogger diff --git a/Source/CPack/IFW/cmCPackIFWRepository.cxx b/Source/CPack/IFW/cmCPackIFWRepository.cxx index cc204e8..ed4cb4e 100644 --- a/Source/CPack/IFW/cmCPackIFWRepository.cxx +++ b/Source/CPack/IFW/cmCPackIFWRepository.cxx @@ -10,7 +10,7 @@ #include "cmXMLWriter.h" #include -#include +#include #ifdef cmCPackLogger #undef cmCPackLogger diff --git a/Source/CPack/OSXScriptLauncher.cxx b/Source/CPack/OSXScriptLauncher.cxx index b159e64..689633a 100644 --- a/Source/CPack/OSXScriptLauncher.cxx +++ b/Source/CPack/OSXScriptLauncher.cxx @@ -3,8 +3,8 @@ #include #include #include +#include #include -#include #include #include diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 5c50da8..28b5a78 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -9,13 +9,13 @@ #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" +#include #include -#include +#include +#include #include #include #include -#include -#include #include #include diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index ec5fc88..df6ee22 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -9,9 +9,9 @@ #include #include +#include #include #include -#include #include diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 876eab7..0e7b9f4 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -4,8 +4,8 @@ #define cmCPackDragNDropGenerator_h #include +#include #include -#include #include #include diff --git a/Source/CPack/cmCPackLog.h b/Source/CPack/cmCPackLog.h index a988ccc..d699f05 100644 --- a/Source/CPack/cmCPackLog.h +++ b/Source/CPack/cmCPackLog.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep +#include #include -#include #include #define cmCPack_Log(ctSelf, logType, msg) \ diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 1940953..690f6f3 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -11,10 +11,10 @@ #include #include #include +#include +#include #include #include -#include -#include #include /* NSIS uses different command line syntax on Windows and others */ diff --git a/Source/CPack/cmCPackPackageMakerGenerator.cxx b/Source/CPack/cmCPackPackageMakerGenerator.cxx index 8000d6e..719f7b2 100644 --- a/Source/CPack/cmCPackPackageMakerGenerator.cxx +++ b/Source/CPack/cmCPackPackageMakerGenerator.cxx @@ -2,13 +2,13 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCPackPackageMakerGenerator.h" -#include +#include #include #include +#include +#include #include #include -#include -#include #include #include "cmCPackComponentGroup.h" diff --git a/Source/CPack/cmCPackProductBuildGenerator.cxx b/Source/CPack/cmCPackProductBuildGenerator.cxx index 1389eaa..93fbc83 100644 --- a/Source/CPack/cmCPackProductBuildGenerator.cxx +++ b/Source/CPack/cmCPackProductBuildGenerator.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCPackProductBuildGenerator.h" +#include #include #include -#include #include "cmCPackComponentGroup.h" #include "cmCPackLog.h" diff --git a/Source/CPack/cmCPackRPMGenerator.cxx b/Source/CPack/cmCPackRPMGenerator.cxx index 8ec03c2..c4b5d19 100644 --- a/Source/CPack/cmCPackRPMGenerator.cxx +++ b/Source/CPack/cmCPackRPMGenerator.cxx @@ -3,7 +3,7 @@ #include "cmCPackRPMGenerator.h" #include -#include +#include #include #include #include diff --git a/Source/CPack/cmCPackSTGZGenerator.cxx b/Source/CPack/cmCPackSTGZGenerator.cxx index 682394e..536bf85 100644 --- a/Source/CPack/cmCPackSTGZGenerator.cxx +++ b/Source/CPack/cmCPackSTGZGenerator.cxx @@ -3,8 +3,8 @@ #include "cmCPackSTGZGenerator.h" #include +#include #include -#include #include #include diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index af80cbf..1896592 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -4,10 +4,10 @@ #include #include +#include #include #include #include -#include #include #include #include diff --git a/Source/CTest/cmCTestBZR.cxx b/Source/CTest/cmCTestBZR.cxx index 6769ee5..c25a38b 100644 --- a/Source/CTest/cmCTestBZR.cxx +++ b/Source/CTest/cmCTestBZR.cxx @@ -10,10 +10,10 @@ #include #include +#include #include #include #include -#include #include extern "C" int cmBZRXMLParserUnknownEncodingHandler(void* /*unused*/, diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index 6780a0e..cc46fc0 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -9,7 +9,7 @@ #include "cmake.h" #include -#include +#include cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler() { diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h index 5885738..8d7c90d 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.h +++ b/Source/CTest/cmCTestBuildAndTestHandler.h @@ -7,8 +7,8 @@ #include "cmCTestGenericHandler.h" +#include #include -#include #include #include diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx index 4c82760..3cf888a 100644 --- a/Source/CTest/cmCTestBuildCommand.cxx +++ b/Source/CTest/cmCTestBuildCommand.cxx @@ -10,8 +10,8 @@ #include "cmSystemTools.h" #include "cmake.h" +#include #include -#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx index 1868a1ee..146af63 100644 --- a/Source/CTest/cmCTestBuildHandler.cxx +++ b/Source/CTest/cmCTestBuildHandler.cxx @@ -14,9 +14,9 @@ #include #include #include +#include +#include #include -#include -#include static const char* cmCTestErrorMatches[] = { "^[Bb]us [Ee]rror", diff --git a/Source/CTest/cmCTestBuildHandler.h b/Source/CTest/cmCTestBuildHandler.h index a2f6112..b450611 100644 --- a/Source/CTest/cmCTestBuildHandler.h +++ b/Source/CTest/cmCTestBuildHandler.h @@ -9,9 +9,9 @@ #include #include +#include #include #include -#include #include #include diff --git a/Source/CTest/cmCTestConfigureCommand.cxx b/Source/CTest/cmCTestConfigureCommand.cxx index 73e893d..ce25821 100644 --- a/Source/CTest/cmCTestConfigureCommand.cxx +++ b/Source/CTest/cmCTestConfigureCommand.cxx @@ -9,8 +9,8 @@ #include "cmSystemTools.h" #include "cmake.h" +#include #include -#include #include cmCTestConfigureCommand::cmCTestConfigureCommand() diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 989c096..6c76c56 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -20,11 +20,11 @@ #include #include #include +#include +#include #include #include #include -#include -#include #include class cmMakefile; diff --git a/Source/CTest/cmCTestCurl.cxx b/Source/CTest/cmCTestCurl.cxx index ab1412d..9a3958a 100644 --- a/Source/CTest/cmCTestCurl.cxx +++ b/Source/CTest/cmCTestCurl.cxx @@ -6,8 +6,8 @@ #include "cmSystemTools.h" #include +#include #include -#include cmCTestCurl::cmCTestCurl(cmCTest* ctest) { diff --git a/Source/CTest/cmCTestGIT.cxx b/Source/CTest/cmCTestGIT.cxx index 9c53aa1..9ff604c 100644 --- a/Source/CTest/cmCTestGIT.cxx +++ b/Source/CTest/cmCTestGIT.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCTestGIT.h" +#include #include #include -#include -#include -#include -#include +#include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/CTest/cmCTestGenericHandler.h b/Source/CTest/cmCTestGenericHandler.h index 2ebbe70..e4f6783 100644 --- a/Source/CTest/cmCTestGenericHandler.h +++ b/Source/CTest/cmCTestGenericHandler.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep +#include #include -#include #include #include diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx index 2a67d47..0bfbc4e 100644 --- a/Source/CTest/cmCTestHandlerCommand.cxx +++ b/Source/CTest/cmCTestHandlerCommand.cxx @@ -8,8 +8,8 @@ #include "cmSystemTools.h" #include "cmake.h" +#include #include -#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestHandlerCommand.h b/Source/CTest/cmCTestHandlerCommand.h index c86841f..9e283fe 100644 --- a/Source/CTest/cmCTestHandlerCommand.h +++ b/Source/CTest/cmCTestHandlerCommand.h @@ -7,7 +7,7 @@ #include "cmCTestCommand.h" -#include +#include #include #include diff --git a/Source/CTest/cmCTestLaunch.cxx b/Source/CTest/cmCTestLaunch.cxx index 03e0319..679c2a8 100644 --- a/Source/CTest/cmCTestLaunch.cxx +++ b/Source/CTest/cmCTestLaunch.cxx @@ -7,9 +7,9 @@ #include #include #include +#include +#include #include -#include -#include #include "cmCryptoHash.h" #include "cmGeneratedFileStream.h" @@ -23,9 +23,9 @@ #include "cmake.h" #ifdef _WIN32 +#include // for std{out,err} and fileno #include // for _O_BINARY #include // for _setmode -#include // for std{out,err} and fileno #endif cmCTestLaunch::cmCTestLaunch(int argc, const char* const* argv) diff --git a/Source/CTest/cmCTestMemCheckHandler.cxx b/Source/CTest/cmCTestMemCheckHandler.cxx index 620e237..717cfe8 100644 --- a/Source/CTest/cmCTestMemCheckHandler.cxx +++ b/Source/CTest/cmCTestMemCheckHandler.cxx @@ -10,9 +10,9 @@ #include #include #include +#include #include #include -#include struct CatToErrorType { diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index c1724ab..a1f5fe8 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -9,15 +9,15 @@ #include "cmSystemTools.h" #include +#include #include #include #include +#include #include #include -#include #include #include -#include #include class TestComparator diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h index fe32e15..91431be 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.h +++ b/Source/CTest/cmCTestMultiProcessHandler.h @@ -6,9 +6,9 @@ #include // IWYU pragma: keep #include +#include #include #include -#include #include #include diff --git a/Source/CTest/cmCTestP4.cxx b/Source/CTest/cmCTestP4.cxx index 4f78876..b88cc00 100644 --- a/Source/CTest/cmCTestP4.cxx +++ b/Source/CTest/cmCTestP4.cxx @@ -9,8 +9,8 @@ #include #include +#include #include -#include #include cmCTestP4::cmCTestP4(cmCTest* ct, std::ostream& log) diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index ac1644f..8ad80ae 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -14,10 +14,10 @@ #include #include #include +#include +#include #include #include -#include -#include #include cmCTestRunTest::cmCTestRunTest(cmCTestTestHandler* handler) diff --git a/Source/CTest/cmCTestRunTest.h b/Source/CTest/cmCTestRunTest.h index ee4630a..a08e5d8 100644 --- a/Source/CTest/cmCTestRunTest.h +++ b/Source/CTest/cmCTestRunTest.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep +#include #include -#include #include #include diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index ce395cd..26980e3 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -10,10 +10,10 @@ #include "cmXMLWriter.h" #include +#include +#include #include #include -#include -#include struct cmCTestSVN::Revision : public cmCTestVC::Revision { diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index b537242..08af4e5 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -4,11 +4,11 @@ #include #include +#include +#include +#include #include #include -#include -#include -#include #include #include "cmCTest.h" diff --git a/Source/CTest/cmCTestSleepCommand.cxx b/Source/CTest/cmCTestSleepCommand.cxx index 2752cd3..bc4470c 100644 --- a/Source/CTest/cmCTestSleepCommand.cxx +++ b/Source/CTest/cmCTestSleepCommand.cxx @@ -4,7 +4,7 @@ #include "cmCTestScriptHandler.h" -#include +#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestStartCommand.cxx b/Source/CTest/cmCTestStartCommand.cxx index 01a874b..664cb9d 100644 --- a/Source/CTest/cmCTestStartCommand.cxx +++ b/Source/CTest/cmCTestStartCommand.cxx @@ -8,8 +8,8 @@ #include "cmMakefile.h" #include "cmSystemTools.h" +#include #include -#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index 5e5119d..d05cdc1 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -6,9 +6,9 @@ #include #include #include +#include +#include #include -#include -#include #include "cmCTest.h" #include "cmCTestCurl.h" diff --git a/Source/CTest/cmCTestTestCommand.cxx b/Source/CTest/cmCTestTestCommand.cxx index a756188..77b8882 100644 --- a/Source/CTest/cmCTestTestCommand.cxx +++ b/Source/CTest/cmCTestTestCommand.cxx @@ -7,8 +7,8 @@ #include "cmMakefile.h" #include "cmSystemTools.h" +#include #include -#include #include cmCTestTestCommand::cmCTestTestCommand() diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 6175e50..4d3f26e 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -7,15 +7,15 @@ #include #include #include +#include +#include +#include +#include #include #include #include #include #include -#include -#include -#include -#include #include "cmCTest.h" #include "cmCTestBatchTestHandler.h" diff --git a/Source/CTest/cmCTestTestHandler.h b/Source/CTest/cmCTestTestHandler.h index 5b07e98..07f698b 100644 --- a/Source/CTest/cmCTestTestHandler.h +++ b/Source/CTest/cmCTestTestHandler.h @@ -8,10 +8,10 @@ #include "cmCTestGenericHandler.h" #include +#include #include #include #include -#include #include #include #include diff --git a/Source/CTest/cmCTestVC.cxx b/Source/CTest/cmCTestVC.cxx index 26c9bb5..a2e3741 100644 --- a/Source/CTest/cmCTestVC.cxx +++ b/Source/CTest/cmCTestVC.cxx @@ -7,9 +7,9 @@ #include "cmXMLWriter.h" #include +#include +#include #include -#include -#include #include cmCTestVC::cmCTestVC(cmCTest* ct, std::ostream& log) diff --git a/Source/CTest/cmParseBlanketJSCoverage.cxx b/Source/CTest/cmParseBlanketJSCoverage.cxx index 6fa982e..dcb4701 100644 --- a/Source/CTest/cmParseBlanketJSCoverage.cxx +++ b/Source/CTest/cmParseBlanketJSCoverage.cxx @@ -7,8 +7,8 @@ #include "cmSystemTools.h" #include -#include -#include +#include +#include class cmParseBlanketJSCoverage::JSONParser { diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx index 23176b5..b5a15e4 100644 --- a/Source/CTest/cmParseCacheCoverage.cxx +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -6,9 +6,9 @@ #include #include +#include +#include #include -#include -#include #include cmParseCacheCoverage::cmParseCacheCoverage( diff --git a/Source/CTest/cmParseCoberturaCoverage.cxx b/Source/CTest/cmParseCoberturaCoverage.cxx index db17748..9c2fbab 100644 --- a/Source/CTest/cmParseCoberturaCoverage.cxx +++ b/Source/CTest/cmParseCoberturaCoverage.cxx @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include class cmParseCoberturaCoverage::XMLParser : public cmXMLParser { diff --git a/Source/CTest/cmParseDelphiCoverage.cxx b/Source/CTest/cmParseDelphiCoverage.cxx index 7fe91f4..da6c56c 100644 --- a/Source/CTest/cmParseDelphiCoverage.cxx +++ b/Source/CTest/cmParseDelphiCoverage.cxx @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include class cmParseDelphiCoverage::HTMLParser { diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 214ce5a..8914cc4 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -6,9 +6,9 @@ #include #include +#include +#include #include -#include -#include #include cmParseGTMCoverage::cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, diff --git a/Source/CTest/cmParseJacocoCoverage.cxx b/Source/CTest/cmParseJacocoCoverage.cxx index 0e36c01..a335ad5 100644 --- a/Source/CTest/cmParseJacocoCoverage.cxx +++ b/Source/CTest/cmParseJacocoCoverage.cxx @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include class cmParseJacocoCoverage::XMLParser : public cmXMLParser { diff --git a/Source/CTest/cmParsePHPCoverage.cxx b/Source/CTest/cmParsePHPCoverage.cxx index d8bb31b..c023b27 100644 --- a/Source/CTest/cmParsePHPCoverage.cxx +++ b/Source/CTest/cmParsePHPCoverage.cxx @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include /* To setup coverage for php. diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index ff8e010..bdbf051 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -11,9 +11,9 @@ #include "cmake.h" #include +#include +#include #include -#include -#include #include #include diff --git a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx index 5539fbe..9601811 100644 --- a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx +++ b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx @@ -14,7 +14,7 @@ #include "cmSystemTools.h" #include "cmake.h" -#include +#include #include #include diff --git a/Source/CursesDialog/cmCursesLongMessageForm.cxx b/Source/CursesDialog/cmCursesLongMessageForm.cxx index d299547..b8c4729 100644 --- a/Source/CursesDialog/cmCursesLongMessageForm.cxx +++ b/Source/CursesDialog/cmCursesLongMessageForm.cxx @@ -7,8 +7,8 @@ #include "cmCursesStandardIncludes.h" #include "cmVersion.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index 939c736..261c609 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -17,8 +17,8 @@ #include "cmVersion.h" #include "cmake.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/CursesDialog/cmCursesMainForm.h b/Source/CursesDialog/cmCursesMainForm.h index d891ea0..dc859fa 100644 --- a/Source/CursesDialog/cmCursesMainForm.h +++ b/Source/CursesDialog/cmCursesMainForm.h @@ -9,7 +9,7 @@ #include "cmCursesStandardIncludes.h" #include "cmStateTypes.h" -#include +#include #include #include diff --git a/Source/CursesDialog/cmCursesStringWidget.cxx b/Source/CursesDialog/cmCursesStringWidget.cxx index ff189f0..775c148 100644 --- a/Source/CursesDialog/cmCursesStringWidget.cxx +++ b/Source/CursesDialog/cmCursesStringWidget.cxx @@ -8,8 +8,8 @@ #include "cmCursesWidget.h" #include "cmStateTypes.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 5e03c39..f168162 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -184,8 +184,8 @@ int main(int argc, char** argv) } #if defined(Q_OS_MAC) -#include -#include +#include +#include #include #include static bool cmOSXInstall(std::string const& dir, std::string const& tool) diff --git a/Source/bindexplib.h b/Source/bindexplib.h index d6900ba..be229c4 100644 --- a/Source/bindexplib.h +++ b/Source/bindexplib.h @@ -5,8 +5,8 @@ #include +#include #include -#include #include class bindexplib diff --git a/Source/cmAddSubDirectoryCommand.cxx b/Source/cmAddSubDirectoryCommand.cxx index 34ec0e3..32daf68 100644 --- a/Source/cmAddSubDirectoryCommand.cxx +++ b/Source/cmAddSubDirectoryCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmAddSubDirectoryCommand.h" +#include #include -#include #include "cmMakefile.h" #include "cmSystemTools.h" diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h index f5469e5..4b72c7a 100644 --- a/Source/cmAlgorithms.h +++ b/Source/cmAlgorithms.h @@ -7,10 +7,10 @@ #include #include +#include #include #include #include -#include #include #include #include diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx index 879c2ca..63da7ff 100644 --- a/Source/cmArchiveWrite.cxx +++ b/Source/cmArchiveWrite.cxx @@ -9,9 +9,9 @@ #include #include #include +#include +#include #include -#include -#include #ifndef __LA_SSIZE_T #define __LA_SSIZE_T la_ssize_t diff --git a/Source/cmArchiveWrite.h b/Source/cmArchiveWrite.h index 27c62b9..2e57a10 100644 --- a/Source/cmArchiveWrite.h +++ b/Source/cmArchiveWrite.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep +#include #include -#include #include #if !defined(CMAKE_BUILD_WITH_CMAKE) diff --git a/Source/cmAuxSourceDirectoryCommand.cxx b/Source/cmAuxSourceDirectoryCommand.cxx index 7cfa4d8..8d5b142 100644 --- a/Source/cmAuxSourceDirectoryCommand.cxx +++ b/Source/cmAuxSourceDirectoryCommand.cxx @@ -4,7 +4,7 @@ #include #include -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmBase32.h b/Source/cmBase32.h index 44bca2f..51bd5b8 100644 --- a/Source/cmBase32.h +++ b/Source/cmBase32.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include /** \class cmBase32Encoder diff --git a/Source/cmCMakeHostSystemInformationCommand.h b/Source/cmCMakeHostSystemInformationCommand.h index 22f3d54..414c8ef 100644 --- a/Source/cmCMakeHostSystemInformationCommand.h +++ b/Source/cmCMakeHostSystemInformationCommand.h @@ -4,7 +4,7 @@ #define cmCMakeHostSystemInformationCommand_h #include -#include +#include #include #include diff --git a/Source/cmCMakeMinimumRequired.cxx b/Source/cmCMakeMinimumRequired.cxx index 942688c..60c34af 100644 --- a/Source/cmCMakeMinimumRequired.cxx +++ b/Source/cmCMakeMinimumRequired.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCMakeMinimumRequired.h" +#include #include -#include #include "cmMakefile.h" #include "cmSystemTools.h" diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx index e78f5fe..45805b2 100644 --- a/Source/cmCPluginAPI.cxx +++ b/Source/cmCPluginAPI.cxx @@ -14,7 +14,7 @@ #include "cmState.h" #include "cmVersion.h" -#include +#include #ifdef __QNX__ #include /* for malloc/free on QNX */ diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 559275e..0cfd79b 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -2,6 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCTest.h" +#include #include #include #include @@ -11,15 +12,14 @@ #include #include #include -#include +#include +#include +#include +#include #include #include #include -#include -#include -#include #include -#include #include #include diff --git a/Source/cmCTest.h b/Source/cmCTest.h index ebdc8b0..4cc1e4f 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -7,11 +7,11 @@ #include #include +#include #include #include #include #include -#include #include class cmCTestGenericHandler; diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index cb0ba63..e80d77d 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -5,9 +5,9 @@ #include #include #include +#include +#include #include -#include -#include #include "cmGeneratedFileStream.h" #include "cmState.h" diff --git a/Source/cmCommandArgumentParser.y b/Source/cmCommandArgumentParser.y index d71b605..ccf0475 100644 --- a/Source/cmCommandArgumentParser.y +++ b/Source/cmCommandArgumentParser.y @@ -189,4 +189,3 @@ void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message) { yyGetParser->Error(message); } - diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx index 2d66344..978d4a4 100644 --- a/Source/cmCommandArgumentParserHelper.cxx +++ b/Source/cmCommandArgumentParserHelper.cxx @@ -11,9 +11,9 @@ #include "cmake.h" #include +#include #include #include -#include int cmCommandArgument_yyparse(yyscan_t yyscanner); // diff --git a/Source/cmComputeComponentGraph.cxx b/Source/cmComputeComponentGraph.cxx index a02d885..6f3abfa 100644 --- a/Source/cmComputeComponentGraph.cxx +++ b/Source/cmComputeComponentGraph.cxx @@ -4,7 +4,7 @@ #include -#include +#include cmComputeComponentGraph::cmComputeComponentGraph(Graph const& input) : InputGraph(input) diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index 3e2cf18..4ecff20 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -14,11 +14,11 @@ #include "cmake.h" #include -#include +#include +#include +#include #include #include -#include -#include #include /* diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 80e7e7d..31badd9 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -18,9 +18,9 @@ #include "cmake.h" #include -#include +#include +#include #include -#include #include //#define CM_COMPUTE_LINK_INFO_DEBUG diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx index cfebda2..cae505b 100644 --- a/Source/cmComputeTargetDepends.cxx +++ b/Source/cmComputeTargetDepends.cxx @@ -17,9 +17,9 @@ #include "cmTargetDepend.h" #include "cmake.h" -#include +#include +#include #include -#include #include class cmListFileBacktrace; diff --git a/Source/cmConditionEvaluator.cxx b/Source/cmConditionEvaluator.cxx index f2eb601..42362d4 100644 --- a/Source/cmConditionEvaluator.cxx +++ b/Source/cmConditionEvaluator.cxx @@ -5,10 +5,10 @@ #include #include #include +#include +#include +#include #include -#include -#include -#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index fd9d04b..a4bc768 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -4,10 +4,10 @@ #include #include +#include +#include #include #include -#include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmCryptoHash.cxx b/Source/cmCryptoHash.cxx index d5807b1..771c377 100644 --- a/Source/cmCryptoHash.cxx +++ b/Source/cmCryptoHash.cxx @@ -5,7 +5,7 @@ #include #include #include -#include +#include static unsigned int const cmCryptoHashAlgoToId[] = { /* clang-format needs this comment to break after the opening brace */ diff --git a/Source/cmCryptoHash.h b/Source/cmCryptoHash.h index 0b562da..2372a45 100644 --- a/Source/cmCryptoHash.h +++ b/Source/cmCryptoHash.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx index 47fe76a..c20d277 100644 --- a/Source/cmDefinitions.cxx +++ b/Source/cmDefinitions.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmDefinitions.h" -#include +#include #include #include #include diff --git a/Source/cmDepends.cxx b/Source/cmDepends.cxx index c189419..201a1bf 100644 --- a/Source/cmDepends.cxx +++ b/Source/cmDepends.cxx @@ -9,8 +9,8 @@ #include "cmSystemTools.h" #include +#include #include -#include #include cmDepends::cmDepends(cmLocalGenerator* lg, const char* targetDir) diff --git a/Source/cmDepends.h b/Source/cmDepends.h index f677f80..205667b 100644 --- a/Source/cmDepends.h +++ b/Source/cmDepends.h @@ -5,10 +5,10 @@ #include +#include #include #include #include -#include #include #include diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx index 7927402..891a885 100644 --- a/Source/cmDependsFortran.cxx +++ b/Source/cmDependsFortran.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmDependsFortran.h" -#include +#include #include +#include +#include #include #include -#include -#include #include #include "cmFortranParser.h" /* Interface to parser object. */ diff --git a/Source/cmDependsJavaParserHelper.cxx b/Source/cmDependsJavaParserHelper.cxx index f5998ef..bc20d63 100644 --- a/Source/cmDependsJavaParserHelper.cxx +++ b/Source/cmDependsJavaParserHelper.cxx @@ -8,10 +8,10 @@ #include "cmSystemTools.h" #include +#include +#include +#include #include -#include -#include -#include int cmDependsJava_yyparse(yyscan_t yyscanner); diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx index cb24adf..8d7f2f0 100644 --- a/Source/cmDocumentation.cxx +++ b/Source/cmDocumentation.cxx @@ -10,10 +10,10 @@ #include "cmVersion.h" #include +#include #include #include -#include -#include +#include #include static const char* cmDocumentationStandardOptions[][2] = { diff --git a/Source/cmDocumentationFormatter.cxx b/Source/cmDocumentationFormatter.cxx index 0018263..58a1743 100644 --- a/Source/cmDocumentationFormatter.cxx +++ b/Source/cmDocumentationFormatter.cxx @@ -5,8 +5,8 @@ #include "cmDocumentationEntry.h" #include "cmDocumentationSection.h" +#include #include -#include #include #include diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx index 0655da9..7e88bb2 100644 --- a/Source/cmELF.cxx +++ b/Source/cmELF.cxx @@ -5,16 +5,16 @@ #include #include #include +#include #include #include -#include #include #include // Include the ELF format information system header. #if defined(__OpenBSD__) +#include #include -#include #elif defined(__HAIKU__) #include #include diff --git a/Source/cmExecProgramCommand.cxx b/Source/cmExecProgramCommand.cxx index 6a7292d..5ce39ae 100644 --- a/Source/cmExecProgramCommand.cxx +++ b/Source/cmExecProgramCommand.cxx @@ -3,7 +3,7 @@ #include "cmExecProgramCommand.h" #include -#include +#include #include "cmMakefile.h" #include "cmProcessOutput.h" diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx index 92cdf64..1292dbe 100644 --- a/Source/cmExecuteProcessCommand.cxx +++ b/Source/cmExecuteProcessCommand.cxx @@ -2,10 +2,10 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExecuteProcessCommand.h" +#include /* isspace */ #include -#include /* isspace */ +#include #include -#include #include "cmMakefile.h" #include "cmProcessOutput.h" diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 6c21eaf..86b0e23 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -17,11 +17,11 @@ #include "cmTargetExport.h" #include "cmake.h" -#include +#include #include #include +#include #include -#include #include static std::string cmExportFileGeneratorEscape(std::string const& str) diff --git a/Source/cmExportInstallAndroidMKGenerator.cxx b/Source/cmExportInstallAndroidMKGenerator.cxx index 9a1c647..e61717e 100644 --- a/Source/cmExportInstallAndroidMKGenerator.cxx +++ b/Source/cmExportInstallAndroidMKGenerator.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExportInstallAndroidMKGenerator.h" +#include #include -#include #include "cmExportBuildAndroidMKGenerator.h" #include "cmExportSet.h" diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index 2dffcaa..44ba83a 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExtraCodeBlocksGenerator.h" +#include #include #include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx index fd7da18..9a78554 100644 --- a/Source/cmExtraCodeLiteGenerator.cxx +++ b/Source/cmExtraCodeLiteGenerator.cxx @@ -14,10 +14,10 @@ #include "cmake.h" #include +#include #include #include #include -#include #include cmExtraCodeLiteGenerator::cmExtraCodeLiteGenerator() diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index b4fc771..1007329 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -3,11 +3,11 @@ #include "cmExtraEclipseCDT4Generator.h" #include -#include +#include #include +#include #include #include -#include #include #include "cmGeneratedFileStream.h" diff --git a/Source/cmExtraKateGenerator.cxx b/Source/cmExtraKateGenerator.cxx index 3730433..ed90851 100644 --- a/Source/cmExtraKateGenerator.cxx +++ b/Source/cmExtraKateGenerator.cxx @@ -11,9 +11,9 @@ #include "cmStateTypes.h" #include "cmSystemTools.h" +#include #include #include -#include #include cmExtraKateGenerator::cmExtraKateGenerator() diff --git a/Source/cmExtraSublimeTextGenerator.cxx b/Source/cmExtraSublimeTextGenerator.cxx index 36ba520..76d5891 100644 --- a/Source/cmExtraSublimeTextGenerator.cxx +++ b/Source/cmExtraSublimeTextGenerator.cxx @@ -3,9 +3,9 @@ #include "cmExtraSublimeTextGenerator.h" #include +#include #include #include -#include #include #include "cmGeneratedFileStream.h" diff --git a/Source/cmFLTKWrapUICommand.cxx b/Source/cmFLTKWrapUICommand.cxx index ff78f52..c82127b 100644 --- a/Source/cmFLTKWrapUICommand.cxx +++ b/Source/cmFLTKWrapUICommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFLTKWrapUICommand.h" -#include +#include #include "cmCustomCommandLines.h" #include "cmMakefile.h" diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 91cecb3..5503b08 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -3,18 +3,18 @@ #include "cmFileCommand.h" #include -#include +#include #include #include #include #include #include #include +#include +#include +#include #include #include -#include -#include -#include #include // include sys/stat.h after sys/types.h diff --git a/Source/cmFileLock.cxx b/Source/cmFileLock.cxx index 786d6c6..a03f09e 100644 --- a/Source/cmFileLock.cxx +++ b/Source/cmFileLock.cxx @@ -3,7 +3,7 @@ #include "cmFileLock.h" #include "cmFileLockResult.h" -#include +#include // Common implementation diff --git a/Source/cmFileLockPool.cxx b/Source/cmFileLockPool.cxx index 7b1564c..24f8467 100644 --- a/Source/cmFileLockPool.cxx +++ b/Source/cmFileLockPool.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileLockPool.h" -#include +#include #include "cmAlgorithms.h" #include "cmFileLock.h" diff --git a/Source/cmFileLockResult.cxx b/Source/cmFileLockResult.cxx index a040705..0ae3a37 100644 --- a/Source/cmFileLockResult.cxx +++ b/Source/cmFileLockResult.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileLockResult.h" -#include -#include +#include +#include cmFileLockResult cmFileLockResult::MakeOk() { diff --git a/Source/cmFileLockUnix.cxx b/Source/cmFileLockUnix.cxx index 7353b01..9f928d6 100644 --- a/Source/cmFileLockUnix.cxx +++ b/Source/cmFileLockUnix.cxx @@ -3,9 +3,9 @@ #include "cmFileLock.h" #include "cmSystemTools.h" -#include // errno +#include // errno +#include // SEEK_SET #include -#include // SEEK_SET #include cmFileLock::cmFileLock() diff --git a/Source/cmFilePathChecksum.h b/Source/cmFilePathChecksum.h index 59ca34c..3f2f50a 100644 --- a/Source/cmFilePathChecksum.h +++ b/Source/cmFilePathChecksum.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmFileTimeComparison.cxx b/Source/cmFileTimeComparison.cxx index 991ebb8..6f0393a 100644 --- a/Source/cmFileTimeComparison.cxx +++ b/Source/cmFileTimeComparison.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileTimeComparison.h" +#include #include -#include #include #include "cm_unordered_map.hxx" diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx index dce5021..cabecdf 100644 --- a/Source/cmFindBase.cxx +++ b/Source/cmFindBase.cxx @@ -3,9 +3,9 @@ #include "cmFindBase.h" #include +#include #include #include -#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmFindCommon.cxx b/Source/cmFindCommon.cxx index 110195c..ee6add0 100644 --- a/Source/cmFindCommon.cxx +++ b/Source/cmFindCommon.cxx @@ -3,7 +3,7 @@ #include "cmFindCommon.h" #include -#include +#include #include #include "cmMakefile.h" diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index c86f9c1..4272407 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -4,9 +4,9 @@ #include #include +#include +#include #include -#include -#include #include "cmGlobalGenerator.h" #include "cmMakefile.h" diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 60de74f..1ac2b11 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -3,18 +3,18 @@ #include "cmFindPackageCommand.h" #include -#include +#include #include #include #include #include #include #include +#include +#include #include #include #include -#include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx index 6273f6e..7690852 100644 --- a/Source/cmForEachCommand.cxx +++ b/Source/cmForEachCommand.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmForEachCommand.h" +#include +#include #include -#include -#include #include "cmExecutionStatus.h" #include "cmMakefile.h" diff --git a/Source/cmFortranParserImpl.cxx b/Source/cmFortranParserImpl.cxx index 1a5e6c5..1c93fd5 100644 --- a/Source/cmFortranParserImpl.cxx +++ b/Source/cmFortranParserImpl.cxx @@ -4,11 +4,11 @@ #include "cmFortranLexer.h" #include "cmSystemTools.h" -#include +#include #include +#include #include #include -#include #include #include diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx index 4731493..4cf1023 100644 --- a/Source/cmGeneratedFileStream.cxx +++ b/Source/cmGeneratedFileStream.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmGeneratedFileStream.h" -#include +#include #include "cmSystemTools.h" diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index e70bbfe..88ec85e 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -5,7 +5,6 @@ #include #include -#include "assert.h" #include "cmAlgorithms.h" #include "cmGeneratorExpressionContext.h" #include "cmGeneratorExpressionEvaluator.h" @@ -13,6 +12,7 @@ #include "cmGeneratorExpressionParser.h" #include "cmSystemTools.h" #include "cm_auto_ptr.hxx" +#include cmGeneratorExpression::cmGeneratorExpression( const cmListFileBacktrace& backtrace) diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index c026631..2a834b7 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -9,8 +9,8 @@ #include "cmLocalGenerator.h" #include "cmake.h" +#include #include -#include #include cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( diff --git a/Source/cmGeneratorExpressionEvaluator.h b/Source/cmGeneratorExpressionEvaluator.h index 41bea9b..5174290 100644 --- a/Source/cmGeneratorExpressionEvaluator.h +++ b/Source/cmGeneratorExpressionEvaluator.h @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/Source/cmGeneratorExpressionLexer.h b/Source/cmGeneratorExpressionLexer.h index cac255d..de6ae13 100644 --- a/Source/cmGeneratorExpressionLexer.h +++ b/Source/cmGeneratorExpressionLexer.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 66202df..2f8bed1 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -22,16 +22,16 @@ #include "cmake.h" #include -#include +#include +#include #include #include #include -#include +#include +#include #include #include #include -#include -#include #include std::string cmGeneratorExpressionNode::EvaluateDependentExpression( diff --git a/Source/cmGeneratorExpressionParser.cxx b/Source/cmGeneratorExpressionParser.cxx index c33349a..e07e8c8 100644 --- a/Source/cmGeneratorExpressionParser.cxx +++ b/Source/cmGeneratorExpressionParser.cxx @@ -4,8 +4,8 @@ #include "cmGeneratorExpressionEvaluator.h" -#include -#include +#include +#include cmGeneratorExpressionParser::cmGeneratorExpressionParser( const std::vector& tokens) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 47d685d..e39c497 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3,15 +3,15 @@ #include "cmGeneratorTarget.h" #include -#include +#include +#include #include -#include +#include +#include +#include #include #include #include -#include -#include -#include #include "cmAlgorithms.h" #include "cmComputeLinkInformation.h" @@ -46,8 +46,9 @@ const char* cmTargetPropertyComputer::GetSources( } template <> -const char* cmTargetPropertyComputer::ComputeLocationForBuild< - cmGeneratorTarget>(cmGeneratorTarget const* tgt) +const char* +cmTargetPropertyComputer::ComputeLocationForBuild( + cmGeneratorTarget const* tgt) { return tgt->GetLocation(""); } diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx index ba623d5..6138bf9 100644 --- a/Source/cmGhsMultiTargetGenerator.cxx +++ b/Source/cmGhsMultiTargetGenerator.cxx @@ -10,7 +10,7 @@ #include "cmMakefile.h" #include "cmSourceFile.h" #include "cmTarget.h" -#include +#include std::string const cmGhsMultiTargetGenerator::DDOption("-dynamic"); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b6b7d9e..4d40466 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -10,14 +10,14 @@ #include "cmGlobalGenerator.h" #include -#include +#include #include #include +#include +#include +#include #include #include -#include -#include -#include #include "cmAlgorithms.h" #include "cmCPackPropertiesGenerator.h" diff --git a/Source/cmGlobalKdevelopGenerator.cxx b/Source/cmGlobalKdevelopGenerator.cxx index 75209c3..c66b14d 100644 --- a/Source/cmGlobalKdevelopGenerator.cxx +++ b/Source/cmGlobalKdevelopGenerator.cxx @@ -16,9 +16,9 @@ #include #include +#include #include #include -#include #include cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator() diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 1bdef53..5de5105 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -3,15 +3,15 @@ #include "cmGlobalNinjaGenerator.h" #include +#include #include #include #include #include -#include +#include #include #include #include -#include #include "cmAlgorithms.h" #include "cmDocumentationEntry.h" diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 67d7bc9..900fdfb 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -5,10 +5,10 @@ #include +#include #include #include #include -#include #include #include diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 65a0bde..e16384c 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -13,7 +13,7 @@ #include "cmake.h" #include -#include +#include static cmVS7FlagTable cmVS7ExtraFlagTable[] = { // Precompiled header and related options. Note that the diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index d1b6130..c298cb4 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmGlobalXCodeGenerator.h" -#include +#include #include +#include +#include #include #include -#include -#include #include "cmComputeLinkInformation.h" #include "cmCustomCommandGenerator.h" diff --git a/Source/cmHexFileConverter.cxx b/Source/cmHexFileConverter.cxx index d9d6598..443d465 100644 --- a/Source/cmHexFileConverter.cxx +++ b/Source/cmHexFileConverter.cxx @@ -3,8 +3,8 @@ #include "cmHexFileConverter.h" #include -#include -#include +#include +#include #include "cmSystemTools.h" diff --git a/Source/cmIDEOptions.cxx b/Source/cmIDEOptions.cxx index 1c0a99e..3a19ae2 100644 --- a/Source/cmIDEOptions.cxx +++ b/Source/cmIDEOptions.cxx @@ -3,8 +3,8 @@ #include "cmIDEOptions.h" #include +#include #include -#include #include "cmIDEFlagTable.h" #include "cmSystemTools.h" diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index 4c331c7..1ef7aac 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -3,8 +3,8 @@ #include "cmInstallCommand.h" #include +#include #include -#include #include "cmAlgorithms.h" #include "cmCommandArgumentsHelper.h" diff --git a/Source/cmInstallExportAndroidMKGenerator.cxx b/Source/cmInstallExportAndroidMKGenerator.cxx index 8eeaa9c..ceb54bd 100644 --- a/Source/cmInstallExportAndroidMKGenerator.cxx +++ b/Source/cmInstallExportAndroidMKGenerator.cxx @@ -3,7 +3,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmInstallExportAndroidMKGenerator.h" -#include +#include #include "cmExportInstallFileGenerator.h" #include "cmExportSet.h" diff --git a/Source/cmInstallExportGenerator.h b/Source/cmInstallExportGenerator.h index b0fe889..2270e85 100644 --- a/Source/cmInstallExportGenerator.h +++ b/Source/cmInstallExportGenerator.h @@ -8,8 +8,8 @@ #include "cmInstallGenerator.h" #include "cmScriptGenerator.h" +#include #include -#include #include #include diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 88fcc56..4d34c7d 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmInstallTargetGenerator.h" -#include +#include #include #include #include diff --git a/Source/cmLinkedTree.h b/Source/cmLinkedTree.h index 4f95522..e5b7b97 100644 --- a/Source/cmLinkedTree.h +++ b/Source/cmLinkedTree.h @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx index 295ea28..22e4fe4 100644 --- a/Source/cmListCommand.cxx +++ b/Source/cmListCommand.cxx @@ -3,12 +3,12 @@ #include "cmListCommand.h" #include -#include +#include #include +#include +#include // required for atoi #include #include -#include -#include // required for atoi #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index 23b666e..bc25d8c 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -10,7 +10,7 @@ #include "cmake.h" #include -#include +#include #include #include diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx index 5cf1853..2163f06 100644 --- a/Source/cmLoadCommandCommand.cxx +++ b/Source/cmLoadCommandCommand.cxx @@ -2,11 +2,11 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmLoadCommandCommand.h" -#include +#include +#include +#include +#include #include -#include -#include -#include #include "cmCPluginAPI.cxx" #include "cmCPluginAPI.h" diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 07d712c..d077a07 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -31,12 +31,12 @@ #endif #include -#include +#include #include +#include +#include #include #include -#include -#include #include #if defined(__HAIKU__) diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index c2d9d57..756f63a 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -3,10 +3,10 @@ #include "cmLocalNinjaGenerator.h" #include -#include +#include +#include #include #include -#include #include #include "cmCustomCommand.h" diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 4388e75..7b614a8 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -5,9 +5,9 @@ #include #include #include +#include #include #include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 6e976e1..3a8e404 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -15,7 +15,7 @@ #include "cmComputeLinkInformation.h" #include "cmGeneratedFileStream.h" -#include // for isspace +#include // for isspace static bool cmLVS7G_IsFAT(const char* dir); diff --git a/Source/cmLocale.h b/Source/cmLocale.h index cca7cf5..ec05a46 100644 --- a/Source/cmLocale.h +++ b/Source/cmLocale.h @@ -5,7 +5,7 @@ #include -#include +#include #include class cmLocaleRAII diff --git a/Source/cmMachO.cxx b/Source/cmMachO.cxx index 586e6c6..fc2b3f9 100644 --- a/Source/cmMachO.cxx +++ b/Source/cmMachO.cxx @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx index 583f801..50ef47a 100644 --- a/Source/cmMacroCommand.cxx +++ b/Source/cmMacroCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMacroCommand.h" +#include #include -#include #include "cmAlgorithms.h" #include "cmExecutionStatus.h" diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c75d101..2d9fabb 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3,13 +3,13 @@ #include "cmMakefile.h" #include -#include +#include +#include #include #include -#include +#include +#include #include -#include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 54b3f36..05e77d7 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMakefileTargetGenerator.h" +#include #include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmMathCommand.cxx b/Source/cmMathCommand.cxx index c1cd1b6..11210ed 100644 --- a/Source/cmMathCommand.cxx +++ b/Source/cmMathCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMathCommand.h" -#include +#include #include "cmExprParserHelper.h" #include "cmMakefile.h" diff --git a/Source/cmNewLineStyle.cxx b/Source/cmNewLineStyle.cxx index 55451ff..2d1d8cc 100644 --- a/Source/cmNewLineStyle.cxx +++ b/Source/cmNewLineStyle.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmNewLineStyle.h" -#include +#include cmNewLineStyle::cmNewLineStyle() : NewLineStyle(Invalid) diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 9bf0ccd..c3dd148 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -3,13 +3,13 @@ #include "cmNinjaNormalTargetGenerator.h" #include -#include +#include +#include #include #include #include #include #include -#include #include "cmAlgorithms.h" #include "cmCustomCommand.h" diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index b1f26e4..d6aa1e0 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -3,13 +3,13 @@ #include "cmNinjaTargetGenerator.h" #include -#include +#include #include #include +#include #include #include #include -#include #include "cmAlgorithms.h" #include "cmComputeLinkInformation.h" diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index 7744a5a..928de52 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -9,7 +9,7 @@ #include "cmake.h" #include -#include +#include #include #include diff --git a/Source/cmOutputConverter.cxx b/Source/cmOutputConverter.cxx index d6864a6..2aa0131 100644 --- a/Source/cmOutputConverter.cxx +++ b/Source/cmOutputConverter.cxx @@ -3,8 +3,8 @@ #include "cmOutputConverter.h" #include -#include -#include +#include +#include #include #include #include diff --git a/Source/cmOutputRequiredFilesCommand.h b/Source/cmOutputRequiredFilesCommand.h index c4ce680..2de2671 100644 --- a/Source/cmOutputRequiredFilesCommand.h +++ b/Source/cmOutputRequiredFilesCommand.h @@ -4,8 +4,8 @@ #define cmOutputRequiredFilesCommand_h #include +#include #include -#include #include #include diff --git a/Source/cmParseArgumentsCommand.cxx b/Source/cmParseArgumentsCommand.cxx index d75ee8e..ac67e04 100644 --- a/Source/cmParseArgumentsCommand.cxx +++ b/Source/cmParseArgumentsCommand.cxx @@ -2,10 +2,10 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmParseArgumentsCommand.h" +#include #include #include #include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmPathLabel.cxx b/Source/cmPathLabel.cxx index 30ba081..8f97c84 100644 --- a/Source/cmPathLabel.cxx +++ b/Source/cmPathLabel.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmPathLabel.h" -#include +#include cmPathLabel::cmPathLabel(const std::string& label) : Label(label) diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index 6339e11..da6359b 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -8,12 +8,12 @@ #include "cmVersion.h" #include "cmake.h" -#include +#include +#include #include -#include +#include +#include #include -#include -#include #include static bool stringToId(const char* input, cmPolicies::PolicyID& pid) diff --git a/Source/cmProcessOutput.h b/Source/cmProcessOutput.h index d2e631f..80ef792 100644 --- a/Source/cmProcessOutput.h +++ b/Source/cmProcessOutput.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmProcessTools.h b/Source/cmProcessTools.h index df131b9..8668a5c 100644 --- a/Source/cmProcessTools.h +++ b/Source/cmProcessTools.h @@ -6,8 +6,8 @@ #include "cmProcessOutput.h" #include +#include #include -#include #include /** \class cmProcessTools diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx index 4e0fa57..3aefdb2 100644 --- a/Source/cmProjectCommand.cxx +++ b/Source/cmProjectCommand.cxx @@ -3,8 +3,8 @@ #include "cmProjectCommand.h" #include +#include #include -#include #include "cmMakefile.h" #include "cmPolicies.h" diff --git a/Source/cmPropertyMap.cxx b/Source/cmPropertyMap.cxx index fa92ae2..6db73c0 100644 --- a/Source/cmPropertyMap.cxx +++ b/Source/cmPropertyMap.cxx @@ -3,7 +3,7 @@ #include "cmPropertyMap.h" #include -#include +#include #include #include diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index de18265..25521c1 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -25,10 +25,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index e7e456a..603e166 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -3,14 +3,14 @@ #include "cmQtAutoGenerators.h" #include -#include +#include #include #include #include +#include +#include #include #include -#include -#include #include #include "cmAlgorithms.h" diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx index 355b8c4..bc17236 100644 --- a/Source/cmRST.cxx +++ b/Source/cmRST.cxx @@ -7,10 +7,10 @@ #include "cmVersion.h" #include +#include #include -#include +#include #include -#include #include cmRST::cmRST(std::ostream& os, std::string const& docroot) diff --git a/Source/cmRulePlaceholderExpander.cxx b/Source/cmRulePlaceholderExpander.cxx index f190a5c..d96d1c3 100644 --- a/Source/cmRulePlaceholderExpander.cxx +++ b/Source/cmRulePlaceholderExpander.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmRulePlaceholderExpander.h" -#include -#include +#include +#include #include #include "cmOutputConverter.h" diff --git a/Source/cmServerConnection.cxx b/Source/cmServerConnection.cxx index 008052b..5ee8684 100644 --- a/Source/cmServerConnection.cxx +++ b/Source/cmServerConnection.cxx @@ -7,8 +7,8 @@ #include "cmFileMonitor.h" #include "cmServer.h" -#include -#include +#include +#include namespace { diff --git a/Source/cmSetCommand.cxx b/Source/cmSetCommand.cxx index 820e7f6..728fbbd 100644 --- a/Source/cmSetCommand.cxx +++ b/Source/cmSetCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmSetCommand.h" -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmSourceFileLocation.cxx b/Source/cmSourceFileLocation.cxx index 4e0880e..d3e5cd1 100644 --- a/Source/cmSourceFileLocation.cxx +++ b/Source/cmSourceFileLocation.cxx @@ -11,7 +11,7 @@ #include "cmake.h" #include -#include +#include #include cmSourceFileLocation::cmSourceFileLocation() diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx index 631f2a6..9293c23 100644 --- a/Source/cmSourceGroupCommand.cxx +++ b/Source/cmSourceGroupCommand.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmSourceGroupCommand.h" +#include #include #include -#include #include "cmMakefile.h" #include "cmSourceGroup.h" diff --git a/Source/cmState.cxx b/Source/cmState.cxx index 18d5ea1..aaf8cf0 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -3,9 +3,9 @@ #include "cmState.h" #include -#include +#include #include -#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmStateDirectory.cxx b/Source/cmStateDirectory.cxx index 46a1858..c402619 100644 --- a/Source/cmStateDirectory.cxx +++ b/Source/cmStateDirectory.cxx @@ -4,7 +4,7 @@ #include "cmStateDirectory.h" #include -#include +#include #include #include #include diff --git a/Source/cmStateSnapshot.cxx b/Source/cmStateSnapshot.cxx index d2c9d73..9e5bcce 100644 --- a/Source/cmStateSnapshot.cxx +++ b/Source/cmStateSnapshot.cxx @@ -4,9 +4,9 @@ #include "cmStateSnapshot.h" #include -#include +#include +#include #include -#include #include "cmAlgorithms.h" #include "cmDefinitions.h" diff --git a/Source/cmStringCommand.cxx b/Source/cmStringCommand.cxx index eb94080..a308975 100644 --- a/Source/cmStringCommand.cxx +++ b/Source/cmStringCommand.cxx @@ -2,11 +2,11 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmStringCommand.h" +#include #include -#include +#include +#include #include -#include -#include #include "cmAlgorithms.h" #include "cmCryptoHash.h" diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index b7afa10..3123329 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -27,7 +27,9 @@ #endif #include -#include +#include +#include +#include #include #include #include @@ -35,16 +37,14 @@ #include #include #include -#include -#include +#include +#include +#include +#include #include #include #include -#include -#include -#include #include -#include #include #if defined(_WIN32) diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index 10e8280..2641faa 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 0f3d91b..9fb57fc 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3,12 +3,12 @@ #include "cmTarget.h" #include -#include +#include #include +#include #include #include #include -#include #include "cmAlgorithms.h" #include "cmGeneratorExpression.h" diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx index e173036..50fd9b7 100644 --- a/Source/cmTargetLinkLibrariesCommand.cxx +++ b/Source/cmTargetLinkLibrariesCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmTargetLinkLibrariesCommand.h" +#include #include -#include #include "cmGeneratorExpression.h" #include "cmGlobalGenerator.h" diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx index 3d42e26..4b72d49 100644 --- a/Source/cmTimestamp.cxx +++ b/Source/cmTimestamp.cxx @@ -3,9 +3,9 @@ #include "cmTimestamp.h" #include +#include #include #include -#include #include "cmSystemTools.h" diff --git a/Source/cmTimestamp.h b/Source/cmTimestamp.h index fdee564..e2adc4d 100644 --- a/Source/cmTimestamp.h +++ b/Source/cmTimestamp.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep +#include #include -#include /** \class cmTimestamp * \brief Utility class to generate string representation of a timestamp diff --git a/Source/cmTryRunCommand.cxx b/Source/cmTryRunCommand.cxx index c4fc94e..c476bcb 100644 --- a/Source/cmTryRunCommand.cxx +++ b/Source/cmTryRunCommand.cxx @@ -3,8 +3,8 @@ #include "cmTryRunCommand.h" #include -#include -#include +#include +#include #include "cmMakefile.h" #include "cmState.h" diff --git a/Source/cmUnexpectedCommand.cxx b/Source/cmUnexpectedCommand.cxx index a8de9e6..fe25038 100644 --- a/Source/cmUnexpectedCommand.cxx +++ b/Source/cmUnexpectedCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUnexpectedCommand.h" -#include +#include #include "cmMakefile.h" diff --git a/Source/cmUnsetCommand.cxx b/Source/cmUnsetCommand.cxx index 31525ba..1c73312 100644 --- a/Source/cmUnsetCommand.cxx +++ b/Source/cmUnsetCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUnsetCommand.h" -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmUtilitySourceCommand.cxx b/Source/cmUtilitySourceCommand.cxx index 37d8bfb..07ada54 100644 --- a/Source/cmUtilitySourceCommand.cxx +++ b/Source/cmUtilitySourceCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUtilitySourceCommand.h" -#include +#include #include "cmMakefile.h" #include "cmState.h" diff --git a/Source/cmUuid.cxx b/Source/cmUuid.cxx index 201e1cc..c7b4d1c 100644 --- a/Source/cmUuid.cxx +++ b/Source/cmUuid.cxx @@ -4,7 +4,7 @@ #include "cmCryptoHash.h" -#include +#include cmUuid::cmUuid() { diff --git a/Source/cmVisualStudioSlnParser.h b/Source/cmVisualStudioSlnParser.h index a3391a6..49eb5dc 100644 --- a/Source/cmVisualStudioSlnParser.h +++ b/Source/cmVisualStudioSlnParser.h @@ -6,8 +6,8 @@ #include #include +#include #include -#include #include class cmSlnData; diff --git a/Source/cmVisualStudioWCEPlatformParser.h b/Source/cmVisualStudioWCEPlatformParser.h index 8ed6083..e2ee582 100644 --- a/Source/cmVisualStudioWCEPlatformParser.h +++ b/Source/cmVisualStudioWCEPlatformParser.h @@ -5,8 +5,8 @@ #include +#include #include -#include #include #include diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx index 231e95e..c642e6d 100644 --- a/Source/cmXMLParser.cxx +++ b/Source/cmXMLParser.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmXMLParser.h" +#include #include #include -#include +#include #include #include -#include cmXMLParser::cmXMLParser() { diff --git a/Source/cmXMLSafe.cxx b/Source/cmXMLSafe.cxx index d9bdc02..7c3b306 100644 --- a/Source/cmXMLSafe.cxx +++ b/Source/cmXMLSafe.cxx @@ -4,9 +4,9 @@ #include "cm_utf8.h" +#include +#include #include -#include -#include cmXMLSafe::cmXMLSafe(const char* s) : Data(s) diff --git a/Source/cm_codecvt.hxx b/Source/cm_codecvt.hxx index fcd9954..cbd9c22 100644 --- a/Source/cm_codecvt.hxx +++ b/Source/cm_codecvt.hxx @@ -5,9 +5,9 @@ #include +#include #include #include -#include class codecvt : public std::codecvt { diff --git a/Source/cm_get_date.h b/Source/cm_get_date.h index 6acf8de..d486a39 100644 --- a/Source/cm_get_date.h +++ b/Source/cm_get_date.h @@ -3,10 +3,11 @@ #ifndef cm_get_date_h #define cm_get_date_h -#include - #ifdef __cplusplus +#include extern "C" { +#else +#include #endif /** Parse a date/time string. Treat relative times with respect to 'now'. */ diff --git a/Source/cmake.cxx b/Source/cmake.cxx index b2384cd..6a006a2 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -113,11 +113,11 @@ #include #include #include +#include +#include +#include #include #include -#include -#include -#include #include namespace { diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index b8e227f..a27ee75 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -22,8 +22,8 @@ #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include #endif +#include #include -#include #include #include diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 823b38f..7bc3e2f 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -38,11 +38,11 @@ #include #include #include +#include +#include +#include #include #include -#include -#include -#include int cmcmd_cmake_ninja_depends(std::vector::const_iterator argBeg, std::vector::const_iterator argEnd); diff --git a/Source/ctest.cxx b/Source/ctest.cxx index 1cf75c8..85965a2 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -13,8 +13,8 @@ #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include #endif +#include #include -#include #include #include diff --git a/Tests/CMakeLib/run_compile_commands.cxx b/Tests/CMakeLib/run_compile_commands.cxx index 5d4ca70..9701464 100644 --- a/Tests/CMakeLib/run_compile_commands.cxx +++ b/Tests/CMakeLib/run_compile_commands.cxx @@ -1,9 +1,9 @@ #include #include +#include #include #include -#include #include #include #include diff --git a/Tests/CMakeLib/testSystemTools.cxx b/Tests/CMakeLib/testSystemTools.cxx index 0dfa326..bdffecc 100644 --- a/Tests/CMakeLib/testSystemTools.cxx +++ b/Tests/CMakeLib/testSystemTools.cxx @@ -3,8 +3,8 @@ #include // IWYU pragma: keep +#include #include -#include #include #include diff --git a/Tests/CMakeLib/testUTF8.cxx b/Tests/CMakeLib/testUTF8.cxx index fb5f3d8..568268d 100644 --- a/Tests/CMakeLib/testUTF8.cxx +++ b/Tests/CMakeLib/testUTF8.cxx @@ -1,7 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include -#include +#include typedef char test_utf8_char[5]; diff --git a/Tests/CMakeLib/testXMLSafe.cxx b/Tests/CMakeLib/testXMLSafe.cxx index fe776c5..9290414 100644 --- a/Tests/CMakeLib/testXMLSafe.cxx +++ b/Tests/CMakeLib/testXMLSafe.cxx @@ -3,8 +3,8 @@ #include +#include #include -#include #include #include "cmXMLSafe.h" ----------------------------------------------------------------------- Summary of changes: Source/CPack/IFW/cmCPackIFWInstaller.cxx | 2 +- Source/CPack/IFW/cmCPackIFWPackage.cxx | 2 +- Source/CPack/IFW/cmCPackIFWRepository.cxx | 2 +- Source/CPack/OSXScriptLauncher.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 6 +++--- Source/CPack/cmCPackDragNDropGenerator.cxx | 2 +- Source/CPack/cmCPackDragNDropGenerator.h | 2 +- Source/CPack/cmCPackLog.h | 2 +- Source/CPack/cmCPackNSISGenerator.cxx | 4 ++-- Source/CPack/cmCPackPackageMakerGenerator.cxx | 6 +++--- Source/CPack/cmCPackProductBuildGenerator.cxx | 2 +- Source/CPack/cmCPackRPMGenerator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 2 +- Source/CPack/cpack.cxx | 2 +- Source/CTest/cmCTestBZR.cxx | 2 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 2 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestBuildCommand.cxx | 2 +- Source/CTest/cmCTestBuildHandler.cxx | 4 ++-- Source/CTest/cmCTestBuildHandler.h | 2 +- Source/CTest/cmCTestConfigureCommand.cxx | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 4 ++-- Source/CTest/cmCTestCurl.cxx | 2 +- Source/CTest/cmCTestGIT.cxx | 8 ++++---- Source/CTest/cmCTestGenericHandler.h | 2 +- Source/CTest/cmCTestHandlerCommand.cxx | 2 +- Source/CTest/cmCTestHandlerCommand.h | 2 +- Source/CTest/cmCTestLaunch.cxx | 6 +++--- Source/CTest/cmCTestMemCheckHandler.cxx | 2 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 4 ++-- Source/CTest/cmCTestMultiProcessHandler.h | 2 +- Source/CTest/cmCTestP4.cxx | 2 +- Source/CTest/cmCTestRunTest.cxx | 4 ++-- Source/CTest/cmCTestRunTest.h | 2 +- Source/CTest/cmCTestSVN.cxx | 4 ++-- Source/CTest/cmCTestScriptHandler.cxx | 6 +++--- Source/CTest/cmCTestSleepCommand.cxx | 2 +- Source/CTest/cmCTestStartCommand.cxx | 2 +- Source/CTest/cmCTestSubmitHandler.cxx | 4 ++-- Source/CTest/cmCTestTestCommand.cxx | 2 +- Source/CTest/cmCTestTestHandler.cxx | 8 ++++---- Source/CTest/cmCTestTestHandler.h | 2 +- Source/CTest/cmCTestVC.cxx | 4 ++-- Source/CTest/cmParseBlanketJSCoverage.cxx | 4 ++-- Source/CTest/cmParseCacheCoverage.cxx | 4 ++-- Source/CTest/cmParseCoberturaCoverage.cxx | 4 ++-- Source/CTest/cmParseDelphiCoverage.cxx | 4 ++-- Source/CTest/cmParseGTMCoverage.cxx | 4 ++-- Source/CTest/cmParseJacocoCoverage.cxx | 4 ++-- Source/CTest/cmParsePHPCoverage.cxx | 4 ++-- Source/CursesDialog/ccmake.cxx | 4 ++-- Source/CursesDialog/cmCursesCacheEntryComposite.cxx | 2 +- Source/CursesDialog/cmCursesLongMessageForm.cxx | 4 ++-- Source/CursesDialog/cmCursesMainForm.cxx | 4 ++-- Source/CursesDialog/cmCursesMainForm.h | 2 +- Source/CursesDialog/cmCursesStringWidget.cxx | 4 ++-- Source/QtDialog/CMakeSetup.cxx | 4 ++-- Source/bindexplib.h | 2 +- Source/cmAddSubDirectoryCommand.cxx | 2 +- Source/cmAlgorithms.h | 2 +- Source/cmArchiveWrite.cxx | 4 ++-- Source/cmArchiveWrite.h | 2 +- Source/cmAuxSourceDirectoryCommand.cxx | 2 +- Source/cmBase32.h | 2 +- Source/cmCMakeHostSystemInformationCommand.h | 2 +- Source/cmCMakeMinimumRequired.cxx | 2 +- Source/cmCPluginAPI.cxx | 2 +- Source/cmCTest.cxx | 10 +++++----- Source/cmCTest.h | 2 +- Source/cmCacheManager.cxx | 4 ++-- Source/cmCommandArgumentParser.y | 1 - Source/cmCommandArgumentParserHelper.cxx | 2 +- Source/cmComputeComponentGraph.cxx | 2 +- Source/cmComputeLinkDepends.cxx | 6 +++--- Source/cmComputeLinkInformation.cxx | 4 ++-- Source/cmComputeTargetDepends.cxx | 4 ++-- Source/cmConditionEvaluator.cxx | 6 +++--- Source/cmCoreTryCompile.cxx | 4 ++-- Source/cmCryptoHash.cxx | 2 +- Source/cmCryptoHash.h | 2 +- Source/cmDefinitions.cxx | 2 +- Source/cmDepends.cxx | 2 +- Source/cmDepends.h | 2 +- Source/cmDependsFortran.cxx | 6 +++--- Source/cmDependsJavaParserHelper.cxx | 6 +++--- Source/cmDocumentation.cxx | 4 ++-- Source/cmDocumentationFormatter.cxx | 2 +- Source/cmELF.cxx | 4 ++-- Source/cmExecProgramCommand.cxx | 2 +- Source/cmExecuteProcessCommand.cxx | 4 ++-- Source/cmExportFileGenerator.cxx | 4 ++-- Source/cmExportInstallAndroidMKGenerator.cxx | 2 +- Source/cmExtraCodeBlocksGenerator.cxx | 2 +- Source/cmExtraCodeLiteGenerator.cxx | 2 +- Source/cmExtraEclipseCDT4Generator.cxx | 4 ++-- Source/cmExtraKateGenerator.cxx | 2 +- Source/cmExtraSublimeTextGenerator.cxx | 2 +- Source/cmFLTKWrapUICommand.cxx | 2 +- Source/cmFileCommand.cxx | 8 ++++---- Source/cmFileLock.cxx | 2 +- Source/cmFileLockPool.cxx | 2 +- Source/cmFileLockResult.cxx | 4 ++-- Source/cmFileLockUnix.cxx | 4 ++-- Source/cmFilePathChecksum.h | 2 +- Source/cmFileTimeComparison.cxx | 2 +- Source/cmFindBase.cxx | 2 +- Source/cmFindCommon.cxx | 2 +- Source/cmFindLibraryCommand.cxx | 4 ++-- Source/cmFindPackageCommand.cxx | 6 +++--- Source/cmForEachCommand.cxx | 4 ++-- Source/cmFortranParserImpl.cxx | 4 ++-- Source/cmGeneratedFileStream.cxx | 2 +- Source/cmGeneratorExpression.cxx | 2 +- Source/cmGeneratorExpressionDAGChecker.cxx | 2 +- Source/cmGeneratorExpressionEvaluator.h | 2 +- Source/cmGeneratorExpressionLexer.h | 2 +- Source/cmGeneratorExpressionNode.cxx | 8 ++++---- Source/cmGeneratorExpressionParser.cxx | 4 ++-- Source/cmGeneratorTarget.cxx | 15 ++++++++------- Source/cmGhsMultiTargetGenerator.cxx | 2 +- Source/cmGlobalGenerator.cxx | 8 ++++---- Source/cmGlobalKdevelopGenerator.cxx | 2 +- Source/cmGlobalNinjaGenerator.cxx | 4 ++-- Source/cmGlobalUnixMakefileGenerator3.h | 2 +- Source/cmGlobalVisualStudio7Generator.cxx | 2 +- Source/cmGlobalXCodeGenerator.cxx | 6 +++--- Source/cmHexFileConverter.cxx | 4 ++-- Source/cmIDEOptions.cxx | 2 +- Source/cmInstallCommand.cxx | 2 +- Source/cmInstallExportAndroidMKGenerator.cxx | 2 +- Source/cmInstallExportGenerator.h | 2 +- Source/cmInstallTargetGenerator.cxx | 2 +- Source/cmLinkedTree.h | 2 +- Source/cmListCommand.cxx | 6 +++--- Source/cmListFileCache.cxx | 2 +- Source/cmLoadCommandCommand.cxx | 8 ++++---- Source/cmLocalGenerator.cxx | 6 +++--- Source/cmLocalNinjaGenerator.cxx | 4 ++-- Source/cmLocalUnixMakefileGenerator3.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmLocale.h | 2 +- Source/cmMachO.cxx | 2 +- Source/cmMacroCommand.cxx | 2 +- Source/cmMakefile.cxx | 8 ++++---- Source/cmMakefileTargetGenerator.cxx | 2 +- Source/cmMathCommand.cxx | 2 +- Source/cmNewLineStyle.cxx | 2 +- Source/cmNinjaNormalTargetGenerator.cxx | 4 ++-- Source/cmNinjaTargetGenerator.cxx | 4 ++-- Source/cmOrderDirectories.cxx | 2 +- Source/cmOutputConverter.cxx | 4 ++-- Source/cmOutputRequiredFilesCommand.h | 2 +- Source/cmParseArgumentsCommand.cxx | 2 +- Source/cmPathLabel.cxx | 2 +- Source/cmPolicies.cxx | 8 ++++---- Source/cmProcessOutput.h | 2 +- Source/cmProcessTools.h | 2 +- Source/cmProjectCommand.cxx | 2 +- Source/cmPropertyMap.cxx | 2 +- Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmQtAutoGenerators.cxx | 6 +++--- Source/cmRST.cxx | 4 ++-- Source/cmRulePlaceholderExpander.cxx | 4 ++-- Source/cmServerConnection.cxx | 4 ++-- Source/cmSetCommand.cxx | 2 +- Source/cmSourceFileLocation.cxx | 2 +- Source/cmSourceGroupCommand.cxx | 2 +- Source/cmState.cxx | 4 ++-- Source/cmStateDirectory.cxx | 2 +- Source/cmStateSnapshot.cxx | 4 ++-- Source/cmStringCommand.cxx | 6 +++--- Source/cmSystemTools.cxx | 14 +++++++------- Source/cmSystemTools.h | 2 +- Source/cmTarget.cxx | 4 ++-- Source/cmTargetLinkLibrariesCommand.cxx | 2 +- Source/cmTimestamp.cxx | 2 +- Source/cmTimestamp.h | 2 +- Source/cmTryRunCommand.cxx | 4 ++-- Source/cmUnexpectedCommand.cxx | 2 +- Source/cmUnsetCommand.cxx | 2 +- Source/cmUtilitySourceCommand.cxx | 2 +- Source/cmUuid.cxx | 2 +- Source/cmVisualStudioSlnParser.h | 2 +- Source/cmVisualStudioWCEPlatformParser.h | 2 +- Source/cmXMLParser.cxx | 4 ++-- Source/cmXMLSafe.cxx | 4 ++-- Source/cm_codecvt.hxx | 2 +- Source/cm_get_date.h | 5 +++-- Source/cmake.cxx | 6 +++--- Source/cmakemain.cxx | 2 +- Source/cmcmd.cxx | 6 +++--- Source/ctest.cxx | 2 +- Tests/CMakeLib/run_compile_commands.cxx | 2 +- Tests/CMakeLib/testSystemTools.cxx | 2 +- Tests/CMakeLib/testUTF8.cxx | 2 +- Tests/CMakeLib/testXMLSafe.cxx | 2 +- 196 files changed, 321 insertions(+), 320 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 2 00:01:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 2 Mar 2017 00:01:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-360-ga52d35b Message-ID: <20170302050106.4A5B2FA41F@public.kitware.com> 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 a52d35b8ef75ea4b6c9411d24450fc17706fdc9f (commit) from ebc28c156ee56c878990c53cbd62779249b139bb (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=a52d35b8ef75ea4b6c9411d24450fc17706fdc9f commit a52d35b8ef75ea4b6c9411d24450fc17706fdc9f Author: Kitware Robot AuthorDate: Thu Mar 2 00:01:03 2017 -0500 Commit: Kitware Robot CommitDate: Thu Mar 2 00:01:03 2017 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index f85bd64..62324e8 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) -set(CMake_VERSION_PATCH 20170301) +set(CMake_VERSION_PATCH 20170302) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 08:18:06 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 08:18:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-718-g25dc8c0 Message-ID: <20170302131807.338FBFA2C5@public.kitware.com> 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 25dc8c09860498aaba135aed5a05fa3b55b304d0 (commit) via 823d54d1be0ce6c56c60927b1905e36130c69327 (commit) from 6a1c76184210f5dc289293bb27d5d322c0a5f67d (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=25dc8c09860498aaba135aed5a05fa3b55b304d0 commit 25dc8c09860498aaba135aed5a05fa3b55b304d0 Merge: 6a1c761 823d54d Author: Brad King AuthorDate: Thu Mar 2 08:18:03 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 08:18:03 2017 -0500 Merge topic 'implicit-dir-symlinks' into next 823d54d1 fixup! cmOrderDirectories: Consider symlinks when checking implicit https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=823d54d1be0ce6c56c60927b1905e36130c69327 commit 823d54d1be0ce6c56c60927b1905e36130c69327 Author: Brad King AuthorDate: Thu Mar 2 08:16:45 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:16:45 2017 -0500 fixup! cmOrderDirectories: Consider symlinks when checking implicit diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index dfba80e..d48eb53 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -346,7 +346,7 @@ void cmOrderDirectories::SetImplicitDirectories( std::set const& implicitDirs) { this->ImplicitDirectories.clear(); - for (std::set::iterator i = implicitDirs.begin(); + for (std::set::const_iterator i = implicitDirs.begin(); i != implicitDirs.end(); ++i) { this->ImplicitDirectories.insert(this->GetRealPath(*i)); } ----------------------------------------------------------------------- Summary of changes: Source/cmOrderDirectories.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 08:28:02 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 08:28:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-720-gdcb743e Message-ID: <20170302132802.D5945FA700@public.kitware.com> 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 dcb743e3f68638141d4c81f653a82b9082135f3f (commit) via 604da06269a3a5e4d37d0bccdf1fc91378ddb9b4 (commit) from 25dc8c09860498aaba135aed5a05fa3b55b304d0 (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=dcb743e3f68638141d4c81f653a82b9082135f3f commit dcb743e3f68638141d4c81f653a82b9082135f3f Merge: 25dc8c0 604da06 Author: Brad King AuthorDate: Thu Mar 2 08:28:01 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 08:28:01 2017 -0500 Merge topic 'implicit-dir-symlinks' into next 604da062 fixup! Tests: Add case for RPATH exclusion of symlinks to implicit directories https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=604da06269a3a5e4d37d0bccdf1fc91378ddb9b4 commit 604da06269a3a5e4d37d0bccdf1fc91378ddb9b4 Author: Brad King AuthorDate: Thu Mar 2 08:25:48 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:25:48 2017 -0500 fixup! Tests: Add case for RPATH exclusion of symlinks to implicit directories diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt index 7115011..b0ede70 100644 --- a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -5,14 +5,18 @@ to the file: - .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe The current (RPATH|RUNPATH) is: - .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways(:[^ +]*)? which does not contain: - .*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink as was expected\.$ ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 08:31:53 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 08:31:53 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-722-g2d59003 Message-ID: <20170302133155.7E092FA778@public.kitware.com> 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 2d590038de63afa16ebb9197ca070aba1130c39e (commit) via 5aaf6d77670c6059fc88fe3e247d58248051dc74 (commit) from dcb743e3f68638141d4c81f653a82b9082135f3f (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=2d590038de63afa16ebb9197ca070aba1130c39e commit 2d590038de63afa16ebb9197ca070aba1130c39e Merge: dcb743e 5aaf6d7 Author: Brad King AuthorDate: Thu Mar 2 08:31:45 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 08:31:45 2017 -0500 Merge topic 'modernize-deprecated-headers' into next 5aaf6d77 Revert "Modernize deprecated headers" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5aaf6d77670c6059fc88fe3e247d58248051dc74 commit 5aaf6d77670c6059fc88fe3e247d58248051dc74 Author: Brad King AuthorDate: Thu Mar 2 08:30:15 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:30:15 2017 -0500 Revert "Modernize deprecated headers" This reverts commit e1418249313f35511a3162242d626785e4f51144. diff --git a/Source/CPack/IFW/cmCPackIFWInstaller.cxx b/Source/CPack/IFW/cmCPackIFWInstaller.cxx index 71814bb..d8bafee 100644 --- a/Source/CPack/IFW/cmCPackIFWInstaller.cxx +++ b/Source/CPack/IFW/cmCPackIFWInstaller.cxx @@ -3,8 +3,8 @@ #include "cmCPackIFWInstaller.h" #include -#include #include +#include #include #include "CPack/cmCPackGenerator.h" diff --git a/Source/CPack/IFW/cmCPackIFWPackage.cxx b/Source/CPack/IFW/cmCPackIFWPackage.cxx index 7bf34ce..e23b1b9 100644 --- a/Source/CPack/IFW/cmCPackIFWPackage.cxx +++ b/Source/CPack/IFW/cmCPackIFWPackage.cxx @@ -13,9 +13,9 @@ #include "cmXMLWriter.h" #include -#include #include #include +#include //----------------------------------------------------------------- Logger --- #ifdef cmCPackLogger diff --git a/Source/CPack/IFW/cmCPackIFWRepository.cxx b/Source/CPack/IFW/cmCPackIFWRepository.cxx index ed4cb4e..cc204e8 100644 --- a/Source/CPack/IFW/cmCPackIFWRepository.cxx +++ b/Source/CPack/IFW/cmCPackIFWRepository.cxx @@ -10,7 +10,7 @@ #include "cmXMLWriter.h" #include -#include +#include #ifdef cmCPackLogger #undef cmCPackLogger diff --git a/Source/CPack/OSXScriptLauncher.cxx b/Source/CPack/OSXScriptLauncher.cxx index 689633a..b159e64 100644 --- a/Source/CPack/OSXScriptLauncher.cxx +++ b/Source/CPack/OSXScriptLauncher.cxx @@ -3,8 +3,8 @@ #include #include #include -#include #include +#include #include #include diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 28b5a78..5c50da8 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -9,13 +9,13 @@ #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" -#include #include -#include -#include +#include #include #include #include +#include +#include #include #include diff --git a/Source/CPack/cmCPackDragNDropGenerator.cxx b/Source/CPack/cmCPackDragNDropGenerator.cxx index df6ee22..ec5fc88 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.cxx +++ b/Source/CPack/cmCPackDragNDropGenerator.cxx @@ -9,9 +9,9 @@ #include #include -#include #include #include +#include #include diff --git a/Source/CPack/cmCPackDragNDropGenerator.h b/Source/CPack/cmCPackDragNDropGenerator.h index 0e7b9f4..876eab7 100644 --- a/Source/CPack/cmCPackDragNDropGenerator.h +++ b/Source/CPack/cmCPackDragNDropGenerator.h @@ -4,8 +4,8 @@ #define cmCPackDragNDropGenerator_h #include -#include #include +#include #include #include diff --git a/Source/CPack/cmCPackLog.h b/Source/CPack/cmCPackLog.h index d699f05..a988ccc 100644 --- a/Source/CPack/cmCPackLog.h +++ b/Source/CPack/cmCPackLog.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep -#include #include +#include #include #define cmCPack_Log(ctSelf, logType, msg) \ diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 690f6f3..1940953 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -11,10 +11,10 @@ #include #include #include -#include -#include #include #include +#include +#include #include /* NSIS uses different command line syntax on Windows and others */ diff --git a/Source/CPack/cmCPackPackageMakerGenerator.cxx b/Source/CPack/cmCPackPackageMakerGenerator.cxx index 719f7b2..8000d6e 100644 --- a/Source/CPack/cmCPackPackageMakerGenerator.cxx +++ b/Source/CPack/cmCPackPackageMakerGenerator.cxx @@ -2,13 +2,13 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCPackPackageMakerGenerator.h" -#include +#include #include #include -#include -#include #include #include +#include +#include #include #include "cmCPackComponentGroup.h" diff --git a/Source/CPack/cmCPackProductBuildGenerator.cxx b/Source/CPack/cmCPackProductBuildGenerator.cxx index 93fbc83..1389eaa 100644 --- a/Source/CPack/cmCPackProductBuildGenerator.cxx +++ b/Source/CPack/cmCPackProductBuildGenerator.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCPackProductBuildGenerator.h" -#include #include #include +#include #include "cmCPackComponentGroup.h" #include "cmCPackLog.h" diff --git a/Source/CPack/cmCPackRPMGenerator.cxx b/Source/CPack/cmCPackRPMGenerator.cxx index c4b5d19..8ec03c2 100644 --- a/Source/CPack/cmCPackRPMGenerator.cxx +++ b/Source/CPack/cmCPackRPMGenerator.cxx @@ -3,7 +3,7 @@ #include "cmCPackRPMGenerator.h" #include -#include +#include #include #include #include diff --git a/Source/CPack/cmCPackSTGZGenerator.cxx b/Source/CPack/cmCPackSTGZGenerator.cxx index 536bf85..682394e 100644 --- a/Source/CPack/cmCPackSTGZGenerator.cxx +++ b/Source/CPack/cmCPackSTGZGenerator.cxx @@ -3,8 +3,8 @@ #include "cmCPackSTGZGenerator.h" #include -#include #include +#include #include #include diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index 1896592..af80cbf 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -4,10 +4,10 @@ #include #include -#include #include #include #include +#include #include #include #include diff --git a/Source/CTest/cmCTestBZR.cxx b/Source/CTest/cmCTestBZR.cxx index c25a38b..6769ee5 100644 --- a/Source/CTest/cmCTestBZR.cxx +++ b/Source/CTest/cmCTestBZR.cxx @@ -10,10 +10,10 @@ #include #include -#include #include #include #include +#include #include extern "C" int cmBZRXMLParserUnknownEncodingHandler(void* /*unused*/, diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index cc46fc0..6780a0e 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -9,7 +9,7 @@ #include "cmake.h" #include -#include +#include cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler() { diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h index 8d7c90d..5885738 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.h +++ b/Source/CTest/cmCTestBuildAndTestHandler.h @@ -7,8 +7,8 @@ #include "cmCTestGenericHandler.h" -#include #include +#include #include #include diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx index 3cf888a..4c82760 100644 --- a/Source/CTest/cmCTestBuildCommand.cxx +++ b/Source/CTest/cmCTestBuildCommand.cxx @@ -10,8 +10,8 @@ #include "cmSystemTools.h" #include "cmake.h" -#include #include +#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx index 146af63..1868a1ee 100644 --- a/Source/CTest/cmCTestBuildHandler.cxx +++ b/Source/CTest/cmCTestBuildHandler.cxx @@ -14,9 +14,9 @@ #include #include #include -#include -#include #include +#include +#include static const char* cmCTestErrorMatches[] = { "^[Bb]us [Ee]rror", diff --git a/Source/CTest/cmCTestBuildHandler.h b/Source/CTest/cmCTestBuildHandler.h index b450611..a2f6112 100644 --- a/Source/CTest/cmCTestBuildHandler.h +++ b/Source/CTest/cmCTestBuildHandler.h @@ -9,9 +9,9 @@ #include #include -#include #include #include +#include #include #include diff --git a/Source/CTest/cmCTestConfigureCommand.cxx b/Source/CTest/cmCTestConfigureCommand.cxx index ce25821..73e893d 100644 --- a/Source/CTest/cmCTestConfigureCommand.cxx +++ b/Source/CTest/cmCTestConfigureCommand.cxx @@ -9,8 +9,8 @@ #include "cmSystemTools.h" #include "cmake.h" -#include #include +#include #include cmCTestConfigureCommand::cmCTestConfigureCommand() diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 6c76c56..989c096 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -20,11 +20,11 @@ #include #include #include -#include -#include #include #include #include +#include +#include #include class cmMakefile; diff --git a/Source/CTest/cmCTestCurl.cxx b/Source/CTest/cmCTestCurl.cxx index 9a3958a..ab1412d 100644 --- a/Source/CTest/cmCTestCurl.cxx +++ b/Source/CTest/cmCTestCurl.cxx @@ -6,8 +6,8 @@ #include "cmSystemTools.h" #include -#include #include +#include cmCTestCurl::cmCTestCurl(cmCTest* ctest) { diff --git a/Source/CTest/cmCTestGIT.cxx b/Source/CTest/cmCTestGIT.cxx index 9ff604c..9c53aa1 100644 --- a/Source/CTest/cmCTestGIT.cxx +++ b/Source/CTest/cmCTestGIT.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCTestGIT.h" -#include #include #include -#include -#include -#include +#include +#include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/CTest/cmCTestGenericHandler.h b/Source/CTest/cmCTestGenericHandler.h index e4f6783..2ebbe70 100644 --- a/Source/CTest/cmCTestGenericHandler.h +++ b/Source/CTest/cmCTestGenericHandler.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep -#include #include +#include #include #include diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx index 0bfbc4e..2a67d47 100644 --- a/Source/CTest/cmCTestHandlerCommand.cxx +++ b/Source/CTest/cmCTestHandlerCommand.cxx @@ -8,8 +8,8 @@ #include "cmSystemTools.h" #include "cmake.h" -#include #include +#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestHandlerCommand.h b/Source/CTest/cmCTestHandlerCommand.h index 9e283fe..c86841f 100644 --- a/Source/CTest/cmCTestHandlerCommand.h +++ b/Source/CTest/cmCTestHandlerCommand.h @@ -7,7 +7,7 @@ #include "cmCTestCommand.h" -#include +#include #include #include diff --git a/Source/CTest/cmCTestLaunch.cxx b/Source/CTest/cmCTestLaunch.cxx index 679c2a8..03e0319 100644 --- a/Source/CTest/cmCTestLaunch.cxx +++ b/Source/CTest/cmCTestLaunch.cxx @@ -7,9 +7,9 @@ #include #include #include -#include -#include #include +#include +#include #include "cmCryptoHash.h" #include "cmGeneratedFileStream.h" @@ -23,9 +23,9 @@ #include "cmake.h" #ifdef _WIN32 -#include // for std{out,err} and fileno #include // for _O_BINARY #include // for _setmode +#include // for std{out,err} and fileno #endif cmCTestLaunch::cmCTestLaunch(int argc, const char* const* argv) diff --git a/Source/CTest/cmCTestMemCheckHandler.cxx b/Source/CTest/cmCTestMemCheckHandler.cxx index 717cfe8..620e237 100644 --- a/Source/CTest/cmCTestMemCheckHandler.cxx +++ b/Source/CTest/cmCTestMemCheckHandler.cxx @@ -10,9 +10,9 @@ #include #include #include -#include #include #include +#include struct CatToErrorType { diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index a1f5fe8..c1724ab 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -9,15 +9,15 @@ #include "cmSystemTools.h" #include -#include #include #include #include -#include #include #include +#include #include #include +#include #include class TestComparator diff --git a/Source/CTest/cmCTestMultiProcessHandler.h b/Source/CTest/cmCTestMultiProcessHandler.h index 91431be..fe32e15 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.h +++ b/Source/CTest/cmCTestMultiProcessHandler.h @@ -6,9 +6,9 @@ #include // IWYU pragma: keep #include -#include #include #include +#include #include #include diff --git a/Source/CTest/cmCTestP4.cxx b/Source/CTest/cmCTestP4.cxx index b88cc00..4f78876 100644 --- a/Source/CTest/cmCTestP4.cxx +++ b/Source/CTest/cmCTestP4.cxx @@ -9,8 +9,8 @@ #include #include -#include #include +#include #include cmCTestP4::cmCTestP4(cmCTest* ct, std::ostream& log) diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index 8ad80ae..ac1644f 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -14,10 +14,10 @@ #include #include #include -#include -#include #include #include +#include +#include #include cmCTestRunTest::cmCTestRunTest(cmCTestTestHandler* handler) diff --git a/Source/CTest/cmCTestRunTest.h b/Source/CTest/cmCTestRunTest.h index a08e5d8..ee4630a 100644 --- a/Source/CTest/cmCTestRunTest.h +++ b/Source/CTest/cmCTestRunTest.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep -#include #include +#include #include #include diff --git a/Source/CTest/cmCTestSVN.cxx b/Source/CTest/cmCTestSVN.cxx index 26980e3..ce395cd 100644 --- a/Source/CTest/cmCTestSVN.cxx +++ b/Source/CTest/cmCTestSVN.cxx @@ -10,10 +10,10 @@ #include "cmXMLWriter.h" #include -#include -#include #include #include +#include +#include struct cmCTestSVN::Revision : public cmCTestVC::Revision { diff --git a/Source/CTest/cmCTestScriptHandler.cxx b/Source/CTest/cmCTestScriptHandler.cxx index 08af4e5..b537242 100644 --- a/Source/CTest/cmCTestScriptHandler.cxx +++ b/Source/CTest/cmCTestScriptHandler.cxx @@ -4,11 +4,11 @@ #include #include -#include -#include -#include #include #include +#include +#include +#include #include #include "cmCTest.h" diff --git a/Source/CTest/cmCTestSleepCommand.cxx b/Source/CTest/cmCTestSleepCommand.cxx index bc4470c..2752cd3 100644 --- a/Source/CTest/cmCTestSleepCommand.cxx +++ b/Source/CTest/cmCTestSleepCommand.cxx @@ -4,7 +4,7 @@ #include "cmCTestScriptHandler.h" -#include +#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestStartCommand.cxx b/Source/CTest/cmCTestStartCommand.cxx index 664cb9d..01a874b 100644 --- a/Source/CTest/cmCTestStartCommand.cxx +++ b/Source/CTest/cmCTestStartCommand.cxx @@ -8,8 +8,8 @@ #include "cmMakefile.h" #include "cmSystemTools.h" -#include #include +#include class cmExecutionStatus; diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index d05cdc1..5e5119d 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -6,9 +6,9 @@ #include #include #include -#include -#include #include +#include +#include #include "cmCTest.h" #include "cmCTestCurl.h" diff --git a/Source/CTest/cmCTestTestCommand.cxx b/Source/CTest/cmCTestTestCommand.cxx index 77b8882..a756188 100644 --- a/Source/CTest/cmCTestTestCommand.cxx +++ b/Source/CTest/cmCTestTestCommand.cxx @@ -7,8 +7,8 @@ #include "cmMakefile.h" #include "cmSystemTools.h" -#include #include +#include #include cmCTestTestCommand::cmCTestTestCommand() diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 4d3f26e..6175e50 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -7,15 +7,15 @@ #include #include #include -#include -#include -#include -#include #include #include #include #include #include +#include +#include +#include +#include #include "cmCTest.h" #include "cmCTestBatchTestHandler.h" diff --git a/Source/CTest/cmCTestTestHandler.h b/Source/CTest/cmCTestTestHandler.h index 07f698b..5b07e98 100644 --- a/Source/CTest/cmCTestTestHandler.h +++ b/Source/CTest/cmCTestTestHandler.h @@ -8,10 +8,10 @@ #include "cmCTestGenericHandler.h" #include -#include #include #include #include +#include #include #include #include diff --git a/Source/CTest/cmCTestVC.cxx b/Source/CTest/cmCTestVC.cxx index a2e3741..26c9bb5 100644 --- a/Source/CTest/cmCTestVC.cxx +++ b/Source/CTest/cmCTestVC.cxx @@ -7,9 +7,9 @@ #include "cmXMLWriter.h" #include -#include -#include #include +#include +#include #include cmCTestVC::cmCTestVC(cmCTest* ct, std::ostream& log) diff --git a/Source/CTest/cmParseBlanketJSCoverage.cxx b/Source/CTest/cmParseBlanketJSCoverage.cxx index dcb4701..6fa982e 100644 --- a/Source/CTest/cmParseBlanketJSCoverage.cxx +++ b/Source/CTest/cmParseBlanketJSCoverage.cxx @@ -7,8 +7,8 @@ #include "cmSystemTools.h" #include -#include -#include +#include +#include class cmParseBlanketJSCoverage::JSONParser { diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx index b5a15e4..23176b5 100644 --- a/Source/CTest/cmParseCacheCoverage.cxx +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -6,9 +6,9 @@ #include #include -#include -#include #include +#include +#include #include cmParseCacheCoverage::cmParseCacheCoverage( diff --git a/Source/CTest/cmParseCoberturaCoverage.cxx b/Source/CTest/cmParseCoberturaCoverage.cxx index 9c2fbab..db17748 100644 --- a/Source/CTest/cmParseCoberturaCoverage.cxx +++ b/Source/CTest/cmParseCoberturaCoverage.cxx @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include class cmParseCoberturaCoverage::XMLParser : public cmXMLParser { diff --git a/Source/CTest/cmParseDelphiCoverage.cxx b/Source/CTest/cmParseDelphiCoverage.cxx index da6c56c..7fe91f4 100644 --- a/Source/CTest/cmParseDelphiCoverage.cxx +++ b/Source/CTest/cmParseDelphiCoverage.cxx @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include class cmParseDelphiCoverage::HTMLParser { diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 8914cc4..214ce5a 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -6,9 +6,9 @@ #include #include -#include -#include #include +#include +#include #include cmParseGTMCoverage::cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, diff --git a/Source/CTest/cmParseJacocoCoverage.cxx b/Source/CTest/cmParseJacocoCoverage.cxx index a335ad5..0e36c01 100644 --- a/Source/CTest/cmParseJacocoCoverage.cxx +++ b/Source/CTest/cmParseJacocoCoverage.cxx @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include class cmParseJacocoCoverage::XMLParser : public cmXMLParser { diff --git a/Source/CTest/cmParsePHPCoverage.cxx b/Source/CTest/cmParsePHPCoverage.cxx index c023b27..d8bb31b 100644 --- a/Source/CTest/cmParsePHPCoverage.cxx +++ b/Source/CTest/cmParsePHPCoverage.cxx @@ -6,8 +6,8 @@ #include #include -#include -#include +#include +#include /* To setup coverage for php. diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index bdbf051..ff8e010 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -11,9 +11,9 @@ #include "cmake.h" #include -#include -#include #include +#include +#include #include #include diff --git a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx index 9601811..5539fbe 100644 --- a/Source/CursesDialog/cmCursesCacheEntryComposite.cxx +++ b/Source/CursesDialog/cmCursesCacheEntryComposite.cxx @@ -14,7 +14,7 @@ #include "cmSystemTools.h" #include "cmake.h" -#include +#include #include #include diff --git a/Source/CursesDialog/cmCursesLongMessageForm.cxx b/Source/CursesDialog/cmCursesLongMessageForm.cxx index b8c4729..d299547 100644 --- a/Source/CursesDialog/cmCursesLongMessageForm.cxx +++ b/Source/CursesDialog/cmCursesLongMessageForm.cxx @@ -7,8 +7,8 @@ #include "cmCursesStandardIncludes.h" #include "cmVersion.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index 261c609..939c736 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -17,8 +17,8 @@ #include "cmVersion.h" #include "cmake.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/CursesDialog/cmCursesMainForm.h b/Source/CursesDialog/cmCursesMainForm.h index dc859fa..d891ea0 100644 --- a/Source/CursesDialog/cmCursesMainForm.h +++ b/Source/CursesDialog/cmCursesMainForm.h @@ -9,7 +9,7 @@ #include "cmCursesStandardIncludes.h" #include "cmStateTypes.h" -#include +#include #include #include diff --git a/Source/CursesDialog/cmCursesStringWidget.cxx b/Source/CursesDialog/cmCursesStringWidget.cxx index 775c148..ff189f0 100644 --- a/Source/CursesDialog/cmCursesStringWidget.cxx +++ b/Source/CursesDialog/cmCursesStringWidget.cxx @@ -8,8 +8,8 @@ #include "cmCursesWidget.h" #include "cmStateTypes.h" -#include -#include +#include +#include inline int ctrl(int z) { diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index f168162..5e03c39 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -184,8 +184,8 @@ int main(int argc, char** argv) } #if defined(Q_OS_MAC) -#include -#include +#include +#include #include #include static bool cmOSXInstall(std::string const& dir, std::string const& tool) diff --git a/Source/bindexplib.h b/Source/bindexplib.h index be229c4..d6900ba 100644 --- a/Source/bindexplib.h +++ b/Source/bindexplib.h @@ -5,8 +5,8 @@ #include -#include #include +#include #include class bindexplib diff --git a/Source/cmAddSubDirectoryCommand.cxx b/Source/cmAddSubDirectoryCommand.cxx index 32daf68..34ec0e3 100644 --- a/Source/cmAddSubDirectoryCommand.cxx +++ b/Source/cmAddSubDirectoryCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmAddSubDirectoryCommand.h" -#include #include +#include #include "cmMakefile.h" #include "cmSystemTools.h" diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h index 4b72c7a..f5469e5 100644 --- a/Source/cmAlgorithms.h +++ b/Source/cmAlgorithms.h @@ -7,10 +7,10 @@ #include #include -#include #include #include #include +#include #include #include #include diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx index 63da7ff..879c2ca 100644 --- a/Source/cmArchiveWrite.cxx +++ b/Source/cmArchiveWrite.cxx @@ -9,9 +9,9 @@ #include #include #include -#include -#include #include +#include +#include #ifndef __LA_SSIZE_T #define __LA_SSIZE_T la_ssize_t diff --git a/Source/cmArchiveWrite.h b/Source/cmArchiveWrite.h index 2e57a10..27c62b9 100644 --- a/Source/cmArchiveWrite.h +++ b/Source/cmArchiveWrite.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep -#include #include +#include #include #if !defined(CMAKE_BUILD_WITH_CMAKE) diff --git a/Source/cmAuxSourceDirectoryCommand.cxx b/Source/cmAuxSourceDirectoryCommand.cxx index 8d5b142..7cfa4d8 100644 --- a/Source/cmAuxSourceDirectoryCommand.cxx +++ b/Source/cmAuxSourceDirectoryCommand.cxx @@ -4,7 +4,7 @@ #include #include -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmBase32.h b/Source/cmBase32.h index 51bd5b8..44bca2f 100644 --- a/Source/cmBase32.h +++ b/Source/cmBase32.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include /** \class cmBase32Encoder diff --git a/Source/cmCMakeHostSystemInformationCommand.h b/Source/cmCMakeHostSystemInformationCommand.h index 414c8ef..22f3d54 100644 --- a/Source/cmCMakeHostSystemInformationCommand.h +++ b/Source/cmCMakeHostSystemInformationCommand.h @@ -4,7 +4,7 @@ #define cmCMakeHostSystemInformationCommand_h #include -#include +#include #include #include diff --git a/Source/cmCMakeMinimumRequired.cxx b/Source/cmCMakeMinimumRequired.cxx index 60c34af..942688c 100644 --- a/Source/cmCMakeMinimumRequired.cxx +++ b/Source/cmCMakeMinimumRequired.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCMakeMinimumRequired.h" -#include #include +#include #include "cmMakefile.h" #include "cmSystemTools.h" diff --git a/Source/cmCPluginAPI.cxx b/Source/cmCPluginAPI.cxx index 45805b2..e78f5fe 100644 --- a/Source/cmCPluginAPI.cxx +++ b/Source/cmCPluginAPI.cxx @@ -14,7 +14,7 @@ #include "cmState.h" #include "cmVersion.h" -#include +#include #ifdef __QNX__ #include /* for malloc/free on QNX */ diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 0cfd79b..559275e 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -2,7 +2,6 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCTest.h" -#include #include #include #include @@ -12,14 +11,15 @@ #include #include #include -#include -#include -#include -#include +#include #include #include #include +#include +#include +#include #include +#include #include #include diff --git a/Source/cmCTest.h b/Source/cmCTest.h index 4cc1e4f..ebdc8b0 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -7,11 +7,11 @@ #include #include -#include #include #include #include #include +#include #include class cmCTestGenericHandler; diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index e80d77d..cb0ba63 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -5,9 +5,9 @@ #include #include #include -#include -#include #include +#include +#include #include "cmGeneratedFileStream.h" #include "cmState.h" diff --git a/Source/cmCommandArgumentParser.y b/Source/cmCommandArgumentParser.y index ccf0475..d71b605 100644 --- a/Source/cmCommandArgumentParser.y +++ b/Source/cmCommandArgumentParser.y @@ -189,3 +189,4 @@ void cmCommandArgument_yyerror(yyscan_t yyscanner, const char* message) { yyGetParser->Error(message); } + diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx index 978d4a4..2d66344 100644 --- a/Source/cmCommandArgumentParserHelper.cxx +++ b/Source/cmCommandArgumentParserHelper.cxx @@ -11,9 +11,9 @@ #include "cmake.h" #include -#include #include #include +#include int cmCommandArgument_yyparse(yyscan_t yyscanner); // diff --git a/Source/cmComputeComponentGraph.cxx b/Source/cmComputeComponentGraph.cxx index 6f3abfa..a02d885 100644 --- a/Source/cmComputeComponentGraph.cxx +++ b/Source/cmComputeComponentGraph.cxx @@ -4,7 +4,7 @@ #include -#include +#include cmComputeComponentGraph::cmComputeComponentGraph(Graph const& input) : InputGraph(input) diff --git a/Source/cmComputeLinkDepends.cxx b/Source/cmComputeLinkDepends.cxx index 4ecff20..3e2cf18 100644 --- a/Source/cmComputeLinkDepends.cxx +++ b/Source/cmComputeLinkDepends.cxx @@ -14,11 +14,11 @@ #include "cmake.h" #include -#include -#include -#include +#include #include #include +#include +#include #include /* diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx index 31badd9..80e7e7d 100644 --- a/Source/cmComputeLinkInformation.cxx +++ b/Source/cmComputeLinkInformation.cxx @@ -18,9 +18,9 @@ #include "cmake.h" #include -#include -#include +#include #include +#include #include //#define CM_COMPUTE_LINK_INFO_DEBUG diff --git a/Source/cmComputeTargetDepends.cxx b/Source/cmComputeTargetDepends.cxx index cae505b..cfebda2 100644 --- a/Source/cmComputeTargetDepends.cxx +++ b/Source/cmComputeTargetDepends.cxx @@ -17,9 +17,9 @@ #include "cmTargetDepend.h" #include "cmake.h" -#include -#include +#include #include +#include #include class cmListFileBacktrace; diff --git a/Source/cmConditionEvaluator.cxx b/Source/cmConditionEvaluator.cxx index 42362d4..f2eb601 100644 --- a/Source/cmConditionEvaluator.cxx +++ b/Source/cmConditionEvaluator.cxx @@ -5,10 +5,10 @@ #include #include #include -#include -#include -#include #include +#include +#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx index a4bc768..fd9d04b 100644 --- a/Source/cmCoreTryCompile.cxx +++ b/Source/cmCoreTryCompile.cxx @@ -4,10 +4,10 @@ #include #include -#include -#include #include #include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmCryptoHash.cxx b/Source/cmCryptoHash.cxx index 771c377..d5807b1 100644 --- a/Source/cmCryptoHash.cxx +++ b/Source/cmCryptoHash.cxx @@ -5,7 +5,7 @@ #include #include #include -#include +#include static unsigned int const cmCryptoHashAlgoToId[] = { /* clang-format needs this comment to break after the opening brace */ diff --git a/Source/cmCryptoHash.h b/Source/cmCryptoHash.h index 2372a45..0b562da 100644 --- a/Source/cmCryptoHash.h +++ b/Source/cmCryptoHash.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmDefinitions.cxx b/Source/cmDefinitions.cxx index c20d277..47fe76a 100644 --- a/Source/cmDefinitions.cxx +++ b/Source/cmDefinitions.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmDefinitions.h" -#include +#include #include #include #include diff --git a/Source/cmDepends.cxx b/Source/cmDepends.cxx index 201a1bf..c189419 100644 --- a/Source/cmDepends.cxx +++ b/Source/cmDepends.cxx @@ -9,8 +9,8 @@ #include "cmSystemTools.h" #include -#include #include +#include #include cmDepends::cmDepends(cmLocalGenerator* lg, const char* targetDir) diff --git a/Source/cmDepends.h b/Source/cmDepends.h index 205667b..f677f80 100644 --- a/Source/cmDepends.h +++ b/Source/cmDepends.h @@ -5,10 +5,10 @@ #include -#include #include #include #include +#include #include #include diff --git a/Source/cmDependsFortran.cxx b/Source/cmDependsFortran.cxx index 891a885..7927402 100644 --- a/Source/cmDependsFortran.cxx +++ b/Source/cmDependsFortran.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmDependsFortran.h" -#include +#include #include -#include -#include #include #include +#include +#include #include #include "cmFortranParser.h" /* Interface to parser object. */ diff --git a/Source/cmDependsJavaParserHelper.cxx b/Source/cmDependsJavaParserHelper.cxx index bc20d63..f5998ef 100644 --- a/Source/cmDependsJavaParserHelper.cxx +++ b/Source/cmDependsJavaParserHelper.cxx @@ -8,10 +8,10 @@ #include "cmSystemTools.h" #include -#include -#include -#include #include +#include +#include +#include int cmDependsJava_yyparse(yyscan_t yyscanner); diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx index 8d7f2f0..cb24adf 100644 --- a/Source/cmDocumentation.cxx +++ b/Source/cmDocumentation.cxx @@ -10,10 +10,10 @@ #include "cmVersion.h" #include -#include #include #include -#include +#include +#include #include static const char* cmDocumentationStandardOptions[][2] = { diff --git a/Source/cmDocumentationFormatter.cxx b/Source/cmDocumentationFormatter.cxx index 58a1743..0018263 100644 --- a/Source/cmDocumentationFormatter.cxx +++ b/Source/cmDocumentationFormatter.cxx @@ -5,8 +5,8 @@ #include "cmDocumentationEntry.h" #include "cmDocumentationSection.h" -#include #include +#include #include #include diff --git a/Source/cmELF.cxx b/Source/cmELF.cxx index 7e88bb2..0655da9 100644 --- a/Source/cmELF.cxx +++ b/Source/cmELF.cxx @@ -5,16 +5,16 @@ #include #include #include -#include #include #include +#include #include #include // Include the ELF format information system header. #if defined(__OpenBSD__) -#include #include +#include #elif defined(__HAIKU__) #include #include diff --git a/Source/cmExecProgramCommand.cxx b/Source/cmExecProgramCommand.cxx index 5ce39ae..6a7292d 100644 --- a/Source/cmExecProgramCommand.cxx +++ b/Source/cmExecProgramCommand.cxx @@ -3,7 +3,7 @@ #include "cmExecProgramCommand.h" #include -#include +#include #include "cmMakefile.h" #include "cmProcessOutput.h" diff --git a/Source/cmExecuteProcessCommand.cxx b/Source/cmExecuteProcessCommand.cxx index 1292dbe..92cdf64 100644 --- a/Source/cmExecuteProcessCommand.cxx +++ b/Source/cmExecuteProcessCommand.cxx @@ -2,10 +2,10 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExecuteProcessCommand.h" -#include /* isspace */ #include -#include +#include /* isspace */ #include +#include #include "cmMakefile.h" #include "cmProcessOutput.h" diff --git a/Source/cmExportFileGenerator.cxx b/Source/cmExportFileGenerator.cxx index 86b0e23..6c21eaf 100644 --- a/Source/cmExportFileGenerator.cxx +++ b/Source/cmExportFileGenerator.cxx @@ -17,11 +17,11 @@ #include "cmTargetExport.h" #include "cmake.h" -#include +#include #include #include -#include #include +#include #include static std::string cmExportFileGeneratorEscape(std::string const& str) diff --git a/Source/cmExportInstallAndroidMKGenerator.cxx b/Source/cmExportInstallAndroidMKGenerator.cxx index e61717e..9a1c647 100644 --- a/Source/cmExportInstallAndroidMKGenerator.cxx +++ b/Source/cmExportInstallAndroidMKGenerator.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExportInstallAndroidMKGenerator.h" -#include #include +#include #include "cmExportBuildAndroidMKGenerator.h" #include "cmExportSet.h" diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index 44ba83a..2dffcaa 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmExtraCodeBlocksGenerator.h" -#include #include #include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx index 9a78554..fd7da18 100644 --- a/Source/cmExtraCodeLiteGenerator.cxx +++ b/Source/cmExtraCodeLiteGenerator.cxx @@ -14,10 +14,10 @@ #include "cmake.h" #include -#include #include #include #include +#include #include cmExtraCodeLiteGenerator::cmExtraCodeLiteGenerator() diff --git a/Source/cmExtraEclipseCDT4Generator.cxx b/Source/cmExtraEclipseCDT4Generator.cxx index 1007329..b4fc771 100644 --- a/Source/cmExtraEclipseCDT4Generator.cxx +++ b/Source/cmExtraEclipseCDT4Generator.cxx @@ -3,11 +3,11 @@ #include "cmExtraEclipseCDT4Generator.h" #include -#include +#include #include -#include #include #include +#include #include #include "cmGeneratedFileStream.h" diff --git a/Source/cmExtraKateGenerator.cxx b/Source/cmExtraKateGenerator.cxx index ed90851..3730433 100644 --- a/Source/cmExtraKateGenerator.cxx +++ b/Source/cmExtraKateGenerator.cxx @@ -11,9 +11,9 @@ #include "cmStateTypes.h" #include "cmSystemTools.h" -#include #include #include +#include #include cmExtraKateGenerator::cmExtraKateGenerator() diff --git a/Source/cmExtraSublimeTextGenerator.cxx b/Source/cmExtraSublimeTextGenerator.cxx index 76d5891..36ba520 100644 --- a/Source/cmExtraSublimeTextGenerator.cxx +++ b/Source/cmExtraSublimeTextGenerator.cxx @@ -3,9 +3,9 @@ #include "cmExtraSublimeTextGenerator.h" #include -#include #include #include +#include #include #include "cmGeneratedFileStream.h" diff --git a/Source/cmFLTKWrapUICommand.cxx b/Source/cmFLTKWrapUICommand.cxx index c82127b..ff78f52 100644 --- a/Source/cmFLTKWrapUICommand.cxx +++ b/Source/cmFLTKWrapUICommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFLTKWrapUICommand.h" -#include +#include #include "cmCustomCommandLines.h" #include "cmMakefile.h" diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 5503b08..91cecb3 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -3,18 +3,18 @@ #include "cmFileCommand.h" #include -#include +#include #include #include #include #include #include #include -#include -#include -#include #include #include +#include +#include +#include #include // include sys/stat.h after sys/types.h diff --git a/Source/cmFileLock.cxx b/Source/cmFileLock.cxx index a03f09e..786d6c6 100644 --- a/Source/cmFileLock.cxx +++ b/Source/cmFileLock.cxx @@ -3,7 +3,7 @@ #include "cmFileLock.h" #include "cmFileLockResult.h" -#include +#include // Common implementation diff --git a/Source/cmFileLockPool.cxx b/Source/cmFileLockPool.cxx index 24f8467..7b1564c 100644 --- a/Source/cmFileLockPool.cxx +++ b/Source/cmFileLockPool.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileLockPool.h" -#include +#include #include "cmAlgorithms.h" #include "cmFileLock.h" diff --git a/Source/cmFileLockResult.cxx b/Source/cmFileLockResult.cxx index 0ae3a37..a040705 100644 --- a/Source/cmFileLockResult.cxx +++ b/Source/cmFileLockResult.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileLockResult.h" -#include -#include +#include +#include cmFileLockResult cmFileLockResult::MakeOk() { diff --git a/Source/cmFileLockUnix.cxx b/Source/cmFileLockUnix.cxx index 9f928d6..7353b01 100644 --- a/Source/cmFileLockUnix.cxx +++ b/Source/cmFileLockUnix.cxx @@ -3,9 +3,9 @@ #include "cmFileLock.h" #include "cmSystemTools.h" -#include // errno -#include // SEEK_SET +#include // errno #include +#include // SEEK_SET #include cmFileLock::cmFileLock() diff --git a/Source/cmFilePathChecksum.h b/Source/cmFilePathChecksum.h index 3f2f50a..59ca34c 100644 --- a/Source/cmFilePathChecksum.h +++ b/Source/cmFilePathChecksum.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmFileTimeComparison.cxx b/Source/cmFileTimeComparison.cxx index 6f0393a..991ebb8 100644 --- a/Source/cmFileTimeComparison.cxx +++ b/Source/cmFileTimeComparison.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFileTimeComparison.h" -#include #include +#include #include #include "cm_unordered_map.hxx" diff --git a/Source/cmFindBase.cxx b/Source/cmFindBase.cxx index cabecdf..dce5021 100644 --- a/Source/cmFindBase.cxx +++ b/Source/cmFindBase.cxx @@ -3,9 +3,9 @@ #include "cmFindBase.h" #include -#include #include #include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmFindCommon.cxx b/Source/cmFindCommon.cxx index ee6add0..110195c 100644 --- a/Source/cmFindCommon.cxx +++ b/Source/cmFindCommon.cxx @@ -3,7 +3,7 @@ #include "cmFindCommon.h" #include -#include +#include #include #include "cmMakefile.h" diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index 4272407..c86f9c1 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -4,9 +4,9 @@ #include #include -#include -#include #include +#include +#include #include "cmGlobalGenerator.h" #include "cmMakefile.h" diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 1ac2b11..60de74f 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -3,18 +3,18 @@ #include "cmFindPackageCommand.h" #include -#include +#include #include #include #include #include #include #include -#include -#include #include #include #include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmForEachCommand.cxx b/Source/cmForEachCommand.cxx index 7690852..6273f6e 100644 --- a/Source/cmForEachCommand.cxx +++ b/Source/cmForEachCommand.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmForEachCommand.h" -#include -#include #include +#include +#include #include "cmExecutionStatus.h" #include "cmMakefile.h" diff --git a/Source/cmFortranParserImpl.cxx b/Source/cmFortranParserImpl.cxx index 1c93fd5..1a5e6c5 100644 --- a/Source/cmFortranParserImpl.cxx +++ b/Source/cmFortranParserImpl.cxx @@ -4,11 +4,11 @@ #include "cmFortranLexer.h" #include "cmSystemTools.h" -#include +#include #include -#include #include #include +#include #include #include diff --git a/Source/cmGeneratedFileStream.cxx b/Source/cmGeneratedFileStream.cxx index 4cf1023..4731493 100644 --- a/Source/cmGeneratedFileStream.cxx +++ b/Source/cmGeneratedFileStream.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmGeneratedFileStream.h" -#include +#include #include "cmSystemTools.h" diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 88ec85e..e70bbfe 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -5,6 +5,7 @@ #include #include +#include "assert.h" #include "cmAlgorithms.h" #include "cmGeneratorExpressionContext.h" #include "cmGeneratorExpressionEvaluator.h" @@ -12,7 +13,6 @@ #include "cmGeneratorExpressionParser.h" #include "cmSystemTools.h" #include "cm_auto_ptr.hxx" -#include cmGeneratorExpression::cmGeneratorExpression( const cmListFileBacktrace& backtrace) diff --git a/Source/cmGeneratorExpressionDAGChecker.cxx b/Source/cmGeneratorExpressionDAGChecker.cxx index 2a834b7..c026631 100644 --- a/Source/cmGeneratorExpressionDAGChecker.cxx +++ b/Source/cmGeneratorExpressionDAGChecker.cxx @@ -9,8 +9,8 @@ #include "cmLocalGenerator.h" #include "cmake.h" -#include #include +#include #include cmGeneratorExpressionDAGChecker::cmGeneratorExpressionDAGChecker( diff --git a/Source/cmGeneratorExpressionEvaluator.h b/Source/cmGeneratorExpressionEvaluator.h index 5174290..41bea9b 100644 --- a/Source/cmGeneratorExpressionEvaluator.h +++ b/Source/cmGeneratorExpressionEvaluator.h @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/Source/cmGeneratorExpressionLexer.h b/Source/cmGeneratorExpressionLexer.h index de6ae13..cac255d 100644 --- a/Source/cmGeneratorExpressionLexer.h +++ b/Source/cmGeneratorExpressionLexer.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 2f8bed1..66202df 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -22,16 +22,16 @@ #include "cmake.h" #include -#include -#include +#include #include #include #include -#include -#include +#include #include #include #include +#include +#include #include std::string cmGeneratorExpressionNode::EvaluateDependentExpression( diff --git a/Source/cmGeneratorExpressionParser.cxx b/Source/cmGeneratorExpressionParser.cxx index e07e8c8..c33349a 100644 --- a/Source/cmGeneratorExpressionParser.cxx +++ b/Source/cmGeneratorExpressionParser.cxx @@ -4,8 +4,8 @@ #include "cmGeneratorExpressionEvaluator.h" -#include -#include +#include +#include cmGeneratorExpressionParser::cmGeneratorExpressionParser( const std::vector& tokens) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index e39c497..47d685d 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3,15 +3,15 @@ #include "cmGeneratorTarget.h" #include -#include -#include +#include #include -#include -#include -#include +#include #include #include #include +#include +#include +#include #include "cmAlgorithms.h" #include "cmComputeLinkInformation.h" @@ -46,9 +46,8 @@ const char* cmTargetPropertyComputer::GetSources( } template <> -const char* -cmTargetPropertyComputer::ComputeLocationForBuild( - cmGeneratorTarget const* tgt) +const char* cmTargetPropertyComputer::ComputeLocationForBuild< + cmGeneratorTarget>(cmGeneratorTarget const* tgt) { return tgt->GetLocation(""); } diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx index 6138bf9..ba623d5 100644 --- a/Source/cmGhsMultiTargetGenerator.cxx +++ b/Source/cmGhsMultiTargetGenerator.cxx @@ -10,7 +10,7 @@ #include "cmMakefile.h" #include "cmSourceFile.h" #include "cmTarget.h" -#include +#include std::string const cmGhsMultiTargetGenerator::DDOption("-dynamic"); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 4d40466..b6b7d9e 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -10,14 +10,14 @@ #include "cmGlobalGenerator.h" #include -#include +#include #include #include -#include -#include -#include #include #include +#include +#include +#include #include "cmAlgorithms.h" #include "cmCPackPropertiesGenerator.h" diff --git a/Source/cmGlobalKdevelopGenerator.cxx b/Source/cmGlobalKdevelopGenerator.cxx index c66b14d..75209c3 100644 --- a/Source/cmGlobalKdevelopGenerator.cxx +++ b/Source/cmGlobalKdevelopGenerator.cxx @@ -16,9 +16,9 @@ #include #include -#include #include #include +#include #include cmGlobalKdevelopGenerator::cmGlobalKdevelopGenerator() diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 5de5105..1bdef53 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -3,15 +3,15 @@ #include "cmGlobalNinjaGenerator.h" #include -#include #include #include #include #include -#include +#include #include #include #include +#include #include "cmAlgorithms.h" #include "cmDocumentationEntry.h" diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 900fdfb..67d7bc9 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -5,10 +5,10 @@ #include -#include #include #include #include +#include #include #include diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index e16384c..65a0bde 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -13,7 +13,7 @@ #include "cmake.h" #include -#include +#include static cmVS7FlagTable cmVS7ExtraFlagTable[] = { // Precompiled header and related options. Note that the diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index c298cb4..d1b6130 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmGlobalXCodeGenerator.h" -#include +#include #include -#include -#include #include #include +#include +#include #include "cmComputeLinkInformation.h" #include "cmCustomCommandGenerator.h" diff --git a/Source/cmHexFileConverter.cxx b/Source/cmHexFileConverter.cxx index 443d465..d9d6598 100644 --- a/Source/cmHexFileConverter.cxx +++ b/Source/cmHexFileConverter.cxx @@ -3,8 +3,8 @@ #include "cmHexFileConverter.h" #include -#include -#include +#include +#include #include "cmSystemTools.h" diff --git a/Source/cmIDEOptions.cxx b/Source/cmIDEOptions.cxx index 3a19ae2..1c0a99e 100644 --- a/Source/cmIDEOptions.cxx +++ b/Source/cmIDEOptions.cxx @@ -3,8 +3,8 @@ #include "cmIDEOptions.h" #include -#include #include +#include #include "cmIDEFlagTable.h" #include "cmSystemTools.h" diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index 1ef7aac..4c331c7 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -3,8 +3,8 @@ #include "cmInstallCommand.h" #include -#include #include +#include #include "cmAlgorithms.h" #include "cmCommandArgumentsHelper.h" diff --git a/Source/cmInstallExportAndroidMKGenerator.cxx b/Source/cmInstallExportAndroidMKGenerator.cxx index ceb54bd..8eeaa9c 100644 --- a/Source/cmInstallExportAndroidMKGenerator.cxx +++ b/Source/cmInstallExportAndroidMKGenerator.cxx @@ -3,7 +3,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmInstallExportAndroidMKGenerator.h" -#include +#include #include "cmExportInstallFileGenerator.h" #include "cmExportSet.h" diff --git a/Source/cmInstallExportGenerator.h b/Source/cmInstallExportGenerator.h index 2270e85..b0fe889 100644 --- a/Source/cmInstallExportGenerator.h +++ b/Source/cmInstallExportGenerator.h @@ -8,8 +8,8 @@ #include "cmInstallGenerator.h" #include "cmScriptGenerator.h" -#include #include +#include #include #include diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 4d34c7d..88fcc56 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmInstallTargetGenerator.h" -#include +#include #include #include #include diff --git a/Source/cmLinkedTree.h b/Source/cmLinkedTree.h index e5b7b97..4f95522 100644 --- a/Source/cmLinkedTree.h +++ b/Source/cmLinkedTree.h @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/Source/cmListCommand.cxx b/Source/cmListCommand.cxx index 22e4fe4..295ea28 100644 --- a/Source/cmListCommand.cxx +++ b/Source/cmListCommand.cxx @@ -3,12 +3,12 @@ #include "cmListCommand.h" #include -#include +#include #include -#include -#include // required for atoi #include #include +#include +#include // required for atoi #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index bc25d8c..23b666e 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -10,7 +10,7 @@ #include "cmake.h" #include -#include +#include #include #include diff --git a/Source/cmLoadCommandCommand.cxx b/Source/cmLoadCommandCommand.cxx index 2163f06..5cf1853 100644 --- a/Source/cmLoadCommandCommand.cxx +++ b/Source/cmLoadCommandCommand.cxx @@ -2,11 +2,11 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmLoadCommandCommand.h" -#include -#include -#include -#include +#include #include +#include +#include +#include #include "cmCPluginAPI.cxx" #include "cmCPluginAPI.h" diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index d077a07..07d712c 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -31,12 +31,12 @@ #endif #include -#include +#include #include -#include -#include #include #include +#include +#include #include #if defined(__HAIKU__) diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index 756f63a..c2d9d57 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -3,10 +3,10 @@ #include "cmLocalNinjaGenerator.h" #include -#include -#include +#include #include #include +#include #include #include "cmCustomCommand.h" diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 7b614a8..4388e75 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -5,9 +5,9 @@ #include #include #include -#include #include #include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 3a8e404..6e976e1 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -15,7 +15,7 @@ #include "cmComputeLinkInformation.h" #include "cmGeneratedFileStream.h" -#include // for isspace +#include // for isspace static bool cmLVS7G_IsFAT(const char* dir); diff --git a/Source/cmLocale.h b/Source/cmLocale.h index ec05a46..cca7cf5 100644 --- a/Source/cmLocale.h +++ b/Source/cmLocale.h @@ -5,7 +5,7 @@ #include -#include +#include #include class cmLocaleRAII diff --git a/Source/cmMachO.cxx b/Source/cmMachO.cxx index fc2b3f9..586e6c6 100644 --- a/Source/cmMachO.cxx +++ b/Source/cmMachO.cxx @@ -4,7 +4,7 @@ #include #include -#include +#include #include #include diff --git a/Source/cmMacroCommand.cxx b/Source/cmMacroCommand.cxx index 50ef47a..583f801 100644 --- a/Source/cmMacroCommand.cxx +++ b/Source/cmMacroCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMacroCommand.h" -#include #include +#include #include "cmAlgorithms.h" #include "cmExecutionStatus.h" diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 2d9fabb..c75d101 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3,13 +3,13 @@ #include "cmMakefile.h" #include -#include -#include +#include #include #include -#include -#include +#include #include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 05e77d7..54b3f36 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMakefileTargetGenerator.h" -#include #include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmMathCommand.cxx b/Source/cmMathCommand.cxx index 11210ed..c1cd1b6 100644 --- a/Source/cmMathCommand.cxx +++ b/Source/cmMathCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmMathCommand.h" -#include +#include #include "cmExprParserHelper.h" #include "cmMakefile.h" diff --git a/Source/cmNewLineStyle.cxx b/Source/cmNewLineStyle.cxx index 2d1d8cc..55451ff 100644 --- a/Source/cmNewLineStyle.cxx +++ b/Source/cmNewLineStyle.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmNewLineStyle.h" -#include +#include cmNewLineStyle::cmNewLineStyle() : NewLineStyle(Invalid) diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index c3dd148..9bf0ccd 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -3,13 +3,13 @@ #include "cmNinjaNormalTargetGenerator.h" #include -#include -#include +#include #include #include #include #include #include +#include #include "cmAlgorithms.h" #include "cmCustomCommand.h" diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index d6aa1e0..b1f26e4 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -3,13 +3,13 @@ #include "cmNinjaTargetGenerator.h" #include -#include +#include #include #include -#include #include #include #include +#include #include "cmAlgorithms.h" #include "cmComputeLinkInformation.h" diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index 928de52..7744a5a 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -9,7 +9,7 @@ #include "cmake.h" #include -#include +#include #include #include diff --git a/Source/cmOutputConverter.cxx b/Source/cmOutputConverter.cxx index 2aa0131..d6864a6 100644 --- a/Source/cmOutputConverter.cxx +++ b/Source/cmOutputConverter.cxx @@ -3,8 +3,8 @@ #include "cmOutputConverter.h" #include -#include -#include +#include +#include #include #include #include diff --git a/Source/cmOutputRequiredFilesCommand.h b/Source/cmOutputRequiredFilesCommand.h index 2de2671..c4ce680 100644 --- a/Source/cmOutputRequiredFilesCommand.h +++ b/Source/cmOutputRequiredFilesCommand.h @@ -4,8 +4,8 @@ #define cmOutputRequiredFilesCommand_h #include -#include #include +#include #include #include diff --git a/Source/cmParseArgumentsCommand.cxx b/Source/cmParseArgumentsCommand.cxx index ac67e04..d75ee8e 100644 --- a/Source/cmParseArgumentsCommand.cxx +++ b/Source/cmParseArgumentsCommand.cxx @@ -2,10 +2,10 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmParseArgumentsCommand.h" -#include #include #include #include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmPathLabel.cxx b/Source/cmPathLabel.cxx index 8f97c84..30ba081 100644 --- a/Source/cmPathLabel.cxx +++ b/Source/cmPathLabel.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmPathLabel.h" -#include +#include cmPathLabel::cmPathLabel(const std::string& label) : Label(label) diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx index da6359b..6339e11 100644 --- a/Source/cmPolicies.cxx +++ b/Source/cmPolicies.cxx @@ -8,12 +8,12 @@ #include "cmVersion.h" #include "cmake.h" -#include -#include +#include #include -#include -#include +#include #include +#include +#include #include static bool stringToId(const char* input, cmPolicies::PolicyID& pid) diff --git a/Source/cmProcessOutput.h b/Source/cmProcessOutput.h index 80ef792..d2e631f 100644 --- a/Source/cmProcessOutput.h +++ b/Source/cmProcessOutput.h @@ -5,7 +5,7 @@ #include // IWYU pragma: keep -#include +#include #include #include diff --git a/Source/cmProcessTools.h b/Source/cmProcessTools.h index 8668a5c..df131b9 100644 --- a/Source/cmProcessTools.h +++ b/Source/cmProcessTools.h @@ -6,8 +6,8 @@ #include "cmProcessOutput.h" #include -#include #include +#include #include /** \class cmProcessTools diff --git a/Source/cmProjectCommand.cxx b/Source/cmProjectCommand.cxx index 3aefdb2..4e0fa57 100644 --- a/Source/cmProjectCommand.cxx +++ b/Source/cmProjectCommand.cxx @@ -3,8 +3,8 @@ #include "cmProjectCommand.h" #include -#include #include +#include #include "cmMakefile.h" #include "cmPolicies.h" diff --git a/Source/cmPropertyMap.cxx b/Source/cmPropertyMap.cxx index 6db73c0..fa92ae2 100644 --- a/Source/cmPropertyMap.cxx +++ b/Source/cmPropertyMap.cxx @@ -3,7 +3,7 @@ #include "cmPropertyMap.h" #include -#include +#include #include #include diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 25521c1..de18265 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -25,10 +25,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 603e166..e7e456a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -3,14 +3,14 @@ #include "cmQtAutoGenerators.h" #include -#include +#include #include #include #include -#include -#include #include #include +#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmRST.cxx b/Source/cmRST.cxx index bc17236..355b8c4 100644 --- a/Source/cmRST.cxx +++ b/Source/cmRST.cxx @@ -7,10 +7,10 @@ #include "cmVersion.h" #include -#include #include -#include +#include #include +#include #include cmRST::cmRST(std::ostream& os, std::string const& docroot) diff --git a/Source/cmRulePlaceholderExpander.cxx b/Source/cmRulePlaceholderExpander.cxx index d96d1c3..f190a5c 100644 --- a/Source/cmRulePlaceholderExpander.cxx +++ b/Source/cmRulePlaceholderExpander.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmRulePlaceholderExpander.h" -#include -#include +#include +#include #include #include "cmOutputConverter.h" diff --git a/Source/cmServerConnection.cxx b/Source/cmServerConnection.cxx index 5ee8684..008052b 100644 --- a/Source/cmServerConnection.cxx +++ b/Source/cmServerConnection.cxx @@ -7,8 +7,8 @@ #include "cmFileMonitor.h" #include "cmServer.h" -#include -#include +#include +#include namespace { diff --git a/Source/cmSetCommand.cxx b/Source/cmSetCommand.cxx index 728fbbd..820e7f6 100644 --- a/Source/cmSetCommand.cxx +++ b/Source/cmSetCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmSetCommand.h" -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmSourceFileLocation.cxx b/Source/cmSourceFileLocation.cxx index d3e5cd1..4e0880e 100644 --- a/Source/cmSourceFileLocation.cxx +++ b/Source/cmSourceFileLocation.cxx @@ -11,7 +11,7 @@ #include "cmake.h" #include -#include +#include #include cmSourceFileLocation::cmSourceFileLocation() diff --git a/Source/cmSourceGroupCommand.cxx b/Source/cmSourceGroupCommand.cxx index 9293c23..631f2a6 100644 --- a/Source/cmSourceGroupCommand.cxx +++ b/Source/cmSourceGroupCommand.cxx @@ -2,9 +2,9 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmSourceGroupCommand.h" -#include #include #include +#include #include "cmMakefile.h" #include "cmSourceGroup.h" diff --git a/Source/cmState.cxx b/Source/cmState.cxx index aaf8cf0..18d5ea1 100644 --- a/Source/cmState.cxx +++ b/Source/cmState.cxx @@ -3,9 +3,9 @@ #include "cmState.h" #include -#include +#include #include -#include +#include #include #include "cmAlgorithms.h" diff --git a/Source/cmStateDirectory.cxx b/Source/cmStateDirectory.cxx index c402619..46a1858 100644 --- a/Source/cmStateDirectory.cxx +++ b/Source/cmStateDirectory.cxx @@ -4,7 +4,7 @@ #include "cmStateDirectory.h" #include -#include +#include #include #include #include diff --git a/Source/cmStateSnapshot.cxx b/Source/cmStateSnapshot.cxx index 9e5bcce..d2c9d73 100644 --- a/Source/cmStateSnapshot.cxx +++ b/Source/cmStateSnapshot.cxx @@ -4,9 +4,9 @@ #include "cmStateSnapshot.h" #include -#include -#include +#include #include +#include #include "cmAlgorithms.h" #include "cmDefinitions.h" diff --git a/Source/cmStringCommand.cxx b/Source/cmStringCommand.cxx index a308975..eb94080 100644 --- a/Source/cmStringCommand.cxx +++ b/Source/cmStringCommand.cxx @@ -2,11 +2,11 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmStringCommand.h" -#include #include -#include -#include +#include #include +#include +#include #include "cmAlgorithms.h" #include "cmCryptoHash.h" diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 3123329..b7afa10 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -27,9 +27,7 @@ #endif #include -#include -#include -#include +#include #include #include #include @@ -37,14 +35,16 @@ #include #include #include -#include -#include -#include -#include +#include +#include #include #include #include +#include +#include +#include #include +#include #include #if defined(_WIN32) diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index 2641faa..10e8280 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 9fb57fc..0f3d91b 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3,12 +3,12 @@ #include "cmTarget.h" #include -#include +#include #include -#include #include #include #include +#include #include "cmAlgorithms.h" #include "cmGeneratorExpression.h" diff --git a/Source/cmTargetLinkLibrariesCommand.cxx b/Source/cmTargetLinkLibrariesCommand.cxx index 50fd9b7..e173036 100644 --- a/Source/cmTargetLinkLibrariesCommand.cxx +++ b/Source/cmTargetLinkLibrariesCommand.cxx @@ -2,8 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmTargetLinkLibrariesCommand.h" -#include #include +#include #include "cmGeneratorExpression.h" #include "cmGlobalGenerator.h" diff --git a/Source/cmTimestamp.cxx b/Source/cmTimestamp.cxx index 4b72d49..3d42e26 100644 --- a/Source/cmTimestamp.cxx +++ b/Source/cmTimestamp.cxx @@ -3,9 +3,9 @@ #include "cmTimestamp.h" #include -#include #include #include +#include #include "cmSystemTools.h" diff --git a/Source/cmTimestamp.h b/Source/cmTimestamp.h index e2adc4d..fdee564 100644 --- a/Source/cmTimestamp.h +++ b/Source/cmTimestamp.h @@ -5,8 +5,8 @@ #include // IWYU pragma: keep -#include #include +#include /** \class cmTimestamp * \brief Utility class to generate string representation of a timestamp diff --git a/Source/cmTryRunCommand.cxx b/Source/cmTryRunCommand.cxx index c476bcb..c4fc94e 100644 --- a/Source/cmTryRunCommand.cxx +++ b/Source/cmTryRunCommand.cxx @@ -3,8 +3,8 @@ #include "cmTryRunCommand.h" #include -#include -#include +#include +#include #include "cmMakefile.h" #include "cmState.h" diff --git a/Source/cmUnexpectedCommand.cxx b/Source/cmUnexpectedCommand.cxx index fe25038..a8de9e6 100644 --- a/Source/cmUnexpectedCommand.cxx +++ b/Source/cmUnexpectedCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUnexpectedCommand.h" -#include +#include #include "cmMakefile.h" diff --git a/Source/cmUnsetCommand.cxx b/Source/cmUnsetCommand.cxx index 1c73312..31525ba 100644 --- a/Source/cmUnsetCommand.cxx +++ b/Source/cmUnsetCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUnsetCommand.h" -#include +#include #include "cmAlgorithms.h" #include "cmMakefile.h" diff --git a/Source/cmUtilitySourceCommand.cxx b/Source/cmUtilitySourceCommand.cxx index 07ada54..37d8bfb 100644 --- a/Source/cmUtilitySourceCommand.cxx +++ b/Source/cmUtilitySourceCommand.cxx @@ -2,7 +2,7 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmUtilitySourceCommand.h" -#include +#include #include "cmMakefile.h" #include "cmState.h" diff --git a/Source/cmUuid.cxx b/Source/cmUuid.cxx index c7b4d1c..201e1cc 100644 --- a/Source/cmUuid.cxx +++ b/Source/cmUuid.cxx @@ -4,7 +4,7 @@ #include "cmCryptoHash.h" -#include +#include cmUuid::cmUuid() { diff --git a/Source/cmVisualStudioSlnParser.h b/Source/cmVisualStudioSlnParser.h index 49eb5dc..a3391a6 100644 --- a/Source/cmVisualStudioSlnParser.h +++ b/Source/cmVisualStudioSlnParser.h @@ -6,8 +6,8 @@ #include #include -#include #include +#include #include class cmSlnData; diff --git a/Source/cmVisualStudioWCEPlatformParser.h b/Source/cmVisualStudioWCEPlatformParser.h index e2ee582..8ed6083 100644 --- a/Source/cmVisualStudioWCEPlatformParser.h +++ b/Source/cmVisualStudioWCEPlatformParser.h @@ -5,8 +5,8 @@ #include -#include #include +#include #include #include diff --git a/Source/cmXMLParser.cxx b/Source/cmXMLParser.cxx index c642e6d..231e95e 100644 --- a/Source/cmXMLParser.cxx +++ b/Source/cmXMLParser.cxx @@ -2,12 +2,12 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmXMLParser.h" -#include #include #include -#include +#include #include #include +#include cmXMLParser::cmXMLParser() { diff --git a/Source/cmXMLSafe.cxx b/Source/cmXMLSafe.cxx index 7c3b306..d9bdc02 100644 --- a/Source/cmXMLSafe.cxx +++ b/Source/cmXMLSafe.cxx @@ -4,9 +4,9 @@ #include "cm_utf8.h" -#include -#include #include +#include +#include cmXMLSafe::cmXMLSafe(const char* s) : Data(s) diff --git a/Source/cm_codecvt.hxx b/Source/cm_codecvt.hxx index cbd9c22..fcd9954 100644 --- a/Source/cm_codecvt.hxx +++ b/Source/cm_codecvt.hxx @@ -5,9 +5,9 @@ #include -#include #include #include +#include class codecvt : public std::codecvt { diff --git a/Source/cm_get_date.h b/Source/cm_get_date.h index d486a39..6acf8de 100644 --- a/Source/cm_get_date.h +++ b/Source/cm_get_date.h @@ -3,11 +3,10 @@ #ifndef cm_get_date_h #define cm_get_date_h +#include + #ifdef __cplusplus -#include extern "C" { -#else -#include #endif /** Parse a date/time string. Treat relative times with respect to 'now'. */ diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 6a006a2..b2384cd 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -113,11 +113,11 @@ #include #include #include -#include -#include -#include #include #include +#include +#include +#include #include namespace { diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index a27ee75..b8e227f 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -22,8 +22,8 @@ #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include #endif -#include #include +#include #include #include diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 7bc3e2f..823b38f 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -38,11 +38,11 @@ #include #include #include -#include -#include -#include #include #include +#include +#include +#include int cmcmd_cmake_ninja_depends(std::vector::const_iterator argBeg, std::vector::const_iterator argEnd); diff --git a/Source/ctest.cxx b/Source/ctest.cxx index 85965a2..1cf75c8 100644 --- a/Source/ctest.cxx +++ b/Source/ctest.cxx @@ -13,8 +13,8 @@ #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include #endif -#include #include +#include #include #include diff --git a/Tests/CMakeLib/run_compile_commands.cxx b/Tests/CMakeLib/run_compile_commands.cxx index 9701464..5d4ca70 100644 --- a/Tests/CMakeLib/run_compile_commands.cxx +++ b/Tests/CMakeLib/run_compile_commands.cxx @@ -1,9 +1,9 @@ #include #include -#include #include #include +#include #include #include #include diff --git a/Tests/CMakeLib/testSystemTools.cxx b/Tests/CMakeLib/testSystemTools.cxx index bdffecc..0dfa326 100644 --- a/Tests/CMakeLib/testSystemTools.cxx +++ b/Tests/CMakeLib/testSystemTools.cxx @@ -3,8 +3,8 @@ #include // IWYU pragma: keep -#include #include +#include #include #include diff --git a/Tests/CMakeLib/testUTF8.cxx b/Tests/CMakeLib/testUTF8.cxx index 568268d..fb5f3d8 100644 --- a/Tests/CMakeLib/testUTF8.cxx +++ b/Tests/CMakeLib/testUTF8.cxx @@ -1,7 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include -#include +#include typedef char test_utf8_char[5]; diff --git a/Tests/CMakeLib/testXMLSafe.cxx b/Tests/CMakeLib/testXMLSafe.cxx index 9290414..fe776c5 100644 --- a/Tests/CMakeLib/testXMLSafe.cxx +++ b/Tests/CMakeLib/testXMLSafe.cxx @@ -3,8 +3,8 @@ #include -#include #include +#include #include #include "cmXMLSafe.h" ----------------------------------------------------------------------- Summary of changes: Source/CPack/IFW/cmCPackIFWInstaller.cxx | 2 +- Source/CPack/IFW/cmCPackIFWPackage.cxx | 2 +- Source/CPack/IFW/cmCPackIFWRepository.cxx | 2 +- Source/CPack/OSXScriptLauncher.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 6 +++--- Source/CPack/cmCPackDragNDropGenerator.cxx | 2 +- Source/CPack/cmCPackDragNDropGenerator.h | 2 +- Source/CPack/cmCPackLog.h | 2 +- Source/CPack/cmCPackNSISGenerator.cxx | 4 ++-- Source/CPack/cmCPackPackageMakerGenerator.cxx | 6 +++--- Source/CPack/cmCPackProductBuildGenerator.cxx | 2 +- Source/CPack/cmCPackRPMGenerator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 2 +- Source/CPack/cpack.cxx | 2 +- Source/CTest/cmCTestBZR.cxx | 2 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 2 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestBuildCommand.cxx | 2 +- Source/CTest/cmCTestBuildHandler.cxx | 4 ++-- Source/CTest/cmCTestBuildHandler.h | 2 +- Source/CTest/cmCTestConfigureCommand.cxx | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 4 ++-- Source/CTest/cmCTestCurl.cxx | 2 +- Source/CTest/cmCTestGIT.cxx | 8 ++++---- Source/CTest/cmCTestGenericHandler.h | 2 +- Source/CTest/cmCTestHandlerCommand.cxx | 2 +- Source/CTest/cmCTestHandlerCommand.h | 2 +- Source/CTest/cmCTestLaunch.cxx | 6 +++--- Source/CTest/cmCTestMemCheckHandler.cxx | 2 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 4 ++-- Source/CTest/cmCTestMultiProcessHandler.h | 2 +- Source/CTest/cmCTestP4.cxx | 2 +- Source/CTest/cmCTestRunTest.cxx | 4 ++-- Source/CTest/cmCTestRunTest.h | 2 +- Source/CTest/cmCTestSVN.cxx | 4 ++-- Source/CTest/cmCTestScriptHandler.cxx | 6 +++--- Source/CTest/cmCTestSleepCommand.cxx | 2 +- Source/CTest/cmCTestStartCommand.cxx | 2 +- Source/CTest/cmCTestSubmitHandler.cxx | 4 ++-- Source/CTest/cmCTestTestCommand.cxx | 2 +- Source/CTest/cmCTestTestHandler.cxx | 8 ++++---- Source/CTest/cmCTestTestHandler.h | 2 +- Source/CTest/cmCTestVC.cxx | 4 ++-- Source/CTest/cmParseBlanketJSCoverage.cxx | 4 ++-- Source/CTest/cmParseCacheCoverage.cxx | 4 ++-- Source/CTest/cmParseCoberturaCoverage.cxx | 4 ++-- Source/CTest/cmParseDelphiCoverage.cxx | 4 ++-- Source/CTest/cmParseGTMCoverage.cxx | 4 ++-- Source/CTest/cmParseJacocoCoverage.cxx | 4 ++-- Source/CTest/cmParsePHPCoverage.cxx | 4 ++-- Source/CursesDialog/ccmake.cxx | 4 ++-- Source/CursesDialog/cmCursesCacheEntryComposite.cxx | 2 +- Source/CursesDialog/cmCursesLongMessageForm.cxx | 4 ++-- Source/CursesDialog/cmCursesMainForm.cxx | 4 ++-- Source/CursesDialog/cmCursesMainForm.h | 2 +- Source/CursesDialog/cmCursesStringWidget.cxx | 4 ++-- Source/QtDialog/CMakeSetup.cxx | 4 ++-- Source/bindexplib.h | 2 +- Source/cmAddSubDirectoryCommand.cxx | 2 +- Source/cmAlgorithms.h | 2 +- Source/cmArchiveWrite.cxx | 4 ++-- Source/cmArchiveWrite.h | 2 +- Source/cmAuxSourceDirectoryCommand.cxx | 2 +- Source/cmBase32.h | 2 +- Source/cmCMakeHostSystemInformationCommand.h | 2 +- Source/cmCMakeMinimumRequired.cxx | 2 +- Source/cmCPluginAPI.cxx | 2 +- Source/cmCTest.cxx | 10 +++++----- Source/cmCTest.h | 2 +- Source/cmCacheManager.cxx | 4 ++-- Source/cmCommandArgumentParser.y | 1 + Source/cmCommandArgumentParserHelper.cxx | 2 +- Source/cmComputeComponentGraph.cxx | 2 +- Source/cmComputeLinkDepends.cxx | 6 +++--- Source/cmComputeLinkInformation.cxx | 4 ++-- Source/cmComputeTargetDepends.cxx | 4 ++-- Source/cmConditionEvaluator.cxx | 6 +++--- Source/cmCoreTryCompile.cxx | 4 ++-- Source/cmCryptoHash.cxx | 2 +- Source/cmCryptoHash.h | 2 +- Source/cmDefinitions.cxx | 2 +- Source/cmDepends.cxx | 2 +- Source/cmDepends.h | 2 +- Source/cmDependsFortran.cxx | 6 +++--- Source/cmDependsJavaParserHelper.cxx | 6 +++--- Source/cmDocumentation.cxx | 4 ++-- Source/cmDocumentationFormatter.cxx | 2 +- Source/cmELF.cxx | 4 ++-- Source/cmExecProgramCommand.cxx | 2 +- Source/cmExecuteProcessCommand.cxx | 4 ++-- Source/cmExportFileGenerator.cxx | 4 ++-- Source/cmExportInstallAndroidMKGenerator.cxx | 2 +- Source/cmExtraCodeBlocksGenerator.cxx | 2 +- Source/cmExtraCodeLiteGenerator.cxx | 2 +- Source/cmExtraEclipseCDT4Generator.cxx | 4 ++-- Source/cmExtraKateGenerator.cxx | 2 +- Source/cmExtraSublimeTextGenerator.cxx | 2 +- Source/cmFLTKWrapUICommand.cxx | 2 +- Source/cmFileCommand.cxx | 8 ++++---- Source/cmFileLock.cxx | 2 +- Source/cmFileLockPool.cxx | 2 +- Source/cmFileLockResult.cxx | 4 ++-- Source/cmFileLockUnix.cxx | 4 ++-- Source/cmFilePathChecksum.h | 2 +- Source/cmFileTimeComparison.cxx | 2 +- Source/cmFindBase.cxx | 2 +- Source/cmFindCommon.cxx | 2 +- Source/cmFindLibraryCommand.cxx | 4 ++-- Source/cmFindPackageCommand.cxx | 6 +++--- Source/cmForEachCommand.cxx | 4 ++-- Source/cmFortranParserImpl.cxx | 4 ++-- Source/cmGeneratedFileStream.cxx | 2 +- Source/cmGeneratorExpression.cxx | 2 +- Source/cmGeneratorExpressionDAGChecker.cxx | 2 +- Source/cmGeneratorExpressionEvaluator.h | 2 +- Source/cmGeneratorExpressionLexer.h | 2 +- Source/cmGeneratorExpressionNode.cxx | 8 ++++---- Source/cmGeneratorExpressionParser.cxx | 4 ++-- Source/cmGeneratorTarget.cxx | 15 +++++++-------- Source/cmGhsMultiTargetGenerator.cxx | 2 +- Source/cmGlobalGenerator.cxx | 8 ++++---- Source/cmGlobalKdevelopGenerator.cxx | 2 +- Source/cmGlobalNinjaGenerator.cxx | 4 ++-- Source/cmGlobalUnixMakefileGenerator3.h | 2 +- Source/cmGlobalVisualStudio7Generator.cxx | 2 +- Source/cmGlobalXCodeGenerator.cxx | 6 +++--- Source/cmHexFileConverter.cxx | 4 ++-- Source/cmIDEOptions.cxx | 2 +- Source/cmInstallCommand.cxx | 2 +- Source/cmInstallExportAndroidMKGenerator.cxx | 2 +- Source/cmInstallExportGenerator.h | 2 +- Source/cmInstallTargetGenerator.cxx | 2 +- Source/cmLinkedTree.h | 2 +- Source/cmListCommand.cxx | 6 +++--- Source/cmListFileCache.cxx | 2 +- Source/cmLoadCommandCommand.cxx | 8 ++++---- Source/cmLocalGenerator.cxx | 6 +++--- Source/cmLocalNinjaGenerator.cxx | 4 ++-- Source/cmLocalUnixMakefileGenerator3.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmLocale.h | 2 +- Source/cmMachO.cxx | 2 +- Source/cmMacroCommand.cxx | 2 +- Source/cmMakefile.cxx | 8 ++++---- Source/cmMakefileTargetGenerator.cxx | 2 +- Source/cmMathCommand.cxx | 2 +- Source/cmNewLineStyle.cxx | 2 +- Source/cmNinjaNormalTargetGenerator.cxx | 4 ++-- Source/cmNinjaTargetGenerator.cxx | 4 ++-- Source/cmOrderDirectories.cxx | 2 +- Source/cmOutputConverter.cxx | 4 ++-- Source/cmOutputRequiredFilesCommand.h | 2 +- Source/cmParseArgumentsCommand.cxx | 2 +- Source/cmPathLabel.cxx | 2 +- Source/cmPolicies.cxx | 8 ++++---- Source/cmProcessOutput.h | 2 +- Source/cmProcessTools.h | 2 +- Source/cmProjectCommand.cxx | 2 +- Source/cmPropertyMap.cxx | 2 +- Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmQtAutoGenerators.cxx | 6 +++--- Source/cmRST.cxx | 4 ++-- Source/cmRulePlaceholderExpander.cxx | 4 ++-- Source/cmServerConnection.cxx | 4 ++-- Source/cmSetCommand.cxx | 2 +- Source/cmSourceFileLocation.cxx | 2 +- Source/cmSourceGroupCommand.cxx | 2 +- Source/cmState.cxx | 4 ++-- Source/cmStateDirectory.cxx | 2 +- Source/cmStateSnapshot.cxx | 4 ++-- Source/cmStringCommand.cxx | 6 +++--- Source/cmSystemTools.cxx | 14 +++++++------- Source/cmSystemTools.h | 2 +- Source/cmTarget.cxx | 4 ++-- Source/cmTargetLinkLibrariesCommand.cxx | 2 +- Source/cmTimestamp.cxx | 2 +- Source/cmTimestamp.h | 2 +- Source/cmTryRunCommand.cxx | 4 ++-- Source/cmUnexpectedCommand.cxx | 2 +- Source/cmUnsetCommand.cxx | 2 +- Source/cmUtilitySourceCommand.cxx | 2 +- Source/cmUuid.cxx | 2 +- Source/cmVisualStudioSlnParser.h | 2 +- Source/cmVisualStudioWCEPlatformParser.h | 2 +- Source/cmXMLParser.cxx | 4 ++-- Source/cmXMLSafe.cxx | 4 ++-- Source/cm_codecvt.hxx | 2 +- Source/cm_get_date.h | 5 ++--- Source/cmake.cxx | 6 +++--- Source/cmakemain.cxx | 2 +- Source/cmcmd.cxx | 6 +++--- Source/ctest.cxx | 2 +- Tests/CMakeLib/run_compile_commands.cxx | 2 +- Tests/CMakeLib/testSystemTools.cxx | 2 +- Tests/CMakeLib/testUTF8.cxx | 2 +- Tests/CMakeLib/testXMLSafe.cxx | 2 +- 196 files changed, 320 insertions(+), 321 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 08:36:51 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 08:36:51 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-726-g16114ac Message-ID: <20170302133653.0902DFA7B4@public.kitware.com> 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 16114ac346e661d7b3bb50dfd09a1a8f361751a4 (commit) via 69528fe65f0c4402c6560917d6cb118d2c103445 (commit) via f3102ca884496a4a0644dc43afaf80a253191ed8 (commit) via c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d (commit) from 2d590038de63afa16ebb9197ca070aba1130c39e (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=16114ac346e661d7b3bb50dfd09a1a8f361751a4 commit 16114ac346e661d7b3bb50dfd09a1a8f361751a4 Merge: 2d59003 69528fe Author: Brad King AuthorDate: Thu Mar 2 08:36:49 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 08:36:49 2017 -0500 Merge topic 'implicit-dir-symlinks' into next 69528fe6 Tests: Add case for RPATH exclusion of symlinks to implicit directories f3102ca8 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks c3fb650c cmOrderDirectories: Consider symlinks when checking implicit directories https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69528fe65f0c4402c6560917d6cb118d2c103445 commit 69528fe65f0c4402c6560917d6cb118d2c103445 Author: Brad King AuthorDate: Wed Mar 1 12:38:10 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:36:32 2017 -0500 Tests: Add case for RPATH exclusion of symlinks to implicit directories Issue: #16682 diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 63016f1..a16efb3 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -153,6 +153,9 @@ add_RunCMake_test(TargetPropertyGeneratorExpressions) add_RunCMake_test(Languages) add_RunCMake_test(LinkStatic) add_RunCMake_test(ObjectLibrary) +if(UNIX AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG AND CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF") + add_RunCMake_test(RuntimePath) +endif() add_RunCMake_test(Swift) add_RunCMake_test(TargetObjects) add_RunCMake_test(TargetSources) diff --git a/Tests/RunCMake/RuntimePath/A.c b/Tests/RunCMake/RuntimePath/A.c new file mode 100644 index 0000000..e9d4195 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/A.c @@ -0,0 +1,4 @@ +int libA(void) +{ + return 0; +} diff --git a/Tests/RunCMake/RuntimePath/CMakeLists.txt b/Tests/RunCMake/RuntimePath/CMakeLists.txt new file mode 100644 index 0000000..a640c56 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.7) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake new file mode 100644 index 0000000..a9a7f05 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/RunCMakeTest.cmake @@ -0,0 +1,18 @@ +include(RunCMake) + + +function(run_SymlinkImplicit) + # Use a single build tree for a few tests without cleaning. + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/SymlinkImplicit-build) + set(RunCMake_TEST_NO_CLEAN 1) + if(RunCMake_GENERATOR MATCHES "Make|Ninja") + set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) + endif() + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + run_cmake(SymlinkImplicit) + run_cmake_command(SymlinkImplicit-build ${CMAKE_COMMAND} --build . --config Debug) + run_cmake_command(SymlinkImplicitCheck + ${CMAKE_COMMAND} -Ddir=${RunCMake_TEST_BINARY_DIR} -P ${RunCMake_SOURCE_DIR}/SymlinkImplicitCheck.cmake) +endfunction() +run_SymlinkImplicit() diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake new file mode 100644 index 0000000..6578f8f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake @@ -0,0 +1,17 @@ +enable_language(C) + +set(lib_dir ${CMAKE_CURRENT_BINARY_DIR}/lib) +set(lib_link ${CMAKE_CURRENT_BINARY_DIR}/libLink) +set(lib_always ${CMAKE_CURRENT_BINARY_DIR}/libAlways) +file(MAKE_DIRECTORY ${lib_dir}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_link}) +execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lib ${lib_always}) + +add_library(A SHARED A.c) +list(APPEND CMAKE_C_IMPLICIT_LINK_DIRECTORIES ${lib_dir}) +set_property(TARGET A PROPERTY LIBRARY_OUTPUT_DIRECTORY ${lib_link}) + +add_executable(exe main.c) +target_link_libraries(exe A) +set_property(TARGET exe PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) +set_property(TARGET exe PROPERTY BUILD_RPATH ${lib_always}) diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt new file mode 100644 index 0000000..b0ede70 --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt @@ -0,0 +1,22 @@ +^CMake Error at .*/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake:[0-9]+ \(file\): + file RPATH_CHANGE could not write new RPATH: + + old-should-not-exist + + to the file: + + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/exe + + The current (RPATH|RUNPATH) is: + + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libAlways(:[^ +]*)? + + which does not contain: + + [^ +]*/Tests/RunCMake/RuntimePath/SymlinkImplicit-build/libLink + + as was expected\.$ diff --git a/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake new file mode 100644 index 0000000..d34742e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake @@ -0,0 +1,2 @@ +file(COPY ${dir}/bin/exe DESTINATION ${dir}) +file(RPATH_CHANGE FILE "${dir}/exe" OLD_RPATH "${dir}/libLink" NEW_RPATH "old-should-not-exist") diff --git a/Tests/RunCMake/RuntimePath/main.c b/Tests/RunCMake/RuntimePath/main.c new file mode 100644 index 0000000..8488f4e --- /dev/null +++ b/Tests/RunCMake/RuntimePath/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f3102ca884496a4a0644dc43afaf80a253191ed8 commit f3102ca884496a4a0644dc43afaf80a253191ed8 Merge: 6cbad49 c3fb650 Author: Brad King AuthorDate: Wed Mar 1 12:40:04 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:36:13 2017 -0500 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d commit c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d Author: Brad King AuthorDate: Wed Mar 1 11:55:51 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 08:35:48 2017 -0500 cmOrderDirectories: Consider symlinks when checking implicit directories When checking whether a directory is "implicit" (e.g. implicit link directory or implicit rpath directory), resolve the real path of both sides of the comparison. Otherwise we will not recognize paths like `/usr/lib32` as implicit when `/usr/lib` is implicit and `lib32` is actually a symlink to `lib`. This can lead to addition of unnecessary entries to the RPATH of a binary, for example. Fixes: #16682 diff --git a/Source/cmOrderDirectories.cxx b/Source/cmOrderDirectories.cxx index d93debe..d48eb53 100644 --- a/Source/cmOrderDirectories.cxx +++ b/Source/cmOrderDirectories.cxx @@ -345,12 +345,17 @@ void cmOrderDirectories::AddLanguageDirectories( void cmOrderDirectories::SetImplicitDirectories( std::set const& implicitDirs) { - this->ImplicitDirectories = implicitDirs; + this->ImplicitDirectories.clear(); + for (std::set::const_iterator i = implicitDirs.begin(); + i != implicitDirs.end(); ++i) { + this->ImplicitDirectories.insert(this->GetRealPath(*i)); + } } bool cmOrderDirectories::IsImplicitDirectory(std::string const& dir) { - return this->ImplicitDirectories.find(dir) != + std::string const& real = this->GetRealPath(dir); + return this->ImplicitDirectories.find(real) != this->ImplicitDirectories.end(); } ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:10:55 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:10:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-736-ga27f743 Message-ID: <20170302141055.AABE5B105F@public.kitware.com> 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 a27f7433686292d5c54d42c394bd620da3b3c2d6 (commit) via 3bf28f5ed057b2fe4d90c601065188055bb052a1 (commit) via 154d8339f77e5cd31466e5a4258c27a8aa31ff1c (commit) via ac77fa35c0250f2f7593fd2fc499b27bf395e5a6 (commit) via 662ad240db50792361aa042c60559c1c48042a6b (commit) via 5adf22bbd23185808dc3295766b25b4aa15e1612 (commit) via 36fa535d922f891deed4333b30ddbf429291ca06 (commit) via 6d7c02db34a3a8ca9cf14fa936b5835014c46739 (commit) via 1cdf7c1be24f87e2854204aa5bc7de4dc22af1a3 (commit) via 110c1bf475e2d1df27189936a1e7b66b48afb5a9 (commit) from 16114ac346e661d7b3bb50dfd09a1a8f361751a4 (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=a27f7433686292d5c54d42c394bd620da3b3c2d6 commit a27f7433686292d5c54d42c394bd620da3b3c2d6 Merge: 16114ac 3bf28f5 Author: Brad King AuthorDate: Thu Mar 2 09:10:51 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:10:51 2017 -0500 Merge topic 'autogen_uic_paths' into next 3bf28f5e Autogen: New short InfoGet functions 154d8339 Autogen: Parse enabled feature configuration only ac77fa35 Autogen: Add missing return on error 662ad240 Autogen: Rename and merge moc related methods 5adf22bb Autogen: Add AUTOUIC_SEARCH_PATHS release notes 36fa535d Autogen: Add AUTOUIC_SEARCH_PATHS documentation 6d7c02db Autogen: Add AUTOUIC_SEARCH_PATHS test 1cdf7c1b Autogen: Add AUTOUIC_SEARCH_PATHS support 110c1bf4 Autogen: Add subDirPrefix function https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3bf28f5ed057b2fe4d90c601065188055bb052a1 commit 3bf28f5ed057b2fe4d90c601065188055bb052a1 Author: Sebastian Holtermann AuthorDate: Mon Feb 27 14:22:07 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:03 2017 -0500 Autogen: New short InfoGet functions diff --git a/Modules/AutogenInfo.cmake.in b/Modules/AutogenInfo.cmake.in index f8ffe91..fcecb6c 100644 --- a/Modules/AutogenInfo.cmake.in +++ b/Modules/AutogenInfo.cmake.in @@ -16,7 +16,7 @@ set(AM_QT_UIC_EXECUTABLE @_qt_uic_executable@) set(AM_QT_RCC_EXECUTABLE @_qt_rcc_executable@) # MOC settings set(AM_MOC_SKIP @_moc_skip@) -set(AM_MOC_COMPILE_DEFINITIONS @_moc_compile_defs@) +set(AM_MOC_DEFINITIONS @_moc_compile_defs@) set(AM_MOC_INCLUDES @_moc_incs@) set(AM_MOC_OPTIONS @_moc_options@) set(AM_MOC_RELAXED_MODE @_moc_relaxed_mode@) diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 5460f73..a45b3d5 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -972,7 +972,7 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( it = configMocDefines.begin(), end = configMocDefines.end(); it != end; ++it) { - infoFile << "set(AM_MOC_COMPILE_DEFINITIONS_" << it->first << " " + infoFile << "set(AM_MOC_DEFINITIONS_" << it->first << " " << it->second << ")\n"; } } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index dfaaa6a..c83f9a9 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -55,20 +55,38 @@ static std::string Quoted(const std::string& text) return res; } -static std::string GetConfigDefinition(cmMakefile* makefile, - const std::string& key, - const std::string& config) +static void InfoGet(cmMakefile* makefile, const char* key, std::string& value) { - std::string keyConf = key; - if (!config.empty()) { - keyConf += "_"; - keyConf += config; + value = makefile->GetSafeDefinition(key); +} + +static void InfoGet(cmMakefile* makefile, const char* key, bool& value) +{ + value = makefile->IsOn(key); +} + +static void InfoGet(cmMakefile* makefile, const char* key, + std::vector& list) +{ + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition(key), list); +} + +static void InfoGet(cmMakefile* makefile, const char* key, + const std::string& config, std::vector& list) +{ + const char* valueConf = CM_NULLPTR; + { + std::string keyConf = key; + if (!config.empty()) { + keyConf += "_"; + keyConf += config; + } + valueConf = makefile->GetDefinition(keyConf); } - const char* valueConf = makefile->GetDefinition(keyConf); - if (valueConf != CM_NULLPTR) { - return valueConf; + if (valueConf == CM_NULLPTR) { + valueConf = makefile->GetSafeDefinition(key); } - return makefile->GetSafeDefinition(key); + cmSystemTools::ExpandListArgument(valueConf, list); } static std::string SettingsFile(const std::string& targetDirectory) @@ -328,59 +346,44 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } // - Target names - this->OriginTargetName = - makefile->GetSafeDefinition("AM_ORIGIN_TARGET_NAME"); - this->AutogenTargetName = makefile->GetSafeDefinition("AM_TARGET_NAME"); + InfoGet(makefile, "AM_TARGET_NAME", this->AutogenTargetName); + InfoGet(makefile, "AM_ORIGIN_TARGET_NAME", this->OriginTargetName); // - Files and directories - this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR"); - this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR"); - this->CurrentSourceDir = - makefile->GetSafeDefinition("AM_CMAKE_CURRENT_SOURCE_DIR"); - this->CurrentBinaryDir = - makefile->GetSafeDefinition("AM_CMAKE_CURRENT_BINARY_DIR"); - - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), - this->Sources); - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), - this->Headers); - this->IncludeProjectDirsBefore = - makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); + InfoGet(makefile, "AM_CMAKE_SOURCE_DIR", this->ProjectSourceDir); + InfoGet(makefile, "AM_CMAKE_BINARY_DIR", this->ProjectBinaryDir); + InfoGet(makefile, "AM_CMAKE_CURRENT_SOURCE_DIR", this->CurrentSourceDir); + InfoGet(makefile, "AM_CMAKE_CURRENT_BINARY_DIR", this->CurrentBinaryDir); + InfoGet(makefile, "AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE", + this->IncludeProjectDirsBefore); + InfoGet(makefile, "AM_SOURCES", this->Sources); + InfoGet(makefile, "AM_HEADERS", this->Headers); // - Qt environment - this->QtMajorVersion = makefile->GetSafeDefinition("AM_QT_VERSION_MAJOR"); - if (this->QtMajorVersion == "") { - this->QtMajorVersion = - makefile->GetSafeDefinition("AM_Qt5Core_VERSION_MAJOR"); + InfoGet(makefile, "AM_QT_VERSION_MAJOR", this->QtMajorVersion); + if (this->QtMajorVersion.empty()) { + InfoGet(makefile, "AM_Qt5Core_VERSION_MAJOR", this->QtMajorVersion); } + InfoGet(makefile, "AM_QT_MOC_EXECUTABLE", this->MocExecutable); + InfoGet(makefile, "AM_QT_UIC_EXECUTABLE", this->UicExecutable); + InfoGet(makefile, "AM_QT_RCC_EXECUTABLE", this->RccExecutable); // Check Qt version if ((this->QtMajorVersion != "4") && (this->QtMajorVersion != "5")) { this->LogError("AutoGen: Error: Unsupported Qt version: " + Quoted(this->QtMajorVersion)); return false; } - // Qt executables - this->MocExecutable = makefile->GetSafeDefinition("AM_QT_MOC_EXECUTABLE"); - this->UicExecutable = makefile->GetSafeDefinition("AM_QT_UIC_EXECUTABLE"); - this->RccExecutable = makefile->GetSafeDefinition("AM_QT_RCC_EXECUTABLE"); // - Moc if (this->MocEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_SKIP"), this->MocSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), - this->MocDefinitions); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), - this->MocIncludePaths); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); + InfoGet(makefile, "AM_MOC_SKIP", this->MocSkipList); + InfoGet(makefile, "AM_MOC_DEFINITIONS", config, this->MocDefinitions); + InfoGet(makefile, "AM_MOC_INCLUDES", config, this->MocIncludePaths); + InfoGet(makefile, "AM_MOC_OPTIONS", this->MocOptions); + InfoGet(makefile, "AM_MOC_RELAXED_MODE", this->MocRelaxedMode); { std::vector mocDependFilters; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), - mocDependFilters); + InfoGet(makefile, "AM_MOC_DEPEND_FILTERS", mocDependFilters); // Insert Q_PLUGIN_METADATA dependency filter if (this->QtMajorVersion != "4") { this->MocDependFilterPush("Q_PLUGIN_METADATA", @@ -403,24 +406,18 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( return false; } } - - this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); } // - Uic if (this->UicEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SKIP"), this->UicSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), - this->UicTargetOptions); + InfoGet(makefile, "AM_UIC_SKIP", this->UicSkipList); + InfoGet(makefile, "AM_UIC_SEARCH_PATHS", this->UicSearchPaths); + InfoGet(makefile, "AM_UIC_TARGET_OPTIONS", config, this->UicTargetOptions); { std::vector uicFilesVec; std::vector uicOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); + InfoGet(makefile, "AM_UIC_OPTIONS_FILES", uicFilesVec); + InfoGet(makefile, "AM_UIC_OPTIONS_OPTIONS", uicOptionsVec); // Compare list sizes if (uicFilesVec.size() == uicOptionsVec.size()) { for (std::vector::iterator @@ -437,22 +434,16 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( return false; } } - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), - this->UicSearchPaths); } // - Rcc if (this->RccEnabled()) { - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); + InfoGet(makefile, "AM_RCC_SOURCES", this->RccSources); { std::vector rccFilesVec; std::vector rccOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); + InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); + InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); if (rccFilesVec.size() != rccOptionsVec.size()) { this->LogError( "AutoGen: Error: RCC files/options lists size missmatch in: " + @@ -468,8 +459,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } { std::vector rccInputLists; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); + InfoGet(makefile, "AM_RCC_INPUTS", rccInputLists); // qrc files in the end of the list may have been empty if (rccInputLists.size() < this->RccSources.size()) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=154d8339f77e5cd31466e5a4258c27a8aa31ff1c commit 154d8339f77e5cd31466e5a4258c27a8aa31ff1c Author: Sebastian Holtermann AuthorDate: Mon Feb 27 13:48:08 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:03 2017 -0500 Autogen: Parse enabled feature configuration only diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 2fa5359..dfaaa6a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -332,7 +332,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( makefile->GetSafeDefinition("AM_ORIGIN_TARGET_NAME"); this->AutogenTargetName = makefile->GetSafeDefinition("AM_TARGET_NAME"); - // - Directories + // - Files and directories this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR"); this->ProjectBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_BINARY_DIR"); this->CurrentSourceDir = @@ -340,6 +340,13 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( this->CurrentBinaryDir = makefile->GetSafeDefinition("AM_CMAKE_CURRENT_BINARY_DIR"); + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), + this->Sources); + cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), + this->Headers); + this->IncludeProjectDirsBefore = + makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); + // - Qt environment this->QtMajorVersion = makefile->GetSafeDefinition("AM_QT_VERSION_MAJOR"); if (this->QtMajorVersion == "") { @@ -352,138 +359,140 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( Quoted(this->QtMajorVersion)); return false; } - + // Qt executables this->MocExecutable = makefile->GetSafeDefinition("AM_QT_MOC_EXECUTABLE"); this->UicExecutable = makefile->GetSafeDefinition("AM_QT_UIC_EXECUTABLE"); this->RccExecutable = makefile->GetSafeDefinition("AM_QT_RCC_EXECUTABLE"); - // - File Lists - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SOURCES"), - this->Sources); - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_HEADERS"), - this->Headers); - // - Moc - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_MOC_SKIP"), - this->MocSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), - this->MocDefinitions); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), - this->MocIncludePaths); - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); - { - std::vector mocDependFilters; + if (this->MocEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), mocDependFilters); - // Insert Q_PLUGIN_METADATA dependency filter - if (this->QtMajorVersion != "4") { - this->MocDependFilterPush("Q_PLUGIN_METADATA", - "[\n][ \t]*Q_PLUGIN_METADATA[ \t]*\\(" - "[^\\)]*FILE[ \t]*\"([^\"]+)\""); - } - // Insert user defined dependency filters - if ((mocDependFilters.size() % 2) == 0) { - for (std::vector::const_iterator dit = - mocDependFilters.begin(); - dit != mocDependFilters.end(); dit += 2) { - if (!this->MocDependFilterPush(*dit, *(dit + 1))) { - return false; + makefile->GetSafeDefinition("AM_MOC_SKIP"), this->MocSkipList); + cmSystemTools::ExpandListArgument( + GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), + this->MocDefinitions); + cmSystemTools::ExpandListArgument( + GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config), + this->MocIncludePaths); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_MOC_OPTIONS"), this->MocOptions); + { + std::vector mocDependFilters; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_MOC_DEPEND_FILTERS"), + mocDependFilters); + // Insert Q_PLUGIN_METADATA dependency filter + if (this->QtMajorVersion != "4") { + this->MocDependFilterPush("Q_PLUGIN_METADATA", + "[\n][ \t]*Q_PLUGIN_METADATA[ \t]*\\(" + "[^\\)]*FILE[ \t]*\"([^\"]+)\""); + } + // Insert user defined dependency filters + if ((mocDependFilters.size() % 2) == 0) { + for (std::vector::const_iterator dit = + mocDependFilters.begin(); + dit != mocDependFilters.end(); dit += 2) { + if (!this->MocDependFilterPush(*dit, *(dit + 1))) { + return false; + } } + } else { + this->LogError( + "AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " + "a multiple of 2"); + return false; } - } else { - this->LogError("AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " - "a multiple of 2"); - return false; } + + this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); } // - Uic - cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_UIC_SKIP"), - this->UicSkipList); - cmSystemTools::ExpandListArgument( - GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), - this->UicTargetOptions); - { - std::vector uicFilesVec; - std::vector uicOptionsVec; + if (this->UicEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); + makefile->GetSafeDefinition("AM_UIC_SKIP"), this->UicSkipList); cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); - // Compare list sizes - if (uicFilesVec.size() == uicOptionsVec.size()) { - for (std::vector::iterator fileIt = uicFilesVec.begin(), - optionIt = uicOptionsVec.begin(); - fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->UicOptions[*fileIt] = *optionIt; + GetConfigDefinition(makefile, "AM_UIC_TARGET_OPTIONS", config), + this->UicTargetOptions); + { + std::vector uicFilesVec; + std::vector uicOptionsVec; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); + // Compare list sizes + if (uicFilesVec.size() == uicOptionsVec.size()) { + for (std::vector::iterator + fileIt = uicFilesVec.begin(), + optionIt = uicOptionsVec.begin(); + fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->UicOptions[*fileIt] = *optionIt; + } + } else { + this->LogError( + "AutoGen: Error: Uic files/options lists size missmatch in: " + + filename); + return false; } - } else { - this->LogError( - "AutoGen: Error: Uic files/options lists size missmatch in: " + - filename); - return false; } + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), + this->UicSearchPaths); } - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), this->UicSearchPaths); // - Rcc - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); - { - std::vector rccFilesVec; - std::vector rccOptionsVec; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); + if (this->RccEnabled()) { cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); - if (rccFilesVec.size() != rccOptionsVec.size()) { - this->LogError( - "AutoGen: Error: RCC files/options lists size missmatch in: " + - filename); - return false; - } - for (std::vector::iterator fileIt = rccFilesVec.begin(), - optionIt = rccOptionsVec.begin(); - fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->RccOptions[*fileIt] = *optionIt; + makefile->GetSafeDefinition("AM_RCC_SOURCES"), this->RccSources); + { + std::vector rccFilesVec; + std::vector rccOptionsVec; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_OPTIONS_FILES"), rccFilesVec); + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_OPTIONS_OPTIONS"), rccOptionsVec); + if (rccFilesVec.size() != rccOptionsVec.size()) { + this->LogError( + "AutoGen: Error: RCC files/options lists size missmatch in: " + + filename); + return false; + } + for (std::vector::iterator fileIt = rccFilesVec.begin(), + optionIt = rccOptionsVec.begin(); + fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->RccOptions[*fileIt] = *optionIt; + } } - } - { - std::vector rccInputLists; - cmSystemTools::ExpandListArgument( - makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); + { + std::vector rccInputLists; + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_RCC_INPUTS"), rccInputLists); - // qrc files in the end of the list may have been empty - if (rccInputLists.size() < this->RccSources.size()) { - rccInputLists.resize(this->RccSources.size()); - } - if (this->RccSources.size() != rccInputLists.size()) { - this->LogError( - "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + - filename); - return false; - } - for (std::vector::iterator fileIt = this->RccSources.begin(), - inputIt = rccInputLists.begin(); - fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); - std::vector rccInputFiles; - cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); - this->RccInputs[*fileIt] = rccInputFiles; + // qrc files in the end of the list may have been empty + if (rccInputLists.size() < this->RccSources.size()) { + rccInputLists.resize(this->RccSources.size()); + } + if (this->RccSources.size() != rccInputLists.size()) { + this->LogError( + "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + + filename); + return false; + } + for (std::vector::iterator + fileIt = this->RccSources.begin(), + inputIt = rccInputLists.begin(); + fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { + cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); + std::vector rccInputFiles; + cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); + this->RccInputs[*fileIt] = rccInputFiles; + } } } - // - Flags - this->IncludeProjectDirsBefore = - makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE"); - this->MocRelaxedMode = makefile->IsOn("AM_MOC_RELAXED_MODE"); - return true; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac77fa35c0250f2f7593fd2fc499b27bf395e5a6 commit ac77fa35c0250f2f7593fd2fc499b27bf395e5a6 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 12:21:31 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:02 2017 -0500 Autogen: Add missing return on error diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index c4ae318..2fa5359 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -396,6 +396,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } else { this->LogError("AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " "a multiple of 2"); + return false; } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=662ad240db50792361aa042c60559c1c48042a6b commit 662ad240db50792361aa042c60559c1c48042a6b Author: Sebastian Holtermann AuthorDate: Fri Feb 24 12:11:55 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:02 2017 -0500 Autogen: Rename and merge moc related methods diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index d9e95ff..c4ae318 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -740,6 +740,7 @@ void cmQtAutoGenerators::MocFindDepends( // regular expression check if (contentText.find(filter.key) != std::string::npos) { // Run regular expression check loop + const std::string sourcePath = subDirPrefix(absFilename); const char* contentChars = contentText.c_str(); while (filter.regExp.find(contentChars)) { // Evaluate match @@ -747,7 +748,7 @@ void cmQtAutoGenerators::MocFindDepends( if (!match.empty()) { // Find the dependency file std::string incFile; - if (this->FindIncludedFile(incFile, absFilename, match)) { + if (this->MocFindIncludedFile(incFile, sourcePath, match)) { mocDepends[absFilename].insert(incFile); if (this->Verbose) { this->LogInfo("AutoMoc: Found dependency:\n " + @@ -886,7 +887,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( // Remove the moc_ part const std::string incRealBasename = incBasename.substr(4); const std::string headerToMoc = - this->FindMocHeader(scannedFileAbsPath, incRealBasename, incSubDir); + this->MocFindHeader(scannedFileAbsPath, incSubDir + incRealBasename); if (!headerToMoc.empty()) { // Register moc job mocsIncluded[headerToMoc] = incString; @@ -919,7 +920,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( } else { // In relaxed mode try to find a header instead but issue a warning const std::string headerToMoc = - this->FindMocHeader(scannedFileAbsPath, incBasename, incSubDir); + this->MocFindHeader(scannedFileAbsPath, incSubDir + incBasename); if (!headerToMoc.empty()) { // This is for KDE4 compatibility: fileToMoc = headerToMoc; @@ -1782,39 +1783,22 @@ bool cmQtAutoGenerators::FindHeader(std::string& header, return false; } -bool cmQtAutoGenerators::FindHeaderGlobal( - std::string& header, const std::string& testBasePath) const -{ - for (std::vector::const_iterator iit = - this->MocIncludePaths.begin(); - iit != this->MocIncludePaths.end(); ++iit) { - const std::string fullPath = ((*iit) + '/' + testBasePath); - if (FindHeader(header, fullPath)) { - return true; - } - } - return false; -} - -std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath, - const std::string& baseName, - const std::string& subDir) const +std::string cmQtAutoGenerators::MocFindHeader( + const std::string& sourcePath, const std::string& includeBase) const { std::string header; - do { - if (!subDir.empty()) { - if (this->FindHeader(header, basePath + subDir + baseName)) { + // Search in vicinity of the source + if (!this->FindHeader(header, sourcePath + includeBase)) { + // Search in include directories + for (std::vector::const_iterator iit = + this->MocIncludePaths.begin(); + iit != this->MocIncludePaths.end(); ++iit) { + const std::string fullPath = ((*iit) + '/' + includeBase); + if (FindHeader(header, fullPath)) { break; } } - if (this->FindHeader(header, basePath + baseName)) { - break; - } - // Try include directories - if (this->FindHeaderGlobal(header, subDir + baseName)) { - break; - } - } while (false); + } // Sanitize if (!header.empty()) { header = cmsys::SystemTools::GetRealPath(header); @@ -1822,14 +1806,14 @@ std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath, return header; } -bool cmQtAutoGenerators::FindIncludedFile( - std::string& absFile, const std::string& sourceFile, +bool cmQtAutoGenerators::MocFindIncludedFile( + std::string& absFile, const std::string& sourcePath, const std::string& includeString) const { bool success = false; // Search in vicinity of the source { - std::string testPath = subDirPrefix(sourceFile); + std::string testPath = sourcePath; testPath += includeString; if (cmsys::SystemTools::FileExists(testPath.c_str())) { absFile = cmsys::SystemTools::GetRealPath(testPath); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 46c86ff..3bff2b2 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -144,13 +144,11 @@ private: bool MakeParentDirectory(const std::string& filename) const; bool FindHeader(std::string& header, const std::string& testBasePath) const; - bool FindHeaderGlobal(std::string& header, - const std::string& testBasePath) const; - std::string FindMocHeader(const std::string& basePath, - const std::string& baseName, - const std::string& subDir) const; - bool FindIncludedFile(std::string& absFile, const std::string& sourceFile, - const std::string& includeString) const; + + std::string MocFindHeader(const std::string& sourcePath, + const std::string& includeBase) const; + bool MocFindIncludedFile(std::string& absFile, const std::string& sourceFile, + const std::string& includeString) const; // - Target names std::string OriginTargetName; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5adf22bbd23185808dc3295766b25b4aa15e1612 commit 5adf22bbd23185808dc3295766b25b4aa15e1612 Author: Sebastian Holtermann AuthorDate: Sat Feb 25 14:37:09 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:02 2017 -0500 Autogen: Add AUTOUIC_SEARCH_PATHS release notes diff --git a/Help/release/dev/Autogen_uic_paths.rst b/Help/release/dev/Autogen_uic_paths.rst new file mode 100644 index 0000000..0893194 --- /dev/null +++ b/Help/release/dev/Autogen_uic_paths.rst @@ -0,0 +1,10 @@ +AutoGen uic paths +----------------- + +* Variable :variable:`CMAKE_AUTOUIC_SEARCH_PATHS` was introduced to + allow :variable:`CMAKE_AUTOUIC` to search for ``foo.ui`` in more + places than the vicinity of the ``ui_foo.h`` including file. + +* The new target property :prop_tgt:`AUTOUIC_SEARCH_PATHS` was introduced to + allow :prop_tgt:`AUTOUIC` to search for ``foo.ui`` in more + places than the vicinity of the ``ui_foo.h`` including file. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=36fa535d922f891deed4333b30ddbf429291ca06 commit 36fa535d922f891deed4333b30ddbf429291ca06 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 23:13:39 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:02 2017 -0500 Autogen: Add AUTOUIC_SEARCH_PATHS documentation diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index f31b0f8..3db2e41 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -121,6 +121,7 @@ Properties on Targets /prop_tgt/AUTOMOC /prop_tgt/AUTOUIC /prop_tgt/AUTOUIC_OPTIONS + /prop_tgt/AUTOUIC_SEARCH_PATHS /prop_tgt/AUTORCC /prop_tgt/AUTORCC_OPTIONS /prop_tgt/BINARY_DIR diff --git a/Help/manual/cmake-qt.7.rst b/Help/manual/cmake-qt.7.rst index 3b9931e..3b95b05 100644 --- a/Help/manual/cmake-qt.7.rst +++ b/Help/manual/cmake-qt.7.rst @@ -104,7 +104,9 @@ be run, and to create rules to execute ``uic`` at the appropriate time. If a preprocessor ``#include`` directive is found which matches ``ui_.h``, and a ``.ui`` file exists, then ``uic`` will -be executed to generate the appropriate file. +be executed to generate the appropriate file. The ``.ui`` file is +searched for first in the vicinity of including file and afterwards in the +optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target. The generated generated ``ui_*.h`` files are placed in the ``/_autogen/include`` directory which is diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 259d87b..73fd73c 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -263,6 +263,7 @@ Variables that Control the Build /variable/CMAKE_AUTORCC_OPTIONS /variable/CMAKE_AUTOUIC /variable/CMAKE_AUTOUIC_OPTIONS + /variable/CMAKE_AUTOUIC_SEARCH_PATHS /variable/CMAKE_BUILD_RPATH /variable/CMAKE_BUILD_WITH_INSTALL_NAME_DIR /variable/CMAKE_BUILD_WITH_INSTALL_RPATH diff --git a/Help/prop_tgt/AUTOUIC.rst b/Help/prop_tgt/AUTOUIC.rst index fbf24c3..91d95e5 100644 --- a/Help/prop_tgt/AUTOUIC.rst +++ b/Help/prop_tgt/AUTOUIC.rst @@ -10,8 +10,13 @@ Qt4 and Qt5 are supported. When this property is ``ON``, CMake will scan the source files at build time and invoke ``uic`` accordingly. If an ``#include`` statement like -``#include "ui_foo.h"`` is found in ``foo.cpp``, a ``foo.ui`` file is -expected next to ``foo.cpp``, and ``uic`` is run on the ``foo.ui`` file. +``#include "ui_foo.h"`` is found in ``source.cpp``, a ``foo.ui`` file is +searched for first in the vicinity of ``source.cpp`` and afterwards in the +optional :prop_tgt:`AUTOUIC_SEARCH_PATHS` of the target. +``uic`` is run on the ``foo.ui`` file to generate ``ui_foo.h`` in the directory +``/_autogen/include``, +which is added to the target's :prop_tgt:`INCLUDE_DIRECTORIES` automatically. + This property is initialized by the value of the :variable:`CMAKE_AUTOUIC` variable if it is set when a target is created. diff --git a/Help/prop_tgt/AUTOUIC_OPTIONS.rst b/Help/prop_tgt/AUTOUIC_OPTIONS.rst index dc3bee5..9fb042e 100644 --- a/Help/prop_tgt/AUTOUIC_OPTIONS.rst +++ b/Help/prop_tgt/AUTOUIC_OPTIONS.rst @@ -1,7 +1,7 @@ AUTOUIC_OPTIONS --------------- -Additional options for uic when using :prop_tgt:`AUTOUIC` +Additional options for ``uic`` when using :prop_tgt:`AUTOUIC` This property holds additional command line options which will be used when ``uic`` is executed during the build via :prop_tgt:`AUTOUIC`, i.e. it is diff --git a/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst b/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst new file mode 100644 index 0000000..96d9f89 --- /dev/null +++ b/Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst @@ -0,0 +1,12 @@ +AUTOUIC_SEARCH_PATHS +-------------------- + +Search path list used by :prop_tgt:`AUTOUIC` to find included +``.ui`` files. + +This property is initialized by the value of the +:variable:`CMAKE_AUTOUIC_SEARCH_PATHS` variable if it is set +when a target is created. Otherwise it is empty. + +See the :manual:`cmake-qt(7)` manual for more information on using CMake +with Qt. diff --git a/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst b/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst new file mode 100644 index 0000000..aa132bf --- /dev/null +++ b/Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst @@ -0,0 +1,11 @@ +CMAKE_AUTOUIC_SEARCH_PATHS +-------------------------- + +Search path list used by :variable:`CMAKE_AUTOUIC` to find included +``.ui`` files. + +This variable is used to initialize the :prop_tgt:`AUTOUIC_SEARCH_PATHS` +property on all the targets. See that target property for additional +information. + +By default it is empty. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d7c02db34a3a8ca9cf14fa936b5835014c46739 commit 6d7c02db34a3a8ca9cf14fa936b5835014c46739 Author: Sebastian Holtermann AuthorDate: Thu Feb 23 21:36:10 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:01 2017 -0500 Autogen: Add AUTOUIC_SEARCH_PATHS test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index dc631c6..4960472 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -287,5 +287,9 @@ if (NOT QT_TEST_VERSION STREQUAL 4) endif() # -- Test +# Tests various .ui include directories +add_subdirectory(uicInclude) + +# -- Test # Complex test case add_subdirectory(complex) diff --git a/Tests/QtAutogen/uicInclude/CMakeLists.txt b/Tests/QtAutogen/uicInclude/CMakeLists.txt new file mode 100644 index 0000000..f62ebb0 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/CMakeLists.txt @@ -0,0 +1,8 @@ +# Test moc include patterns + +set(CMAKE_AUTOUIC_SEARCH_PATHS "dirA") + +add_executable(uicInclude main.cpp) +target_link_libraries(uicInclude ${QT_LIBRARIES}) +set_target_properties(uicInclude PROPERTIES AUTOUIC ON) +set_property(TARGET uicInclude APPEND PROPERTY AUTOUIC_SEARCH_PATHS "dirB") diff --git a/Tests/QtAutogen/uicInclude/PageC.ui b/Tests/QtAutogen/uicInclude/PageC.ui new file mode 100644 index 0000000..bb2fb5e --- /dev/null +++ b/Tests/QtAutogen/uicInclude/PageC.ui @@ -0,0 +1,24 @@ + + + PageC + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/dirA/PageA.ui b/Tests/QtAutogen/uicInclude/dirA/PageA.ui new file mode 100644 index 0000000..dd81802 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/dirA/PageA.ui @@ -0,0 +1,24 @@ + + + PageA + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui b/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui new file mode 100644 index 0000000..fa6dfa6 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/dirB/sub/PageB.ui @@ -0,0 +1,24 @@ + + + PageB + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + diff --git a/Tests/QtAutogen/uicInclude/main.cpp b/Tests/QtAutogen/uicInclude/main.cpp new file mode 100644 index 0000000..4ca66a7 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/main.cpp @@ -0,0 +1,10 @@ + +#include "main.hpp" + +int main(int argv, char** args) +{ + return 0; +} + +#include "sub/ui_PageB.h" +#include "ui_PageC.h" diff --git a/Tests/QtAutogen/uicInclude/main.hpp b/Tests/QtAutogen/uicInclude/main.hpp new file mode 100644 index 0000000..58ddc26 --- /dev/null +++ b/Tests/QtAutogen/uicInclude/main.hpp @@ -0,0 +1,6 @@ +#ifndef MAIN_HPP +#define MAIN_HPP + +#include "ui_PageA.h" + +#endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1cdf7c1be24f87e2854204aa5bc7de4dc22af1a3 commit 1cdf7c1be24f87e2854204aa5bc7de4dc22af1a3 Author: Sebastian Holtermann AuthorDate: Thu Feb 23 19:35:48 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:01 2017 -0500 Autogen: Add AUTOUIC_SEARCH_PATHS support Closes #15227 diff --git a/Modules/AutogenInfo.cmake.in b/Modules/AutogenInfo.cmake.in index fc5024f..f8ffe91 100644 --- a/Modules/AutogenInfo.cmake.in +++ b/Modules/AutogenInfo.cmake.in @@ -26,6 +26,7 @@ set(AM_UIC_SKIP @_uic_skip@) set(AM_UIC_TARGET_OPTIONS @_uic_target_options@) set(AM_UIC_OPTIONS_FILES @_qt_uic_options_files@) set(AM_UIC_OPTIONS_OPTIONS @_qt_uic_options_options@) +set(AM_UIC_SEARCH_PATHS @_uic_search_paths@) # RCC settings set(AM_RCC_SOURCES @_rcc_files@ ) set(AM_RCC_INPUTS @_rcc_inputs@) diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index de18265..5460f73 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -306,6 +306,19 @@ static void UicSetupAutoTarget( AddDefinitionEscaped(makefile, "_uic_skip", uicSkipList); + // Uic search paths + { + std::vector uicSearchPaths; + cmSystemTools::ExpandListArgument( + GetSafeProperty(target, "AUTOUIC_SEARCH_PATHS"), uicSearchPaths); + const std::string srcDir = makefile->GetCurrentSourceDirectory(); + for (std::vector::iterator it = uicSearchPaths.begin(); + it != uicSearchPaths.end(); ++it) { + *it = cmSystemTools::CollapseFullPath(*it, srcDir); + } + AddDefinitionEscaped(makefile, "_uic_search_paths", uicSearchPaths); + } + // Uic target options { std::string _uic_opts; diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index ea7fe0f..d9e95ff 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -412,19 +412,23 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( makefile->GetSafeDefinition("AM_UIC_OPTIONS_FILES"), uicFilesVec); cmSystemTools::ExpandListArgument( makefile->GetSafeDefinition("AM_UIC_OPTIONS_OPTIONS"), uicOptionsVec); - if (uicFilesVec.size() != uicOptionsVec.size()) { + // Compare list sizes + if (uicFilesVec.size() == uicOptionsVec.size()) { + for (std::vector::iterator fileIt = uicFilesVec.begin(), + optionIt = uicOptionsVec.begin(); + fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { + cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + this->UicOptions[*fileIt] = *optionIt; + } + } else { this->LogError( "AutoGen: Error: Uic files/options lists size missmatch in: " + filename); return false; } - for (std::vector::iterator fileIt = uicFilesVec.begin(), - optionIt = uicOptionsVec.begin(); - fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); - this->UicOptions[*fileIt] = *optionIt; - } } + cmSystemTools::ExpandListArgument( + makefile->GetSafeDefinition("AM_UIC_SEARCH_PATHS"), this->UicSearchPaths); // - Rcc cmSystemTools::ExpandListArgument( @@ -831,12 +835,7 @@ void cmQtAutoGenerators::UicParseContent( const char* contentChars = contentText.c_str(); if (strstr(contentChars, "ui_") != CM_NULLPTR) { while (this->RegExpUicInclude.find(contentChars)) { - const std::string currentUi = this->RegExpUicInclude.match(1); - const std::string basename = - cmsys::SystemTools::GetFilenameWithoutLastExtension(currentUi); - // basename should be the part of the ui filename used for - // finding the correct header, so we need to remove the ui_ part - uisIncluded[absFilename].push_back(basename.substr(3)); + uisIncluded[absFilename].push_back(this->RegExpUicInclude.match(1)); contentChars += this->RegExpUicInclude.end(); } } @@ -1325,6 +1324,36 @@ bool cmQtAutoGenerators::MocGenerateFile( return mocGenerated; } +bool cmQtAutoGenerators::UicFindIncludedFile(std::string& absFile, + const std::string& sourceFile, + const std::string& includeString) +{ + bool success = false; + // Search in vicinity of the source + { + std::string testPath = subDirPrefix(sourceFile); + testPath += includeString; + if (cmsys::SystemTools::FileExists(testPath.c_str())) { + absFile = cmsys::SystemTools::GetRealPath(testPath); + success = true; + } + } + // Search in include directories + if (!success) { + for (std::vector::const_iterator iit = + this->UicSearchPaths.begin(); + iit != this->UicSearchPaths.end(); ++iit) { + const std::string fullPath = ((*iit) + '/' + includeString); + if (cmsys::SystemTools::FileExists(fullPath.c_str())) { + absFile = cmsys::SystemTools::GetRealPath(fullPath); + success = true; + break; + } + } + } + return success; +} + bool cmQtAutoGenerators::UicGenerateAll( const std::map >& uisIncluded) { @@ -1333,46 +1362,57 @@ bool cmQtAutoGenerators::UicGenerateAll( } // single map with input / output names - std::map > uiGenMap; - std::map testMap; - for (std::map >::const_iterator it = - uisIncluded.begin(); - it != uisIncluded.end(); ++it) { - // source file path - std::string sourcePath = cmsys::SystemTools::GetFilenamePath(it->first); - sourcePath += '/'; - // insert new map for source file an use new reference - uiGenMap[it->first] = std::map(); - std::map& sourceMap = uiGenMap[it->first]; - for (std::vector::const_iterator sit = it->second.begin(); - sit != it->second.end(); ++sit) { - const std::string& uiFileName = *sit; - const std::string uiInputFile = sourcePath + uiFileName + ".ui"; - const std::string uiOutputFile = "ui_" + uiFileName + ".h"; - sourceMap[uiInputFile] = uiOutputFile; - testMap[uiInputFile] = uiOutputFile; - } - } - - // look for name collisions + std::map > sourceGenMap; { - std::multimap collisions; - if (this->NameCollisionTest(testMap, collisions)) { - std::ostringstream ost; - ost << "AutoUic: Error: The same ui_NAME.h file will be generated " - "from different sources.\n" - "To avoid this error rename the source files.\n"; - this->LogErrorNameCollision(ost.str(), collisions); - return false; + // Collision lookup map + std::map testMap; + // Compile maps + for (std::map >::const_iterator sit = + uisIncluded.begin(); + sit != uisIncluded.end(); ++sit) { + const std::string& source(sit->first); + const std::vector& sourceIncs(sit->second); + // insert new source/destination map + std::map& uiGenMap = sourceGenMap[source]; + for (std::vector::const_iterator uit = sourceIncs.begin(); + uit != sourceIncs.end(); ++uit) { + // Remove ui_ from the begin filename by substr() + const std::string uiBasePath = subDirPrefix(*uit); + const std::string uiBaseName = + cmsys::SystemTools::GetFilenameWithoutLastExtension(*uit).substr(3); + const std::string searchFileName = uiBasePath + uiBaseName + ".ui"; + std::string uiInputFile; + if (UicFindIncludedFile(uiInputFile, source, searchFileName)) { + std::string uiOutputFile = uiBasePath + "ui_" + uiBaseName + ".h"; + cmSystemTools::ReplaceString(uiOutputFile, "..", "__"); + uiGenMap[uiInputFile] = uiOutputFile; + testMap[uiInputFile] = uiOutputFile; + } else { + this->LogError("AutoUic: Error: " + Quoted(sit->first) + + "\nCould not find " + Quoted(searchFileName)); + return false; + } + } + } + // look for name collisions + { + std::multimap collisions; + if (this->NameCollisionTest(testMap, collisions)) { + std::ostringstream ost; + ost << "AutoUic: Error: The same ui_NAME.h file will be generated " + "from different sources.\n" + "To avoid this error rename the source files.\n"; + this->LogErrorNameCollision(ost.str(), collisions); + return false; + } } } - testMap.clear(); // generate ui files for (std::map >::const_iterator it = - uiGenMap.begin(); - it != uiGenMap.end(); ++it) { + sourceGenMap.begin(); + it != sourceGenMap.end(); ++it) { for (std::map::const_iterator sit = it->second.begin(); sit != it->second.end(); ++sit) { @@ -1415,15 +1455,15 @@ bool cmQtAutoGenerators::UicGenerateFile(const std::string& realName, std::vector cmd; cmd.push_back(this->UicExecutable); { - std::vector opts = this->UicTargetOptions; + std::vector allOpts = this->UicTargetOptions; std::map::const_iterator optionIt = this->UicOptions.find(uiInputFile); if (optionIt != this->UicOptions.end()) { std::vector fileOpts; cmSystemTools::ExpandListArgument(optionIt->second, fileOpts); - UicMergeOptions(opts, fileOpts, (this->QtMajorVersion == "5")); + UicMergeOptions(allOpts, fileOpts, (this->QtMajorVersion == "5")); } - cmd.insert(cmd.end(), opts.begin(), opts.end()); + cmd.insert(cmd.end(), allOpts.begin(), allOpts.end()); } cmd.push_back("-o"); cmd.push_back(uicFileAbs); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index f9b9083..46c86ff 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -111,6 +111,8 @@ private: const std::map >& mocDepends); // - Uic file generation + bool UicFindIncludedFile(std::string& absFile, const std::string& sourceFile, + const std::string& includeString); bool UicGenerateAll( const std::map >& includedUis); bool UicGenerateFile(const std::string& realName, @@ -184,6 +186,7 @@ private: std::vector UicSkipList; std::vector UicTargetOptions; std::map UicOptions; + std::vector UicSearchPaths; // - Rcc std::vector RccSources; std::map RccOptions; diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 0f3d91b..c360c19 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -248,6 +248,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, this->SetPropertyDefault("AUTOMOC_DEPEND_FILTERS", CM_NULLPTR); this->SetPropertyDefault("AUTOMOC_MOC_OPTIONS", CM_NULLPTR); this->SetPropertyDefault("AUTOUIC_OPTIONS", CM_NULLPTR); + this->SetPropertyDefault("AUTOUIC_SEARCH_PATHS", CM_NULLPTR); this->SetPropertyDefault("AUTORCC_OPTIONS", CM_NULLPTR); this->SetPropertyDefault("LINK_DEPENDS_NO_SHARED", CM_NULLPTR); this->SetPropertyDefault("LINK_INTERFACE_LIBRARIES", CM_NULLPTR); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=110c1bf475e2d1df27189936a1e7b66b48afb5a9 commit 110c1bf475e2d1df27189936a1e7b66b48afb5a9 Author: Sebastian Holtermann AuthorDate: Fri Feb 24 11:41:50 2017 +0100 Commit: Brad King CommitDate: Thu Mar 2 09:10:01 2017 -0500 Autogen: Add subDirPrefix function diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 902e872..ea7fe0f 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -94,6 +94,15 @@ static void SettingWrite(std::ostream& ostr, const char* key, } } +std::string subDirPrefix(const std::string& fileName) +{ + std::string res(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!res.empty()) { + res += '/'; + } + return res; +} + static bool FileNameIsUnique(const std::string& filePath, const std::map& fileMap) { @@ -845,8 +854,7 @@ bool cmQtAutoGenerators::MocParseSourceContent( this->LogInfo("AutoMoc: Checking " + absFilename); } - const std::string scannedFileAbsPath = - cmsys::SystemTools::GetFilenamePath(absFilename) + '/'; + const std::string scannedFileAbsPath = subDirPrefix(absFilename); const std::string scannedFileBasename = cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename); @@ -865,13 +873,9 @@ bool cmQtAutoGenerators::MocParseSourceContent( while (this->RegExpMocInclude.find(contentChars)) { const std::string incString = this->RegExpMocInclude.match(1); // Basename of the moc include + const std::string incSubDir(subDirPrefix(incString)); const std::string incBasename = cmsys::SystemTools::GetFilenameWithoutLastExtension(incString); - std::string incSubDir; - if (incString.find_first_of('/') != std::string::npos) { - incSubDir = cmsys::SystemTools::GetFilenamePath(incString); - incSubDir += '/'; - } // If the moc include is of the moc_foo.cpp style we expect // the Q_OBJECT class declaration in a header file. @@ -1055,8 +1059,7 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile( { std::string basepaths[2]; { - std::string bpath = cmsys::SystemTools::GetFilenamePath(absFilename); - bpath += '/'; + std::string bpath = subDirPrefix(absFilename); bpath += cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename); // search for default header files and private header files basepaths[0] = bpath; @@ -1234,14 +1237,14 @@ bool cmQtAutoGenerators::MocGenerateAll( */ bool cmQtAutoGenerators::MocGenerateFile( const std::string& sourceFile, const std::string& mocFileName, - const std::string& subDirPrefix, + const std::string& subDir, const std::map >& mocDepends) { bool mocGenerated = false; bool generateMoc = this->GenerateAllMoc; const std::string mocFileRel = - this->AutogenBuildSubDir + subDirPrefix + mocFileName; + this->AutogenBuildSubDir + subDir + mocFileName; const std::string mocFileAbs = this->CurrentBinaryDir + mocFileRel; if (!generateMoc) { @@ -1786,8 +1789,7 @@ bool cmQtAutoGenerators::FindIncludedFile( bool success = false; // Search in vicinity of the source { - std::string testPath = cmSystemTools::GetFilenamePath(sourceFile); - testPath += '/'; + std::string testPath = subDirPrefix(sourceFile); testPath += includeString; if (cmsys::SystemTools::FileExists(testPath.c_str())) { absFile = cmsys::SystemTools::GetRealPath(testPath); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index b83edf7..f9b9083 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -107,7 +107,7 @@ private: const std::map >& mocDepends); bool MocGenerateFile( const std::string& sourceFile, const std::string& mocFileName, - const std::string& subDirPrefix, + const std::string& subDir, const std::map >& mocDepends); // - Uic file generation ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:25:56 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:25:56 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-366-g2187818 Message-ID: <20170302142557.891A6FA59B@public.kitware.com> 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 2187818706241201b067605138bbcaea420411b5 (commit) via 54a48c6781dd02f2ebbdb19a77c9a4fb59e67735 (commit) via f4977d056b2295679ce723c639f16823cfe489d5 (commit) via 7202db5db46bfe7499244af315249820e883c8cf (commit) via 5995082101a1959f303f9f3d6c0a1e483630749e (commit) via 6a54d28e44c3e539a0f6b45a5bdd748df5ef29ca (commit) from a52d35b8ef75ea4b6c9411d24450fc17706fdc9f (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=2187818706241201b067605138bbcaea420411b5 commit 2187818706241201b067605138bbcaea420411b5 Merge: a52d35b 54a48c6 Author: Brad King AuthorDate: Thu Mar 2 09:25:54 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:25:54 2017 -0500 Merge topic 'xcode-enhance-schemes' 54a48c67 Xcode: Use proper buildable name for schema f4977d05 Xcode: Select executable target for execution in schema 7202db5d Xcode: Fix schema container location calculation 59950821 Xcode: Do not autocreate schemes 6a54d28e Xcode: Use proper indentation for schemes ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalXCodeGenerator.cxx | 37 +++++++++++++++++++++++++--- Source/cmGlobalXCodeGenerator.h | 4 +-- Source/cmXCodeScheme.cxx | 49 ++++++++++++++++++++++++++----------- Source/cmXCodeScheme.h | 12 ++++++--- Source/cmXMLWriter.cxx | 11 ++++++++- Source/cmXMLWriter.h | 3 +++ 6 files changed, 92 insertions(+), 24 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:26:01 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:26:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-376-g6d9ab1e Message-ID: <20170302142601.6E843FA591@public.kitware.com> 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 6d9ab1eff7bd8a1374429c61627157dda4bb127b (commit) via 2186b323c0bc43b7eecec0f906cff9fe2e57fc0f (commit) via 16f1dd0d16365448f9d483a5d00aba356eb2906b (commit) via b2de6da2f161cde26178e568974fa5ef7f7480fc (commit) via 003c91385a050fc3b469e9f4d1ccf22e70f0f709 (commit) via bf67fff0356f1d0d6996a52eb6fda2358b17b57c (commit) via e629be4a7affe8615c2321b1a08bebb42bb81b15 (commit) via 1c7a9119d29568a1e3da82e8e96c8db464d599ab (commit) via 8250a520aacdeab2c22a24bbd31c23fee787b86e (commit) via 4b847f12f645b953feada796de66bc40b876f4f5 (commit) from 2187818706241201b067605138bbcaea420411b5 (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=6d9ab1eff7bd8a1374429c61627157dda4bb127b commit 6d9ab1eff7bd8a1374429c61627157dda4bb127b Merge: 2187818 2186b32 Author: Brad King AuthorDate: Thu Mar 2 09:25:59 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:25:59 2017 -0500 Merge topic 'FindHDF5-updates' 2186b323 FindHDF5: initialize HDF5_DEFINITIONS when using hdf5-config.cmake 16f1dd0d FindHDF5: document HDF5__DEFINITIONS b2de6da2 FindHDF5: use import libraries when using hdf5-config.cmake on Windows 003c9138 FindHDF5: do not cache library locations when using hdf5-config.cmake bf67fff0 FindHDF5: recognize hdf5:: prefix when using hdf5-config.cmake e629be4a FindHDF5: fix typo in comment 1c7a9119 FindHDF5: remove mark_as_advanced for non-cached variables 8250a520 FindHDF5: add HDF5_FIND_DEBUG variable to get debugging output 4b847f12 FindHDF5: hide HDF5_DIR if HDF5 was found in another way ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 81 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 23 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:26:06 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:26:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-380-g5d81817 Message-ID: <20170302142606.ED77BFA5AB@public.kitware.com> 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 5d81817b7168d16190848807d2cfb73ed14b8ee7 (commit) via 506207f928bfc8853864edb9a200a38e7ac2b02b (commit) via a202749c46f84563a6cccf6d5d31808fddf53408 (commit) via 9588d0a2e2442e6cc07dd4563399e257d95c792b (commit) from 6d9ab1eff7bd8a1374429c61627157dda4bb127b (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=5d81817b7168d16190848807d2cfb73ed14b8ee7 commit 5d81817b7168d16190848807d2cfb73ed14b8ee7 Merge: 6d9ab1e 506207f Author: Brad King AuthorDate: Thu Mar 2 09:26:03 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:26:03 2017 -0500 Merge topic 'csproj_add_free_source_tags' 506207f9 VS: add test for VS_CSHARP_* source file property a202749c VS: add CSharpUtilities module 9588d0a2 VS: add VS_CSHARP_ sourcefile property ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/manual/cmake-properties.7.rst | 1 + Help/module/CSharpUtilities.rst | 1 + Help/prop_sf/VS_CSHARP_tagname.rst | 19 ++ Help/release/3.8.rst | 14 +- Modules/CSharpUtilities.cmake | 298 ++++++++++++++++++++ Source/cmSourceFile.h | 1 + Source/cmVisualStudio10TargetGenerator.cxx | 93 +++--- Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 + .../VS10Project/VsCSharpCustomTags-check.cmake | 23 ++ .../RunCMake/VS10Project/VsCSharpCustomTags.cmake | 11 + .../foo.cpp => RunCMake/VS10Project/foo.cs} | 0 12 files changed, 407 insertions(+), 56 deletions(-) create mode 100644 Help/module/CSharpUtilities.rst create mode 100644 Help/prop_sf/VS_CSHARP_tagname.rst create mode 100644 Modules/CSharpUtilities.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject/3rdparty/foo.cpp => RunCMake/VS10Project/foo.cs} (100%) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:26:11 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:26:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-382-g6c332bd Message-ID: <20170302142612.56154FA5B4@public.kitware.com> 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 6c332bd84ce320e4163130a052af7b9950b38318 (commit) via 503f25d490e56dfc1d3dc894e1fc1bd3e7e89e81 (commit) from 5d81817b7168d16190848807d2cfb73ed14b8ee7 (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=6c332bd84ce320e4163130a052af7b9950b38318 commit 6c332bd84ce320e4163130a052af7b9950b38318 Merge: 5d81817 503f25d Author: Brad King AuthorDate: Thu Mar 2 09:26:08 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:26:08 2017 -0500 Merge topic 'find_library-custom-lib-suffix' 503f25d4 find_library: Allow custom lib suffix be used as find path ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 7 +++++ Help/manual/cmake-variables.7.rst | 1 + Help/prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS.rst | 2 ++ Help/prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS.rst | 2 ++ .../release/dev/find_library-custom-lib-suffix.rst | 6 +++++ .../CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 11 ++++++++ Source/cmFindLibraryCommand.cxx | 28 +++++++++++--------- Tests/CMakeOnly/find_library/CMakeLists.txt | 15 ++++++++++- .../find_library/lib/{64 => A/libXYZ}/libtest2.a | 0 .../find_library/lib/{A/lib => XYZ}/libtest1.a | 0 .../{lib32/A/lib32 => libXYZ/A/lib}/libtest4.a | 0 .../{lib/32 => libXYZ/A/libXYZ}/libtest5.a | 0 .../CMakeOnly/find_library/libXYZ/A/libtest6.a | 0 .../CMakeOnly/find_library/libXYZ/libtest7.a | 0 14 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 Help/release/dev/find_library-custom-lib-suffix.rst create mode 100644 Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst copy Tests/CMakeOnly/find_library/lib/{64 => A/libXYZ}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/lib/{A/lib => XYZ}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib32/A/lib32 => libXYZ/A/lib}/libtest4.a (100%) copy Tests/CMakeOnly/find_library/{lib/32 => libXYZ/A/libXYZ}/libtest5.a (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/CMakeOnly/find_library/libXYZ/A/libtest6.a (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/CMakeOnly/find_library/libXYZ/libtest7.a (100%) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:26:15 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:26:15 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-393-gc1fb721 Message-ID: <20170302142616.ABD66FA5DA@public.kitware.com> 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 c1fb7213edaf512774eb74adb0a89b4984f88904 (commit) via 3bf28f5ed057b2fe4d90c601065188055bb052a1 (commit) via 154d8339f77e5cd31466e5a4258c27a8aa31ff1c (commit) via ac77fa35c0250f2f7593fd2fc499b27bf395e5a6 (commit) via 662ad240db50792361aa042c60559c1c48042a6b (commit) via 5adf22bbd23185808dc3295766b25b4aa15e1612 (commit) via 36fa535d922f891deed4333b30ddbf429291ca06 (commit) via 6d7c02db34a3a8ca9cf14fa936b5835014c46739 (commit) via 1cdf7c1be24f87e2854204aa5bc7de4dc22af1a3 (commit) via 110c1bf475e2d1df27189936a1e7b66b48afb5a9 (commit) via db431ecfe33dbfa9eb43e4edd72ebc35b2c7c563 (commit) from 6c332bd84ce320e4163130a052af7b9950b38318 (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=c1fb7213edaf512774eb74adb0a89b4984f88904 commit c1fb7213edaf512774eb74adb0a89b4984f88904 Merge: 6c332bd 3bf28f5 Author: Brad King AuthorDate: Thu Mar 2 09:26:13 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:26:13 2017 -0500 Merge topic 'autogen_uic_paths' 3bf28f5e Autogen: New short InfoGet functions 154d8339 Autogen: Parse enabled feature configuration only ac77fa35 Autogen: Add missing return on error 662ad240 Autogen: Rename and merge moc related methods 5adf22bb Autogen: Add AUTOUIC_SEARCH_PATHS release notes 36fa535d Autogen: Add AUTOUIC_SEARCH_PATHS documentation 6d7c02db Autogen: Add AUTOUIC_SEARCH_PATHS test 1cdf7c1b Autogen: Add AUTOUIC_SEARCH_PATHS support 110c1bf4 Autogen: Add subDirPrefix function db431ecf Autogen: Merge FindInIncludeDirectories into FindIncludeFile ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/manual/cmake-qt.7.rst | 4 +- Help/manual/cmake-variables.7.rst | 1 + Help/prop_tgt/AUTOUIC.rst | 9 +- Help/prop_tgt/AUTOUIC_OPTIONS.rst | 2 +- Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst | 12 + Help/release/dev/Autogen_uic_paths.rst | 10 + Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst | 11 + Modules/AutogenInfo.cmake.in | 3 +- Source/cmQtAutoGeneratorInitializer.cxx | 15 +- Source/cmQtAutoGenerators.cxx | 516 ++++++++++---------- Source/cmQtAutoGenerators.h | 18 +- Source/cmTarget.cxx | 1 + Tests/QtAutogen/CMakeLists.txt | 4 + Tests/QtAutogen/uicInclude/CMakeLists.txt | 8 + .../{skipSource/uigen1.ui => uicInclude/PageC.ui} | 4 +- .../uigen1.ui => uicInclude/dirA/PageA.ui} | 4 +- .../uigen1.ui => uicInclude/dirB/sub/PageB.ui} | 4 +- Tests/QtAutogen/uicInclude/main.cpp | 10 + Tests/QtAutogen/uicInclude/main.hpp | 6 + 20 files changed, 374 insertions(+), 269 deletions(-) create mode 100644 Help/prop_tgt/AUTOUIC_SEARCH_PATHS.rst create mode 100644 Help/release/dev/Autogen_uic_paths.rst create mode 100644 Help/variable/CMAKE_AUTOUIC_SEARCH_PATHS.rst create mode 100644 Tests/QtAutogen/uicInclude/CMakeLists.txt copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/PageC.ui} (87%) copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/dirA/PageA.ui} (87%) copy Tests/QtAutogen/{skipSource/uigen1.ui => uicInclude/dirB/sub/PageB.ui} (87%) create mode 100644 Tests/QtAutogen/uicInclude/main.cpp create mode 100644 Tests/QtAutogen/uicInclude/main.hpp hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:26:33 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:26:33 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-743-gb1b6156 Message-ID: <20170302142634.53E2AFA5A0@public.kitware.com> 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 b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 (commit) via c1fb7213edaf512774eb74adb0a89b4984f88904 (commit) via 6c332bd84ce320e4163130a052af7b9950b38318 (commit) via 5d81817b7168d16190848807d2cfb73ed14b8ee7 (commit) via 6d9ab1eff7bd8a1374429c61627157dda4bb127b (commit) via 2187818706241201b067605138bbcaea420411b5 (commit) via a52d35b8ef75ea4b6c9411d24450fc17706fdc9f (commit) from a27f7433686292d5c54d42c394bd620da3b3c2d6 (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=b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 commit b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 Merge: a27f743 c1fb721 Author: Brad King AuthorDate: Thu Mar 2 09:26:23 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 09:26:23 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 09:56:41 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 09:56:41 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-745-g3bf5d33 Message-ID: <20170302145641.DA551FA6E9@public.kitware.com> 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 3bf5d33ba90dc3478a928f47507e004d905b7d87 (commit) via 6b6191d8754fd6a805a83c2a10f521aa92e26175 (commit) from b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 (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=3bf5d33ba90dc3478a928f47507e004d905b7d87 commit 3bf5d33ba90dc3478a928f47507e004d905b7d87 Merge: b1b6156 6b6191d Author: Brad King AuthorDate: Thu Mar 2 09:56:38 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 09:56:38 2017 -0500 Merge topic 'ipo-variable' into next 6b6191d8 Add variable 'CMAKE_INTERPROCEDURAL_OPTIMIZATION' https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6b6191d8754fd6a805a83c2a10f521aa92e26175 commit 6b6191d8754fd6a805a83c2a10f521aa92e26175 Author: Ruslan Baratov AuthorDate: Mon Feb 27 19:00:43 2017 +0800 Commit: Brad King CommitDate: Thu Mar 2 09:37:39 2017 -0500 Add variable 'CMAKE_INTERPROCEDURAL_OPTIMIZATION' diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 79c7cd8..d4fe0e4 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -285,6 +285,7 @@ Variables that Control the Build /variable/CMAKE_INSTALL_NAME_DIR /variable/CMAKE_INSTALL_RPATH /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH + /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION /variable/CMAKE_IOS_INSTALL_COMBINED /variable/CMAKE_LANG_CLANG_TIDY /variable/CMAKE_LANG_COMPILER_LAUNCHER diff --git a/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst b/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst index effa3b0..3f68c31 100644 --- a/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst +++ b/Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst @@ -5,3 +5,7 @@ Enable interprocedural optimization for a target. If set to true, enables interprocedural optimizations if they are known to be supported by the compiler. + +This property is initialized by the +:variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable if it is set when a +target is created. diff --git a/Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst b/Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst new file mode 100644 index 0000000..fc4f733 --- /dev/null +++ b/Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst @@ -0,0 +1,6 @@ +CMAKE_INTERPROCEDURAL_OPTIMIZATION +---------------------------------- + +* A :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` variable was added to + initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` property on all + targets. diff --git a/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst b/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst new file mode 100644 index 0000000..b0cbb62 --- /dev/null +++ b/Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst @@ -0,0 +1,8 @@ +CMAKE_INTERPROCEDURAL_OPTIMIZATION +---------------------------------- + +Default value for :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` of targets. + +This variable is used to initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` +property on all the targets. See that target property for additional +information. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index c360c19..e3c7b63 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -230,6 +230,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, this->SetPropertyDefault("INSTALL_NAME_DIR", CM_NULLPTR); this->SetPropertyDefault("INSTALL_RPATH", ""); this->SetPropertyDefault("INSTALL_RPATH_USE_LINK_PATH", "OFF"); + this->SetPropertyDefault("INTERPROCEDURAL_OPTIMIZATION", CM_NULLPTR); this->SetPropertyDefault("SKIP_BUILD_RPATH", "OFF"); this->SetPropertyDefault("BUILD_WITH_INSTALL_RPATH", "OFF"); this->SetPropertyDefault("ARCHIVE_OUTPUT_DIRECTORY", CM_NULLPTR); ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 1 + Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst | 4 ++++ Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 6 ++++++ Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 8 ++++++++ Source/cmTarget.cxx | 1 + 5 files changed, 20 insertions(+) create mode 100644 Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst create mode 100644 Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 10:03:47 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 10:03:47 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-747-g8324210 Message-ID: <20170302150347.B351DFA763@public.kitware.com> 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 83242107ad6514dff6a8b6946467838f4d4104be (commit) via 8e58f360f53eab991debe507c669595cec7f07fa (commit) from 3bf5d33ba90dc3478a928f47507e004d905b7d87 (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=83242107ad6514dff6a8b6946467838f4d4104be commit 83242107ad6514dff6a8b6946467838f4d4104be Merge: 3bf5d33 8e58f36 Author: Brad King AuthorDate: Thu Mar 2 10:03:46 2017 -0500 Commit: CMake Topic Stage CommitDate: Thu Mar 2 10:03:46 2017 -0500 Merge topic 'FindVulkan-update' into next 8e58f360 FindVulkan: Update for LunarG SDK import library location on Windows https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e58f360f53eab991debe507c669595cec7f07fa commit 8e58f360f53eab991debe507c669595cec7f07fa Author: Brad Davis AuthorDate: Wed Mar 1 17:56:22 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 10:02:20 2017 -0500 FindVulkan: Update for LunarG SDK import library location on Windows As of at least 1.0.42 of the LunarG SDK, the `vulkan-1.lib` import library on Windows is stored in `${VULKAN_SDK}/Lib` or `${VULKAN_SDK}/Lib32`. diff --git a/Modules/FindVulkan.cmake b/Modules/FindVulkan.cmake index 820e0eb..0be9f97 100644 --- a/Modules/FindVulkan.cmake +++ b/Modules/FindVulkan.cmake @@ -39,12 +39,16 @@ if(WIN32) find_library(Vulkan_LIBRARY NAMES vulkan-1 PATHS - "$ENV{VULKAN_SDK}/Bin") + "$ENV{VULKAN_SDK}/Lib" + "$ENV{VULKAN_SDK}/Bin" + ) elseif(CMAKE_SIZEOF_VOID_P EQUAL 4) find_library(Vulkan_LIBRARY NAMES vulkan-1 PATHS - "$ENV{VULKAN_SDK}/Bin32") + "$ENV{VULKAN_SDK}/Lib32" + "$ENV{VULKAN_SDK}/Bin32" + ) endif() else() find_path(Vulkan_INCLUDE_DIR ----------------------------------------------------------------------- Summary of changes: Modules/FindVulkan.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 10:04:54 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 10:04:54 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-395-g06ef23c Message-ID: <20170302150455.2F026FA762@public.kitware.com> 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 06ef23c3e0abf79f451cf69fbd3ac646b7e17c27 (commit) via fce6233d8be9ed70989875460ee7628f55788554 (commit) from c1fb7213edaf512774eb74adb0a89b4984f88904 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 10:04:55 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 10:04:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-750-gb1cf272 Message-ID: <20170302150455.56559FA762@public.kitware.com> 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 b1cf272646abab16e53bc3e7083629ee23ec089d (commit) via 06ef23c3e0abf79f451cf69fbd3ac646b7e17c27 (commit) via fce6233d8be9ed70989875460ee7628f55788554 (commit) from 83242107ad6514dff6a8b6946467838f4d4104be (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=b1cf272646abab16e53bc3e7083629ee23ec089d commit b1cf272646abab16e53bc3e7083629ee23ec089d Merge: 8324210 06ef23c Author: Brad King AuthorDate: Thu Mar 2 10:04:22 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 10:04:22 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 10:04:55 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 10:04:55 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc1-65-gfce6233 Message-ID: <20170302150455.E9D9EFA766@public.kitware.com> 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, release has been updated via fce6233d8be9ed70989875460ee7628f55788554 (commit) via 506207f928bfc8853864edb9a200a38e7ac2b02b (commit) via a202749c46f84563a6cccf6d5d31808fddf53408 (commit) via 9588d0a2e2442e6cc07dd4563399e257d95c792b (commit) from baed38107eff0da23fc91b18d926fab9a4750f8c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/manual/cmake-properties.7.rst | 1 + Help/module/CSharpUtilities.rst | 1 + Help/prop_sf/VS_CSHARP_tagname.rst | 19 ++ Help/release/3.8.rst | 14 +- Modules/CSharpUtilities.cmake | 298 ++++++++++++++++++++ Source/cmSourceFile.h | 1 + Source/cmVisualStudio10TargetGenerator.cxx | 93 +++--- Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 + .../VS10Project/VsCSharpCustomTags-check.cmake | 23 ++ .../RunCMake/VS10Project/VsCSharpCustomTags.cmake | 11 + .../foo.cpp => RunCMake/VS10Project/foo.cs} | 0 12 files changed, 407 insertions(+), 56 deletions(-) create mode 100644 Help/module/CSharpUtilities.rst create mode 100644 Help/prop_sf/VS_CSHARP_tagname.rst create mode 100644 Modules/CSharpUtilities.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags-check.cmake create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCustomTags.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject/3rdparty/foo.cpp => RunCMake/VS10Project/foo.cs} (100%) hooks/post-receive -- CMake From brad.king at kitware.com Thu Mar 2 10:33:38 2017 From: brad.king at kitware.com (Brad King) Date: Thu, 2 Mar 2017 10:33:38 -0500 (EST) Subject: [Cmake-commits] CMake branch, dashboard, updated. 0130a0f3e753f27bca5c07350a634f2d65f20a06 Message-ID: <20170302153339.EFB63FA3B8@public.kitware.com> 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, dashboard has been updated via 0130a0f3e753f27bca5c07350a634f2d65f20a06 (commit) from 7be0d8260ca2ad5097a34ab2e6835965d07cf27b (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=0130a0f3e753f27bca5c07350a634f2d65f20a06 commit 0130a0f3e753f27bca5c07350a634f2d65f20a06 Author: Brad King AuthorDate: Thu Mar 2 10:24:21 2017 -0500 Commit: Brad King CommitDate: Thu Mar 2 10:24:21 2017 -0500 README: Describe purpose of the CMake Dashboard Scripts tree diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..0c3dbee --- /dev/null +++ b/README.rst @@ -0,0 +1,11 @@ +CMake Dashboard Scripts +*********************** + +These are CTest scripts used to drive CMake tests for submission to CDash: + +* `cmake_common.cmake`_: Common script to be included by local client scripts. + See comments at the top of the script for details. +* `kwsys_common.cmake`_: Drive KWSys testing everywhere we test CMake. + +.. _`cmake_common.cmake`: cmake_common.cmake +.. _`kwsys_common.cmake`: kwsys_common.cmake ----------------------------------------------------------------------- Summary of changes: README.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 README.rst hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 00:01:14 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 00:01:14 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-396-g1e0841c Message-ID: <20170303050115.2E9DCFA86E@public.kitware.com> 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 1e0841c67244c70641a18c348cd8a274f4789010 (commit) from 06ef23c3e0abf79f451cf69fbd3ac646b7e17c27 (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=1e0841c67244c70641a18c348cd8a274f4789010 commit 1e0841c67244c70641a18c348cd8a274f4789010 Author: Kitware Robot AuthorDate: Fri Mar 3 00:01:03 2017 -0500 Commit: Kitware Robot CommitDate: Fri Mar 3 00:01:03 2017 -0500 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 62324e8..8ae92ea 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) -set(CMake_VERSION_PATCH 20170302) +set(CMake_VERSION_PATCH 20170303) #set(CMake_VERSION_RC 1) ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:57:32 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:57:32 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-401-g24c0e22 Message-ID: <20170303125732.AFAB5FA49A@public.kitware.com> 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 24c0e229efd92392a877ba5c7c52d74fb9fdf689 (commit) via 69528fe65f0c4402c6560917d6cb118d2c103445 (commit) via f3102ca884496a4a0644dc43afaf80a253191ed8 (commit) via c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d (commit) via b1a37362b87c24d409f4037cd59c33056468c11b (commit) from 1e0841c67244c70641a18c348cd8a274f4789010 (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=24c0e229efd92392a877ba5c7c52d74fb9fdf689 commit 24c0e229efd92392a877ba5c7c52d74fb9fdf689 Merge: 1e0841c 69528fe Author: Brad King AuthorDate: Fri Mar 3 07:57:29 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 07:57:29 2017 -0500 Merge topic 'implicit-dir-symlinks' 69528fe6 Tests: Add case for RPATH exclusion of symlinks to implicit directories f3102ca8 Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks c3fb650c cmOrderDirectories: Consider symlinks when checking implicit directories b1a37362 cmOrderDirectories: Factor out implicit directory check ----------------------------------------------------------------------- Summary of changes: Source/cmOrderDirectories.cxx | 22 +++++++++++++------- Source/cmOrderDirectories.h | 2 ++ Tests/RunCMake/CMakeLists.txt | 3 +++ .../RunCMake/RuntimePath/A.c | 2 +- .../{Cpplint => RuntimePath}/CMakeLists.txt | 0 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake | 18 ++++++++++++++++ Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake | 17 +++++++++++++++ .../SymlinkImplicitCheck-result.txt} | 0 .../RuntimePath/SymlinkImplicitCheck-stderr.txt | 22 ++++++++++++++++++++ .../RuntimePath/SymlinkImplicitCheck.cmake | 2 ++ .../RuntimePath}/main.c | 0 11 files changed, 80 insertions(+), 8 deletions(-) copy Modules/DummyCXXFile.cxx => Tests/RunCMake/RuntimePath/A.c (51%) copy Tests/RunCMake/{Cpplint => RuntimePath}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => RuntimePath/SymlinkImplicitCheck-result.txt} (100%) create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake copy Tests/{CMakeOnly/LinkInterfaceLoop => RunCMake/RuntimePath}/main.c (100%) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:57:35 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:57:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-403-g79b017f Message-ID: <20170303125735.53BCAFA4DB@public.kitware.com> 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 79b017f23cb012aaaad361c5e4478dcfa7bcc829 (commit) via 8e58f360f53eab991debe507c669595cec7f07fa (commit) from 24c0e229efd92392a877ba5c7c52d74fb9fdf689 (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=79b017f23cb012aaaad361c5e4478dcfa7bcc829 commit 79b017f23cb012aaaad361c5e4478dcfa7bcc829 Merge: 24c0e22 8e58f36 Author: Brad King AuthorDate: Fri Mar 3 07:57:33 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 07:57:33 2017 -0500 Merge topic 'FindVulkan-update' 8e58f360 FindVulkan: Update for LunarG SDK import library location on Windows ----------------------------------------------------------------------- Summary of changes: Modules/FindVulkan.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:57:38 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:57:38 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-405-g4e537aa Message-ID: <20170303125739.271E7FA538@public.kitware.com> 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 4e537aa42c7d5731272d75b4a298271e26d36cee (commit) via 6b6191d8754fd6a805a83c2a10f521aa92e26175 (commit) from 79b017f23cb012aaaad361c5e4478dcfa7bcc829 (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=4e537aa42c7d5731272d75b4a298271e26d36cee commit 4e537aa42c7d5731272d75b4a298271e26d36cee Merge: 79b017f 6b6191d Author: Brad King AuthorDate: Fri Mar 3 07:57:36 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 07:57:36 2017 -0500 Merge topic 'ipo-variable' 6b6191d8 Add variable 'CMAKE_INTERPROCEDURAL_OPTIMIZATION' ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 1 + Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst | 4 ++++ Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 6 ++++++ Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 8 ++++++++ Source/cmTarget.cxx | 1 + 5 files changed, 20 insertions(+) create mode 100644 Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst create mode 100644 Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:57:59 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:57:59 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-755-g907a6e8 Message-ID: <20170303125759.36354FA49A@public.kitware.com> 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 907a6e85862d9edb37232015994df48bc3d80c8d (commit) via 4e537aa42c7d5731272d75b4a298271e26d36cee (commit) via 79b017f23cb012aaaad361c5e4478dcfa7bcc829 (commit) via 24c0e229efd92392a877ba5c7c52d74fb9fdf689 (commit) via 1e0841c67244c70641a18c348cd8a274f4789010 (commit) from b1cf272646abab16e53bc3e7083629ee23ec089d (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=907a6e85862d9edb37232015994df48bc3d80c8d commit 907a6e85862d9edb37232015994df48bc3d80c8d Merge: b1cf272 4e537aa Author: Brad King AuthorDate: Fri Mar 3 07:57:49 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 07:57:49 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:59:05 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:59:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-410-g2ccf879 Message-ID: <20170303125905.76899FA53F@public.kitware.com> 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 2ccf879ab4efca38bb2918bfb4ba5946328f8bb1 (commit) via 71d9861a42e591d609fce20ea334eedc80f8b199 (commit) via 3e06cdc19bc6670e19dd3697f257f0b89e5cd3f7 (commit) via 8d1af9cad2f55fda440b3db537fc99e1d78b2aad (commit) via 5228d36aac11e23c795019b28eba57195392b51c (commit) from 4e537aa42c7d5731272d75b4a298271e26d36cee (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:59:05 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:59:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-761-gffba33f Message-ID: <20170303125905.91E21FA541@public.kitware.com> 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 ffba33ff51b6c0acfe3d16e5632d927d87c5d24b (commit) via 2ccf879ab4efca38bb2918bfb4ba5946328f8bb1 (commit) via 71d9861a42e591d609fce20ea334eedc80f8b199 (commit) via 3e06cdc19bc6670e19dd3697f257f0b89e5cd3f7 (commit) via 8d1af9cad2f55fda440b3db537fc99e1d78b2aad (commit) via 5228d36aac11e23c795019b28eba57195392b51c (commit) from 907a6e85862d9edb37232015994df48bc3d80c8d (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=ffba33ff51b6c0acfe3d16e5632d927d87c5d24b commit ffba33ff51b6c0acfe3d16e5632d927d87c5d24b Merge: 907a6e8 2ccf879 Author: Brad King AuthorDate: Fri Mar 3 07:58:49 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 07:58:49 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 07:59:06 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 07:59:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc1-72-g3e06cdc Message-ID: <20170303125906.06594FA54D@public.kitware.com> 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, release has been updated via 3e06cdc19bc6670e19dd3697f257f0b89e5cd3f7 (commit) via 8e58f360f53eab991debe507c669595cec7f07fa (commit) via 8d1af9cad2f55fda440b3db537fc99e1d78b2aad (commit) via 69528fe65f0c4402c6560917d6cb118d2c103445 (commit) via f3102ca884496a4a0644dc43afaf80a253191ed8 (commit) via c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d (commit) via b1a37362b87c24d409f4037cd59c33056468c11b (commit) from fce6233d8be9ed70989875460ee7628f55788554 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindVulkan.cmake | 8 +++++-- Source/cmOrderDirectories.cxx | 22 +++++++++++++------- Source/cmOrderDirectories.h | 2 ++ Tests/RunCMake/CMakeLists.txt | 3 +++ .../RunCMake/RuntimePath/A.c | 2 +- .../{Cpplint => RuntimePath}/CMakeLists.txt | 0 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake | 18 ++++++++++++++++ Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake | 17 +++++++++++++++ .../SymlinkImplicitCheck-result.txt} | 0 .../RuntimePath/SymlinkImplicitCheck-stderr.txt | 22 ++++++++++++++++++++ .../RuntimePath/SymlinkImplicitCheck.cmake | 2 ++ .../RuntimePath}/main.c | 0 12 files changed, 86 insertions(+), 10 deletions(-) copy Modules/DummyCXXFile.cxx => Tests/RunCMake/RuntimePath/A.c (51%) copy Tests/RunCMake/{Cpplint => RuntimePath}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => RuntimePath/SymlinkImplicitCheck-result.txt} (100%) create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake copy Tests/{CMakeOnly/LinkInterfaceLoop => RunCMake/RuntimePath}/main.c (100%) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:15:44 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:15:44 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-763-g305ef6a Message-ID: <20170303131545.00520F5D97@public.kitware.com> 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 305ef6a006de0fa6ae86752a3a1c96d2570a99f2 (commit) via d0ada3e2183d3f80125795a3b13acafa7cc0c477 (commit) from ffba33ff51b6c0acfe3d16e5632d927d87c5d24b (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=305ef6a006de0fa6ae86752a3a1c96d2570a99f2 commit 305ef6a006de0fa6ae86752a3a1c96d2570a99f2 Merge: ffba33f d0ada3e Author: Brad King AuthorDate: Fri Mar 3 08:15:44 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 08:15:44 2017 -0500 Merge topic 'FindJNI-archlinux-jvm-paths' into next d0ada3e2 FindJNI: Add jvm paths for Arch Linux https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d0ada3e2183d3f80125795a3b13acafa7cc0c477 commit d0ada3e2183d3f80125795a3b13acafa7cc0c477 Author: Kitsu AuthorDate: Fri Mar 3 10:25:37 2017 +0300 Commit: Brad King CommitDate: Fri Mar 3 08:14:34 2017 -0500 FindJNI: Add jvm paths for Arch Linux diff --git a/Modules/FindJNI.cmake b/Modules/FindJNI.cmake index 39e504f..cebba10 100644 --- a/Modules/FindJNI.cmake +++ b/Modules/FindJNI.cmake @@ -145,6 +145,9 @@ JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES /usr/lib/jvm/default-java/jre/lib/{libarch} /usr/lib/jvm/default-java/jre/lib /usr/lib/jvm/default-java/lib + # Arch Linux specific paths for default JVM + /usr/lib/jvm/default/jre/lib/{libarch} + /usr/lib/jvm/default/lib/{libarch} # Ubuntu specific paths for default JVM /usr/lib/jvm/java-8-openjdk-{libarch}/jre/lib/{libarch} # Ubuntu 15.10 /usr/lib/jvm/java-7-openjdk-{libarch}/jre/lib/{libarch} # Ubuntu 15.10 @@ -200,6 +203,8 @@ JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_INCLUDE_DIRECTORIES /opt/sun-jdk-1.5.0.04/include # Debian specific path for default JVM /usr/lib/jvm/default-java/include + # Arch specific path for default JVM + /usr/lib/jvm/default/include # OpenBSD specific path for default JVM /usr/local/jdk-1.7.0/include /usr/local/jdk-1.6.0/include ----------------------------------------------------------------------- Summary of changes: Modules/FindJNI.cmake | 5 +++++ 1 file changed, 5 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:25:17 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:25:17 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-412-g2b52c6c Message-ID: <20170303132518.00580FA2DB@public.kitware.com> 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 2b52c6cde5933d7e46b2d85788ba67b20069ab86 (commit) via d0ada3e2183d3f80125795a3b13acafa7cc0c477 (commit) from 2ccf879ab4efca38bb2918bfb4ba5946328f8bb1 (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=2b52c6cde5933d7e46b2d85788ba67b20069ab86 commit 2b52c6cde5933d7e46b2d85788ba67b20069ab86 Merge: 2ccf879 d0ada3e Author: Brad King AuthorDate: Fri Mar 3 08:25:16 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 08:25:16 2017 -0500 Merge topic 'FindJNI-archlinux-jvm-paths' d0ada3e2 FindJNI: Add jvm paths for Arch Linux ----------------------------------------------------------------------- Summary of changes: Modules/FindJNI.cmake | 5 +++++ 1 file changed, 5 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:25:31 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:25:31 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-765-geb49caf Message-ID: <20170303132531.26D98F5FF4@public.kitware.com> 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 eb49caf1836f0f80e897f614f73616d6b3574dd9 (commit) via 2b52c6cde5933d7e46b2d85788ba67b20069ab86 (commit) from 305ef6a006de0fa6ae86752a3a1c96d2570a99f2 (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=eb49caf1836f0f80e897f614f73616d6b3574dd9 commit eb49caf1836f0f80e897f614f73616d6b3574dd9 Merge: 305ef6a 2b52c6c Author: Brad King AuthorDate: Fri Mar 3 08:25:23 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 08:25:23 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:26:13 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:26:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-414-gd9f54b5 Message-ID: <20170303132613.26C0FFA30E@public.kitware.com> 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 d9f54b565a80c0811f31374d6359085874d6b23c (commit) via 9f37f94d639aa4a5cc42a2f60fafb51bed317e1b (commit) from 2b52c6cde5933d7e46b2d85788ba67b20069ab86 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:26:13 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:26:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-768-g09566b4 Message-ID: <20170303132613.41E2BFA313@public.kitware.com> 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 09566b4ad5f909de0a8b2127e613b7cd0c206d47 (commit) via d9f54b565a80c0811f31374d6359085874d6b23c (commit) via 9f37f94d639aa4a5cc42a2f60fafb51bed317e1b (commit) from eb49caf1836f0f80e897f614f73616d6b3574dd9 (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=09566b4ad5f909de0a8b2127e613b7cd0c206d47 commit 09566b4ad5f909de0a8b2127e613b7cd0c206d47 Merge: eb49caf d9f54b5 Author: Brad King AuthorDate: Fri Mar 3 08:26:02 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 08:26:02 2017 -0500 Merge branch 'master' into next ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:26:13 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:26:13 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc1-74-g9f37f94 Message-ID: <20170303132613.5848CFA316@public.kitware.com> 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, release has been updated via 9f37f94d639aa4a5cc42a2f60fafb51bed317e1b (commit) via d0ada3e2183d3f80125795a3b13acafa7cc0c477 (commit) from 3e06cdc19bc6670e19dd3697f257f0b89e5cd3f7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindJNI.cmake | 5 +++++ 1 file changed, 5 insertions(+) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 08:30:09 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 08:30:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-771-gc18462d Message-ID: <20170303133009.E507FFA681@public.kitware.com> 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 c18462d8c53725c98268b3a91fda7c025cb67eaf (commit) via ade5ad24e6571ea1e102bb2203297d1d4cdfa952 (commit) via e1adec32b8325fb731da084e99acd6070f5e39bf (commit) from 09566b4ad5f909de0a8b2127e613b7cd0c206d47 (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=c18462d8c53725c98268b3a91fda7c025cb67eaf commit c18462d8c53725c98268b3a91fda7c025cb67eaf Merge: 09566b4 ade5ad2 Author: Brad King AuthorDate: Fri Mar 3 08:30:09 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 08:30:09 2017 -0500 Merge topic 'test-release' into next ade5ad24 Merge branch 'release' into test-release e1adec32 CMake 3.8.0-rc2 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ade5ad24e6571ea1e102bb2203297d1d4cdfa952 commit ade5ad24e6571ea1e102bb2203297d1d4cdfa952 Merge: d9f54b5 e1adec3 Author: Brad King AuthorDate: Fri Mar 3 08:29:57 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 08:29:57 2017 -0500 Merge branch 'release' into test-release https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e1adec32b8325fb731da084e99acd6070f5e39bf commit e1adec32b8325fb731da084e99acd6070f5e39bf Author: Brad King AuthorDate: Fri Mar 3 08:29:09 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 08:29:09 2017 -0500 CMake 3.8.0-rc2 diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index a7a281d..e2b8d4f 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 1) +set(CMake_VERSION_RC 2) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 09:37:10 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 09:37:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-773-gb603082 Message-ID: <20170303143710.9C637FA6B9@public.kitware.com> 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 b6030828f327802cc551995d3f4524b247bac2ca (commit) via 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (commit) from c18462d8c53725c98268b3a91fda7c025cb67eaf (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=b6030828f327802cc551995d3f4524b247bac2ca commit b6030828f327802cc551995d3f4524b247bac2ca Merge: c18462d 4e8ffb9 Author: Brad King AuthorDate: Fri Mar 3 09:37:02 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 09:37:02 2017 -0500 Merge branch 'master' into next https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 commit 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 Merge: d9f54b5 e1adec3 Author: Brad King AuthorDate: Fri Mar 3 09:36:55 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 09:36:55 2017 -0500 Merge branch 'release' ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 09:37:17 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 09:37:17 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc1-416-g4e8ffb9 Message-ID: <20170303143717.C8C84FA6A3@public.kitware.com> 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 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (commit) via e1adec32b8325fb731da084e99acd6070f5e39bf (commit) from d9f54b565a80c0811f31374d6359085874d6b23c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 09:37:17 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 09:37:17 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc1-75-ge1adec3 Message-ID: <20170303143717.DE11FFA6BF@public.kitware.com> 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, release has been updated via e1adec32b8325fb731da084e99acd6070f5e39bf (commit) from 9f37f94d639aa4a5cc42a2f60fafb51bed317e1b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From brad.king at kitware.com Fri Mar 3 09:46:32 2017 From: brad.king at kitware.com (Brad King) Date: Fri, 3 Mar 2017 09:46:32 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc1-788-g51581b7 Message-ID: <20170303144632.CF6DFF5A45@public.kitware.com> 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 51581b7074637074499ee9246428b787b6406096 (commit) via ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) via 28878dbdd49dce43a15a98062696af30f26800cf (commit) via 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) via 614917f70e292763b14b1c388e92714bac31fa9c (commit) via 505ed4e76f3043cdb5d45effc4791455136560df (commit) via eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) via c511576c620ecbc614591722ad1b381c8a7d2528 (commit) via 4ef593ed4940229437dbbad7707a6461846318f8 (commit) via bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) via c52eecc303f8cb3de406d788914a2071cef4e60f (commit) via 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) via 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) via f9531b373f27367ac0d8c4beae474768b7745b59 (commit) via 100723035ac228187e60f549dd38c8f89c447b40 (commit) from b6030828f327802cc551995d3f4524b247bac2ca (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=51581b7074637074499ee9246428b787b6406096 commit 51581b7074637074499ee9246428b787b6406096 Merge: b603082 ef4e1e8 Author: Brad King AuthorDate: Fri Mar 3 09:46:31 2017 -0500 Commit: CMake Topic Stage CommitDate: Fri Mar 3 09:46:31 2017 -0500 Merge topic 'autogen_common' into next ef4e1e86 Autogen: Test: Delay after timestamp fix 28878dbd Autogen: Test: Add mocDepends test 59dd1e39 Autogen: Test: Add generated qrc file to rccDepends test 614917f7 Autogen: Test: Add generated file to moc rerun test 505ed4e7 Autogen: Test: Add timestamp comparison to moc rerun test eae0b282 Autogen: Test: Rename automoc_rerun test to mocRerun c511576c Autogen: Test: Rename autorcc_depends test to rccDepends 4ef593ed Autogen: Error return when a scan file is not readable bdec46b7 Autogen: Add AUTOMOC/UIC support for generated source files c52eecc3 Autogen: Initializer cleanups 86e4fcad Autogen: Add support for generated .qrc files 04ecb9a1 Autogen: Embrace qrc file lists in braces in AutogenInfo.cmake f9531b37 Autogen: Remove unused variables 10072303 Autogen: Add cmQtAutogeneratorCommon class with shared types and functions https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 commit ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 Author: Sebastian Holtermann AuthorDate: Fri Mar 3 15:27:14 2017 +0100 Commit: Sebastian Holtermann CommitDate: Fri Mar 3 15:27:14 2017 +0100 Autogen: Test: Delay after timestamp fix diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4dbf6cf..030b098 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -155,6 +155,7 @@ set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") # Change file content and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" @@ -167,7 +168,7 @@ endif() # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") endif() # -- Test @@ -289,16 +290,16 @@ if (NOT QT_TEST_VERSION STREQUAL 4) file(TIMESTAMP "${plDFile}" plDAfter "${timeformat}") if (plAAfter GREATER plABefore) - message(SEND_ERROR "file (${plAFile}) should not have changed!") + message(SEND_ERROR "File (${plAFile}) should not have changed!") endif() if (plBAfter GREATER plBBefore) - message(SEND_ERROR "file (${plBFile}) should not have changed!") + message(SEND_ERROR "File (${plBFile}) should not have changed!") endif() if (NOT plCAfter GREATER plCBefore) - message(SEND_ERROR "file (${plCFile}) should have changed!") + message(SEND_ERROR "File (${plCFile}) should have changed!") endif() if (NOT plDAfter GREATER plDBefore) - message(SEND_ERROR "file (${plDFile}) should have changed!") + message(SEND_ERROR "File (${plDFile}) should have changed!") endif() # Test custom macro @@ -311,10 +312,10 @@ if (NOT QT_TEST_VERSION STREQUAL 4) file(TIMESTAMP "${plCFile}" plCAfter "${timeformat}") file(TIMESTAMP "${plDFile}" plDAfter "${timeformat}") if (NOT plCAfter GREATER plCBefore) - message(SEND_ERROR "file (${plCFile}) should have changed!") + message(SEND_ERROR "File (${plCFile}) should have changed!") endif() if (NOT plDAfter GREATER plDBefore) - message(SEND_ERROR "file (${plDFile}) should have changed!") + message(SEND_ERROR "File (${plDFile}) should have changed!") endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28878dbdd49dce43a15a98062696af30f26800cf commit 28878dbdd49dce43a15a98062696af30f26800cf Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:16:24 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add mocDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 93ce1db..4dbf6cf 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -238,6 +238,10 @@ target_link_libraries(skipRccB ${QT_LIBRARIES}) add_subdirectory(sameName) # -- Test +# Tests AUTOMOC with generated sources +add_subdirectory(mocDepends) + +# -- Test # Tests various include moc patterns add_subdirectory(mocIncludeStrict) diff --git a/Tests/QtAutogen/mocDepends/CMakeLists.txt b/Tests/QtAutogen/mocDepends/CMakeLists.txt new file mode 100644 index 0000000..8a5ae5b --- /dev/null +++ b/Tests/QtAutogen/mocDepends/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.7) +project(mocDepends) + +if (QT_TEST_VERSION STREQUAL 4) + find_package(Qt4 REQUIRED) + set(QT_CORE_TARGET Qt4::QtCore) +else() + if (NOT QT_TEST_VERSION STREQUAL 5) + message(SEND_ERROR "Invalid Qt version specified.") + endif() + + find_package(Qt5Core REQUIRED) + set(QT_CORE_TARGET Qt5::Core) +endif() + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# -- Test 1 using generated header +# This tests the dependency of AUTOMOC of test1 to the generated object.hpp +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/object.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + ) + +add_executable(test1 test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/object.hpp +) +target_link_libraries(test1 ${QT_CORE_TARGET}) +set_target_properties(test1 PROPERTIES AUTOMOC TRUE) + +# -- Test 2 using generated library +# This tests the dependency of AUTOMOC of test2 to the generated simpleLib.hpp +# which belongs to a linked library of test2 +add_custom_command(OUTPUT simpleLib.hpp simpleLib.cpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.cpp + ) +add_library(SimpleLib SHARED simpleLib.hpp simpleLib.cpp) + +add_executable(test2 test2.cpp ) +target_link_libraries(test2 SimpleLib ${QT_CORE_TARGET}) +set_target_properties(test2 PROPERTIES AUTOMOC TRUE) diff --git a/Tests/QtAutogen/mocDepends/invalid.hpp.in b/Tests/QtAutogen/mocDepends/invalid.hpp.in new file mode 100644 index 0000000..854d9a1 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/invalid.hpp.in @@ -0,0 +1 @@ +#ifndef diff --git a/Tests/QtAutogen/mocDepends/object.hpp.in b/Tests/QtAutogen/mocDepends/object.hpp.in new file mode 100644 index 0000000..f364f7c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/object.hpp.in @@ -0,0 +1,14 @@ +#ifndef OBJECT_HPP +#define OBJECT_HPP + +#include + +class Object : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/simpleLib.cpp.in b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in new file mode 100644 index 0000000..fa33bd3 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in @@ -0,0 +1,9 @@ +#include "simpleLib.hpp" + +SimpleLib::SimpleLib() +{ +} + +SimpleLib::~SimpleLib() +{ +} diff --git a/Tests/QtAutogen/mocDepends/simpleLib.hpp.in b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in new file mode 100644 index 0000000..758f1f6 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in @@ -0,0 +1,11 @@ +#ifndef SIMPLE_LIB_H +#define SIMPLE_LIB_H + +class SimpleLib +{ +public: + SimpleLib(); + ~SimpleLib(); +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/test1.cpp b/Tests/QtAutogen/mocDepends/test1.cpp new file mode 100644 index 0000000..92c259c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test1.cpp @@ -0,0 +1,9 @@ + +#include "object.hpp" + +int main() +{ + Object obj; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.cpp b/Tests/QtAutogen/mocDepends/test2.cpp new file mode 100644 index 0000000..155b19b --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.cpp @@ -0,0 +1,10 @@ + +#include "test2.hpp" + +int main() +{ + SimpleLib obj; + LObject lobject; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.hpp b/Tests/QtAutogen/mocDepends/test2.hpp new file mode 100644 index 0000000..0125f07 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.hpp @@ -0,0 +1,16 @@ +#ifndef TEST2_HPP +#define TEST2_HPP + +#include "simpleLib.hpp" +#include + +// This object triggers the AUTOMOC on this file +class LObject : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=59dd1e390e1fdc1391cd81c08a300716a8a6c10c commit 59dd1e390e1fdc1391cd81c08a300716a8a6c10c Author: Sebastian Holtermann AuthorDate: Thu Mar 2 18:16:54 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add generated qrc file to rccDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index ca7e1dc..93ce1db 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -101,7 +101,7 @@ list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -# Touch qrc input file and rebuild +# Touch first qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . @@ -111,11 +111,26 @@ execute_process(COMMAND "${CMAKE_COMMAND}" --build . if (rccDepends_result) message(SEND_ERROR "Second build of rccDepends failed.") endif() - # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") +endif() + +# Touch second qrc input file and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res2/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result +) +if (rccDepends_result) + message(SEND_ERROR "Third build of rccDepends failed.") +endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep2 "${timeformat}") +if (NOT timeStep2 GREATER timeStep1) + message(SEND_ERROR "File (${binFile}) should have changed in the second step!") endif() # -- Test diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index 6fa5752..082b285 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -15,12 +15,21 @@ else() set(QT_CORE_TARGET Qt5::Core) endif() +configure_file(res/input1.txt.in res1/input.txt @ONLY) +configure_file(res/input2.txt.in res2/input.txt @ONLY) +# Configure time generated qrc file configure_file(res1.qrc.in res1.qrc @ONLY) -configure_file(res1/input.txt.in res1/input.txt @ONLY) +# Dependency generated qrc file +add_custom_command(OUTPUT res2.qrc + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res2.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc + ) + add_executable(test_res1 test_res1.cpp ${CMAKE_CURRENT_BINARY_DIR}/res1.qrc + ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc ) target_link_libraries(test_res1 ${QT_CORE_TARGET}) add_custom_command(TARGET test_res1 POST_BUILD COMMAND diff --git a/Tests/QtAutogen/rccDepends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res/input1.txt.in similarity index 100% rename from Tests/QtAutogen/rccDepends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res/input1.txt.in diff --git a/Tests/QtAutogen/rccDepends/res/input2.txt.in b/Tests/QtAutogen/rccDepends/res/input2.txt.in new file mode 100644 index 0000000..08e14b7 --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res/input2.txt.in @@ -0,0 +1 @@ +Res2 input. diff --git a/Tests/QtAutogen/rccDepends/res2.qrc.in b/Tests/QtAutogen/rccDepends/res2.qrc.in new file mode 100644 index 0000000..18b916a --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res2.qrc.in @@ -0,0 +1,5 @@ + + + res2/input.txt + + https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=614917f70e292763b14b1c388e92714bac31fa9c commit 614917f70e292763b14b1c388e92714bac31fa9c Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:50:34 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add generated file to moc rerun test diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index ca0eedf..cbd3364 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -17,13 +17,19 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) configure_file(test1a.h.in test1.h COPYONLY) +# Generated source file +add_custom_command(OUTPUT main.cpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + ) add_executable(test1 ${CMAKE_CURRENT_BINARY_DIR}/test1.h - test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/main.cpp res1.qrc ) target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(test1 ${QT_CORE_TARGET}) +# Write target name to text file add_custom_command(TARGET test1 POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/mocRerun/main.cpp.in b/Tests/QtAutogen/mocRerun/main.cpp.in new file mode 100644 index 0000000..b37ff61 --- /dev/null +++ b/Tests/QtAutogen/mocRerun/main.cpp.in @@ -0,0 +1,18 @@ +#include "test1.h" + +class Test2 : public QObject +{ + Q_OBJECT +public slots: + void onTst1() {} +}; + +int main() +{ + Test1 test1; + Test2 test2; + + return 0; +} + +#include "main.moc" diff --git a/Tests/QtAutogen/mocRerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp deleted file mode 100644 index 4316a91..0000000 --- a/Tests/QtAutogen/mocRerun/test1.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "test1.h" -int main() -{ - return 0; -} diff --git a/Tests/QtAutogen/mocRerun/test1a.h.in b/Tests/QtAutogen/mocRerun/test1a.h.in index fee2c09..a335046 100644 --- a/Tests/QtAutogen/mocRerun/test1a.h.in +++ b/Tests/QtAutogen/mocRerun/test1a.h.in @@ -1,8 +1,8 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} - void onTst2() {} +public slots: + void onTst1() {} + void onTst2() {} }; diff --git a/Tests/QtAutogen/mocRerun/test1b.h.in b/Tests/QtAutogen/mocRerun/test1b.h.in index 6531d10..6128eeb 100644 --- a/Tests/QtAutogen/mocRerun/test1b.h.in +++ b/Tests/QtAutogen/mocRerun/test1b.h.in @@ -1,7 +1,7 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} +public slots: + void onTst1() {} }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=505ed4e76f3043cdb5d45effc4791455136560df commit 505ed4e76f3043cdb5d45effc4791455136560df Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:26:11 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add timestamp comparison to moc rerun test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index bf40166..ca7e1dc 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -95,25 +95,27 @@ if (NOT RCC_DEPENDS) message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) - -list(GET qrc_files 0 qrc_file1) - +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/target1.txt" target1List) +list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") - +# Touch qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") - execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result ) +if (rccDepends_result) + message(SEND_ERROR "Second build of rccDepends failed.") +endif() -file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") - -if (NOT file1_step1 GREATER file1_before) - message(SEND_ERROR "file1 (${qrc_file1}) should have changed in the first step!") +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") endif() # -- Test @@ -131,16 +133,28 @@ if (NOT MOC_RERUN) message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/mocRerun/target1.txt" target1List) +list(GET target1List 0 binFile) +set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") +# Change file content and rebuild +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" - RESULT_VARIABLE automoc_rerun_result + RESULT_VARIABLE mocRerun_result ) -if (automoc_rerun_result) +if (mocRerun_result) message(SEND_ERROR "Second build of mocRerun failed.") endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") +endif() + # -- Test # Test for SKIP_AUTOMOC and SKIP_AUTOGEN on an AUTOMOC enabled target qtx_wrap_cpp(skipMocWrapMoc diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index efe936e..ca0eedf 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -25,3 +25,5 @@ add_executable(test1 ) target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(test1 ${QT_CORE_TARGET}) +add_custom_command(TARGET test1 POST_BUILD COMMAND + ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index c983420..6fa5752 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -24,4 +24,4 @@ add_executable(test_res1 ) target_link_libraries(test_res1 ${QT_CORE_TARGET}) add_custom_command(TARGET test_res1 POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > info_file.txt) + ${CMAKE_COMMAND} -E echo "$" > target1.txt) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eae0b2823cb000db9a78881a517538a8a7fb7286 commit eae0b2823cb000db9a78881a517538a8a7fb7286 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:13:41 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Rename automoc_rerun test to mocRerun diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4b84486..bf40166 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -119,26 +119,26 @@ endif() # -- Test # Ensure a repeated build succeeds when a header containing a QObject changes try_compile(MOC_RERUN - "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" - "${CMAKE_CURRENT_SOURCE_DIR}/automoc_rerun" - automoc_rerun + "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" + "${CMAKE_CURRENT_SOURCE_DIR}/mocRerun" + mocRerun CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT MOC_RERUN) - message(SEND_ERROR "Initial build of automoc_rerun failed. Output: ${output}") + message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(automoc_rerun/test1.h.in2 automoc_rerun/test1.h COPYONLY) +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" RESULT_VARIABLE automoc_rerun_result ) if (automoc_rerun_result) - message(SEND_ERROR "Second build of automoc_rerun failed.") + message(SEND_ERROR "Second build of mocRerun failed.") endif() # -- Test diff --git a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt similarity index 88% rename from Tests/QtAutogen/automoc_rerun/CMakeLists.txt rename to Tests/QtAutogen/mocRerun/CMakeLists.txt index 92a682b..efe936e 100644 --- a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(automoc_rerun CXX) +project(mocRerun CXX) if (QT_TEST_VERSION STREQUAL 4) find_package(Qt4 REQUIRED) @@ -16,7 +16,7 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -configure_file(test1.h.in1 test1.h COPYONLY) +configure_file(test1a.h.in test1.h COPYONLY) add_executable(test1 ${CMAKE_CURRENT_BINARY_DIR}/test1.h diff --git a/Tests/QtAutogen/automoc_rerun/input.txt b/Tests/QtAutogen/mocRerun/input.txt similarity index 100% rename from Tests/QtAutogen/automoc_rerun/input.txt rename to Tests/QtAutogen/mocRerun/input.txt diff --git a/Tests/QtAutogen/automoc_rerun/res1.qrc b/Tests/QtAutogen/mocRerun/res1.qrc similarity index 100% rename from Tests/QtAutogen/automoc_rerun/res1.qrc rename to Tests/QtAutogen/mocRerun/res1.qrc diff --git a/Tests/QtAutogen/automoc_rerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.cpp rename to Tests/QtAutogen/mocRerun/test1.cpp diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in1 b/Tests/QtAutogen/mocRerun/test1a.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in1 rename to Tests/QtAutogen/mocRerun/test1a.h.in diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in2 b/Tests/QtAutogen/mocRerun/test1b.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in2 rename to Tests/QtAutogen/mocRerun/test1b.h.in https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c511576c620ecbc614591722ad1b381c8a7d2528 commit c511576c620ecbc614591722ad1b381c8a7d2528 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:07:53 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Rename autorcc_depends test to rccDepends diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4960472..4b84486 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -83,19 +83,19 @@ target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES}) # -- Test # When a file listed in a .qrc file changes the target must be rebuilt try_compile(RCC_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" - "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends" - autorcc_depends + "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + "${CMAKE_CURRENT_SOURCE_DIR}/rccDepends" + rccDepends CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT RCC_DEPENDS) - message(SEND_ERROR "Initial build of autorcc_depends failed. Output: ${output}") + message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/info_file.txt" qrc_files) +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) list(GET qrc_files 0 qrc_file1) @@ -104,10 +104,10 @@ set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. -execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/res1/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" ) file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") diff --git a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt similarity index 96% rename from Tests/QtAutogen/autorcc_depends/CMakeLists.txt rename to Tests/QtAutogen/rccDepends/CMakeLists.txt index 7b51e11..c983420 100644 --- a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(autorcc_depends) +project(rccDepends) set(CMAKE_AUTORCC ON) diff --git a/Tests/QtAutogen/autorcc_depends/res1.qrc.in b/Tests/QtAutogen/rccDepends/res1.qrc.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1.qrc.in rename to Tests/QtAutogen/rccDepends/res1.qrc.in diff --git a/Tests/QtAutogen/autorcc_depends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res1/input.txt.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res1/input.txt.in diff --git a/Tests/QtAutogen/autorcc_depends/test_res1.cpp b/Tests/QtAutogen/rccDepends/test_res1.cpp similarity index 100% rename from Tests/QtAutogen/autorcc_depends/test_res1.cpp rename to Tests/QtAutogen/rccDepends/test_res1.cpp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ef593ed4940229437dbbad7707a6461846318f8 commit 4ef593ed4940229437dbbad7707a6461846318f8 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:39:50 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Error return when a scan file is not readable diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 2510066..c9b650a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -125,13 +125,19 @@ static bool FileNameIsUnique(const std::string& filePath, return true; } -static std::string ReadAll(const std::string& filename) +static bool ReadAll(std::string& content, const std::string& filename) { - cmsys::ifstream file(filename.c_str()); - std::ostringstream stream; - stream << file.rdbuf(); - file.close(); - return stream.str(); + bool success = false; + { + cmsys::ifstream ifs(filename.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + content = osst.str(); + success = true; + } + } + return success; } /** @@ -682,8 +688,10 @@ bool cmQtAutoGenerators::RunAutogen() uicHeaderFiles.insert(headerName); } } - this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, - mocsNotIncluded, mocDepends, uisIncluded); + if (!this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, + mocsNotIncluded, mocDepends, uisIncluded)) { + return false; + }; // Generate files if (!this->MocGenerateAll(mocsIncluded, mocsNotIncluded, mocDepends)) { @@ -799,23 +807,29 @@ bool cmQtAutoGenerators::ParseSourceFile( std::map >& mocDepends, std::map >& uisIncluded, bool relaxed) { - bool success = true; - const std::string contentText = ReadAll(absFilename); - if (contentText.empty()) { - std::ostringstream ost; - ost << "AutoGen: Warning: " << absFilename << "\n" - << "The file is empty\n"; - this->LogWarning(ost.str()); - } else { - // Parse source contents for MOC - if (success && !this->MocSkip(absFilename)) { - success = this->MocParseSourceContent(absFilename, contentText, - mocsIncluded, mocDepends, relaxed); - } - // Parse source contents for UIC - if (success && !this->UicSkip(absFilename)) { - this->UicParseContent(absFilename, contentText, uisIncluded); + std::string contentText; + bool success = ReadAll(contentText, absFilename); + if (success) { + if (!contentText.empty()) { + // Parse source contents for MOC + if (success && !this->MocSkip(absFilename)) { + success = this->MocParseSourceContent( + absFilename, contentText, mocsIncluded, mocDepends, relaxed); + } + // Parse source contents for UIC + if (success && !this->UicSkip(absFilename)) { + this->UicParseContent(absFilename, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Warning: The file is empty:\n" + << Quoted(absFilename) << "\n"; + this->LogWarning(ost.str()); } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read file:\n" << Quoted(absFilename); + this->LogError(ost.str()); } return success; } @@ -1078,7 +1092,7 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile( } } -void cmQtAutoGenerators::ParseHeaders( +bool cmQtAutoGenerators::ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, @@ -1086,6 +1100,7 @@ void cmQtAutoGenerators::ParseHeaders( std::map >& mocDepends, std::map >& uisIncluded) { + bool success = true; // Merged header files list to read files only once std::set headerFiles; headerFiles.insert(mocHeaderFiles.begin(), mocHeaderFiles.end()); @@ -1094,20 +1109,28 @@ void cmQtAutoGenerators::ParseHeaders( for (std::set::const_iterator hIt = headerFiles.begin(); hIt != headerFiles.end(); ++hIt) { const std::string& headerName = *hIt; - const std::string contentText = ReadAll(headerName); - - // Parse header content for MOC - if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && - (mocsIncluded.find(headerName) == mocsIncluded.end())) { - this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, - mocDepends); - } - - // Parse header content for UIC - if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { - this->UicParseContent(headerName, contentText, uisIncluded); + std::string contentText; + if (ReadAll(contentText, headerName)) { + // Parse header content for MOC + if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && + (mocsIncluded.find(headerName) == mocsIncluded.end())) { + this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, + mocDepends); + } + // Parse header content for UIC + if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { + this->UicParseContent(headerName, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read header file:\n" + << Quoted(headerName); + this->LogError(ost.str()); + success = false; + break; } } + return success; } bool cmQtAutoGenerators::MocGenerateAll( @@ -1190,8 +1213,12 @@ bool cmQtAutoGenerators::MocGenerateAll( // Check if the content of moc_compilation.cpp changed { - const std::string oldContents = ReadAll(this->MocCppFilenameAbs); - mocCompChanged = (oldContents != automocSource); + std::string oldContents; + if (ReadAll(oldContents, this->MocCppFilenameAbs)) { + mocCompChanged = (oldContents != automocSource); + } else { + mocCompChanged = true; + } } bool success = true; diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 3bff2b2..00fa0c7 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -78,7 +78,7 @@ private: std::set& mocHeaderFiles, std::set& uicHeaderFiles) const; - void ParseHeaders( + bool ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bdec46b75eb93427aafb70d2d5e9d6601fda26a4 commit bdec46b75eb93427aafb70d2d5e9d6601fda26a4 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 16:26:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Add AUTOMOC/UIC support for generated source files Closes #16186 Closes #14379 diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2829c8a..5ee0982 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -45,6 +45,11 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } +inline static bool PropertyEnabled(cmSourceFile* sourceFile, const char* key) +{ + return cmSystemTools::IsOn(sourceFile->GetPropertyForUser(key)); +} + static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -150,18 +155,12 @@ static void AcquireScanFiles(cmGeneratorTarget const* target, !(fileType == cmSystemTools::HEADER_FILE_FORMAT)) { continue; } - if (cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - continue; - } const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // Skip flags - const bool skipAll = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")); - const bool mocSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOMOC")); - const bool uicSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOUIC")); + const bool skipAll = PropertyEnabled(sf, "SKIP_AUTOGEN"); + const bool mocSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOMOC"); + const bool uicSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOUIC"); // Add file name to skip lists. // Do this even when the file is not added to the sources/headers lists // because the file name may be extracted from an other file when @@ -478,8 +477,8 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; if ((sf->GetExtension() == "qrc") && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + !PropertyEnabled(sf, "SKIP_AUTOGEN") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // qrc file @@ -488,7 +487,7 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList = "{"; // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + if (!PropertyEnabled(sf, "GENERATED")) { std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( @@ -555,7 +554,8 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); - std::vector autogenOutputFiles; + std::vector autogenDepends; + std::vector autogenProvides; // Remove old settings on cleanup { @@ -565,31 +565,6 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( false); } - // Create autogen target build directory and add it to the clean files - cmSystemTools::MakeDirectory(autogenBuildDir); - makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", - autogenBuildDir.c_str(), false); - - if (mocEnabled || uicEnabled) { - // Create autogen target includes directory and - // add it to the origin target INCLUDE_DIRECTORIES - const std::string incsDir = autogenBuildDir + "include"; - cmSystemTools::MakeDirectory(incsDir); - target->AddIncludeDirectory(incsDir, true); - } - - if (mocEnabled) { - // Register moc compilation file as generated - autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); - } - - // Initialize autogen target dependencies - std::vector depends; - if (const char* autogenDepends = - target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { - cmSystemTools::ExpandListArgument(autogenDepends, depends); - } - // Compose command lines cmCustomCommandLines commandLines; { @@ -628,6 +603,24 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( autogenComment = "Automatic " + tools + " for target " + target->GetName(); } + // Create autogen target build directory and add it to the clean files + cmSystemTools::MakeDirectory(autogenBuildDir); + makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", + autogenBuildDir.c_str(), false); + + // Create autogen target includes directory and + // add it to the origin target INCLUDE_DIRECTORIES + if (mocEnabled || uicEnabled) { + const std::string incsDir = autogenBuildDir + "include"; + cmSystemTools::MakeDirectory(incsDir); + target->AddIncludeDirectory(incsDir, true); + } + + // Register moc compilation file as generated + if (mocEnabled) { + autogenProvides.push_back(autogenBuildDir + "moc_compilation.cpp"); + } + #if defined(_WIN32) && !defined(__CYGWIN__) bool usePRE_BUILD = false; cmGlobalGenerator* gg = lg->GetGlobalGenerator(); @@ -639,71 +632,95 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( // This also works around a VS 11 bug that may skip updating the target: // https://connect.microsoft.com/VisualStudio/feedback/details/769495 usePRE_BUILD = vsgg->GetVersion() >= cmGlobalVisualStudioGenerator::VS7; - if (usePRE_BUILD) { - // If the autogen target depends on an other target - // don't use PRE_BUILD - for (std::vector::iterator it = depends.begin(); - it != depends.end(); ++it) { - if (!makefile->FindTargetToUse(it->c_str())) { - usePRE_BUILD = false; - break; - } - } - } } #endif - if (rccEnabled) { + // Initialize autogen target dependencies + if (const char* deps = target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { + cmSystemTools::ExpandListArgument(deps, autogenDepends); + } + // Add link library targets to the autogen dependencies + { + const cmTarget::LinkLibraryVectorType& libVec = + target->Target->GetOriginalLinkLibraries(); + for (cmTarget::LinkLibraryVectorType::const_iterator it = libVec.begin(); + it != libVec.end(); ++it) { + const std::string& libName = it->first; + if (makefile->FindTargetToUse(libName) != CM_NULLPTR) { + autogenDepends.push_back(libName); + } + } + } + { cmFilePathChecksum fpathCheckSum(makefile); + // Iterate over all source files std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc" && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { - { + if (!PropertyEnabled(sf, "SKIP_AUTOGEN")) { + const std::string ext = sf->GetExtension(); + // Add generated file that will be scanned by moc or uic to + // the dependencies + if (mocEnabled || uicEnabled) { + const cmSystemTools::FileFormat fileType = + cmSystemTools::GetFileFormat(ext.c_str()); + if ((fileType == cmSystemTools::CXX_FILE_FORMAT) || + (fileType == cmSystemTools::HEADER_FILE_FORMAT)) { + if (PropertyEnabled(sf, "GENERATED")) { + if ((mocEnabled && !PropertyEnabled(sf, "SKIP_AUTOMOC")) || + (uicEnabled && !PropertyEnabled(sf, "SKIP_AUTOUIC"))) { + autogenDepends.push_back( + cmsys::SystemTools::GetRealPath(sf->GetFullPath())); + } + } + } + } + // Process rcc enabled files + if (rccEnabled && (ext == "qrc") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // Run cmake again when .qrc file changes - makefile->AddCMakeDependFile(absFile); - - std::string rccOutputFile = autogenBuildDir; - rccOutputFile += fpathCheckSum.getPart(absFile); - rccOutputFile += "/qrc_"; - rccOutputFile += - cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); - rccOutputFile += ".cpp"; - - // Add rcc output file to origin target sources - cmSourceFile* gf = makefile->GetOrCreateSource(rccOutputFile, true); - gf->SetProperty("SKIP_AUTOGEN", "On"); - target->AddSource(rccOutputFile); - // Register rcc output file as generated - autogenOutputFiles.push_back(rccOutputFile); + // Compose rcc output file name + { + std::string rccOut = autogenBuildDir; + rccOut += fpathCheckSum.getPart(absFile); + rccOut += "/qrc_"; + rccOut += + cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); + rccOut += ".cpp"; + + // Register rcc output file as generated + autogenProvides.push_back(rccOut); + + // Add rcc output file to origin target sources + cmSourceFile* gf = makefile->GetOrCreateSource(rccOut, true); + gf->SetProperty("SKIP_AUTOGEN", "On"); + target->AddSource(rccOut); + } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" -#if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD -#endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - { - std::string error; - if (!cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends, &error)) { - cmSystemTools::Error(error.c_str()); - } - } + if (PropertyEnabled(sf, "GENERATED")) { + // Add generated qrc file to the dependencies + autogenDepends.push_back(absFile); + } else { + // Run cmake again when .qrc file changes + makefile->AddCMakeDependFile(absFile); + + // Add the qrc input files to the dependencies + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, autogenDepends, + &error)) { + cmSystemTools::Error(error.c_str()); + } #if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; #endif - } } } } @@ -712,12 +729,21 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #if defined(_WIN32) && !defined(__CYGWIN__) if (usePRE_BUILD) { + // If the autogen target depends on an other target don't use PRE_BUILD + for (std::vector::iterator it = autogenDepends.begin(); + it != autogenDepends.end(); ++it) { + if (makefile->FindTargetToUse(*it) != CM_NULLPTR) { + usePRE_BUILD = false; + break; + } + } + } + if (usePRE_BUILD) { // Add the pre-build command directly to bypass the OBJECT_LIBRARY // rejection in cmMakefile::AddCustomCommandToTarget because we know // PRE_BUILD will work for an OBJECT_LIBRARY in this specific case. std::vector no_output; - std::vector no_byproducts; - cmCustomCommand cc(makefile, no_output, no_byproducts, depends, + cmCustomCommand cc(makefile, no_output, autogenProvides, autogenDepends, commandLines, autogenComment.c_str(), workingDirectory.c_str()); cc.SetEscapeOldStyle(false); @@ -728,7 +754,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( { cmTarget* autogenTarget = makefile->AddUtilityCommand( autogenTargetName, true, workingDirectory.c_str(), - /*byproducts=*/autogenOutputFiles, depends, commandLines, false, + /*byproducts=*/autogenProvides, autogenDepends, commandLines, false, autogenComment.c_str()); cmGeneratorTarget* gt = new cmGeneratorTarget(autogenTarget, lg); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c52eecc303f8cb3de406d788914a2071cef4e60f commit c52eecc303f8cb3de406d788914a2071cef4e60f Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:32:33 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Initializer cleanups diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2b53982..2829c8a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -129,18 +129,17 @@ static void AddDefinitionEscaped(cmMakefile* makefile, const char* key, key, cmOutputConverter::EscapeForCMake(cmJoin(values, ";")).c_str()); } -static void SetupSourceFiles(cmGeneratorTarget const* target, +static void AcquireScanFiles(cmGeneratorTarget const* target, std::vector& mocUicSources, std::vector& mocUicHeaders, std::vector& mocSkipList, std::vector& uicSkipList) { - std::vector srcFiles; - target->GetConfigCommonSourceFiles(srcFiles); - const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); + std::vector srcFiles; + target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; @@ -478,47 +477,44 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc") { - const bool skip = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) || - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC")); - if (!skip) { - const std::string absFile = - cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // qrc file - _rcc_files.push_back(absFile); - // qrc file entries - { - std::string entriesList = "{"; - // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::string error; - std::vector files; - if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files, &error)) { - entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); - } else { - cmSystemTools::Error(error.c_str()); - } + if ((sf->GetExtension() == "qrc") && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + const std::string absFile = + cmsys::SystemTools::GetRealPath(sf->GetFullPath()); + // qrc file + _rcc_files.push_back(absFile); + // qrc file entries + { + std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files, &error)) { + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); + } else { + cmSystemTools::Error(error.c_str()); } - entriesList += "}"; - _rcc_inputs.push_back(entriesList); } - // rcc options for this qrc file - { - // Merged target and file options - std::vector rccOptions(rccOptionsTarget); - if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { - std::vector optsVec; - cmSystemTools::ExpandListArgument(prop, optsVec); - RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); - } - // Only store non empty options lists - if (!rccOptions.empty()) { - rccFileFiles.push_back(absFile); - rccFileOptions.push_back( - cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); - } + entriesList += "}"; + _rcc_inputs.push_back(entriesList); + } + // rcc options for this qrc file + { + // Merged target and file options + std::vector rccOptions(rccOptionsTarget); + if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { + std::vector optsVec; + cmSystemTools::ExpandListArgument(prop, optsVec); + RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); + } + // Only store non empty options lists + if (!rccOptions.empty()) { + rccFileFiles.push_back(absFile); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } @@ -550,6 +546,9 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmMakefile* makefile = target->Target->GetMakefile(); // Create a custom target for running generators at buildtime + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string autogenBuildDir = GetAutogenTargetBuildDir(target); const std::string workingDirectory = @@ -571,8 +570,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", autogenBuildDir.c_str(), false); - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC")) { + if (mocEnabled || uicEnabled) { // Create autogen target includes directory and // add it to the origin target INCLUDE_DIRECTORIES const std::string incsDir = autogenBuildDir + "include"; @@ -580,7 +578,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddIncludeDirectory(incsDir, true); } - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { // Register moc compilation file as generated autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); } @@ -608,13 +606,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( std::string autogenComment; { std::vector toolNames; - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { toolNames.push_back("MOC"); } - if (target->GetPropertyAsBool("AUTOUIC")) { + if (uicEnabled) { toolNames.push_back("UIC"); } - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { toolNames.push_back("RCC"); } @@ -655,7 +653,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( } #endif - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { cmFilePathChecksum fpathCheckSum(makefile); std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); @@ -767,38 +765,37 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( std::map configMocDefines; std::map configUicOptions; { - // create a custom target for running generators at buildtime: + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string qtMajorVersion = GetQtMajorVersion(target); - AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); - AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); - AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); - std::vector _sources; std::vector _headers; - std::vector mocSkipList; - std::vector uicSkipList; - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC") || - target->GetPropertyAsBool("AUTORCC")) { - SetupSourceFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled || uicEnabled || rccEnabled) { + std::vector mocSkipList; + std::vector uicSkipList; + AcquireScanFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled) { + MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, + mocSkipList, configMocIncludes, configMocDefines); + } + if (uicEnabled) { + UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, + configUicOptions); + } + if (rccEnabled) { + RccSetupAutoTarget(target, qtMajorVersion); + } } + + AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); + AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); + AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); AddDefinitionEscaped(makefile, "_sources", _sources); AddDefinitionEscaped(makefile, "_headers", _headers); - - if (target->GetPropertyAsBool("AUTOMOC")) { - MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, - mocSkipList, configMocIncludes, configMocDefines); - } - if (target->GetPropertyAsBool("AUTOUIC")) { - UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, - configUicOptions); - } - if (target->GetPropertyAsBool("AUTORCC")) { - RccSetupAutoTarget(target, qtMajorVersion); - } } // Generate config file https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=86e4fcadd5edc38a9291366de61ca9fe63eae4f8 commit 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:06:02 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Add support for generated .qrc files diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index 5146b1a..dcd61a3 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -24,47 +24,62 @@ static std::string utilStripCR(std::string const& line) /// @brief Reads the resource files list from from a .qrc file - Qt4 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt4(const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - // Qrc file directory - std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); - if (!qrcDir.empty()) { - qrcDir += '/'; - } - - // Read file into string + bool allGood = true; + // Read qrc file content into string std::string qrcContents; { - std::ostringstream stream; - stream << cmsys::ifstream(fileName).rdbuf(); - qrcContents = stream.str(); + cmsys::ifstream ifs(fileName.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + qrcContents = osst.str(); + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file not readable:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } + allGood = false; + } } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); + if (allGood) { + // qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = qrcDir + qrcEntry; + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); } - files.push_back(qrcEntry); } - return true; + return allGood; } /// @brief Reads the resource files list from from a .qrc file - Qt5 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt5(const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { if (rccCommand.empty()) { cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); @@ -104,11 +119,14 @@ static bool RccListInputsQt5(const std::string& rccCommand, CM_NULLPTR, cmSystemTools::OUTPUT_NONE); } if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc list process for " << fileName + << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << "\n"; + *errorMessage = ost.str(); + } return false; } @@ -134,10 +152,12 @@ static bool RccListInputsQt5(const std::string& rccCommand, std::string::size_type pos = eline.find(searchString); if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc lists unparsable output:\n" + << cmQtAutoGeneratorCommon::Quoted(eline) << "\n"; + *errorMessage = ost.str(); + } return false; } pos += searchString.length(); @@ -154,13 +174,42 @@ static bool RccListInputsQt5(const std::string& rccCommand, const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; +std::string cmQtAutoGeneratorCommon::Quoted(const std::string& text) +{ + static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", + "\b", "\\b", "\f", "\\f", "\n", "\\n", + "\r", "\\r", "\t", "\\t", "\v", "\\v" }; + + std::string res = text; + for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); + it += 2) { + cmSystemTools::ReplaceString(res, *it, *(it + 1)); + } + res = '"' + res; + res += '"'; + return res; +} + bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - if (qtMajorVersion == "4") { - return RccListInputsQt4(fileName, files); + bool allGood = false; + if (cmsys::SystemTools::FileExists(fileName.c_str())) { + if (qtMajorVersion == "4") { + allGood = RccListInputsQt4(fileName, files, errorMessage); + } else { + allGood = RccListInputsQt5(rccCommand, fileName, files, errorMessage); + } + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file does not exist:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } } - return RccListInputsQt5(rccCommand, fileName, files); + return allGood; } diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h index 48abacb..ee97b71 100644 --- a/Source/cmQtAutoGeneratorCommon.h +++ b/Source/cmQtAutoGeneratorCommon.h @@ -17,13 +17,18 @@ public: static const char* listSep; public: + /// @brief Returns a the string escaped and enclosed in quotes + /// + static std::string Quoted(const std::string& text); + /// @brief Reads the resource files list from from a .qrc file /// @arg fileName Must be the absolute path of the .qrc file /// @return True if the rcc file was successfully parsed static bool RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files); + std::vector& files, + std::string* errorMessage = CM_NULLPTR); }; #endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 0f29e02..2b53982 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -490,13 +490,15 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // qrc file entries { std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files)) { + qtMajorVersion, rccCommand, absFile, files, &error)) { entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { - return; + cmSystemTools::Error(error.c_str()); } } entriesList += "}"; @@ -690,8 +692,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #endif ) { if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends); + { + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends, &error)) { + cmSystemTools::Error(error.c_str()); + } + } #if defined(_WIN32) && !defined(__CYGWIN__) // Cannot use PRE_BUILD because the resource files themselves // may not be sources within the target so VS may not know the diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 4d14e99..2510066 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -37,23 +37,9 @@ static const char* SettingsKeyRcc = "AM_RCC_OLD_SETTINGS"; // -- Static functions -/** - * @brief Returns a the string escaped and enclosed in quotes - */ -static std::string Quoted(const std::string& text) +inline static std::string Quoted(const std::string& text) { - static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", - "\b", "\\b", "\f", "\\f", "\n", "\\n", - "\r", "\\r", "\t", "\\t", "\v", "\\v" }; - - std::string res = text; - for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); - it += 2) { - cmSystemTools::ReplaceString(res, *it, *(it + 1)); - } - res = '"' + res; - res += '"'; - return res; + return cmQtAutoGeneratorCommon::Quoted(text); } static void InfoGet(cmMakefile* makefile, const char* key, std::string& value) @@ -403,7 +389,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } else { this->LogError( "AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " - "a multiple of 2"); + "a multiple of 2 in:\n" + + Quoted(filename)); return false; } } @@ -431,8 +418,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: Uic files/options lists size missmatch in: " + - filename); + "AutoGen: Error: Uic files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -447,7 +434,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); - if (rccFilesVec.size() != rccOptionsVec.size()) { + if (rccFilesVec.size() == rccOptionsVec.size()) { for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); @@ -459,8 +446,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC files/options lists size missmatch in: " + - filename); + "AutoGen: Error: RCC files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -484,8 +471,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + - filename); + "AutoGen: Error: RCC sources/inputs lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -1574,13 +1561,30 @@ bool cmQtAutoGenerators::RccGenerateFile(const std::string& rccInputFile, // Test if the resources list file is newer than build file generateRcc = FileAbsentOrOlder(rccBuildFile, rccInputFile); if (!generateRcc) { - // Test if any resource file is newer than the build file - const std::vector& files = this->RccInputs[rccInputFile]; - for (std::vector::const_iterator it = files.begin(); - it != files.end(); ++it) { - if (FileAbsentOrOlder(rccBuildFile, *it)) { - generateRcc = true; - break; + // Acquire input file list + std::vector readFiles; + const std::vector* files = &this->RccInputs[rccInputFile]; + if (files->empty()) { + // Read input file list from qrc file + std::string error; + if (cmQtAutoGeneratorCommon::RccListInputs( + this->QtMajorVersion, this->RccExecutable, rccInputFile, + readFiles, &error)) { + files = &readFiles; + } else { + files = CM_NULLPTR; + this->LogError(error); + this->RunRccFailed = true; + } + } + // Test if any input file is newer than the build file + if (files != CM_NULLPTR) { + for (std::vector::const_iterator it = files->begin(); + it != files->end(); ++it) { + if (FileAbsentOrOlder(rccBuildFile, *it)) { + generateRcc = true; + break; + } } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab commit 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab Author: Sebastian Holtermann AuthorDate: Thu Mar 2 12:32:47 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Embrace qrc file lists in braces in AutogenInfo.cmake This allows empty .qrc files in any list position. diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index c42f71d..5146b1a 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -152,7 +152,7 @@ static bool RccListInputsQt5(const std::string& rccCommand, // - Class definitions -const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; +const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 151f39c..0f29e02 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -489,16 +489,17 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, _rcc_files.push_back(absFile); // qrc file entries { - std::string entriesList; + std::string entriesList = "{"; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( qtMajorVersion, rccCommand, absFile, files)) { - entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } } + entriesList += "}"; _rcc_inputs.push_back(entriesList); } // rcc options for this qrc file diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index bc9c511..4d14e99 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -441,49 +441,53 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( // - Rcc if (this->RccEnabled()) { InfoGet(makefile, "AM_RCC_SOURCES", this->RccSources); + // File options { std::vector rccFilesVec; std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); if (rccFilesVec.size() != rccOptionsVec.size()) { + for (std::vector::iterator + fileIt = rccFilesVec.begin(), + optionIt = rccOptionsVec.begin(); + fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { + // Replace item separator + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); + this->RccOptions[*fileIt] = *optionIt; + } + } else { this->LogError( "AutoGen: Error: RCC files/options lists size missmatch in: " + filename); return false; } - for (std::vector::iterator fileIt = rccFilesVec.begin(), - optionIt = rccOptionsVec.begin(); - fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, - cmQtAutoGeneratorCommon::listSep, ";"); - this->RccOptions[*fileIt] = *optionIt; - } } + // File lists { std::vector rccInputLists; InfoGet(makefile, "AM_RCC_INPUTS", rccInputLists); - - // qrc files in the end of the list may have been empty - if (rccInputLists.size() < this->RccSources.size()) { - rccInputLists.resize(this->RccSources.size()); - } - if (this->RccSources.size() != rccInputLists.size()) { + if (this->RccSources.size() == rccInputLists.size()) { + for (std::vector::iterator + fileIt = this->RccSources.begin(), + inputIt = rccInputLists.begin(); + fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { + // Remove braces + *inputIt = inputIt->substr(1, inputIt->size() - 2); + // Replace item separator + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); + std::vector rccInputFiles; + cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); + this->RccInputs[*fileIt] = rccInputFiles; + } + } else { this->LogError( "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + filename); return false; } - for (std::vector::iterator - fileIt = this->RccSources.begin(), - inputIt = rccInputLists.begin(); - fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, - cmQtAutoGeneratorCommon::listSep, ";"); - std::vector rccInputFiles; - cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); - this->RccInputs[*fileIt] = rccInputFiles; - } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f9531b373f27367ac0d8c4beae474768b7745b59 commit f9531b373f27367ac0d8c4beae474768b7745b59 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:34:35 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Remove unused variables diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 3a7951a..151f39c 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -135,15 +135,12 @@ static void SetupSourceFiles(cmGeneratorTarget const* target, std::vector& mocSkipList, std::vector& uicSkipList) { - cmMakefile* makefile = target->Target->GetMakefile(); - std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); - cmFilePathChecksum fpathCheckSum(makefile); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=100723035ac228187e60f549dd38c8f89c447b40 commit 100723035ac228187e60f549dd38c8f89c447b40 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:08:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Add cmQtAutogeneratorCommon class with shared types and functions diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 76b98fc..5f2cbc3 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -344,6 +344,8 @@ set(SRCS cmPropertyDefinitionMap.h cmPropertyMap.cxx cmPropertyMap.h + cmQtAutoGeneratorCommon.cxx + cmQtAutoGeneratorCommon.h cmQtAutoGeneratorInitializer.cxx cmQtAutoGeneratorInitializer.h cmQtAutoGenerators.cxx diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx new file mode 100644 index 0000000..c42f71d --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -0,0 +1,166 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmQtAutoGeneratorCommon.h" +#include "cmAlgorithms.h" +#include "cmSystemTools.h" + +#include +#include + +#include + +// - Static functions + +static std::string utilStripCR(std::string const& line) +{ + // Strip CR characters rcc may have printed (possibly more than one!). + std::string::size_type cr = line.find('\r'); + if (cr != line.npos) { + return line.substr(0, cr); + } + return line; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt4 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt4(const std::string& fileName, + std::vector& files) +{ + // Qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; + } + + // Read file into string + std::string qrcContents; + { + std::ostringstream stream; + stream << cmsys::ifstream(fileName).rdbuf(); + qrcContents = stream.str(); + } + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); + } + return true; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt5 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt5(const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (rccCommand.empty()) { + cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); + return false; + } + + // Read rcc features + bool hasDashDashList = false; + { + std::vector command; + command.push_back(rccCommand); + command.push_back("--help"); + std::string rccStdOut; + std::string rccStdErr; + int retVal = 0; + bool result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + if (result && retVal == 0 && + rccStdOut.find("--list") != std::string::npos) { + hasDashDashList = true; + } + } + + // Run rcc list command + bool result = false; + int retVal = 0; + std::string rccStdOut; + std::string rccStdErr; + { + std::vector command; + command.push_back(rccCommand); + command.push_back(hasDashDashList ? "--list" : "-list"); + command.push_back(fileName); + result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + } + if (!result || retVal) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + + // Parse rcc std output + { + std::istringstream ostr(rccStdOut); + std::string oline; + while (std::getline(ostr, oline)) { + oline = utilStripCR(oline); + if (!oline.empty()) { + files.push_back(oline); + } + } + } + // Parse rcc error output + { + std::istringstream estr(rccStdErr); + std::string eline; + while (std::getline(estr, eline)) { + eline = utilStripCR(eline); + if (cmHasLiteralPrefix(eline, "RCC: Error in")) { + static std::string searchString = "Cannot find file '"; + + std::string::size_type pos = eline.find(searchString); + if (pos == std::string::npos) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc lists unparsable output " << eline + << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + pos += searchString.length(); + std::string::size_type sz = eline.size() - pos - 1; + files.push_back(eline.substr(pos, sz)); + } + } + } + + return true; +} + +// - Class definitions + +const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; + +bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (qtMajorVersion == "4") { + return RccListInputsQt4(fileName, files); + } + return RccListInputsQt5(rccCommand, fileName, files); +} diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h new file mode 100644 index 0000000..48abacb --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.h @@ -0,0 +1,29 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmQtAutoGeneratorCommon_h +#define cmQtAutoGeneratorCommon_h + +#include // IWYU pragma: keep +#include +#include + +class cmGeneratorTarget; +class cmLocalGenerator; + +class cmQtAutoGeneratorCommon +{ + // - Types and statics +public: + static const char* listSep; + +public: + /// @brief Reads the resource files list from from a .qrc file + /// @arg fileName Must be the absolute path of the .qrc file + /// @return True if the rcc file was successfully parsed + static bool RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files); +}; + +#endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index a45b3d5..3a7951a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGeneratorInitializer.h" +#include "cmQtAutoGeneratorCommon.h" #include "cmAlgorithms.h" #include "cmCustomCommandLines.h" @@ -44,16 +45,6 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } -static std::string utilStripCR(std::string const& line) -{ - // Strip CR characters rcc may have printed (possibly more than one!). - std::string::size_type cr = line.find('\r'); - if (cr != line.npos) { - return line.substr(0, cr); - } - return line; -} - static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -361,7 +352,8 @@ static void UicSetupAutoTarget( uiFileFiles.push_back(absFile); { std::string opts = sf->GetProperty("AUTOUIC_OPTIONS"); - cmSystemTools::ReplaceString(opts, ";", "@list_sep@"); + cmSystemTools::ReplaceString(opts, ";", + cmQtAutoGeneratorCommon::listSep); uiFileOptions.push_back(opts); } } @@ -469,146 +461,12 @@ static void RccMergeOptions(std::vector& opts, opts.insert(opts.end(), extraOpts.begin(), extraOpts.end()); } -/// @brief Reads the resource files list from from a .qrc file - Qt5 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt5(cmSourceFile* sf, cmGeneratorTarget const* target, - std::vector& depends) -{ - const std::string rccCommand = RccGetExecutable(target, "5"); - if (rccCommand.empty()) { - cmSystemTools::Error("AUTOGEN: error: rcc executable not available\n"); - return false; - } - - bool hasDashDashList = false; - // Read rcc features - { - std::vector command; - command.push_back(rccCommand); - command.push_back("--help"); - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (result && retVal == 0 && - rccStdOut.find("--list") != std::string::npos) { - hasDashDashList = true; - } - } - // Run rcc list command - std::vector command; - command.push_back(rccCommand); - command.push_back(hasDashDashList ? "--list" : "-list"); - - std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - command.push_back(absFile); - - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << sf->GetFullPath() - << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - - // Parse rcc list output - { - std::istringstream ostr(rccStdOut); - std::string oline; - while (std::getline(ostr, oline)) { - oline = utilStripCR(oline); - if (!oline.empty()) { - depends.push_back(oline); - } - } - } - - { - std::istringstream estr(rccStdErr); - std::string eline; - while (std::getline(estr, eline)) { - eline = utilStripCR(eline); - if (cmHasLiteralPrefix(eline, "RCC: Error in")) { - static std::string searchString = "Cannot find file '"; - - std::string::size_type pos = eline.find(searchString); - if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - pos += searchString.length(); - std::string::size_type sz = eline.size() - pos - 1; - depends.push_back(eline.substr(pos, sz)); - } - } - } - - return true; -} - -/// @brief Reads the resource files list from from a .qrc file - Qt4 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt4(cmSourceFile* sf, - std::vector& depends) -{ - // Read file into string - std::string qrcContents; - { - std::ostringstream stream; - stream << cmsys::ifstream(sf->GetFullPath().c_str()).rdbuf(); - qrcContents = stream.str(); - } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); - } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = sf->GetLocation().GetDirectory() + "/" + qrcEntry; - } - depends.push_back(qrcEntry); - } - return true; -} - -/// @brief Reads the resource files list from from a .qrc file -/// @return True if the rcc file was successfully parsed -static bool RccListInputs(const std::string& qtMajorVersion, cmSourceFile* sf, - cmGeneratorTarget const* target, - std::vector& depends) -{ - if (qtMajorVersion == "5") { - return RccListInputsQt5(sf, target, depends); - } - return RccListInputsQt4(sf, depends); -} - static void RccSetupAutoTarget(cmGeneratorTarget const* target, const std::string& qtMajorVersion) { cmMakefile* makefile = target->Target->GetMakefile(); const bool qtMajorVersion5 = (qtMajorVersion == "5"); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector _rcc_files; std::vector _rcc_inputs; std::vector rccFileFiles; @@ -636,9 +494,10 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::vector depends; - if (RccListInputs(qtMajorVersion, sf, target, depends)) { - entriesList = cmJoin(depends, "@list_sep@"); + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files)) { + entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } @@ -657,19 +516,19 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // Only store non empty options lists if (!rccOptions.empty()) { rccFileFiles.push_back(absFile); - rccFileOptions.push_back(cmJoin(rccOptions, "@list_sep@")); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } } } + AddDefinitionEscaped(makefile, "_qt_rcc_executable", rccCommand); AddDefinitionEscaped(makefile, "_rcc_files", _rcc_files); AddDefinitionEscaped(makefile, "_rcc_inputs", _rcc_inputs); AddDefinitionEscaped(makefile, "_rcc_options_files", rccFileFiles); AddDefinitionEscaped(makefile, "_rcc_options_options", rccFileOptions); - AddDefinitionEscaped(makefile, "_qt_rcc_executable", - RccGetExecutable(target, qtMajorVersion)); } void cmQtAutoGeneratorInitializer::InitializeAutogenSources( @@ -696,6 +555,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( const std::string workingDirectory = cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector autogenOutputFiles; // Remove old settings on cleanup @@ -825,20 +685,22 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddSource(rccOutputFile); // Register rcc output file as generated autogenOutputFiles.push_back(rccOutputFile); - } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" + + if (lg->GetGlobalGenerator()->GetName() == "Ninja" #if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD + || usePRE_BUILD #endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - RccListInputs(qtMajorVersion, sf, target, depends); + ) { + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends); #if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; #endif + } } } } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index c83f9a9..bc9c511 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGenerators.h" +#include "cmQtAutoGeneratorCommon.h" #include #include @@ -178,7 +179,7 @@ static std::string JoinOptionsMap( for (std::map::const_iterator it = opts.begin(); it != opts.end(); ++it) { if (it != opts.begin()) { - result += "@list_sep@"; + result += cmQtAutoGeneratorCommon::listSep; } result += it->first; result += "==="; @@ -424,7 +425,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = uicFilesVec.begin(), optionIt = uicOptionsVec.begin(); fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->UicOptions[*fileIt] = *optionIt; } } else { @@ -453,7 +455,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->RccOptions[*fileIt] = *optionIt; } } @@ -475,7 +478,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = this->RccSources.begin(), inputIt = rccInputLists.begin(); fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); std::vector rccInputFiles; cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); this->RccInputs[*fileIt] = rccInputFiles; ----------------------------------------------------------------------- Summary of changes: Source/CMakeLists.txt | 2 + Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++------------ Source/cmQtAutoGenerators.cxx | 225 ++++++---- Source/cmQtAutoGenerators.h | 2 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + .../{automoc_rerun => mocRerun}/CMakeLists.txt | 14 +- .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + .../{autorcc_depends => rccDepends}/CMakeLists.txt | 15 +- .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- .../{autorcc_depends => rccDepends}/test_res1.cpp | 0 30 files changed, 804 insertions(+), 444 deletions(-) create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp rename Tests/QtAutogen/{automoc_rerun => mocRerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) rename Tests/QtAutogen/{autorcc_depends => rccDepends}/test_res1.cpp (100%) hooks/post-receive -- CMake From robert.maynard at kitware.com Fri Mar 3 10:38:52 2017 From: robert.maynard at kitware.com (Robert Maynard) Date: Fri, 3 Mar 2017 10:38:52 -0500 (EST) Subject: [Cmake-commits] CMake annotated tag, v3.8.0-rc2, created. v3.8.0-rc2 Message-ID: <20170303153852.21E48FA194@public.kitware.com> 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 annotated tag, v3.8.0-rc2 has been created at 3e8a1a2821c247ffe4b1ee297593b7fd9c7be0c3 (tag) tagging e1adec32b8325fb731da084e99acd6070f5e39bf (commit) replaces v3.8.0-rc1 tagged by Brad King on Fri Mar 3 09:35:34 2017 -0500 - Log ----------------------------------------------------------------- CMake 3.8.0-rc2 -----BEGIN PGP SIGNATURE----- iQJKBAABCAA0FiEExsJlMku+vcNQtRPQLSzvEDSSFoQFAli5fzYWHGJyYWQua2lu Z0BraXR3YXJlLmNvbQAKCRAtLO8QNJIWhHn/D/0XbbzzKNc+LGFrGEbjHLw0XACJ RcQi6gXYgqb69tSDI4w3Uga+NNQ2Wr3mcL3c6lGGnW24TJGneCm9Jyj/Msk30MPH VtAQQ50yWToCPH9B1jMItG34Y22CWbirJZPFMFYAM1eDF53k3L9rBQf5NlbHinfm FZ3JvqUOrHvpvcM2k7gmr80z082JfA0Yz5X24wUmxkxwXggDVdP8dn/DwjQGOFHq rYpSIRvwaP/x8ZZqHiTlAq4cWM6ucfvrOTkT37UCbl0j/tr176m4emcbabcvQ+Aj sKfNDYsr9Xv/Xcf1j46Z96Mrhbph71C6TGPcVAQeMU3AacZP/UvoSOZt/wfmhGOn DHLNLfAfLHSCVkFuqWh2YkdrgIwBYsWqrZq2Kxu5DRMnto0JjoZRYuI1zAEJPABE wosHgpD4AsFc+CPMqeS3xKOssD9Eg43VyoNmvafdNJlYOfrZz/+fTv8vpgpQnHZR XBUss5h7LR/phpnCjZVNhWIPDUvD4niiFTv+U5O6NE64Y2kTvlZXslo847nts2VF 0VVlrfiMVubbYGN6qVBgkktML9nlKm02RaqL5MNQdjQqd4+ux1dCbJdM+GMb97Gz 5FY8MFxNl7vyQUvE7KF7wjByPWzbL7gFfBwIFR3aazQqFFUjxGEPXtYijYmasS03 IPHYGsHBTVFMAqZmmw== =bYVD -----END PGP SIGNATURE----- Ben Boeckel (1): FindGTK2: handle old libsigc++ versions Bjoern Thiel (1): FindCUDA: Fix PTX selection with multiple architectures Brad Davis (1): FindVulkan: Update for LunarG SDK import library location on Windows Brad King (62): Utilities/Sphinx: Port qthelp css workaround to Sphinx 1.4 Help: Fix cmake code block warnings produced by Sphinx 1.4 Merge branch 'sphinx-1.4' into release Merge branch 'cmake_provide_include_dir_for_toolkit' into release Help: Improve execute_process ENCODING option documentation execute_process: Restore no-decoding default behavior Merge branch 'execute_process-default-encoding' into release clang-format.bash: Format CUDA source files too Modules: Run clang-format on CUDA code Tests: Run clang-format on CUDA code Merge branch 'backport-clang-format-cuda' into release Tests: Add case for CUDA with C but not C++ CUDA: Link to standard system libraries when linking as CUDA Merge branch 'cuda-with-c' into release CUDA: Do not use non-existent -Os flag for nvcc Merge branch 'cuda-no-Os' into release CUDA: Fix test cases to not override CUDA flags CUDA: Fix default compiler flags on Windows Merge branch 'cuda-msvc-flags' into release ctest_update: Fix svn log and external loading Merge branch 'fix-ctest_update-svn' into release-3.7 Merge branch 'fix-ctest_update-svn' into release Merge branch 'autogen_fix_3.8' into release FindHDF5: Restore HDF5__INCLUDE_DIR advanced cache entry mark FindHDF5: Fix search for language-specific header file Merge branch 'FindHDF5-fix-header-langs' into release Windows: Fix inconsistent behavior on changes to case of path to cmake Merge branch 'fix-CMP0017-path-case' into release CUDA: Fix boolean interpretation of CUDA_SEPARABLE_COMPILATION ExternalProject: Clarify documented role of `INSTALL_DIR` Merge branch 'FindGTK2-old-sigc++' into release Merge branch 'cuda-separable-bool' into release Merge branch 'ExternalProject-update-docs' into release VS2017: If Win 8.1 SDK is not available, use Win 10 SDK Merge branch 'vs2017-fallback-sdk' into release Merge branch 'FindCUDA-fix-init' into release Merge branch 'doc-cmake-language-makefile-vars' into release Define a custom Git attribute to mark source files as generated Define a custom Git attribute to mark sources using our C style clang-format.bash: Use Git attributes to mark files for formatting Merge branch 'clang-format-attrs' into release VS: Fix .vcxproj indentation Merge branch 'vcxproj-indentation' into release Revert "Ninja: Use full path for all source files" Merge branch 'ninja-no-full-path' into release Fix COMPILE_PDB_NAME when used on an OBJECT library Merge branch 'object-library-compile-pdb' into release ExternalProject: Run `git checkout` with `--` to clarify arguments Merge branch 'ExternalProject-checkout-clarify' into release Merge branch 'kwiml-test-gcc-format-security' into release cmFindLibraryCommand: Refactor AddArchitecturePath logic find_library: Skip 'lib => lib' searches if one symlinks the other Merge branch 'find-libarch-not-symlink' into release cmOrderDirectories: Factor out implicit directory check cmOrderDirectories: Consider symlinks when checking implicit directories Merge branch 'backport-implicit-dir-symlinks' into implicit-dir-symlinks Tests: Add case for RPATH exclusion of symlinks to implicit directories Merge branch 'csproj_add_free_source_tags' into release Merge branch 'implicit-dir-symlinks' into release Merge branch 'FindVulkan-update' into release Merge branch 'FindJNI-archlinux-jvm-paths' into release CMake 3.8.0-rc2 Gregor Jasny (1): Utilities/Sphinx: Port cmake extension to Sphinx 1.4 Kitsu (1): FindJNI: Add jvm paths for Arch Linux Michael Maltese (1): Help: Clarify 'make-style' variable references in cmake-language(7) Michael St?rmer (3): VS: add VS_CSHARP_ sourcefile property VS: add CSharpUtilities module VS: add test for VS_CSHARP_* source file property Orion Poplawski (1): KWIML: Add -Wno-format-security to tolerate -Werror=format-security Robert Maynard (1): CUDA: Detect the toolkit include directories Sebastian Holtermann (1): Autogen: Fix headers not skipped Wilfried Goesgens (1): ExternalProject: Clarify documented role of `INSTALL_COMMAND` ----------------------------------------------------------------------- hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 11:35:35 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 11:35:35 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-341-g4e8ffb9 Message-ID: <20170303163535.9026FFA7BE@public.kitware.com> 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 51581b7074637074499ee9246428b787b6406096 (commit) discards b6030828f327802cc551995d3f4524b247bac2ca (commit) discards ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) discards c18462d8c53725c98268b3a91fda7c025cb67eaf (commit) discards ade5ad24e6571ea1e102bb2203297d1d4cdfa952 (commit) discards 09566b4ad5f909de0a8b2127e613b7cd0c206d47 (commit) discards eb49caf1836f0f80e897f614f73616d6b3574dd9 (commit) discards 305ef6a006de0fa6ae86752a3a1c96d2570a99f2 (commit) discards ffba33ff51b6c0acfe3d16e5632d927d87c5d24b (commit) discards 907a6e85862d9edb37232015994df48bc3d80c8d (commit) discards 28878dbdd49dce43a15a98062696af30f26800cf (commit) discards 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) discards 614917f70e292763b14b1c388e92714bac31fa9c (commit) discards 505ed4e76f3043cdb5d45effc4791455136560df (commit) discards eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) discards c511576c620ecbc614591722ad1b381c8a7d2528 (commit) discards 4ef593ed4940229437dbbad7707a6461846318f8 (commit) discards bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) discards c52eecc303f8cb3de406d788914a2071cef4e60f (commit) discards 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) discards 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) discards f9531b373f27367ac0d8c4beae474768b7745b59 (commit) discards 100723035ac228187e60f549dd38c8f89c447b40 (commit) discards b1cf272646abab16e53bc3e7083629ee23ec089d (commit) discards 83242107ad6514dff6a8b6946467838f4d4104be (commit) discards 3bf5d33ba90dc3478a928f47507e004d905b7d87 (commit) discards b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 (commit) discards a27f7433686292d5c54d42c394bd620da3b3c2d6 (commit) discards 16114ac346e661d7b3bb50dfd09a1a8f361751a4 (commit) discards 2d590038de63afa16ebb9197ca070aba1130c39e (commit) discards 5aaf6d77670c6059fc88fe3e247d58248051dc74 (commit) discards dcb743e3f68638141d4c81f653a82b9082135f3f (commit) discards 604da06269a3a5e4d37d0bccdf1fc91378ddb9b4 (commit) discards 25dc8c09860498aaba135aed5a05fa3b55b304d0 (commit) discards 823d54d1be0ce6c56c60927b1905e36130c69327 (commit) discards 6a1c76184210f5dc289293bb27d5d322c0a5f67d (commit) discards e1418249313f35511a3162242d626785e4f51144 (commit) discards a1cca83f3823109ad2728c3664b8895b5b528244 (commit) discards 59c494b6956cfef51da86dd617aa7d5debe27557 (commit) discards 690af1efc6b18018e4b1f3468edfb36d322156db (commit) discards 8d4d7c1468690e96c24c912b9a4239477166ca5d (commit) discards bd4045067cd170870cbceb5401f0fc28b11d4e5b (commit) discards 87429d96864221e36f0e33362f8ba4ae2b885c7a (commit) discards 38c9f229707f23329d420ed563a7dec26bb69318 (commit) discards 17e13e4de8095f543341e96a2fa7f4199214169a (commit) discards f011926fd6d07a2fe7d44d0209c3280d4b4ad27b (commit) discards ac7b7a6c8156f94443a94f63c02571f4c03a2315 (commit) discards c708c66f568477a305fd98f689608a32eff4cd4a (commit) discards a13fa05f3f4336d76a5163d6ee1516cb6eb50926 (commit) discards fa5419947d78e5e9adcf3abbefa226fdb35bca6c (commit) discards 62a5b8e4a00de7403591958c5e5da198051a3255 (commit) discards 250ee3ced01448ab865b36de56278afb850d0a94 (commit) discards 10c044c33862792667f6fc036c397d56f9d7530b (commit) discards 49c9759abb0e3ebe7a1597ca7acbe51330f94583 (commit) discards 53c496702fa99a57f8f83e60c479eb39f66b2263 (commit) discards 15140222af1c415acd227c778bbb3fdc1d03fc39 (commit) discards d72a73320ae4697e60d7485e953d950443345927 (commit) discards 15c1cc55b4123ffb207d6f731ae5152bc99a1540 (commit) discards 793a505e3cf03c6841df92f46ed0aaf15c2479d7 (commit) discards 959748f1c963e9e2d44ef650a2faa3a82985655f (commit) discards 92525eb7b3ad6c71610fead557185aaf8db98739 (commit) discards 851638db8a5fdb9ae974ac32351bc936300b50c9 (commit) discards 0abd89e0eb51b77590210f21d9095ff85771bf1d (commit) discards 55f8d63cdbb15fbee9f3486f8511c7fa16edaaf3 (commit) discards 4d363faaf9158c54e576552620e48ac09d102765 (commit) discards e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 (commit) discards 47b7641c0bdb6a89dd4f89279270ed888001fb32 (commit) discards d698bdfd55350f68c8c810571e530345641281b3 (commit) discards ff741a77cdc6f777ca16a81a0929b82008e3e9a1 (commit) discards bd0f96baafce1ed7a50cfb130f05d49763013273 (commit) discards fb13f14f1323f157a519faee26eb8e8c17141f4b (commit) discards 62305adb00f39a06dddcaf44efb09dd0830a66dd (commit) discards edf45878ed265bf1678b3fbb5b977085b048ac89 (commit) discards 7f38595c96edc9059776b1e8fe3b409f1082b45a (commit) discards 0412b809f4d426ad1826c10e7f4b2d172906b0ee (commit) discards 29c967ef21bf0248e965cac171cfa2fb51fbaf1c (commit) discards 126c84a4bb4122c67839f60dba1a0877ff0234c0 (commit) discards 44d3cdc45b83c0cdca61513022f36f2dcc569169 (commit) discards 8dc32b8b86c65c3ab201f22c3bf3570a72513355 (commit) discards f9ea9e5b5716a3b37799af673375bb41d5cb5816 (commit) discards 63f5ddc0f7c158543113352593ba6999c675814c (commit) discards 13e34019b22fb5930919401599c4623d2c65508c (commit) discards 2a8c67ccc306ab592098adb218610d2b39062633 (commit) discards 183836811c2ae8bce19dab4f77f1afecf84fbef0 (commit) discards 9780a18290b8763870a57a315cdaad1a8b5a02a6 (commit) discards c3c0a0a531937bcccc5b897e8ebaf7c296038304 (commit) discards 7d1a84228d336288da78fc0efac3a94e651fbdd0 (commit) discards 7ce4ccc8503cdfce400ccc809b1cb52c6624f906 (commit) discards fd27403b79c6bb2f8e2568c456cf2fb615944a75 (commit) discards a7450168373f48228c3eb837178867f82fcbee2c (commit) discards 253db6906ca42d7e02dadbb94c9a2305708a7dbe (commit) discards 3f26eb3064ccbd715140cd12b6c51e84d5d8c801 (commit) discards d07e1b27d9f92182a64bb7981416ea0eeb963764 (commit) discards da588825475697068e2f3babc092c2cc4f09a31b (commit) discards 434492e3c038d2fe18442c8f43daa3078b3cd58c (commit) discards a04f037c1c2286856e26f7190fdf7a816ac37cc6 (commit) discards d8227ed0bd89990b39407dd2e0486bea2c337d7e (commit) discards f639bd9a60502c680fce44c5ef0b63b131b874dc (commit) discards 539150dd10ab582f5bc2d95dffe82b40cf4cd597 (commit) discards eedc69b8a1f119f40fa48d7ed950974ea7140fd4 (commit) discards af064e58c0fdde06bb4f1c93d4c9e7acd94efc07 (commit) discards 07747be837dfe4baf76d5af451841cb25b7ac9dc (commit) discards 77ca7ea3169bdbd0e02b17bd7f2f3776dbdaab75 (commit) discards cff4986415b485168d151c09e1cddb24b81efb56 (commit) discards 6687a5410d28c9eb5d1c074b068e74049f120fe4 (commit) discards 013e7ec9100fe5fd850a4c4f89d34359d12f6dd9 (commit) discards cb2ea6642dced14a1f0e0929ea8a9073cdf7f9b8 (commit) discards 8fe228929fb69ce7d157e3f88ed9b33e145d6f3b (commit) discards 10b2e0e479b1015c905aef19439c10d7546a0232 (commit) discards 316aa77eea2dff8e982257904344c46336673fce (commit) discards 4f2650d5a96e0c1c6a29597bf891909681349b80 (commit) discards 4f36d8840546f9722b223b72424d404a84eb95a5 (commit) discards ada4028f25cbac073191b7e466b19281eebd9f29 (commit) discards 53a2377962a50934e695abc8879e944dc27e0ff8 (commit) discards fa678294b653cb39dda9e631e24aead5a308cb78 (commit) discards 73ad60499b429f6e38de1a6b564300286c468477 (commit) discards 617e34c8d5fed40eb5d1d99a4d1717c091c3ad2d (commit) discards 434c1123eb011a242e60279691df906e4a5244a7 (commit) discards 0da16ecd007f3a444aefa6f70fe075ed09dbb795 (commit) discards 988b1e9b3b974c3eddea1c4171989353a8c2f3ff (commit) discards 3cc17beb1eb141920e16afe1a0739765db33ec88 (commit) discards cb3ab217e59108a13ef3b8da00e6fd0fd3a9c910 (commit) discards 6db54841a2c989474985a959a46caf688a0bab4f (commit) discards 3abffa5f64b06bd3ead0d6390adaf927665ae792 (commit) discards 813afd66c2017ab3ef7385beb5d476ea16e0d0d0 (commit) discards 69d7feb40cd3bc891e6ad029921a26c7e8347547 (commit) discards 19fec70c0830e7c31b2b552ed6f560762950fbf0 (commit) discards 1b1ec57d5aef2e96192b7bc5f16d1e5a215784a1 (commit) discards 2491e369274a50ea8f27404d2a0de626c2ce93d0 (commit) discards 4e8742d78f9176a3476ec442d7353fc4b3a7a58a (commit) discards 9870ed61b83cd7b822d47a955f0c0e2543d065a7 (commit) discards fe5b8275e69a3ffe2ce22c80ba0ea08936967323 (commit) discards cf660ade3f88a6364dc86a9616da9b9198216e25 (commit) discards f2d9386c0dcb7ed57297ba1886dab692fc304e4a (commit) discards 22db66f0aa60018e26af1bdc3efc84ef77c1b154 (commit) discards fe5a2d877f809d13961d3c21a3661275257ce2e3 (commit) discards 5b4f3ea3e7776c6a2c0fb2d9e1c052af8f8a1209 (commit) discards afdef5f94742f17434b08a8c2678735a0db4f1ab (commit) discards ec6c9db25ddf2ecc464f54c3dc666c93ed60d3dc (commit) discards f0e2f9e063e08ab02a15d1ffbd3252984eec0845 (commit) discards 169bff43f65cb53f8b825b8f2e981c683ac08ea1 (commit) discards ffa6c85bf958b3334c201168b2a6510f809b7cb1 (commit) discards 8e2e2a44b1215552fbe36963a247fa73b7dec9f1 (commit) discards 86b58f2606e771bde2e2a25ff9384fc34cbe891c (commit) discards 6790a78a1199a40bf1de5bbe6762668d7dd266ab (commit) discards dc35291b99827855ee454acc9fc441400121e16e (commit) discards 7c3dd733d37449045a062f0ecc1c465b06163e58 (commit) discards 1f37e987d0d2dcfdb55d4248d3f7ade9de68ec71 (commit) discards 64c33f118272a5d1f8d380587b6a67615eadcc57 (commit) discards 4e78fde27cf461a80bece2e82b84a3356249b92c (commit) discards e0fe4bc5ffc8b29bb337113645eb74ace68deada (commit) discards b5dc36e1264200bdbdd5a8119b426bc4e3e7ca82 (commit) discards 2d2c94d08fd5f241bb4a736900d6e5acfe5f686b (commit) discards 89a9078a7caa162f1793a242caf3ce1d90cb2fd4 (commit) discards 08526b1ae92bfab52c750e7d5fd7b6790a4baac8 (commit) discards 3e46192ef2c87777d136894f4dcc9bcb524164f9 (commit) discards f765e21b903d36c79d83dfcfdf0a44c43540f99a (commit) discards 0ec930925c5e16f6e6ad20d565076d505a91906c (commit) discards 3d814916c4fca95f0e0aa638f86348f1cd65f24e (commit) discards d3a3a96563e17297cfae0db5aa4a82045d3a3bd5 (commit) discards 1dbf4d071424b9a34fde3fde47fe17c11448f2a8 (commit) discards 499379056c188576fa2ab8cb968366353334f09d (commit) discards 4375971fb861de2a194f61668006fe2ce6641f0a (commit) discards 0372802e4961bbcf05b6f5a4df447a7f19492b9b (commit) discards c42f62b6bed8248fd99a48737c14054d09f973a7 (commit) discards 1925f8bc2a517c051c44b29021300de2238489a2 (commit) discards d30e66c0e3e078fe43aa85db09449260226611db (commit) discards 656e56592b9aa049af9f2b9a06bf2c7fd0024cb2 (commit) discards 3879ac06c57abcea65fd5a2ebfa36ee7a3ad1f9e (commit) discards aa1fd4f3d25da106c6db053a01d479b065a7eaaf (commit) discards 83f21887f75b66c99a61e7e1deeabf89d78229d1 (commit) discards 4a7321a56fd00ec82a25f250828e7621f3c9d9f9 (commit) discards bdf70944426e26a269e8930fe7a3bbb4d1590119 (commit) discards 7f974380cfe9e5d4501ef72d5694ff97bf82aa74 (commit) discards 0df414a55acaa3bc4a9aaeb655980cf80c1606fa (commit) discards 88df3416e65ddbc849da08d1b7a920380a578749 (commit) discards 3d40fcd01487700b8130d03e0b247bb1fe6ea9d6 (commit) discards 1376688a01bfcf28d31d6a9a79703502d5027ca9 (commit) discards 401700852e368569ea4f641ccceafbda9306b744 (commit) discards 52708851a885d32f0b523cb20fc30a482956edeb (commit) discards d056533bb56b6cd46bd9aab72463239e035a52cf (commit) discards bdab9b52b752085cc6f48d089f13760ec246fe29 (commit) discards 7b950873b245a70509c792aacaee5b2b56d05767 (commit) discards 1f7f92b83efbaf8685b5db71c073f6e3779893f4 (commit) discards 8dad7d6a668c14cf0395872b22ee533961d3facf (commit) discards 4f4cdccdd4c59a7af1e87e88b783bcbf42923fc8 (commit) discards c7c1ac85de53a1fce5c0b1bdded27598109cc4be (commit) discards 061f28d1f29a84f6d5b479e504bad89f63d565f7 (commit) discards 8a3114147f430b09ccb788de5f60279afb2bfc26 (commit) discards 7d99813287edba3d73d85f479347a23996bc0ae6 (commit) discards 0829afd56fc3c04fe714cbb28d2f6bcefbe573c9 (commit) discards 574f4ddb9f5b18ae67665cc08b6dbb7e4609b86b (commit) discards 534c9e9fc0adcbe0cda11bfa869a448511af05c6 (commit) discards 8e7033c85264288c840edff511a03643f167e09c (commit) discards 917c6f27af57d87800cdcd066350e4bdce16027c (commit) discards a1b8afd2e4fd26d425f5dd197fd308cd8f8d853e (commit) discards 11ad7564ba2834d170240d37883ffdd7b3327a65 (commit) discards ca386093ae307dfd25917a520dca68319ce861a3 (commit) discards 359cfdc68c2d606c32c15c0a3a68f8dacf7834eb (commit) discards b0a44ed354fe3eea20fc7dbc7c467794ebea6593 (commit) discards 928564fb8610e508448d5972c6dc83f4dfb64d7f (commit) discards aee6c5b3d38b7150a3276d69e28b2705dc20d586 (commit) discards 917af10b53626fabe9a833546450ac5d6af8b3ea (commit) discards 4be7c81272e559b1ff572df5f5b274234a04a286 (commit) discards 0136d1354b5957a1d583526dfdb74f176939f56c (commit) discards 1fc9fe74dab4276b22abfd1a79fc344945350227 (commit) discards 698a94c0d95ac865d40ed5caaac1a5e10194adf4 (commit) discards 58ac0c6209b627137636e0feac6f4d59321dae54 (commit) discards 1508ed9c65f1515313bca00790710820974cd7cc (commit) discards e4f61a211b960d3eab0253a2986ac3aa705a2661 (commit) discards 1224e67a0fd059aea194ad9a797e31a74d891618 (commit) discards 20ed0f59e4bbd5850d1271f99b53dcaa22cac417 (commit) discards f8125e7bee39b4b853fb9ea650a397dfb984a5e0 (commit) discards 58699513c2248da7277b968d729bef5ba3471677 (commit) discards d3980d2a959734370d2f7cf2f76d705ddf2da6e3 (commit) discards d26601ec0897eec870fe95413362d242202d7f2b (commit) discards c84bca1030332d23d0fc6d06050e7a174f39d78a (commit) discards 78031e7cdcead6a348191158c674ec341fdd43be (commit) discards c7f3bdedde2a38c8f2e46ca42f47efbde6252f1d (commit) discards 17a2cfbcdd41ee607556794e5210744b90005dfb (commit) discards 7111b59f020c3b6fa01136b608ce6777969f92e7 (commit) discards 82e0d0642a42b0592be27ed20efb43e34aaa2091 (commit) discards 377cd92a1705a3e75e218f25941f9009816c6182 (commit) discards f50ac2dd0f3d3776f062487722cb1f86d7dbfd31 (commit) discards c60b61be56000aef36904fdc04eb5bde79b3e1dc (commit) discards ca35b47fadaeb8c6a2bf3582fee10cc853e2f43d (commit) discards ff4800b1f6f2f7041e76d85f41fb8104181ee23c (commit) discards bbae069eea447504158176f7eb9fb7db7a44c7bf (commit) discards 8571cca02d0ec9cd6b752038750e91a5c25ad259 (commit) discards c6cc9a81c33e734135f2bac358adc6f73ad2194c (commit) discards 41d379a8ebade12bf8b798b754ab13ea80629e04 (commit) discards 23f45e62c9a7597f257b3da5f3cb82d15f6c167e (commit) discards 786bd14c93e7d67209e9bacb0cb8bf0e56528681 (commit) discards 279f14fb0b9546a14d9cb4ec358863ea60750d75 (commit) discards 84c1cea905340971bc168f07cbd9114cfa86ceb4 (commit) discards 76fbab5740aae8fbc9cd7566af34cc0b86909aea (commit) discards 51286f98bb800640d3d39e53366e09012bffb824 (commit) discards 339b2b31d66d599bb433c09d5eb34143dbff0d2c (commit) discards aacd0cb0c9deb4f9f9ea78a0fd9320cb32fb5ede (commit) discards f582eb753eb746086ef29f6249040f1d7d7e35f9 (commit) discards 76839b6a522342fd85190cce6bf052140ea2d5af (commit) discards 4984d86008d6d40a96d6bc2b7a27f53627427bac (commit) discards 503369e7ca9efff903df4c551b60cb6ba424d2c1 (commit) discards 8aa14994e338ac140a41a99c29c891f7a1548ab7 (commit) discards 6ab467b03702929b346cb1136092dd9417cc74fd (commit) discards 3f92980773c8f2106f0ee2986a89fa958fc73acf (commit) discards 0a4094564dadfd15e0daa1e95927c343cfc616a2 (commit) discards 846484b2e2a1e4271553a27343fe8679bb21e229 (commit) discards b7deafc692edd9183adc6b993e8df122b7d9e503 (commit) discards 2f263657fd2b544ed75bfc9725dd30d6bc1cfd7d (commit) discards ca38804669676e531c6f7cf6d2e442092194c6d0 (commit) discards 50cde9c55aedb16eeb8c7fd2b550e980afca9f5b (commit) discards 0e88ab697ca02665a44a60f005c8623100c26b95 (commit) discards 364e60cdf76c05c4f87ab3aad19a81ee6145a4c4 (commit) discards 06a0700afd94c14d6d9219f776904f1787b41945 (commit) discards bcc6001f3cbf8ef47da872288f3c81e9600b9bc1 (commit) discards 45de32fa6c20de954e0571dfb9a44b375c87a6c6 (commit) discards 4612c1f6a7b201c12e7ff55633e744d4a4320147 (commit) discards 45e9d66545cdabc6ea5103e6c5c2546e2e0a982b (commit) discards 408b3783d63fc5f1ea0ee4a7a2bb2281bb13d64d (commit) discards 6988d0e8d6f81326c938224387533e30890e63d6 (commit) discards b636dae9b209b8f8e26bc7a7e579a0e1197dc414 (commit) discards 4633cbb96fcaee77f0da674c5caa766447406e99 (commit) discards a2a7d36b9b978ada6e41294fddba1ccd7332d6f5 (commit) discards 50138b2dd140df493aaff2fccd0388322b6eebb8 (commit) discards acb159fb817913c936a700cede9bff6383d2b0b8 (commit) discards 9fc0cedfcf71a31d7334fd73ffb26410db32b174 (commit) discards 8efe5364780a37b620d29c8ec3777a4406f46934 (commit) discards 13cc1f905284d00424cb165bb6f06353df3ccb82 (commit) discards 9d1508caf4faf0835cedd4e7d838fc685b11d92b (commit) discards 9a7c167351958027c7139cb712deda58a5858ffc (commit) discards 35f30aef42ec888a26aeb68b4b86cb25c6f20232 (commit) discards e939f8b18003e9b3fd2e2f398d3a2a0f8e5a46ad (commit) discards 89541d043d1d53b1a6c1082a9e9574b16165562d (commit) discards a3ff237a5c221be52bbd2cf7b526fd19b5202a35 (commit) discards b7af957834c120064057a0180487a56fc12ec7e1 (commit) discards ba807f282e5573adc20519394f32431fe4c54904 (commit) discards 3340213f8c2fbe3dcc4031e1d5f06484d468bc5e (commit) discards 0b303f9d018b06a0d46937d6ddc3001484e1c1b8 (commit) discards 38c92f8d1c4e372aaeb598f54822dc71281a580a (commit) discards 0f8ea1fdfa8e8ad51633d17dd0ffc158f619a8fb (commit) discards 8cf6ac2226d23ac78cea34ddfae28e1626d289e1 (commit) discards 477b3d2aee0dbd793710556ef798e8189cf7bcd5 (commit) discards 829748c7d25f49059e79031fc747ccf75fe11242 (commit) discards 2ba45d5adf671b82ed11aa994b920e988d0500a9 (commit) discards 75b076980b1522345e07bc3db45a13874896bae2 (commit) discards f80f94e6538a62d6de430c12630e15ecfd902830 (commit) discards e889750e7bce9750ef1f8cc505e77ead0b5aad1d (commit) discards 638f37623af0431c640d6020a3253dbb4d5c4841 (commit) discards 0823533dd339ef714c0d0efbc8321bafec48c501 (commit) discards ed67fe7451a5ebdf179bbfc5c2517f0e19e651d6 (commit) discards 5dc1ca679d48a4ef7ef0cd5c987e077bb75915c2 (commit) discards 0239a87173935c2d10e518c5070e4d90c9b6c79a (commit) discards e080ad36397d6b7d813b3b1c26a78414858c668a (commit) discards 37537d95cbcb3e7265599523bd31fe13cef25654 (commit) discards 2556769b73a707529a73df5a474620281e3fb7d8 (commit) discards dd0648f5baa4a6ddf640191fb9c82fc300c3732b (commit) discards b0ea076370600cd3e6a5d04a90667c0d2a8e4727 (commit) discards d4c222c5af0612ae0ec200bc540a733d0941fa19 (commit) discards 84c3eddac6e9de29995141f2cd12bb5cba16cbb5 (commit) discards a146979be3b0890d376f6c722f3b0744189367c9 (commit) discards 13314a3e27942a44e747a9ba52e0c819a1b602d2 (commit) discards 67fbc2b24e549ce159378277d651e72302b9fc70 (commit) discards 6581d3c2df248a6afdcbf19c48bf6d69c29d5bd0 (commit) discards 4e93e9036ad904278b1634e082dbc627aea868e8 (commit) discards 85cb9195338bfb9a3db0f3a4c60fe031599172eb (commit) discards 258250c4452bf6d73a0065d5914ce55360603d84 (commit) discards c4977015291e195193f0e529d86ebc039e009907 (commit) discards db86099f386b59ed8fe0b66d1956454de14aede8 (commit) discards 60c0bb2d4a7390ce63237da1b6a3d5dfcc79bab6 (commit) discards 4a46ce0e5cad085dd7e0013ce1b3d976a2c437c2 (commit) discards 00340d929ffb8986aa9349137149ae0edd28b60e (commit) discards 3cffa4c58ecdeaf44d05124a6cc2799205ca9670 (commit) discards d4bf5af08435c5bdc0a1575f9b1763844dabc148 (commit) discards 5e6a882345a53c0dfc96ad8cfe4cd825b8bfa571 (commit) discards 20d39160baf3301acdfac3f844b2c23cb1a2dd9b (commit) discards 47f4a0c1ed5243f2d8482a952a0a687ab9307bd0 (commit) discards eed7ebb5ca6bb7430e2601b94eb1d2fde40f6884 (commit) discards c415052b368c6b1dd822332b443f896841804d0e (commit) discards 726660c22aa5116222cc0b5d713899b8fac92a24 (commit) discards ef4c9231c4c33905d77f9a86b3d6f201d93fefb2 (commit) discards e6f8142ae6ad655897827031acb791d15f6c2896 (commit) discards d358f8bba5418d0a8e95bd5efe0a913b8acb2a13 (commit) discards d8aec3f2d5478ffb7235b638d33d08e944093916 (commit) discards f8c5b31f33becfba9f25ca29cc4caee6b343f93c (commit) discards d5d8170f3628c867bd14f385de3d5b8b82f01109 (commit) discards 6ddde7ce0264de27af6a5160695506abb52906e2 (commit) discards fb4044b6f07df33a146df4e19da65e415899cda7 (commit) discards c7a665b6002f98abb4d48f270ef7127bc2306b5a (commit) discards e8d7474006657657f4fc66b48d98b6e1c80fce03 (commit) discards e1b5a54d1da318510445fe1fcc969018e1a6b6dd (commit) discards 9862605636abde65ca8e651d42b3d706beeaaecc (commit) discards a45a5847e096e7f077acb0a4fde44bda9225fbc4 (commit) discards 4c53c29d86e7dc4c580fb5b7c8f06551934ae03c (commit) discards 4ff5dce9f8be34d556f1fb98272a8654b1f6c5bb (commit) discards 934ac7916e4e4df6ef55441d58fd1c310e4ad9f1 (commit) discards 717491dd7d4a886d484025fd9002df44458117b5 (commit) discards b75e7691425d4cb658f3b0981fdbfbc25dedfb43 (commit) discards 17926f29cecc7574c9173ff06f5e3d0e4e250b02 (commit) discards c1bfff2e72bd673e7b7bebddf58c7ea508bf4196 (commit) discards fe4c8e497ce4eb67bd14187f8729710a72cfe37a (commit) discards 97eb120fd3b755ceb24da8ab159ecd68a8f62330 (commit) discards 36fd53b534c9678996b7bac971ac608cbbd2e910 (commit) discards f78dfcfd57e10ab8f2d020bfbc462e535918bec0 (commit) discards c8333e08fed572086f0e0fa9694f4ff75a3c9127 (commit) discards b628a1dcb0548c56477e25b0c992d9929562502d (commit) discards d73d9d01b996a17788362c0a12dfe28d9948b29d (commit) discards 8068f441f6ae65bec7d0cf3ba50cbbf97f2087b4 (commit) discards f7993cbeaa9d770646a97d7abeaa9b46087dfe59 (commit) discards e70392430de41387679706c6c1b01cc74b261aa5 (commit) discards b9bc47f7cb9806eb328f830ca162d1b08222b247 (commit) discards 9f1f05fa14b26f45b664fba54c084cde36b22edb (commit) discards 3373f1efa71ea5cc3cb98238b25c5dd08420748c (commit) discards db47cc7584e076fa6ebfbf9cf71317c15fc4e691 (commit) discards fb71eaf6b4b53ced12e208ee5905c5909deddf36 (commit) discards 86d2bb68b573a1d71bc6eb6c88287ff29baa3909 (commit) discards ca0b192713a2a4694394fa7b2dfbfaa96cb6f6b1 (commit) discards 6a98f43c2894bbf324ae31311e5e0ef021a2c3b3 (commit) discards 4ed9498bbdc13344a7f81b2c213a175bb719121d (commit) discards 37d47b4375fd8c15f90bd1b03f6a2c1a0ac58636 (commit) discards b44b3df4e1f9ee55734c2e02f37459e2bea5dc1d (commit) discards 7a6d61fe67383038e2874e0508d78778fabc7183 (commit) discards 2848407ff801cad7cf0cb86391dcecdc8343542a (commit) discards 01d648002dd3d669c4612e8174671c27bd637702 (commit) discards 30c8c9bc75b387b1432a9c1cb5d4399bae163a71 (commit) discards 86c53732c151f94749f375fe371e5db6f1f469e8 (commit) discards eb9bdadb1ab2103d9febf6ada6c3fcf5165d81af (commit) discards df2ae6c84e8917c77cdf66182944e7b85fdce651 (commit) discards 97528f337a23106f8475fa7bd2d2345b8358fee5 (commit) discards b99d0e064557f6d59da35da34a7d5ae39cd44644 (commit) discards 5e08acc89b9b28ffdab4eadc379aa9a346bd841d (commit) discards 4d505256b3e3b787f701e84717d1076a0e87ae22 (commit) This update discarded existing revisions and left the branch pointing at a previous point in the repository history. * -- * -- N (4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11) \ O -- O -- O (51581b7074637074499ee9246428b787b6406096) The removed revisions are not necessarilly gone - if another reference still refers to them they will stay in the repository. No new revisions were added by this update. Summary of changes: Source/CMakeLists.txt | 2 - Source/cmQtAutoGeneratorCommon.cxx | 215 --------- Source/cmQtAutoGeneratorCommon.h | 34 -- Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++++++-------- Source/cmQtAutoGenerators.cxx | 225 ++++------ Source/cmQtAutoGenerators.h | 2 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- .../{mocRerun => automoc_rerun}/CMakeLists.txt | 14 +- .../{mocRerun => automoc_rerun}/input.txt | 0 .../QtAutogen/{mocRerun => automoc_rerun}/res1.qrc | 0 .../automoc_rerun/test1.cpp} | 1 + Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 + Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 + .../{rccDepends => autorcc_depends}/CMakeLists.txt | 15 +- .../{rccDepends => autorcc_depends}/res1.qrc.in | 0 .../res1/input.txt.in} | 0 .../{rccDepends => autorcc_depends}/test_res1.cpp | 0 Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 -- Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 - Tests/QtAutogen/mocDepends/object.hpp.in | 14 - Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 - Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 - Tests/QtAutogen/mocDepends/test1.cpp | 9 - Tests/QtAutogen/mocDepends/test2.cpp | 10 - Tests/QtAutogen/mocDepends/test2.hpp | 16 - Tests/QtAutogen/mocRerun/main.cpp.in | 18 - Tests/QtAutogen/mocRerun/test1a.h.in | 8 - Tests/QtAutogen/mocRerun/test1b.h.in | 7 - Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 - Tests/QtAutogen/rccDepends/res2.qrc.in | 5 - 30 files changed, 439 insertions(+), 808 deletions(-) delete mode 100644 Source/cmQtAutoGeneratorCommon.cxx delete mode 100644 Source/cmQtAutoGeneratorCommon.h rename Tests/QtAutogen/{mocRerun => automoc_rerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/input.txt (100%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/res1.qrc (100%) copy Tests/{BuildDepends/Project/object_depends.cxx => QtAutogen/automoc_rerun/test1.cpp} (58%) create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 rename Tests/QtAutogen/{rccDepends => autorcc_depends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/res1.qrc.in (100%) rename Tests/QtAutogen/{rccDepends/res/input1.txt.in => autorcc_depends/res1/input.txt.in} (100%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/test_res1.cpp (100%) delete mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt delete mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/test1.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.hpp delete mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in delete mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in delete mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in delete mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in delete mode 100644 Tests/QtAutogen/rccDepends/res2.qrc.in hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 11:35:36 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 11:35:36 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-341-g4e8ffb9 Message-ID: <20170303163536.A4C31FA7B8@public.kitware.com> 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, nightly has been updated discards 51581b7074637074499ee9246428b787b6406096 (commit) discards b6030828f327802cc551995d3f4524b247bac2ca (commit) discards ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) discards c18462d8c53725c98268b3a91fda7c025cb67eaf (commit) discards ade5ad24e6571ea1e102bb2203297d1d4cdfa952 (commit) discards 09566b4ad5f909de0a8b2127e613b7cd0c206d47 (commit) discards eb49caf1836f0f80e897f614f73616d6b3574dd9 (commit) discards 305ef6a006de0fa6ae86752a3a1c96d2570a99f2 (commit) discards ffba33ff51b6c0acfe3d16e5632d927d87c5d24b (commit) discards 907a6e85862d9edb37232015994df48bc3d80c8d (commit) discards 28878dbdd49dce43a15a98062696af30f26800cf (commit) discards 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) discards 614917f70e292763b14b1c388e92714bac31fa9c (commit) discards 505ed4e76f3043cdb5d45effc4791455136560df (commit) discards eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) discards c511576c620ecbc614591722ad1b381c8a7d2528 (commit) discards 4ef593ed4940229437dbbad7707a6461846318f8 (commit) discards bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) discards c52eecc303f8cb3de406d788914a2071cef4e60f (commit) discards 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) discards 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) discards f9531b373f27367ac0d8c4beae474768b7745b59 (commit) discards 100723035ac228187e60f549dd38c8f89c447b40 (commit) discards b1cf272646abab16e53bc3e7083629ee23ec089d (commit) discards 83242107ad6514dff6a8b6946467838f4d4104be (commit) discards 3bf5d33ba90dc3478a928f47507e004d905b7d87 (commit) discards b1b6156cca4068dee0cfd0ec9c1fd6f2e7513db5 (commit) discards a27f7433686292d5c54d42c394bd620da3b3c2d6 (commit) discards 16114ac346e661d7b3bb50dfd09a1a8f361751a4 (commit) discards 2d590038de63afa16ebb9197ca070aba1130c39e (commit) discards 5aaf6d77670c6059fc88fe3e247d58248051dc74 (commit) discards dcb743e3f68638141d4c81f653a82b9082135f3f (commit) discards 604da06269a3a5e4d37d0bccdf1fc91378ddb9b4 (commit) discards 25dc8c09860498aaba135aed5a05fa3b55b304d0 (commit) discards 823d54d1be0ce6c56c60927b1905e36130c69327 (commit) discards 6a1c76184210f5dc289293bb27d5d322c0a5f67d (commit) discards e1418249313f35511a3162242d626785e4f51144 (commit) discards a1cca83f3823109ad2728c3664b8895b5b528244 (commit) discards 59c494b6956cfef51da86dd617aa7d5debe27557 (commit) discards 690af1efc6b18018e4b1f3468edfb36d322156db (commit) discards 8d4d7c1468690e96c24c912b9a4239477166ca5d (commit) discards bd4045067cd170870cbceb5401f0fc28b11d4e5b (commit) discards 87429d96864221e36f0e33362f8ba4ae2b885c7a (commit) discards 38c9f229707f23329d420ed563a7dec26bb69318 (commit) discards 17e13e4de8095f543341e96a2fa7f4199214169a (commit) discards f011926fd6d07a2fe7d44d0209c3280d4b4ad27b (commit) discards ac7b7a6c8156f94443a94f63c02571f4c03a2315 (commit) discards c708c66f568477a305fd98f689608a32eff4cd4a (commit) discards a13fa05f3f4336d76a5163d6ee1516cb6eb50926 (commit) discards fa5419947d78e5e9adcf3abbefa226fdb35bca6c (commit) discards 62a5b8e4a00de7403591958c5e5da198051a3255 (commit) discards 250ee3ced01448ab865b36de56278afb850d0a94 (commit) discards 10c044c33862792667f6fc036c397d56f9d7530b (commit) discards 49c9759abb0e3ebe7a1597ca7acbe51330f94583 (commit) discards 53c496702fa99a57f8f83e60c479eb39f66b2263 (commit) discards 15140222af1c415acd227c778bbb3fdc1d03fc39 (commit) discards d72a73320ae4697e60d7485e953d950443345927 (commit) discards 15c1cc55b4123ffb207d6f731ae5152bc99a1540 (commit) discards 793a505e3cf03c6841df92f46ed0aaf15c2479d7 (commit) discards 959748f1c963e9e2d44ef650a2faa3a82985655f (commit) discards 92525eb7b3ad6c71610fead557185aaf8db98739 (commit) discards 851638db8a5fdb9ae974ac32351bc936300b50c9 (commit) discards 0abd89e0eb51b77590210f21d9095ff85771bf1d (commit) discards 55f8d63cdbb15fbee9f3486f8511c7fa16edaaf3 (commit) discards 4d363faaf9158c54e576552620e48ac09d102765 (commit) discards e575ac5dbe5032d5df2f89aebd2a910cdfa80b32 (commit) discards 47b7641c0bdb6a89dd4f89279270ed888001fb32 (commit) discards d698bdfd55350f68c8c810571e530345641281b3 (commit) discards ff741a77cdc6f777ca16a81a0929b82008e3e9a1 (commit) discards bd0f96baafce1ed7a50cfb130f05d49763013273 (commit) discards fb13f14f1323f157a519faee26eb8e8c17141f4b (commit) discards 62305adb00f39a06dddcaf44efb09dd0830a66dd (commit) discards edf45878ed265bf1678b3fbb5b977085b048ac89 (commit) discards 7f38595c96edc9059776b1e8fe3b409f1082b45a (commit) discards 0412b809f4d426ad1826c10e7f4b2d172906b0ee (commit) discards 29c967ef21bf0248e965cac171cfa2fb51fbaf1c (commit) discards 126c84a4bb4122c67839f60dba1a0877ff0234c0 (commit) discards 44d3cdc45b83c0cdca61513022f36f2dcc569169 (commit) discards 8dc32b8b86c65c3ab201f22c3bf3570a72513355 (commit) discards f9ea9e5b5716a3b37799af673375bb41d5cb5816 (commit) discards 63f5ddc0f7c158543113352593ba6999c675814c (commit) discards 13e34019b22fb5930919401599c4623d2c65508c (commit) discards 2a8c67ccc306ab592098adb218610d2b39062633 (commit) discards 183836811c2ae8bce19dab4f77f1afecf84fbef0 (commit) discards 9780a18290b8763870a57a315cdaad1a8b5a02a6 (commit) discards c3c0a0a531937bcccc5b897e8ebaf7c296038304 (commit) discards 7d1a84228d336288da78fc0efac3a94e651fbdd0 (commit) discards 7ce4ccc8503cdfce400ccc809b1cb52c6624f906 (commit) discards fd27403b79c6bb2f8e2568c456cf2fb615944a75 (commit) discards a7450168373f48228c3eb837178867f82fcbee2c (commit) discards 253db6906ca42d7e02dadbb94c9a2305708a7dbe (commit) discards 3f26eb3064ccbd715140cd12b6c51e84d5d8c801 (commit) discards d07e1b27d9f92182a64bb7981416ea0eeb963764 (commit) discards da588825475697068e2f3babc092c2cc4f09a31b (commit) discards 434492e3c038d2fe18442c8f43daa3078b3cd58c (commit) discards a04f037c1c2286856e26f7190fdf7a816ac37cc6 (commit) discards d8227ed0bd89990b39407dd2e0486bea2c337d7e (commit) discards f639bd9a60502c680fce44c5ef0b63b131b874dc (commit) discards 539150dd10ab582f5bc2d95dffe82b40cf4cd597 (commit) discards eedc69b8a1f119f40fa48d7ed950974ea7140fd4 (commit) discards af064e58c0fdde06bb4f1c93d4c9e7acd94efc07 (commit) discards 07747be837dfe4baf76d5af451841cb25b7ac9dc (commit) discards 77ca7ea3169bdbd0e02b17bd7f2f3776dbdaab75 (commit) discards cff4986415b485168d151c09e1cddb24b81efb56 (commit) discards 6687a5410d28c9eb5d1c074b068e74049f120fe4 (commit) discards 013e7ec9100fe5fd850a4c4f89d34359d12f6dd9 (commit) discards cb2ea6642dced14a1f0e0929ea8a9073cdf7f9b8 (commit) discards 8fe228929fb69ce7d157e3f88ed9b33e145d6f3b (commit) discards 10b2e0e479b1015c905aef19439c10d7546a0232 (commit) discards 316aa77eea2dff8e982257904344c46336673fce (commit) discards 4f2650d5a96e0c1c6a29597bf891909681349b80 (commit) discards 4f36d8840546f9722b223b72424d404a84eb95a5 (commit) discards ada4028f25cbac073191b7e466b19281eebd9f29 (commit) discards 53a2377962a50934e695abc8879e944dc27e0ff8 (commit) discards fa678294b653cb39dda9e631e24aead5a308cb78 (commit) discards 73ad60499b429f6e38de1a6b564300286c468477 (commit) discards 617e34c8d5fed40eb5d1d99a4d1717c091c3ad2d (commit) discards 434c1123eb011a242e60279691df906e4a5244a7 (commit) discards 0da16ecd007f3a444aefa6f70fe075ed09dbb795 (commit) discards 988b1e9b3b974c3eddea1c4171989353a8c2f3ff (commit) discards 3cc17beb1eb141920e16afe1a0739765db33ec88 (commit) discards cb3ab217e59108a13ef3b8da00e6fd0fd3a9c910 (commit) discards 6db54841a2c989474985a959a46caf688a0bab4f (commit) discards 3abffa5f64b06bd3ead0d6390adaf927665ae792 (commit) discards 813afd66c2017ab3ef7385beb5d476ea16e0d0d0 (commit) discards 69d7feb40cd3bc891e6ad029921a26c7e8347547 (commit) discards 19fec70c0830e7c31b2b552ed6f560762950fbf0 (commit) discards 1b1ec57d5aef2e96192b7bc5f16d1e5a215784a1 (commit) discards 2491e369274a50ea8f27404d2a0de626c2ce93d0 (commit) discards 4e8742d78f9176a3476ec442d7353fc4b3a7a58a (commit) discards 9870ed61b83cd7b822d47a955f0c0e2543d065a7 (commit) discards fe5b8275e69a3ffe2ce22c80ba0ea08936967323 (commit) discards cf660ade3f88a6364dc86a9616da9b9198216e25 (commit) discards f2d9386c0dcb7ed57297ba1886dab692fc304e4a (commit) discards 22db66f0aa60018e26af1bdc3efc84ef77c1b154 (commit) discards fe5a2d877f809d13961d3c21a3661275257ce2e3 (commit) discards 5b4f3ea3e7776c6a2c0fb2d9e1c052af8f8a1209 (commit) discards afdef5f94742f17434b08a8c2678735a0db4f1ab (commit) discards ec6c9db25ddf2ecc464f54c3dc666c93ed60d3dc (commit) discards f0e2f9e063e08ab02a15d1ffbd3252984eec0845 (commit) discards 169bff43f65cb53f8b825b8f2e981c683ac08ea1 (commit) discards ffa6c85bf958b3334c201168b2a6510f809b7cb1 (commit) discards 8e2e2a44b1215552fbe36963a247fa73b7dec9f1 (commit) discards 86b58f2606e771bde2e2a25ff9384fc34cbe891c (commit) discards 6790a78a1199a40bf1de5bbe6762668d7dd266ab (commit) discards dc35291b99827855ee454acc9fc441400121e16e (commit) discards 7c3dd733d37449045a062f0ecc1c465b06163e58 (commit) discards 1f37e987d0d2dcfdb55d4248d3f7ade9de68ec71 (commit) discards 64c33f118272a5d1f8d380587b6a67615eadcc57 (commit) discards 4e78fde27cf461a80bece2e82b84a3356249b92c (commit) discards e0fe4bc5ffc8b29bb337113645eb74ace68deada (commit) discards b5dc36e1264200bdbdd5a8119b426bc4e3e7ca82 (commit) discards 2d2c94d08fd5f241bb4a736900d6e5acfe5f686b (commit) discards 89a9078a7caa162f1793a242caf3ce1d90cb2fd4 (commit) discards 08526b1ae92bfab52c750e7d5fd7b6790a4baac8 (commit) discards 3e46192ef2c87777d136894f4dcc9bcb524164f9 (commit) discards f765e21b903d36c79d83dfcfdf0a44c43540f99a (commit) discards 0ec930925c5e16f6e6ad20d565076d505a91906c (commit) discards 3d814916c4fca95f0e0aa638f86348f1cd65f24e (commit) discards d3a3a96563e17297cfae0db5aa4a82045d3a3bd5 (commit) discards 1dbf4d071424b9a34fde3fde47fe17c11448f2a8 (commit) discards 499379056c188576fa2ab8cb968366353334f09d (commit) discards 4375971fb861de2a194f61668006fe2ce6641f0a (commit) discards 0372802e4961bbcf05b6f5a4df447a7f19492b9b (commit) discards c42f62b6bed8248fd99a48737c14054d09f973a7 (commit) discards 1925f8bc2a517c051c44b29021300de2238489a2 (commit) discards d30e66c0e3e078fe43aa85db09449260226611db (commit) discards 656e56592b9aa049af9f2b9a06bf2c7fd0024cb2 (commit) discards 3879ac06c57abcea65fd5a2ebfa36ee7a3ad1f9e (commit) discards aa1fd4f3d25da106c6db053a01d479b065a7eaaf (commit) discards 83f21887f75b66c99a61e7e1deeabf89d78229d1 (commit) discards 4a7321a56fd00ec82a25f250828e7621f3c9d9f9 (commit) discards bdf70944426e26a269e8930fe7a3bbb4d1590119 (commit) discards 7f974380cfe9e5d4501ef72d5694ff97bf82aa74 (commit) discards 0df414a55acaa3bc4a9aaeb655980cf80c1606fa (commit) discards 88df3416e65ddbc849da08d1b7a920380a578749 (commit) discards 3d40fcd01487700b8130d03e0b247bb1fe6ea9d6 (commit) discards 1376688a01bfcf28d31d6a9a79703502d5027ca9 (commit) discards 401700852e368569ea4f641ccceafbda9306b744 (commit) discards 52708851a885d32f0b523cb20fc30a482956edeb (commit) discards d056533bb56b6cd46bd9aab72463239e035a52cf (commit) discards bdab9b52b752085cc6f48d089f13760ec246fe29 (commit) discards 7b950873b245a70509c792aacaee5b2b56d05767 (commit) discards 1f7f92b83efbaf8685b5db71c073f6e3779893f4 (commit) discards 8dad7d6a668c14cf0395872b22ee533961d3facf (commit) discards 4f4cdccdd4c59a7af1e87e88b783bcbf42923fc8 (commit) discards c7c1ac85de53a1fce5c0b1bdded27598109cc4be (commit) discards 061f28d1f29a84f6d5b479e504bad89f63d565f7 (commit) discards 8a3114147f430b09ccb788de5f60279afb2bfc26 (commit) discards 7d99813287edba3d73d85f479347a23996bc0ae6 (commit) discards 0829afd56fc3c04fe714cbb28d2f6bcefbe573c9 (commit) discards 574f4ddb9f5b18ae67665cc08b6dbb7e4609b86b (commit) discards 534c9e9fc0adcbe0cda11bfa869a448511af05c6 (commit) discards 8e7033c85264288c840edff511a03643f167e09c (commit) discards 917c6f27af57d87800cdcd066350e4bdce16027c (commit) discards a1b8afd2e4fd26d425f5dd197fd308cd8f8d853e (commit) discards 11ad7564ba2834d170240d37883ffdd7b3327a65 (commit) discards ca386093ae307dfd25917a520dca68319ce861a3 (commit) discards 359cfdc68c2d606c32c15c0a3a68f8dacf7834eb (commit) discards b0a44ed354fe3eea20fc7dbc7c467794ebea6593 (commit) discards 928564fb8610e508448d5972c6dc83f4dfb64d7f (commit) discards aee6c5b3d38b7150a3276d69e28b2705dc20d586 (commit) discards 917af10b53626fabe9a833546450ac5d6af8b3ea (commit) discards 4be7c81272e559b1ff572df5f5b274234a04a286 (commit) discards 0136d1354b5957a1d583526dfdb74f176939f56c (commit) discards 1fc9fe74dab4276b22abfd1a79fc344945350227 (commit) discards 698a94c0d95ac865d40ed5caaac1a5e10194adf4 (commit) discards 58ac0c6209b627137636e0feac6f4d59321dae54 (commit) discards 1508ed9c65f1515313bca00790710820974cd7cc (commit) discards e4f61a211b960d3eab0253a2986ac3aa705a2661 (commit) discards 1224e67a0fd059aea194ad9a797e31a74d891618 (commit) discards 20ed0f59e4bbd5850d1271f99b53dcaa22cac417 (commit) discards f8125e7bee39b4b853fb9ea650a397dfb984a5e0 (commit) discards 58699513c2248da7277b968d729bef5ba3471677 (commit) discards d3980d2a959734370d2f7cf2f76d705ddf2da6e3 (commit) discards d26601ec0897eec870fe95413362d242202d7f2b (commit) discards c84bca1030332d23d0fc6d06050e7a174f39d78a (commit) discards 78031e7cdcead6a348191158c674ec341fdd43be (commit) discards c7f3bdedde2a38c8f2e46ca42f47efbde6252f1d (commit) discards 17a2cfbcdd41ee607556794e5210744b90005dfb (commit) discards 7111b59f020c3b6fa01136b608ce6777969f92e7 (commit) discards 82e0d0642a42b0592be27ed20efb43e34aaa2091 (commit) discards 377cd92a1705a3e75e218f25941f9009816c6182 (commit) discards f50ac2dd0f3d3776f062487722cb1f86d7dbfd31 (commit) discards c60b61be56000aef36904fdc04eb5bde79b3e1dc (commit) discards ca35b47fadaeb8c6a2bf3582fee10cc853e2f43d (commit) discards ff4800b1f6f2f7041e76d85f41fb8104181ee23c (commit) discards bbae069eea447504158176f7eb9fb7db7a44c7bf (commit) discards 8571cca02d0ec9cd6b752038750e91a5c25ad259 (commit) discards c6cc9a81c33e734135f2bac358adc6f73ad2194c (commit) discards 41d379a8ebade12bf8b798b754ab13ea80629e04 (commit) discards 23f45e62c9a7597f257b3da5f3cb82d15f6c167e (commit) discards 786bd14c93e7d67209e9bacb0cb8bf0e56528681 (commit) discards 279f14fb0b9546a14d9cb4ec358863ea60750d75 (commit) discards 84c1cea905340971bc168f07cbd9114cfa86ceb4 (commit) discards 76fbab5740aae8fbc9cd7566af34cc0b86909aea (commit) discards 51286f98bb800640d3d39e53366e09012bffb824 (commit) discards 339b2b31d66d599bb433c09d5eb34143dbff0d2c (commit) discards aacd0cb0c9deb4f9f9ea78a0fd9320cb32fb5ede (commit) discards f582eb753eb746086ef29f6249040f1d7d7e35f9 (commit) discards 76839b6a522342fd85190cce6bf052140ea2d5af (commit) discards 4984d86008d6d40a96d6bc2b7a27f53627427bac (commit) discards 503369e7ca9efff903df4c551b60cb6ba424d2c1 (commit) discards 8aa14994e338ac140a41a99c29c891f7a1548ab7 (commit) discards 6ab467b03702929b346cb1136092dd9417cc74fd (commit) discards 3f92980773c8f2106f0ee2986a89fa958fc73acf (commit) discards 0a4094564dadfd15e0daa1e95927c343cfc616a2 (commit) discards 846484b2e2a1e4271553a27343fe8679bb21e229 (commit) discards b7deafc692edd9183adc6b993e8df122b7d9e503 (commit) discards 2f263657fd2b544ed75bfc9725dd30d6bc1cfd7d (commit) discards ca38804669676e531c6f7cf6d2e442092194c6d0 (commit) discards 50cde9c55aedb16eeb8c7fd2b550e980afca9f5b (commit) discards 0e88ab697ca02665a44a60f005c8623100c26b95 (commit) discards 364e60cdf76c05c4f87ab3aad19a81ee6145a4c4 (commit) discards 06a0700afd94c14d6d9219f776904f1787b41945 (commit) discards bcc6001f3cbf8ef47da872288f3c81e9600b9bc1 (commit) discards 45de32fa6c20de954e0571dfb9a44b375c87a6c6 (commit) discards 4612c1f6a7b201c12e7ff55633e744d4a4320147 (commit) discards 45e9d66545cdabc6ea5103e6c5c2546e2e0a982b (commit) discards 408b3783d63fc5f1ea0ee4a7a2bb2281bb13d64d (commit) discards 6988d0e8d6f81326c938224387533e30890e63d6 (commit) discards b636dae9b209b8f8e26bc7a7e579a0e1197dc414 (commit) discards 4633cbb96fcaee77f0da674c5caa766447406e99 (commit) discards a2a7d36b9b978ada6e41294fddba1ccd7332d6f5 (commit) discards 50138b2dd140df493aaff2fccd0388322b6eebb8 (commit) discards acb159fb817913c936a700cede9bff6383d2b0b8 (commit) discards 9fc0cedfcf71a31d7334fd73ffb26410db32b174 (commit) discards 8efe5364780a37b620d29c8ec3777a4406f46934 (commit) discards 13cc1f905284d00424cb165bb6f06353df3ccb82 (commit) discards 9d1508caf4faf0835cedd4e7d838fc685b11d92b (commit) discards 9a7c167351958027c7139cb712deda58a5858ffc (commit) discards 35f30aef42ec888a26aeb68b4b86cb25c6f20232 (commit) discards e939f8b18003e9b3fd2e2f398d3a2a0f8e5a46ad (commit) discards 89541d043d1d53b1a6c1082a9e9574b16165562d (commit) discards a3ff237a5c221be52bbd2cf7b526fd19b5202a35 (commit) discards b7af957834c120064057a0180487a56fc12ec7e1 (commit) discards ba807f282e5573adc20519394f32431fe4c54904 (commit) discards 3340213f8c2fbe3dcc4031e1d5f06484d468bc5e (commit) discards 0b303f9d018b06a0d46937d6ddc3001484e1c1b8 (commit) discards 38c92f8d1c4e372aaeb598f54822dc71281a580a (commit) discards 0f8ea1fdfa8e8ad51633d17dd0ffc158f619a8fb (commit) discards 8cf6ac2226d23ac78cea34ddfae28e1626d289e1 (commit) discards 477b3d2aee0dbd793710556ef798e8189cf7bcd5 (commit) discards 829748c7d25f49059e79031fc747ccf75fe11242 (commit) discards 2ba45d5adf671b82ed11aa994b920e988d0500a9 (commit) discards 75b076980b1522345e07bc3db45a13874896bae2 (commit) discards f80f94e6538a62d6de430c12630e15ecfd902830 (commit) discards e889750e7bce9750ef1f8cc505e77ead0b5aad1d (commit) discards 638f37623af0431c640d6020a3253dbb4d5c4841 (commit) discards 0823533dd339ef714c0d0efbc8321bafec48c501 (commit) discards ed67fe7451a5ebdf179bbfc5c2517f0e19e651d6 (commit) discards 5dc1ca679d48a4ef7ef0cd5c987e077bb75915c2 (commit) discards 0239a87173935c2d10e518c5070e4d90c9b6c79a (commit) discards e080ad36397d6b7d813b3b1c26a78414858c668a (commit) discards 37537d95cbcb3e7265599523bd31fe13cef25654 (commit) discards 2556769b73a707529a73df5a474620281e3fb7d8 (commit) discards dd0648f5baa4a6ddf640191fb9c82fc300c3732b (commit) discards b0ea076370600cd3e6a5d04a90667c0d2a8e4727 (commit) discards d4c222c5af0612ae0ec200bc540a733d0941fa19 (commit) discards 84c3eddac6e9de29995141f2cd12bb5cba16cbb5 (commit) discards a146979be3b0890d376f6c722f3b0744189367c9 (commit) discards 13314a3e27942a44e747a9ba52e0c819a1b602d2 (commit) discards 67fbc2b24e549ce159378277d651e72302b9fc70 (commit) discards 6581d3c2df248a6afdcbf19c48bf6d69c29d5bd0 (commit) discards 4e93e9036ad904278b1634e082dbc627aea868e8 (commit) discards 85cb9195338bfb9a3db0f3a4c60fe031599172eb (commit) discards 258250c4452bf6d73a0065d5914ce55360603d84 (commit) discards c4977015291e195193f0e529d86ebc039e009907 (commit) discards db86099f386b59ed8fe0b66d1956454de14aede8 (commit) discards 60c0bb2d4a7390ce63237da1b6a3d5dfcc79bab6 (commit) discards 4a46ce0e5cad085dd7e0013ce1b3d976a2c437c2 (commit) discards 00340d929ffb8986aa9349137149ae0edd28b60e (commit) discards 3cffa4c58ecdeaf44d05124a6cc2799205ca9670 (commit) discards d4bf5af08435c5bdc0a1575f9b1763844dabc148 (commit) discards 5e6a882345a53c0dfc96ad8cfe4cd825b8bfa571 (commit) discards 20d39160baf3301acdfac3f844b2c23cb1a2dd9b (commit) discards 47f4a0c1ed5243f2d8482a952a0a687ab9307bd0 (commit) discards eed7ebb5ca6bb7430e2601b94eb1d2fde40f6884 (commit) discards c415052b368c6b1dd822332b443f896841804d0e (commit) discards 726660c22aa5116222cc0b5d713899b8fac92a24 (commit) discards ef4c9231c4c33905d77f9a86b3d6f201d93fefb2 (commit) discards e6f8142ae6ad655897827031acb791d15f6c2896 (commit) discards d358f8bba5418d0a8e95bd5efe0a913b8acb2a13 (commit) discards d8aec3f2d5478ffb7235b638d33d08e944093916 (commit) discards f8c5b31f33becfba9f25ca29cc4caee6b343f93c (commit) discards d5d8170f3628c867bd14f385de3d5b8b82f01109 (commit) discards 6ddde7ce0264de27af6a5160695506abb52906e2 (commit) discards fb4044b6f07df33a146df4e19da65e415899cda7 (commit) discards c7a665b6002f98abb4d48f270ef7127bc2306b5a (commit) discards e8d7474006657657f4fc66b48d98b6e1c80fce03 (commit) discards e1b5a54d1da318510445fe1fcc969018e1a6b6dd (commit) discards 9862605636abde65ca8e651d42b3d706beeaaecc (commit) discards a45a5847e096e7f077acb0a4fde44bda9225fbc4 (commit) discards 4c53c29d86e7dc4c580fb5b7c8f06551934ae03c (commit) discards 4ff5dce9f8be34d556f1fb98272a8654b1f6c5bb (commit) discards 934ac7916e4e4df6ef55441d58fd1c310e4ad9f1 (commit) discards 717491dd7d4a886d484025fd9002df44458117b5 (commit) discards b75e7691425d4cb658f3b0981fdbfbc25dedfb43 (commit) discards 17926f29cecc7574c9173ff06f5e3d0e4e250b02 (commit) discards c1bfff2e72bd673e7b7bebddf58c7ea508bf4196 (commit) discards fe4c8e497ce4eb67bd14187f8729710a72cfe37a (commit) discards 97eb120fd3b755ceb24da8ab159ecd68a8f62330 (commit) discards 36fd53b534c9678996b7bac971ac608cbbd2e910 (commit) discards f78dfcfd57e10ab8f2d020bfbc462e535918bec0 (commit) discards c8333e08fed572086f0e0fa9694f4ff75a3c9127 (commit) discards b628a1dcb0548c56477e25b0c992d9929562502d (commit) discards d73d9d01b996a17788362c0a12dfe28d9948b29d (commit) discards 8068f441f6ae65bec7d0cf3ba50cbbf97f2087b4 (commit) discards f7993cbeaa9d770646a97d7abeaa9b46087dfe59 (commit) discards e70392430de41387679706c6c1b01cc74b261aa5 (commit) discards b9bc47f7cb9806eb328f830ca162d1b08222b247 (commit) discards 9f1f05fa14b26f45b664fba54c084cde36b22edb (commit) discards 3373f1efa71ea5cc3cb98238b25c5dd08420748c (commit) discards db47cc7584e076fa6ebfbf9cf71317c15fc4e691 (commit) discards fb71eaf6b4b53ced12e208ee5905c5909deddf36 (commit) discards 86d2bb68b573a1d71bc6eb6c88287ff29baa3909 (commit) discards ca0b192713a2a4694394fa7b2dfbfaa96cb6f6b1 (commit) discards 6a98f43c2894bbf324ae31311e5e0ef021a2c3b3 (commit) discards 4ed9498bbdc13344a7f81b2c213a175bb719121d (commit) discards 37d47b4375fd8c15f90bd1b03f6a2c1a0ac58636 (commit) discards b44b3df4e1f9ee55734c2e02f37459e2bea5dc1d (commit) discards 7a6d61fe67383038e2874e0508d78778fabc7183 (commit) discards 2848407ff801cad7cf0cb86391dcecdc8343542a (commit) discards 01d648002dd3d669c4612e8174671c27bd637702 (commit) discards 30c8c9bc75b387b1432a9c1cb5d4399bae163a71 (commit) discards 86c53732c151f94749f375fe371e5db6f1f469e8 (commit) discards eb9bdadb1ab2103d9febf6ada6c3fcf5165d81af (commit) discards df2ae6c84e8917c77cdf66182944e7b85fdce651 (commit) discards 97528f337a23106f8475fa7bd2d2345b8358fee5 (commit) discards b99d0e064557f6d59da35da34a7d5ae39cd44644 (commit) discards 5e08acc89b9b28ffdab4eadc379aa9a346bd841d (commit) discards 4d505256b3e3b787f701e84717d1076a0e87ae22 (commit) This update discarded existing revisions and left the branch pointing at a previous point in the repository history. * -- * -- N (4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11) \ O -- O -- O (51581b7074637074499ee9246428b787b6406096) The removed revisions are not necessarilly gone - if another reference still refers to them they will stay in the repository. No new revisions were added by this update. Summary of changes: Source/CMakeLists.txt | 2 - Source/cmQtAutoGeneratorCommon.cxx | 215 --------- Source/cmQtAutoGeneratorCommon.h | 34 -- Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++++++-------- Source/cmQtAutoGenerators.cxx | 225 ++++------ Source/cmQtAutoGenerators.h | 2 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- .../{mocRerun => automoc_rerun}/CMakeLists.txt | 14 +- .../{mocRerun => automoc_rerun}/input.txt | 0 .../QtAutogen/{mocRerun => automoc_rerun}/res1.qrc | 0 .../automoc_rerun/test1.cpp} | 1 + Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 + Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 + .../{rccDepends => autorcc_depends}/CMakeLists.txt | 15 +- .../{rccDepends => autorcc_depends}/res1.qrc.in | 0 .../res1/input.txt.in} | 0 .../{rccDepends => autorcc_depends}/test_res1.cpp | 0 Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 -- Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 - Tests/QtAutogen/mocDepends/object.hpp.in | 14 - Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 - Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 - Tests/QtAutogen/mocDepends/test1.cpp | 9 - Tests/QtAutogen/mocDepends/test2.cpp | 10 - Tests/QtAutogen/mocDepends/test2.hpp | 16 - Tests/QtAutogen/mocRerun/main.cpp.in | 18 - Tests/QtAutogen/mocRerun/test1a.h.in | 8 - Tests/QtAutogen/mocRerun/test1b.h.in | 7 - Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 - Tests/QtAutogen/rccDepends/res2.qrc.in | 5 - 30 files changed, 439 insertions(+), 808 deletions(-) delete mode 100644 Source/cmQtAutoGeneratorCommon.cxx delete mode 100644 Source/cmQtAutoGeneratorCommon.h rename Tests/QtAutogen/{mocRerun => automoc_rerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/input.txt (100%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/res1.qrc (100%) copy Tests/{BuildDepends/Project/object_depends.cxx => QtAutogen/automoc_rerun/test1.cpp} (58%) create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 rename Tests/QtAutogen/{rccDepends => autorcc_depends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/res1.qrc.in (100%) rename Tests/QtAutogen/{rccDepends/res/input1.txt.in => autorcc_depends/res1/input.txt.in} (100%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/test_res1.cpp (100%) delete mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt delete mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/test1.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.hpp delete mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in delete mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in delete mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in delete mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in delete mode 100644 Tests/QtAutogen/rccDepends/res2.qrc.in hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 13:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 13:25:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-347-g5f76988 Message-ID: <20170303182503.00465FA448@public.kitware.com> 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 5f769885a006aff41f31b544aa4c0e020a77a809 (commit) via 1cc73e9a6c6dca38a163a8e61208b6ab74839441 (commit) via 9a65b1272c94cfbaa929e674db55c67485a2cf2a (commit) via 205ac0f034b9fac9d220b2c24a17738708f3068b (commit) via 9360e6c6a0197e9ac05d085221eb7ec31be3c2eb (commit) via d33de80c8a9e3e5e56012cbfe640004f7cb1550f (commit) from 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (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=5f769885a006aff41f31b544aa4c0e020a77a809 commit 5f769885a006aff41f31b544aa4c0e020a77a809 Merge: 4e8ffb9 1cc73e9 Author: Brad King AuthorDate: Fri Mar 3 18:20:35 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 3 13:20:39 2017 -0500 Stage topic 'doc-development-process' Topic-id: 22836 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/542 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1cc73e9a6c6dca38a163a8e61208b6ab74839441 commit 1cc73e9a6c6dca38a163a8e61208b6ab74839441 Author: Brad King AuthorDate: Thu Feb 23 14:56:00 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 11:47:37 2017 -0500 CONTRIBUTING: Add link to review process document diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 3eba1a5..434f0f4 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -30,9 +30,12 @@ To contribute patches: #. Push a topic branch to a personal repository fork on GitLab. #. Create a GitLab Merge Request targeting the upstream ``master`` branch. +The merge request will enter the `CMake Review Process`_ for consideration. + .. _`Kitware's GitLab Instance`: https://gitlab.kitware.com .. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake .. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh +.. _`CMake Review Process`: Help/dev/review.rst Code Style ========== https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9a65b1272c94cfbaa929e674db55c67485a2cf2a commit 9a65b1272c94cfbaa929e674db55c67485a2cf2a Author: Brad King AuthorDate: Thu Feb 23 15:56:50 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 11:47:37 2017 -0500 CONTRIBUTING: Add link to development documentation README diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 61d2a63..3eba1a5 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,6 +1,11 @@ Contributing to CMake ********************* +The following summarizes the process for contributing changes. +See documentation on `CMake Development`_ for more information. + +.. _`CMake Development`: Help/dev/README.rst + Community ========= https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=205ac0f034b9fac9d220b2c24a17738708f3068b commit 205ac0f034b9fac9d220b2c24a17738708f3068b Author: Brad King AuthorDate: Thu Feb 23 14:10:56 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 11:47:36 2017 -0500 CONTRIBUTING: Add note about running developer setup script diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 921ba7c..61d2a63 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -19,6 +19,7 @@ CMake uses `Kitware's GitLab Instance`_ to manage development and code review. To contribute patches: #. Fork the upstream `CMake Repository`_ into a personal account. +#. Run `Utilities/SetupForDevelopment.sh`_ for local configuration. #. Base all new work on the upstream ``master`` branch. #. Create commits making incremental, distinct, logically complete changes. #. Push a topic branch to a personal repository fork on GitLab. @@ -26,6 +27,7 @@ To contribute patches: .. _`Kitware's GitLab Instance`: https://gitlab.kitware.com .. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake +.. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh Code Style ========== https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9360e6c6a0197e9ac05d085221eb7ec31be3c2eb commit 9360e6c6a0197e9ac05d085221eb7ec31be3c2eb Author: Brad King AuthorDate: Fri Feb 24 16:16:19 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 11:47:36 2017 -0500 Help/dev: Document the CMake Review Process diff --git a/Help/dev/README.rst b/Help/dev/README.rst index a7cafcc..6d3d46d 100644 --- a/Help/dev/README.rst +++ b/Help/dev/README.rst @@ -13,3 +13,15 @@ The process for contributing changes is the same whether or not one has been invited to participate directly in upstream development. .. _`CONTRIBUTING.rst`: ../../CONTRIBUTING.rst + +Upstream Development +==================== + +CMake uses `Kitware's GitLab Instance`_ to manage development, review, and +integration of changes. The `CMake Repository`_ holds the integration +branches and tags. Changes follow the `CMake Review Process`_ for +integration. + +.. _`Kitware's GitLab Instance`: https://gitlab.kitware.com +.. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake +.. _`CMake Review Process`: review.rst diff --git a/Help/dev/review.rst b/Help/dev/review.rst new file mode 100644 index 0000000..ca64b95 --- /dev/null +++ b/Help/dev/review.rst @@ -0,0 +1,304 @@ +CMake Review Process +******************** + +The following documents the process for reviewing and integrating changes. +See `CONTRIBUTING.rst`_ for instructions to contribute changes. +See documentation on `CMake Development`_ for more information. + +.. _`CONTRIBUTING.rst`: ../../CONTRIBUTING.rst +.. _`CMake Development`: README.rst + +.. contents:: The review process consists of the following steps: + +Merge Request +============= + +A user initiates the review process for a change by pushing a *topic +branch* to his or her own fork of the `CMake Repository`_ on GitLab and +creating a *merge request* ("MR"). The new MR will appear on the +`CMake Merge Requests Page`_. The rest of the review and integration +process is managed by the merge request page for the change. + +During the review process, the MR submitter should address review comments +or test failures by updating the MR with a (force-)push of the topic +branch. The update initiates a new round of review. + +We recommend that users enable the "Remove source branch when merge +request is accepted" option when creating the MR or by editing it. +This will cause the MR topic branch to be automatically removed from +the user's fork during the `Merge`_ step. + +.. _`CMake Merge Requests Page`: https://gitlab.kitware.com/cmake/cmake/merge_requests +.. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake + +Workflow Status +--------------- + +`CMake GitLab Project Developers`_ may set one of the following labels +in GitLab to track the state of a MR: + +* ``workflow:wip`` indicates that the MR needs additional updates from + the MR submitter before further review. Use this label after making + comments that require such updates. + +* ``workflow:in-review`` indicates that the MR awaits feedback from a + human reviewer or from `Topic Testing`_. Use this label after making + comments requesting such feedback. + +* ``workflow:nightly-testing`` indicates that the MR awaits results + of `Integration Testing`_. Use this label after making comments + requesting such staging. + +* ``workflow:expired`` indicates that the MR has been closed due + to a period of inactivity. See the `Expire`_ step. Use this label + after closing a MR for this reason. + +The workflow status labels are intended to be mutually exclusive, +so please remove any existing workflow label when adding one. + +.. _`CMake GitLab Project Developers`: https://gitlab.kitware.com/cmake/cmake/settings/members + +Robot Review +============ + +The "Kitware Robot" (``@kwrobot``) automatically performs basic checks on +the commits proposed in a MR. If all is well the robot silently reports +a successful "build" status to GitLab. Otherwise the robot posts a comment +with its diagnostics. **A topic may not be merged until the automatic +review succeeds.** The MR submitter is expected to address the robot's +comments by *rewriting* the commits named by the robot's diagnostics +(e.g. via ``git rebase -i``). + +The automatic check is repeated whenever the topic branch is updated. +One may explicitly request a re-check by adding a comment with the +following command among the `comment trailing lines`_:: + + Do: check + +``@kwrobot`` will add an award emoji to the comment to indicate that it +was processed and also run its checks again. + +Human Review +============ + +Anyone is welcome to review merge requests and make comments! + +Reviewers may add comments providing feedback or to acknowledge their +approval. Lines of specific forms will be extracted during the `merge`_ +step and included as trailing lines of the generated merge commit message. +Each review comment consists of up to two parts which must be specified +in the following order: `comment body`_, then `comment trailing lines`_. +Each part is optional, but they must be specified in this order. + +Comment Body +------------ + +The body of a comment may be free-form `GitLab Flavored Markdown`_. +See GitLab documentation on `Special GitLab References`_ to add links to +things like issues, commits, or other merge requests (even across projects). + +Additionally, a line in the comment body may start with one of the +following votes: + +* ``-1`` or ``:-1:`` indicates "the change is not ready for integration". + +* ``+1`` or ``:+1:`` indicates "I like the change". + This adds an ``Acked-by:`` trailer to the `merge`_ commit message. + +* ``+2`` indicates "the change is ready for integration". + This adds a ``Reviewed-by:`` trailer to the `merge`_ commit message. + +* ``+3`` indicates "I have tested the change and verified it works". + This adds a ``Tested-by:`` trailer to the `merge`_ commit message. + +.. _`GitLab Flavored Markdown`: https://gitlab.kitware.com/help/user/markdown.md +.. _`Special GitLab References`: https://gitlab.kitware.com/help/user/markdown.md#special-gitlab-references + +Comment Trailing Lines +---------------------- + +Zero or more *trailing* lines in the last section of a comment may appear +with the form ``Key: Value``. The first such line should be separated +from a preceding `comment body`_ by a blank line. Any key-value pair(s) +may be specified for human reference. A few specific keys have meaning to +``@kwrobot`` as follows. + +Comment Trailer Votes +^^^^^^^^^^^^^^^^^^^^^ + +Among the `comment trailing lines`_ one may cast a vote using one of the +following pairs followed by nothing but whitespace before the end of the line: + +* ``Rejected-by: me`` indicates "the change is not ready for integration". +* ``Acked-by: me`` indicates "I like the change". + This adds an ``Acked-by:`` trailer to the `merge`_ commit message. +* ``Reviewed-by: me`` indicates "the change is ready for integration". + This adds a ``Reviewed-by:`` trailer to the `merge`_ commit message. +* ``Tested-by: me`` indicates "I have tested the change and verified it works". + This adds a ``Tested-by:`` trailer to the `merge`_ commit message. + +Each ``me`` reference may instead be an ``@username`` reference or a full +``Real Name `` reference to credit someone else for performing +the review. References to ``me`` and ``@username`` will automatically be +transformed into a real name and email address according to the user's +GitLab account profile. + +Comment Trailer Commands +^^^^^^^^^^^^^^^^^^^^^^^^ + +Among the `comment trailing lines`_ authorized users may issue special +commands to ``@kwrobot`` using the form ``Do: ...``: + +* ``Do: check`` explicitly re-runs `Robot Review`_ checks. +* ``Do: test`` submits the MR for `Topic Testing`_. +* ``Do: stage`` submits the MR for `Integration Testing`_. +* ``Do: merge`` submits the MR for `Merge`_. + +See the corresponding sections for details on permissions and options +for each command. + +Topic Testing +============= + +CMake has a `buildbot`_ instance watching for merge requests to test. +`CMake GitLab Project Developers`_ may activate buildbot on a MR by +adding a comment with a command among the `comment trailing lines`_:: + + Do: test + +``@kwrobot`` will add an award emoji to the comment to indicate that it +was processed and also inform buildbot about the request. The buildbot +user (``@buildbot``) will schedule builds and respond with a comment +linking to the `CMake CDash Page`_ with a filter for results associated +with the topic test request. If the MR topic branch is updated by a +push a new ``Do: test`` command is needed to activate testing again. + +The ``Do: test`` command accepts the following arguments: + +* ``--stop``: clear the list of commands for the merge request +* ``--clear``: clear previous commands before adding this command +* ``--regex-include `` or ``-i ``: only build on builders + matching ```` (a Python regular expression) +* ``--regex-exclude `` or ``-e ``: exclude builds on builders + matching ```` (a Python regular expression) + +Builder names follow the pattern ``project-host-os-buildtype-generator``: + +* ``project``: always ``cmake`` for CMake builds +* ``host``: the buildbot host +* ``os``: one of ``windows``, ``osx``, or ``linux`` +* ``buildtype``: ``release`` or ``debug`` +* ``generator``: ``ninja``, ``makefiles``, or ``vs`` + +.. _`buildbot`: http://buildbot.net +.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake + +Integration Testing +=================== + +The above `topic testing`_ tests the MR topic independent of other +merge requests and on only a few key platforms and configurations. +CMake also has a large number of testing machines provided by Kitware +and generous volunteers that cover nearly all supported platforms, +generators, and configurations. In order to avoid overwhelming these +resources, they do not test every MR individually. Instead, these +machines follow an *integration branch*, run tests on a nightly basis +(or continuously during the day), and post to the `CMake CDash Page`_. +Some follow ``master``. Most follow a special integration branch, +the *topic stage*. + +The topic stage is a special branch maintained by the "Kitware Robot" +(``@kwrobot``). It consists of the head of the MR target integration +branch (e.g. ``master``) branch followed by a sequence of merges each +integrating changes from an open MR that has been staged for integration +testing. Each time the target integration branch is updated the stage +is rebuilt automatically by merging the staged MR topics again. + +`CMake GitLab Project Developers`_ may stage a MR for integration testing +by adding a comment with a command among the `comment trailing lines`_:: + + Do: stage + +``@kwrobot`` will add an award emoji to the comment to indicate that it +was processed and also attempt to add the MR topic branch to the topic +stage. If the MR cannot be added (e.g. due to conflicts) the robot will +post a comment explaining what went wrong. + +Once a MR has been added to the topic stage it will remain on the stage +until one of the following occurs: + +* The MR topic branch is updated by a push. + +* The MR target integration branch (e.g. ``master``) branch is updated + and the MR cannot be merged into the topic stage again due to conflicts. + +* A developer or the submitter posts an explicit ``Do: unstage`` command. + +* The MR is closed. + +* The MR is merged. + +Once a MR has been removed from the topic stage a new ``Do: stage`` +command is needed to stage it again. + +Resolve +======= + +A MR may be resolved in one of the following ways. + +Merge +----- + +Once review has concluded that the MR topic is ready for integration, +`CMake GitLab Project Masters`_ may merge the topic by adding a comment +with a command among the `comment trailing lines`_:: + + Do: merge + +``@kwrobot`` will add an award emoji to the comment to indicate that it +was processed and also attempt to merge the MR topic branch to the MR +target integration branch (e.g. ``master``). If the MR cannot be merged +(e.g. due to conflicts) the robot will post a comment explaining what +went wrong. If the MR is merged the robot will also remove the source +branch from the user's fork if the corresponding MR option was checked. + +The robot automatically constructs a merge commit message of the following +form:: + + Merge topic 'mr-topic-branch-name' + + 00000000 commit message subject line (one line per commit) + + Acked-by: Kitware Robot + Merge-request: !0000 + +Mention of the commit short sha1s and MR number helps GitLab link the +commits back to the merge request and indicates when they were merged. +The ``Acked-by:`` trailer shown indicates that `Robot Review`_ passed. +Additional ``Acked-by:``, ``Reviewed-by:``, and similar trailers may be +collected from `Human Review`_ comments that have been made since the +last time the MR topic branch was updated with a push. + +The ``Do: merge`` command accepts the following arguments: + +* ``-t ``: substitute ```` for the name of the MR topic + branch in the constructed merge commit message. + +.. _`CMake GitLab Project Masters`: https://gitlab.kitware.com/cmake/cmake/settings/members + +Close +----- + +If review has concluded that the MR should not be integrated then it +may be closed through GitLab. + +Expire +------ + +If progress on a MR has stalled for a while, it may be closed with a +``workflow:expired`` label and a comment indicating that the MR has +been closed due to inactivity. + +Contributors are welcome to re-open an expired MR when they are ready +to continue work. Please re-open *before* pushing an update to the +MR topic branch to ensure GitLab will still act on the association. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d33de80c8a9e3e5e56012cbfe640004f7cb1550f commit d33de80c8a9e3e5e56012cbfe640004f7cb1550f Author: Brad King AuthorDate: Thu Feb 23 14:05:38 2017 -0500 Commit: Brad King CommitDate: Wed Mar 1 16:05:55 2017 -0500 Help/dev: Exclude this directory from user-facing documentation Teach Sphinx and our own install rules to skip a `Help/dev` directory. This will give us a place to put developer-only documentation that should not be included in the user-facing documentation. Add a placeholder README. diff --git a/CMakeLists.txt b/CMakeLists.txt index 472c6ab..ed5de10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -806,6 +806,7 @@ if(NOT CMake_TEST_EXTERNAL_CMAKE) PATTERN "*.sh*" PERMISSIONS OWNER_READ OWNER_EXECUTE OWNER_WRITE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + REGEX "Help/dev($|/)" EXCLUDE ) # Install auxiliary files integrating with other tools. diff --git a/Help/dev/README.rst b/Help/dev/README.rst new file mode 100644 index 0000000..a7cafcc --- /dev/null +++ b/Help/dev/README.rst @@ -0,0 +1,15 @@ +CMake Development +***************** + +This directory contains documentation about development of CMake itself. +It is not part of the user documentation distributed with CMake. + +Contributor Instructions +======================== + +See `CONTRIBUTING.rst`_ for instructions to contribute changes. + +The process for contributing changes is the same whether or not one +has been invited to participate directly in upstream development. + +.. _`CONTRIBUTING.rst`: ../../CONTRIBUTING.rst diff --git a/Utilities/Sphinx/conf.py.in b/Utilities/Sphinx/conf.py.in index 9581458..e3afc78 100644 --- a/Utilities/Sphinx/conf.py.in +++ b/Utilities/Sphinx/conf.py.in @@ -18,7 +18,9 @@ release = '@conf_release@' # full version string primary_domain = 'cmake' -exclude_patterns = [] +exclude_patterns = [ + 'dev', # ignore developer-only documentation + ] extensions = ['cmake'] templates_path = ['@conf_path@/templates'] ----------------------------------------------------------------------- Summary of changes: CMakeLists.txt | 1 + CONTRIBUTING.rst | 10 ++ Help/dev/README.rst | 27 ++++ Help/dev/review.rst | 304 +++++++++++++++++++++++++++++++++++++++++++ Utilities/Sphinx/conf.py.in | 4 +- 5 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 Help/dev/README.rst create mode 100644 Help/dev/review.rst hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 13:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 13:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-347-g75da91a Message-ID: <20170303183503.2D0B5FA173@public.kitware.com> 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 75da91ab952ad770c2d1fe9a96aa630a4d02738e (commit) via 1cc73e9a6c6dca38a163a8e61208b6ab74839441 (commit) via 9a65b1272c94cfbaa929e674db55c67485a2cf2a (commit) via 205ac0f034b9fac9d220b2c24a17738708f3068b (commit) via 9360e6c6a0197e9ac05d085221eb7ec31be3c2eb (commit) via d33de80c8a9e3e5e56012cbfe640004f7cb1550f (commit) from 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: CMakeLists.txt | 1 + CONTRIBUTING.rst | 10 ++ Help/dev/README.rst | 27 ++++ Help/dev/review.rst | 304 +++++++++++++++++++++++++++++++++++++++++++ Utilities/Sphinx/conf.py.in | 4 +- 5 files changed, 345 insertions(+), 1 deletion(-) create mode 100644 Help/dev/README.rst create mode 100644 Help/dev/review.rst hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 13:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 13:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-347-g75da91a Message-ID: <20170303183503.46AC1FA173@public.kitware.com> 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 5f769885a006aff41f31b544aa4c0e020a77a809 (commit) via 75da91ab952ad770c2d1fe9a96aa630a4d02738e (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 (5f769885a006aff41f31b544aa4c0e020a77a809) \ N -- N -- N (75da91ab952ad770c2d1fe9a96aa630a4d02738e) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 13:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 13:55:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-349-ge7e9390 Message-ID: <20170303185502.9420EF9D4D@public.kitware.com> 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 e7e939058d568a7aac9952386057fc869c240a9e (commit) via 6cd3079ce8072203a71f9dc8d3f0b578f9ad063c (commit) from 75da91ab952ad770c2d1fe9a96aa630a4d02738e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Utilities/GitSetup/config | 9 +-------- Utilities/SetupForDevelopment.sh | 5 +---- 2 files changed, 2 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 13:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 13:55:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-349-ge7e9390 Message-ID: <20170303185502.AD5CEF9DBE@public.kitware.com> 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 e7e939058d568a7aac9952386057fc869c240a9e (commit) via 6cd3079ce8072203a71f9dc8d3f0b578f9ad063c (commit) from 75da91ab952ad770c2d1fe9a96aa630a4d02738e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Utilities/GitSetup/config | 9 +-------- Utilities/SetupForDevelopment.sh | 5 +---- 2 files changed, 2 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 14:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 14:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-369-gfddee0f Message-ID: <20170303190503.9BEEFF5E73@public.kitware.com> 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 fddee0f94de26cd9540becfca7ad81716023f767 (commit) via de21e3afaad243f15577d8bc1b20a76c563680d7 (commit) via c3eb88e23d958676dd7bd3435d2005341a4caca3 (commit) via ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) via 28878dbdd49dce43a15a98062696af30f26800cf (commit) via 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) via 614917f70e292763b14b1c388e92714bac31fa9c (commit) via 505ed4e76f3043cdb5d45effc4791455136560df (commit) via eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) via c511576c620ecbc614591722ad1b381c8a7d2528 (commit) via 4ef593ed4940229437dbbad7707a6461846318f8 (commit) via bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) via c52eecc303f8cb3de406d788914a2071cef4e60f (commit) via 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) via 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) via f9531b373f27367ac0d8c4beae474768b7745b59 (commit) via 100723035ac228187e60f549dd38c8f89c447b40 (commit) via 09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 (commit) via 1ee20805d3b0ed67dad7c2835d673c98961736ef (commit) via 5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 (commit) from e7e939058d568a7aac9952386057fc869c240a9e (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=fddee0f94de26cd9540becfca7ad81716023f767 commit fddee0f94de26cd9540becfca7ad81716023f767 Merge: de21e3a c3eb88e Author: Brad King AuthorDate: Fri Mar 3 18:58:53 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 3 13:58:57 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=de21e3afaad243f15577d8bc1b20a76c563680d7 commit de21e3afaad243f15577d8bc1b20a76c563680d7 Merge: e7e9390 ef4e1e8 Author: Brad King AuthorDate: Fri Mar 3 18:55:51 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 3 13:55:55 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c3eb88e23d958676dd7bd3435d2005341a4caca3 commit c3eb88e23d958676dd7bd3435d2005341a4caca3 Author: Ben Boeckel AuthorDate: Wed Apr 6 14:23:55 2016 -0400 Commit: Ben Boeckel CommitDate: Fri Mar 3 09:56:21 2017 -0500 cmWorkingDirectory: use the new class These functions just need to change the directory for a block of code and then go back to the caller's expected location. Use cmWorkingDirectory to ensure that all return paths are handled. diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx index 9d9cd66..cc01b0c 100644 --- a/Source/CPack/cmCPackArchiveGenerator.cxx +++ b/Source/CPack/cmCPackArchiveGenerator.cxx @@ -7,6 +7,7 @@ #include "cmCPackLog.h" #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -37,9 +38,8 @@ int cmCPackArchiveGenerator::addOneComponentToArchive( // Add the files of this component to the archive std::string localToplevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); localToplevel += "/" + component->Name; - std::string dir = cmSystemTools::GetCurrentWorkingDirectory(); // Change to local toplevel - cmSystemTools::ChangeDirectory(localToplevel); + cmWorkingDirectory workdir(localToplevel); std::string filePrefix; if (this->IsOn("CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY")) { filePrefix = this->GetOption("CPACK_PACKAGE_FILE_NAME"); @@ -64,8 +64,6 @@ int cmCPackArchiveGenerator::addOneComponentToArchive( return 0; } } - // Go back to previous dir - cmSystemTools::ChangeDirectory(dir); return 1; } @@ -227,8 +225,7 @@ int cmCPackArchiveGenerator::PackageFiles() // CASE 3 : NON COMPONENT package. DECLARE_AND_OPEN_ARCHIVE(packageFileNames[0], archive); std::vector::const_iterator fileIt; - std::string dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(toplevel); + cmWorkingDirectory workdir(toplevel); for (fileIt = files.begin(); fileIt != files.end(); ++fileIt) { // Get the relative path to the file std::string rp = @@ -241,7 +238,6 @@ int cmCPackArchiveGenerator::PackageFiles() return 0; } } - cmSystemTools::ChangeDirectory(dir); // The destructor of cmArchiveWrite will close and finish the write return 1; } diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index e1a4a2a..f6ea8cf 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -16,6 +16,7 @@ #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmStateSnapshot.h" +#include "cmWorkingDirectory.h" #include "cmXMLSafe.h" #include "cm_auto_ptr.hxx" #include "cmake.h" @@ -383,7 +384,7 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( goToDir += "/" + subdir; cmCPackLogger(cmCPackLog::LOG_DEBUG, "Change dir to: " << goToDir << std::endl); - cmSystemTools::ChangeDirectory(goToDir); + cmWorkingDirectory workdir(goToDir); for (symlinkedIt = symlinkedFiles.begin(); symlinkedIt != symlinkedFiles.end(); ++symlinkedIt) { cmCPackLogger(cmCPackLog::LOG_DEBUG, "Will create a symlink: " @@ -408,7 +409,6 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( } cmCPackLogger(cmCPackLog::LOG_DEBUG, "Going back to: " << curDir << std::endl); - cmSystemTools::ChangeDirectory(curDir); } } } diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index 6780a0e..6f81429 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -6,6 +6,7 @@ #include "cmCTestTestHandler.h" #include "cmGlobalGenerator.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #include @@ -42,7 +43,7 @@ int cmCTestBuildAndTestHandler::ProcessHandler() int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, std::ostringstream& out, std::string& cmakeOutString, - std::string& cwd, cmake* cm) + cmake* cm) { unsigned int k; std::vector args; @@ -85,8 +86,6 @@ int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, if (cm->Run(args) != 0) { out << "Error: cmake execution failed\n"; out << cmakeOutString << "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); if (outstring) { *outstring = out.str(); } else { @@ -99,8 +98,6 @@ int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, if (cm->Run(args) != 0) { out << "Error: cmake execution failed\n"; out << cmakeOutString << "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); if (outstring) { *outstring = out.str(); } else { @@ -199,13 +196,12 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) double clock_start = cmSystemTools::GetTime(); // make sure the binary dir is there - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); out << "Internal cmake changing into directory: " << this->BinaryDir << std::endl; if (!cmSystemTools::FileIsDirectory(this->BinaryDir)) { cmSystemTools::MakeDirectory(this->BinaryDir.c_str()); } - cmSystemTools::ChangeDirectory(this->BinaryDir); + cmWorkingDirectory workdir(this->BinaryDir); if (this->BuildNoCMake) { // Make the generator available for the Build call below. @@ -217,7 +213,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) cm.LoadCache(this->BinaryDir); } else { // do the cmake step, no timeout here since it is not a sub process - if (this->RunCMake(outstring, out, cmakeOutString, cwd, &cm)) { + if (this->RunCMake(outstring, out, cmakeOutString, &cm)) { return 1; } } @@ -304,8 +300,6 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) } else { cmCTestLog(this->CTest, ERROR_MESSAGE, out.str()); } - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h index 5885738..af082a3 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.h +++ b/Source/CTest/cmCTestBuildAndTestHandler.h @@ -46,7 +46,7 @@ protected: ///! Run CMake and build a test and then run it as a single test. int RunCMakeAndTest(std::string* output); int RunCMake(std::string* outstring, std::ostringstream& out, - std::string& cmakeOutString, std::string& cwd, cmake* cm); + std::string& cmakeOutString, cmake* cm); std::string Output; diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index ead1c26..120c5d9 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -12,6 +12,7 @@ #include "cmParseJacocoCoverage.h" #include "cmParsePHPCoverage.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmXMLWriter.h" #include "cmake.h" @@ -969,9 +970,8 @@ int cmCTestCoverageHandler::HandleGCovCoverage( std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; std::string tempDir = testingDir + "/CoverageInfo"; - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); cmSystemTools::MakeDirectory(tempDir.c_str()); - cmSystemTools::ChangeDirectory(tempDir); + cmWorkingDirectory workdir(tempDir); int gcovStyle = 0; @@ -1294,7 +1294,6 @@ int cmCTestCoverageHandler::HandleGCovCoverage( } } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } @@ -1340,7 +1339,6 @@ int cmCTestCoverageHandler::HandleLCovCoverage( return 0; } std::string testingDir = this->CTest->GetBinaryDir(); - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); std::set missingFiles; @@ -1362,7 +1360,7 @@ int cmCTestCoverageHandler::HandleLCovCoverage( cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, "." << std::flush, this->Quiet); std::string fileDir = cmSystemTools::GetFilenamePath(*it); - cmSystemTools::ChangeDirectory(fileDir); + cmWorkingDirectory workdir(fileDir); std::string command = "\"" + lcovCommand + "\" " + lcovExtraFlags + " "; cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, @@ -1552,7 +1550,6 @@ int cmCTestCoverageHandler::HandleLCovCoverage( } } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } @@ -1591,13 +1588,8 @@ bool cmCTestCoverageHandler::FindLCovFiles(std::vector& files) gl.RecurseOff(); // No need of recurse if -prof_dir${BUILD_DIR} flag is // used while compiling. gl.RecurseThroughSymlinksOff(); - std::string prevBinaryDir; std::string buildDir = this->CTest->GetCTestConfiguration("BuildDirectory"); - if (cmSystemTools::ChangeDirectory(buildDir)) { - cmCTestLog(this->CTest, ERROR_MESSAGE, "Error changing directory to " - << buildDir << std::endl); - return false; - } + cmWorkingDirectory workdir(buildDir); // Run profmerge to merge all *.dyn files into dpi files if (!cmSystemTools::RunSingleCommand("profmerge")) { @@ -1605,11 +1597,9 @@ bool cmCTestCoverageHandler::FindLCovFiles(std::vector& files) return false; } - prevBinaryDir = cmSystemTools::GetCurrentWorkingDirectory(); - // DPI file should appear in build directory std::string daGlob; - daGlob = prevBinaryDir; + daGlob = buildDir; daGlob += "/*.dpi"; cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " looking for dpi files in: " << daGlob << std::endl, diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx index 2a67d47..c99e450 100644 --- a/Source/CTest/cmCTestHandlerCommand.cxx +++ b/Source/CTest/cmCTestHandlerCommand.cxx @@ -6,6 +6,7 @@ #include "cmCTestGenericHandler.h" #include "cmMakefile.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #include @@ -216,8 +217,7 @@ bool cmCTestHandlerCommand::InitialPass(std::vector const& args, handler->SetSubmitIndex(atoi(this->Values[ct_SUBMIT_INDEX])); } } - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory( + cmWorkingDirectory workdir( this->CTest->GetCTestConfiguration("BuildDirectory")); int res = handler->ProcessHandler(); if (this->Values[ct_RETURN_VALUE] && *this->Values[ct_RETURN_VALUE]) { @@ -243,7 +243,6 @@ bool cmCTestHandlerCommand::InitialPass(std::vector const& args, this->Makefile->AddDefinition(this->Values[ct_CAPTURE_CMAKE_ERROR], returnString); } - cmSystemTools::ChangeDirectory(current_dir); return true; } diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index c1724ab..ff465ab 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -7,6 +7,7 @@ #include "cmCTestScriptHandler.h" #include "cmCTestTestHandler.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -138,8 +139,7 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test) } } - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->Properties[test]->Directory); + cmWorkingDirectory workdir(this->Properties[test]->Directory); // Lock the resources we'll be using this->LockResources(test); @@ -166,7 +166,6 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test) this->Failed->push_back(this->Properties[test]->Name); delete testRun; } - cmSystemTools::ChangeDirectory(current_dir); } void cmCTestMultiProcessHandler::LockResources(int index) @@ -683,9 +682,7 @@ void cmCTestMultiProcessHandler::PrintTestList() count++; cmCTestTestHandler::cmCTestTestProperties& p = *it->second; - // push working dir - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(p.Directory); + cmWorkingDirectory workdir(p.Directory); cmCTestRunTest testRun(this->TestHandler); testRun.SetIndex(p.Index); @@ -724,8 +721,6 @@ void cmCTestMultiProcessHandler::PrintTestList() cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " ", this->Quiet); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, p.Name << std::endl, this->Quiet); - // pop working dir - cmSystemTools::ChangeDirectory(current_dir); } cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, std::endl diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index ac1644f..f148f30 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -7,6 +7,7 @@ #include "cmCTestTestHandler.h" #include "cmProcess.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -270,14 +271,11 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) *this->TestHandler->LogFile << "Test time = " << buf << std::endl; } - // Set the working directory to the tests directory - std::string oldpath = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->TestProperties->Directory); - - this->DartProcessing(); - - // restore working directory - cmSystemTools::ChangeDirectory(oldpath); + // Set the working directory to the tests directory to process Dart files. + { + cmWorkingDirectory workdir(this->TestProperties->Directory); + this->DartProcessing(); + } // if this is doing MemCheck then all the output needs to be put into // Output since that is what is parsed by cmCTestMemCheckHandler @@ -356,11 +354,8 @@ bool cmCTestRunTest::StartAgain() } this->RunAgain = false; // reset // change to tests directory - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->TestProperties->Directory); + cmWorkingDirectory workdir(this->TestProperties->Directory); this->StartTest(this->TotalNumberOfTests); - // change back - cmSystemTools::ChangeDirectory(current_dir); return true; } diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index 5e5119d..cc399b0 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -19,6 +19,7 @@ #include "cmState.h" #include "cmSystemTools.h" #include "cmThirdParty.h" +#include "cmWorkingDirectory.h" #include "cmXMLParser.h" #include "cmake.h" @@ -1519,7 +1520,6 @@ int cmCTestSubmitHandler::ProcessHandler() #endif } else if (dropMethod == "scp") { std::string url; - std::string oldWorkingDirectory; if (!this->CTest->GetCTestConfiguration("DropSiteUser").empty()) { url += this->CTest->GetCTestConfiguration("DropSiteUser") + "@"; } @@ -1528,19 +1528,16 @@ int cmCTestSubmitHandler::ProcessHandler() // change to the build directory so that we can uses a relative path // on windows since scp dosn't support "c:" a drive in the path - oldWorkingDirectory = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(buildDirectory); + cmWorkingDirectory workdir(buildDirectory); if (!this->SubmitUsingSCP(this->CTest->GetCTestConfiguration("ScpCommand"), "Testing/" + this->CTest->GetCurrentTag(), files, prefix, url)) { - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestLog(this->CTest, ERROR_MESSAGE, " Problems when submitting via SCP" << std::endl); ofs << " Problems when submitting via SCP" << std::endl; return -1; } - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " Submission successful" << std::endl, this->Quiet); ofs << " Submission successful" << std::endl; @@ -1550,22 +1547,18 @@ int cmCTestSubmitHandler::ProcessHandler() // change to the build directory so that we can uses a relative path // on windows since scp dosn't support "c:" a drive in the path - std::string oldWorkingDirectory = - cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(buildDirectory); + cmWorkingDirectory workdir(buildDirectory); cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Change directory: " << buildDirectory << std::endl, this->Quiet); if (!this->SubmitUsingCP("Testing/" + this->CTest->GetCurrentTag(), files, prefix, location)) { - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestLog(this->CTest, ERROR_MESSAGE, " Problems when submitting via CP" << std::endl); ofs << " Problems when submitting via cp" << std::endl; return -1; } - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " Submission successful" << std::endl, this->Quiet); ofs << " Submission successful" << std::endl; diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 6175e50..9d22065 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -27,6 +27,7 @@ #include "cmState.h" #include "cmStateSnapshot.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmXMLWriter.h" #include "cm_auto_ptr.hxx" #include "cm_utf8.h" @@ -86,22 +87,24 @@ bool cmCTestSubdirCommand::InitialPass(std::vector const& args, // No subdirectory? So what... continue; } - cmSystemTools::ChangeDirectory(fname); - const char* testFilename; - if (cmSystemTools::FileExists("CTestTestfile.cmake")) { - // does the CTestTestfile.cmake exist ? - testFilename = "CTestTestfile.cmake"; - } else if (cmSystemTools::FileExists("DartTestfile.txt")) { - // does the DartTestfile.txt exist ? - testFilename = "DartTestfile.txt"; - } else { - // No CTestTestfile? Who cares... - continue; + bool readit = false; + { + cmWorkingDirectory workdir(fname); + const char* testFilename; + if (cmSystemTools::FileExists("CTestTestfile.cmake")) { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } else if (cmSystemTools::FileExists("DartTestfile.txt")) { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } else { + // No CTestTestfile? Who cares... + continue; + } + fname += "/"; + fname += testFilename; + readit = this->Makefile->ReadDependentFile(fname.c_str()); } - fname += "/"; - fname += testFilename; - bool readit = this->Makefile->ReadDependentFile(fname.c_str()); - cmSystemTools::ChangeDirectory(cwd); if (!readit) { std::string m = "Could not find include file: "; m += fname; @@ -109,7 +112,6 @@ bool cmCTestSubdirCommand::InitialPass(std::vector const& args, return false; } } - cmSystemTools::ChangeDirectory(cwd); return true; } @@ -149,9 +151,7 @@ bool cmCTestAddSubdirectoryCommand::InitialPass( return false; } - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(cwd); - std::string fname = cwd; + std::string fname = cmSystemTools::GetCurrentWorkingDirectory(); fname += "/"; fname += args[0]; @@ -159,23 +159,23 @@ bool cmCTestAddSubdirectoryCommand::InitialPass( // No subdirectory? So what... return true; } - cmSystemTools::ChangeDirectory(fname); - const char* testFilename; - if (cmSystemTools::FileExists("CTestTestfile.cmake")) { - // does the CTestTestfile.cmake exist ? - testFilename = "CTestTestfile.cmake"; - } else if (cmSystemTools::FileExists("DartTestfile.txt")) { - // does the DartTestfile.txt exist ? - testFilename = "DartTestfile.txt"; - } else { - // No CTestTestfile? Who cares... - cmSystemTools::ChangeDirectory(cwd); - return true; + bool readit = false; + { + const char* testFilename; + if (cmSystemTools::FileExists("CTestTestfile.cmake")) { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } else if (cmSystemTools::FileExists("DartTestfile.txt")) { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } else { + // No CTestTestfile? Who cares... + return true; + } + fname += "/"; + fname += testFilename; + readit = this->Makefile->ReadDependentFile(fname.c_str()); } - fname += "/"; - fname += testFilename; - bool readit = this->Makefile->ReadDependentFile(fname.c_str()); - cmSystemTools::ChangeDirectory(cwd); if (!readit) { std::string m = "Could not find include file: "; m += fname; diff --git a/Source/cmDepends.cxx b/Source/cmDepends.cxx index c189419..b8c76b9 100644 --- a/Source/cmDepends.cxx +++ b/Source/cmDepends.cxx @@ -7,6 +7,7 @@ #include "cmLocalGenerator.h" #include "cmMakefile.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -75,13 +76,7 @@ bool cmDepends::Check(const char* makeFile, const char* internalFile, std::map& validDeps) { // Dependency checks must be done in proper working directory. - std::string oldcwd = "."; - if (this->CompileDirectory != ".") { - // Get the CWD but do not call CollapseFullPath because - // we only need it to cd back, and the form does not matter - oldcwd = cmSystemTools::GetCurrentWorkingDirectory(false); - cmSystemTools::ChangeDirectory(this->CompileDirectory); - } + cmWorkingDirectory workdir(this->CompileDirectory); // Check whether dependencies must be regenerated. bool okay = true; @@ -93,11 +88,6 @@ bool cmDepends::Check(const char* makeFile, const char* internalFile, okay = false; } - // Restore working directory. - if (oldcwd != ".") { - cmSystemTools::ChangeDirectory(oldcwd); - } - return okay; } diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b6b7d9e..1f5e624 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -42,6 +42,7 @@ #include "cmStateDirectory.h" #include "cmStateTypes.h" #include "cmVersion.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #if defined(CMAKE_BUILD_WITH_CMAKE) @@ -1763,8 +1764,7 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, /** * Run an executable command and put the stdout in output. */ - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(bindir); + cmWorkingDirectory workdir(bindir); output += "Change Dir: "; output += bindir; output += "\n"; @@ -1804,8 +1804,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, output += *outputPtr; output += "\nGenerator: execution of make clean failed.\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } output += *outputPtr; @@ -1828,8 +1826,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, output += "\nGenerator: execution of make failed. Make command was: " + makeCommandStr + "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } output += *outputPtr; @@ -1842,7 +1838,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, retVal = 1; } - cmSystemTools::ChangeDirectory(cwd); return retVal; } diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c75d101..204fd8f 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -36,6 +36,7 @@ #include "cmTest.h" #include "cmTestGenerator.h" // IWYU pragma: keep #include "cmVersion.h" +#include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" #include "cmake.h" @@ -3147,8 +3148,7 @@ int cmMakefile::TryCompile(const std::string& srcdir, // change to the tests directory and run cmake // use the cmake object instead of calling cmake - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(bindir); + cmWorkingDirectory workdir(bindir); // make sure the same generator is used // use this program as the cmake to be run, it should not @@ -3162,8 +3162,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->GetGlobalGenerator()->GetName() + "' could not be created."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3227,8 +3225,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->IssueMessage(cmake::FATAL_ERROR, "Failed to configure test project build system."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3237,8 +3233,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->IssueMessage(cmake::FATAL_ERROR, "Failed to generate test project build system."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3247,7 +3241,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, int ret = this->GetGlobalGenerator()->TryCompile( srcdir, bindir, projectName, targetName, fast, output, this); - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return ret; } diff --git a/Source/cmake.cxx b/Source/cmake.cxx index b2384cd..3af3be6 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -23,6 +23,7 @@ #include "cmTargetLinkLibraryType.h" #include "cmUtils.hxx" #include "cmVersionConfig.h" +#include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" #if defined(CMAKE_BUILD_WITH_CMAKE) @@ -2199,24 +2200,23 @@ int cmake::GetSystemInformation(std::vector& args) resultFile += "/__cmake_systeminformation/results.txt"; } - // now run cmake on the CMakeLists file - cmSystemTools::ChangeDirectory(destPath); - std::vector args2; - args2.push_back(args[0]); - args2.push_back(destPath); - std::string resultArg = "-DRESULT_FILE="; - resultArg += resultFile; - args2.push_back(resultArg); - int res = this->Run(args2, false); + { + // now run cmake on the CMakeLists file + cmWorkingDirectory workdir(destPath); + std::vector args2; + args2.push_back(args[0]); + args2.push_back(destPath); + std::string resultArg = "-DRESULT_FILE="; + resultArg += resultFile; + args2.push_back(resultArg); + int res = this->Run(args2, false); - if (res != 0) { - std::cerr << "Error: --system-information failed on internal CMake!\n"; - return res; + if (res != 0) { + std::cerr << "Error: --system-information failed on internal CMake!\n"; + return res; + } } - // change back to the original directory - cmSystemTools::ChangeDirectory(cwd); - // echo results to stdout if needed if (writeToStdout) { FILE* fin = cmsys::SystemTools::Fopen(resultFile, "r"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 commit ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 Author: Sebastian Holtermann AuthorDate: Fri Mar 3 15:27:14 2017 +0100 Commit: Sebastian Holtermann CommitDate: Fri Mar 3 15:27:14 2017 +0100 Autogen: Test: Delay after timestamp fix diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4dbf6cf..030b098 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -155,6 +155,7 @@ set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") # Change file content and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" @@ -167,7 +168,7 @@ endif() # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") endif() # -- Test @@ -289,16 +290,16 @@ if (NOT QT_TEST_VERSION STREQUAL 4) file(TIMESTAMP "${plDFile}" plDAfter "${timeformat}") if (plAAfter GREATER plABefore) - message(SEND_ERROR "file (${plAFile}) should not have changed!") + message(SEND_ERROR "File (${plAFile}) should not have changed!") endif() if (plBAfter GREATER plBBefore) - message(SEND_ERROR "file (${plBFile}) should not have changed!") + message(SEND_ERROR "File (${plBFile}) should not have changed!") endif() if (NOT plCAfter GREATER plCBefore) - message(SEND_ERROR "file (${plCFile}) should have changed!") + message(SEND_ERROR "File (${plCFile}) should have changed!") endif() if (NOT plDAfter GREATER plDBefore) - message(SEND_ERROR "file (${plDFile}) should have changed!") + message(SEND_ERROR "File (${plDFile}) should have changed!") endif() # Test custom macro @@ -311,10 +312,10 @@ if (NOT QT_TEST_VERSION STREQUAL 4) file(TIMESTAMP "${plCFile}" plCAfter "${timeformat}") file(TIMESTAMP "${plDFile}" plDAfter "${timeformat}") if (NOT plCAfter GREATER plCBefore) - message(SEND_ERROR "file (${plCFile}) should have changed!") + message(SEND_ERROR "File (${plCFile}) should have changed!") endif() if (NOT plDAfter GREATER plDBefore) - message(SEND_ERROR "file (${plDFile}) should have changed!") + message(SEND_ERROR "File (${plDFile}) should have changed!") endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28878dbdd49dce43a15a98062696af30f26800cf commit 28878dbdd49dce43a15a98062696af30f26800cf Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:16:24 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add mocDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 93ce1db..4dbf6cf 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -238,6 +238,10 @@ target_link_libraries(skipRccB ${QT_LIBRARIES}) add_subdirectory(sameName) # -- Test +# Tests AUTOMOC with generated sources +add_subdirectory(mocDepends) + +# -- Test # Tests various include moc patterns add_subdirectory(mocIncludeStrict) diff --git a/Tests/QtAutogen/mocDepends/CMakeLists.txt b/Tests/QtAutogen/mocDepends/CMakeLists.txt new file mode 100644 index 0000000..8a5ae5b --- /dev/null +++ b/Tests/QtAutogen/mocDepends/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.7) +project(mocDepends) + +if (QT_TEST_VERSION STREQUAL 4) + find_package(Qt4 REQUIRED) + set(QT_CORE_TARGET Qt4::QtCore) +else() + if (NOT QT_TEST_VERSION STREQUAL 5) + message(SEND_ERROR "Invalid Qt version specified.") + endif() + + find_package(Qt5Core REQUIRED) + set(QT_CORE_TARGET Qt5::Core) +endif() + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# -- Test 1 using generated header +# This tests the dependency of AUTOMOC of test1 to the generated object.hpp +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/object.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + ) + +add_executable(test1 test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/object.hpp +) +target_link_libraries(test1 ${QT_CORE_TARGET}) +set_target_properties(test1 PROPERTIES AUTOMOC TRUE) + +# -- Test 2 using generated library +# This tests the dependency of AUTOMOC of test2 to the generated simpleLib.hpp +# which belongs to a linked library of test2 +add_custom_command(OUTPUT simpleLib.hpp simpleLib.cpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.cpp + ) +add_library(SimpleLib SHARED simpleLib.hpp simpleLib.cpp) + +add_executable(test2 test2.cpp ) +target_link_libraries(test2 SimpleLib ${QT_CORE_TARGET}) +set_target_properties(test2 PROPERTIES AUTOMOC TRUE) diff --git a/Tests/QtAutogen/mocDepends/invalid.hpp.in b/Tests/QtAutogen/mocDepends/invalid.hpp.in new file mode 100644 index 0000000..854d9a1 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/invalid.hpp.in @@ -0,0 +1 @@ +#ifndef diff --git a/Tests/QtAutogen/mocDepends/object.hpp.in b/Tests/QtAutogen/mocDepends/object.hpp.in new file mode 100644 index 0000000..f364f7c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/object.hpp.in @@ -0,0 +1,14 @@ +#ifndef OBJECT_HPP +#define OBJECT_HPP + +#include + +class Object : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/simpleLib.cpp.in b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in new file mode 100644 index 0000000..fa33bd3 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in @@ -0,0 +1,9 @@ +#include "simpleLib.hpp" + +SimpleLib::SimpleLib() +{ +} + +SimpleLib::~SimpleLib() +{ +} diff --git a/Tests/QtAutogen/mocDepends/simpleLib.hpp.in b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in new file mode 100644 index 0000000..758f1f6 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in @@ -0,0 +1,11 @@ +#ifndef SIMPLE_LIB_H +#define SIMPLE_LIB_H + +class SimpleLib +{ +public: + SimpleLib(); + ~SimpleLib(); +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/test1.cpp b/Tests/QtAutogen/mocDepends/test1.cpp new file mode 100644 index 0000000..92c259c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test1.cpp @@ -0,0 +1,9 @@ + +#include "object.hpp" + +int main() +{ + Object obj; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.cpp b/Tests/QtAutogen/mocDepends/test2.cpp new file mode 100644 index 0000000..155b19b --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.cpp @@ -0,0 +1,10 @@ + +#include "test2.hpp" + +int main() +{ + SimpleLib obj; + LObject lobject; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.hpp b/Tests/QtAutogen/mocDepends/test2.hpp new file mode 100644 index 0000000..0125f07 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.hpp @@ -0,0 +1,16 @@ +#ifndef TEST2_HPP +#define TEST2_HPP + +#include "simpleLib.hpp" +#include + +// This object triggers the AUTOMOC on this file +class LObject : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=59dd1e390e1fdc1391cd81c08a300716a8a6c10c commit 59dd1e390e1fdc1391cd81c08a300716a8a6c10c Author: Sebastian Holtermann AuthorDate: Thu Mar 2 18:16:54 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add generated qrc file to rccDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index ca7e1dc..93ce1db 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -101,7 +101,7 @@ list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -# Touch qrc input file and rebuild +# Touch first qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . @@ -111,11 +111,26 @@ execute_process(COMMAND "${CMAKE_COMMAND}" --build . if (rccDepends_result) message(SEND_ERROR "Second build of rccDepends failed.") endif() - # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") +endif() + +# Touch second qrc input file and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res2/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result +) +if (rccDepends_result) + message(SEND_ERROR "Third build of rccDepends failed.") +endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep2 "${timeformat}") +if (NOT timeStep2 GREATER timeStep1) + message(SEND_ERROR "File (${binFile}) should have changed in the second step!") endif() # -- Test diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index 6fa5752..082b285 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -15,12 +15,21 @@ else() set(QT_CORE_TARGET Qt5::Core) endif() +configure_file(res/input1.txt.in res1/input.txt @ONLY) +configure_file(res/input2.txt.in res2/input.txt @ONLY) +# Configure time generated qrc file configure_file(res1.qrc.in res1.qrc @ONLY) -configure_file(res1/input.txt.in res1/input.txt @ONLY) +# Dependency generated qrc file +add_custom_command(OUTPUT res2.qrc + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res2.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc + ) + add_executable(test_res1 test_res1.cpp ${CMAKE_CURRENT_BINARY_DIR}/res1.qrc + ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc ) target_link_libraries(test_res1 ${QT_CORE_TARGET}) add_custom_command(TARGET test_res1 POST_BUILD COMMAND diff --git a/Tests/QtAutogen/rccDepends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res/input1.txt.in similarity index 100% rename from Tests/QtAutogen/rccDepends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res/input1.txt.in diff --git a/Tests/QtAutogen/rccDepends/res/input2.txt.in b/Tests/QtAutogen/rccDepends/res/input2.txt.in new file mode 100644 index 0000000..08e14b7 --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res/input2.txt.in @@ -0,0 +1 @@ +Res2 input. diff --git a/Tests/QtAutogen/rccDepends/res2.qrc.in b/Tests/QtAutogen/rccDepends/res2.qrc.in new file mode 100644 index 0000000..18b916a --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res2.qrc.in @@ -0,0 +1,5 @@ + + + res2/input.txt + + https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=614917f70e292763b14b1c388e92714bac31fa9c commit 614917f70e292763b14b1c388e92714bac31fa9c Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:50:34 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add generated file to moc rerun test diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index ca0eedf..cbd3364 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -17,13 +17,19 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) configure_file(test1a.h.in test1.h COPYONLY) +# Generated source file +add_custom_command(OUTPUT main.cpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + ) add_executable(test1 ${CMAKE_CURRENT_BINARY_DIR}/test1.h - test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/main.cpp res1.qrc ) target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(test1 ${QT_CORE_TARGET}) +# Write target name to text file add_custom_command(TARGET test1 POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/mocRerun/main.cpp.in b/Tests/QtAutogen/mocRerun/main.cpp.in new file mode 100644 index 0000000..b37ff61 --- /dev/null +++ b/Tests/QtAutogen/mocRerun/main.cpp.in @@ -0,0 +1,18 @@ +#include "test1.h" + +class Test2 : public QObject +{ + Q_OBJECT +public slots: + void onTst1() {} +}; + +int main() +{ + Test1 test1; + Test2 test2; + + return 0; +} + +#include "main.moc" diff --git a/Tests/QtAutogen/mocRerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp deleted file mode 100644 index 4316a91..0000000 --- a/Tests/QtAutogen/mocRerun/test1.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "test1.h" -int main() -{ - return 0; -} diff --git a/Tests/QtAutogen/mocRerun/test1a.h.in b/Tests/QtAutogen/mocRerun/test1a.h.in index fee2c09..a335046 100644 --- a/Tests/QtAutogen/mocRerun/test1a.h.in +++ b/Tests/QtAutogen/mocRerun/test1a.h.in @@ -1,8 +1,8 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} - void onTst2() {} +public slots: + void onTst1() {} + void onTst2() {} }; diff --git a/Tests/QtAutogen/mocRerun/test1b.h.in b/Tests/QtAutogen/mocRerun/test1b.h.in index 6531d10..6128eeb 100644 --- a/Tests/QtAutogen/mocRerun/test1b.h.in +++ b/Tests/QtAutogen/mocRerun/test1b.h.in @@ -1,7 +1,7 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} +public slots: + void onTst1() {} }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=505ed4e76f3043cdb5d45effc4791455136560df commit 505ed4e76f3043cdb5d45effc4791455136560df Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:26:11 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Add timestamp comparison to moc rerun test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index bf40166..ca7e1dc 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -95,25 +95,27 @@ if (NOT RCC_DEPENDS) message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) - -list(GET qrc_files 0 qrc_file1) - +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/target1.txt" target1List) +list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") - +# Touch qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") - execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result ) +if (rccDepends_result) + message(SEND_ERROR "Second build of rccDepends failed.") +endif() -file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") - -if (NOT file1_step1 GREATER file1_before) - message(SEND_ERROR "file1 (${qrc_file1}) should have changed in the first step!") +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") endif() # -- Test @@ -131,16 +133,28 @@ if (NOT MOC_RERUN) message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/mocRerun/target1.txt" target1List) +list(GET target1List 0 binFile) +set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") +# Change file content and rebuild +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" - RESULT_VARIABLE automoc_rerun_result + RESULT_VARIABLE mocRerun_result ) -if (automoc_rerun_result) +if (mocRerun_result) message(SEND_ERROR "Second build of mocRerun failed.") endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") +endif() + # -- Test # Test for SKIP_AUTOMOC and SKIP_AUTOGEN on an AUTOMOC enabled target qtx_wrap_cpp(skipMocWrapMoc diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index efe936e..ca0eedf 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -25,3 +25,5 @@ add_executable(test1 ) target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(test1 ${QT_CORE_TARGET}) +add_custom_command(TARGET test1 POST_BUILD COMMAND + ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index c983420..6fa5752 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -24,4 +24,4 @@ add_executable(test_res1 ) target_link_libraries(test_res1 ${QT_CORE_TARGET}) add_custom_command(TARGET test_res1 POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > info_file.txt) + ${CMAKE_COMMAND} -E echo "$" > target1.txt) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eae0b2823cb000db9a78881a517538a8a7fb7286 commit eae0b2823cb000db9a78881a517538a8a7fb7286 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:13:41 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Rename automoc_rerun test to mocRerun diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4b84486..bf40166 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -119,26 +119,26 @@ endif() # -- Test # Ensure a repeated build succeeds when a header containing a QObject changes try_compile(MOC_RERUN - "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" - "${CMAKE_CURRENT_SOURCE_DIR}/automoc_rerun" - automoc_rerun + "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" + "${CMAKE_CURRENT_SOURCE_DIR}/mocRerun" + mocRerun CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT MOC_RERUN) - message(SEND_ERROR "Initial build of automoc_rerun failed. Output: ${output}") + message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(automoc_rerun/test1.h.in2 automoc_rerun/test1.h COPYONLY) +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" RESULT_VARIABLE automoc_rerun_result ) if (automoc_rerun_result) - message(SEND_ERROR "Second build of automoc_rerun failed.") + message(SEND_ERROR "Second build of mocRerun failed.") endif() # -- Test diff --git a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt similarity index 88% rename from Tests/QtAutogen/automoc_rerun/CMakeLists.txt rename to Tests/QtAutogen/mocRerun/CMakeLists.txt index 92a682b..efe936e 100644 --- a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(automoc_rerun CXX) +project(mocRerun CXX) if (QT_TEST_VERSION STREQUAL 4) find_package(Qt4 REQUIRED) @@ -16,7 +16,7 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -configure_file(test1.h.in1 test1.h COPYONLY) +configure_file(test1a.h.in test1.h COPYONLY) add_executable(test1 ${CMAKE_CURRENT_BINARY_DIR}/test1.h diff --git a/Tests/QtAutogen/automoc_rerun/input.txt b/Tests/QtAutogen/mocRerun/input.txt similarity index 100% rename from Tests/QtAutogen/automoc_rerun/input.txt rename to Tests/QtAutogen/mocRerun/input.txt diff --git a/Tests/QtAutogen/automoc_rerun/res1.qrc b/Tests/QtAutogen/mocRerun/res1.qrc similarity index 100% rename from Tests/QtAutogen/automoc_rerun/res1.qrc rename to Tests/QtAutogen/mocRerun/res1.qrc diff --git a/Tests/QtAutogen/automoc_rerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.cpp rename to Tests/QtAutogen/mocRerun/test1.cpp diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in1 b/Tests/QtAutogen/mocRerun/test1a.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in1 rename to Tests/QtAutogen/mocRerun/test1a.h.in diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in2 b/Tests/QtAutogen/mocRerun/test1b.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in2 rename to Tests/QtAutogen/mocRerun/test1b.h.in https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c511576c620ecbc614591722ad1b381c8a7d2528 commit c511576c620ecbc614591722ad1b381c8a7d2528 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:07:53 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:30 2017 +0100 Autogen: Test: Rename autorcc_depends test to rccDepends diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4960472..4b84486 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -83,19 +83,19 @@ target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES}) # -- Test # When a file listed in a .qrc file changes the target must be rebuilt try_compile(RCC_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" - "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends" - autorcc_depends + "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + "${CMAKE_CURRENT_SOURCE_DIR}/rccDepends" + rccDepends CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT RCC_DEPENDS) - message(SEND_ERROR "Initial build of autorcc_depends failed. Output: ${output}") + message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/info_file.txt" qrc_files) +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) list(GET qrc_files 0 qrc_file1) @@ -104,10 +104,10 @@ set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. -execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/res1/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" ) file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") diff --git a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt similarity index 96% rename from Tests/QtAutogen/autorcc_depends/CMakeLists.txt rename to Tests/QtAutogen/rccDepends/CMakeLists.txt index 7b51e11..c983420 100644 --- a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(autorcc_depends) +project(rccDepends) set(CMAKE_AUTORCC ON) diff --git a/Tests/QtAutogen/autorcc_depends/res1.qrc.in b/Tests/QtAutogen/rccDepends/res1.qrc.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1.qrc.in rename to Tests/QtAutogen/rccDepends/res1.qrc.in diff --git a/Tests/QtAutogen/autorcc_depends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res1/input.txt.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res1/input.txt.in diff --git a/Tests/QtAutogen/autorcc_depends/test_res1.cpp b/Tests/QtAutogen/rccDepends/test_res1.cpp similarity index 100% rename from Tests/QtAutogen/autorcc_depends/test_res1.cpp rename to Tests/QtAutogen/rccDepends/test_res1.cpp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4ef593ed4940229437dbbad7707a6461846318f8 commit 4ef593ed4940229437dbbad7707a6461846318f8 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:39:50 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Error return when a scan file is not readable diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 2510066..c9b650a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -125,13 +125,19 @@ static bool FileNameIsUnique(const std::string& filePath, return true; } -static std::string ReadAll(const std::string& filename) +static bool ReadAll(std::string& content, const std::string& filename) { - cmsys::ifstream file(filename.c_str()); - std::ostringstream stream; - stream << file.rdbuf(); - file.close(); - return stream.str(); + bool success = false; + { + cmsys::ifstream ifs(filename.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + content = osst.str(); + success = true; + } + } + return success; } /** @@ -682,8 +688,10 @@ bool cmQtAutoGenerators::RunAutogen() uicHeaderFiles.insert(headerName); } } - this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, - mocsNotIncluded, mocDepends, uisIncluded); + if (!this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, + mocsNotIncluded, mocDepends, uisIncluded)) { + return false; + }; // Generate files if (!this->MocGenerateAll(mocsIncluded, mocsNotIncluded, mocDepends)) { @@ -799,23 +807,29 @@ bool cmQtAutoGenerators::ParseSourceFile( std::map >& mocDepends, std::map >& uisIncluded, bool relaxed) { - bool success = true; - const std::string contentText = ReadAll(absFilename); - if (contentText.empty()) { - std::ostringstream ost; - ost << "AutoGen: Warning: " << absFilename << "\n" - << "The file is empty\n"; - this->LogWarning(ost.str()); - } else { - // Parse source contents for MOC - if (success && !this->MocSkip(absFilename)) { - success = this->MocParseSourceContent(absFilename, contentText, - mocsIncluded, mocDepends, relaxed); - } - // Parse source contents for UIC - if (success && !this->UicSkip(absFilename)) { - this->UicParseContent(absFilename, contentText, uisIncluded); + std::string contentText; + bool success = ReadAll(contentText, absFilename); + if (success) { + if (!contentText.empty()) { + // Parse source contents for MOC + if (success && !this->MocSkip(absFilename)) { + success = this->MocParseSourceContent( + absFilename, contentText, mocsIncluded, mocDepends, relaxed); + } + // Parse source contents for UIC + if (success && !this->UicSkip(absFilename)) { + this->UicParseContent(absFilename, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Warning: The file is empty:\n" + << Quoted(absFilename) << "\n"; + this->LogWarning(ost.str()); } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read file:\n" << Quoted(absFilename); + this->LogError(ost.str()); } return success; } @@ -1078,7 +1092,7 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile( } } -void cmQtAutoGenerators::ParseHeaders( +bool cmQtAutoGenerators::ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, @@ -1086,6 +1100,7 @@ void cmQtAutoGenerators::ParseHeaders( std::map >& mocDepends, std::map >& uisIncluded) { + bool success = true; // Merged header files list to read files only once std::set headerFiles; headerFiles.insert(mocHeaderFiles.begin(), mocHeaderFiles.end()); @@ -1094,20 +1109,28 @@ void cmQtAutoGenerators::ParseHeaders( for (std::set::const_iterator hIt = headerFiles.begin(); hIt != headerFiles.end(); ++hIt) { const std::string& headerName = *hIt; - const std::string contentText = ReadAll(headerName); - - // Parse header content for MOC - if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && - (mocsIncluded.find(headerName) == mocsIncluded.end())) { - this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, - mocDepends); - } - - // Parse header content for UIC - if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { - this->UicParseContent(headerName, contentText, uisIncluded); + std::string contentText; + if (ReadAll(contentText, headerName)) { + // Parse header content for MOC + if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && + (mocsIncluded.find(headerName) == mocsIncluded.end())) { + this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, + mocDepends); + } + // Parse header content for UIC + if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { + this->UicParseContent(headerName, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read header file:\n" + << Quoted(headerName); + this->LogError(ost.str()); + success = false; + break; } } + return success; } bool cmQtAutoGenerators::MocGenerateAll( @@ -1190,8 +1213,12 @@ bool cmQtAutoGenerators::MocGenerateAll( // Check if the content of moc_compilation.cpp changed { - const std::string oldContents = ReadAll(this->MocCppFilenameAbs); - mocCompChanged = (oldContents != automocSource); + std::string oldContents; + if (ReadAll(oldContents, this->MocCppFilenameAbs)) { + mocCompChanged = (oldContents != automocSource); + } else { + mocCompChanged = true; + } } bool success = true; diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 3bff2b2..00fa0c7 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -78,7 +78,7 @@ private: std::set& mocHeaderFiles, std::set& uicHeaderFiles) const; - void ParseHeaders( + bool ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bdec46b75eb93427aafb70d2d5e9d6601fda26a4 commit bdec46b75eb93427aafb70d2d5e9d6601fda26a4 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 16:26:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Add AUTOMOC/UIC support for generated source files Closes #16186 Closes #14379 diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2829c8a..5ee0982 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -45,6 +45,11 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } +inline static bool PropertyEnabled(cmSourceFile* sourceFile, const char* key) +{ + return cmSystemTools::IsOn(sourceFile->GetPropertyForUser(key)); +} + static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -150,18 +155,12 @@ static void AcquireScanFiles(cmGeneratorTarget const* target, !(fileType == cmSystemTools::HEADER_FILE_FORMAT)) { continue; } - if (cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - continue; - } const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // Skip flags - const bool skipAll = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")); - const bool mocSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOMOC")); - const bool uicSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOUIC")); + const bool skipAll = PropertyEnabled(sf, "SKIP_AUTOGEN"); + const bool mocSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOMOC"); + const bool uicSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOUIC"); // Add file name to skip lists. // Do this even when the file is not added to the sources/headers lists // because the file name may be extracted from an other file when @@ -478,8 +477,8 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; if ((sf->GetExtension() == "qrc") && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + !PropertyEnabled(sf, "SKIP_AUTOGEN") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // qrc file @@ -488,7 +487,7 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList = "{"; // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + if (!PropertyEnabled(sf, "GENERATED")) { std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( @@ -555,7 +554,8 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); - std::vector autogenOutputFiles; + std::vector autogenDepends; + std::vector autogenProvides; // Remove old settings on cleanup { @@ -565,31 +565,6 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( false); } - // Create autogen target build directory and add it to the clean files - cmSystemTools::MakeDirectory(autogenBuildDir); - makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", - autogenBuildDir.c_str(), false); - - if (mocEnabled || uicEnabled) { - // Create autogen target includes directory and - // add it to the origin target INCLUDE_DIRECTORIES - const std::string incsDir = autogenBuildDir + "include"; - cmSystemTools::MakeDirectory(incsDir); - target->AddIncludeDirectory(incsDir, true); - } - - if (mocEnabled) { - // Register moc compilation file as generated - autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); - } - - // Initialize autogen target dependencies - std::vector depends; - if (const char* autogenDepends = - target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { - cmSystemTools::ExpandListArgument(autogenDepends, depends); - } - // Compose command lines cmCustomCommandLines commandLines; { @@ -628,6 +603,24 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( autogenComment = "Automatic " + tools + " for target " + target->GetName(); } + // Create autogen target build directory and add it to the clean files + cmSystemTools::MakeDirectory(autogenBuildDir); + makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", + autogenBuildDir.c_str(), false); + + // Create autogen target includes directory and + // add it to the origin target INCLUDE_DIRECTORIES + if (mocEnabled || uicEnabled) { + const std::string incsDir = autogenBuildDir + "include"; + cmSystemTools::MakeDirectory(incsDir); + target->AddIncludeDirectory(incsDir, true); + } + + // Register moc compilation file as generated + if (mocEnabled) { + autogenProvides.push_back(autogenBuildDir + "moc_compilation.cpp"); + } + #if defined(_WIN32) && !defined(__CYGWIN__) bool usePRE_BUILD = false; cmGlobalGenerator* gg = lg->GetGlobalGenerator(); @@ -639,71 +632,95 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( // This also works around a VS 11 bug that may skip updating the target: // https://connect.microsoft.com/VisualStudio/feedback/details/769495 usePRE_BUILD = vsgg->GetVersion() >= cmGlobalVisualStudioGenerator::VS7; - if (usePRE_BUILD) { - // If the autogen target depends on an other target - // don't use PRE_BUILD - for (std::vector::iterator it = depends.begin(); - it != depends.end(); ++it) { - if (!makefile->FindTargetToUse(it->c_str())) { - usePRE_BUILD = false; - break; - } - } - } } #endif - if (rccEnabled) { + // Initialize autogen target dependencies + if (const char* deps = target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { + cmSystemTools::ExpandListArgument(deps, autogenDepends); + } + // Add link library targets to the autogen dependencies + { + const cmTarget::LinkLibraryVectorType& libVec = + target->Target->GetOriginalLinkLibraries(); + for (cmTarget::LinkLibraryVectorType::const_iterator it = libVec.begin(); + it != libVec.end(); ++it) { + const std::string& libName = it->first; + if (makefile->FindTargetToUse(libName) != CM_NULLPTR) { + autogenDepends.push_back(libName); + } + } + } + { cmFilePathChecksum fpathCheckSum(makefile); + // Iterate over all source files std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc" && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { - { + if (!PropertyEnabled(sf, "SKIP_AUTOGEN")) { + const std::string ext = sf->GetExtension(); + // Add generated file that will be scanned by moc or uic to + // the dependencies + if (mocEnabled || uicEnabled) { + const cmSystemTools::FileFormat fileType = + cmSystemTools::GetFileFormat(ext.c_str()); + if ((fileType == cmSystemTools::CXX_FILE_FORMAT) || + (fileType == cmSystemTools::HEADER_FILE_FORMAT)) { + if (PropertyEnabled(sf, "GENERATED")) { + if ((mocEnabled && !PropertyEnabled(sf, "SKIP_AUTOMOC")) || + (uicEnabled && !PropertyEnabled(sf, "SKIP_AUTOUIC"))) { + autogenDepends.push_back( + cmsys::SystemTools::GetRealPath(sf->GetFullPath())); + } + } + } + } + // Process rcc enabled files + if (rccEnabled && (ext == "qrc") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // Run cmake again when .qrc file changes - makefile->AddCMakeDependFile(absFile); - - std::string rccOutputFile = autogenBuildDir; - rccOutputFile += fpathCheckSum.getPart(absFile); - rccOutputFile += "/qrc_"; - rccOutputFile += - cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); - rccOutputFile += ".cpp"; - - // Add rcc output file to origin target sources - cmSourceFile* gf = makefile->GetOrCreateSource(rccOutputFile, true); - gf->SetProperty("SKIP_AUTOGEN", "On"); - target->AddSource(rccOutputFile); - // Register rcc output file as generated - autogenOutputFiles.push_back(rccOutputFile); + // Compose rcc output file name + { + std::string rccOut = autogenBuildDir; + rccOut += fpathCheckSum.getPart(absFile); + rccOut += "/qrc_"; + rccOut += + cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); + rccOut += ".cpp"; + + // Register rcc output file as generated + autogenProvides.push_back(rccOut); + + // Add rcc output file to origin target sources + cmSourceFile* gf = makefile->GetOrCreateSource(rccOut, true); + gf->SetProperty("SKIP_AUTOGEN", "On"); + target->AddSource(rccOut); + } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" -#if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD -#endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - { - std::string error; - if (!cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends, &error)) { - cmSystemTools::Error(error.c_str()); - } - } + if (PropertyEnabled(sf, "GENERATED")) { + // Add generated qrc file to the dependencies + autogenDepends.push_back(absFile); + } else { + // Run cmake again when .qrc file changes + makefile->AddCMakeDependFile(absFile); + + // Add the qrc input files to the dependencies + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, autogenDepends, + &error)) { + cmSystemTools::Error(error.c_str()); + } #if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; #endif - } } } } @@ -712,12 +729,21 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #if defined(_WIN32) && !defined(__CYGWIN__) if (usePRE_BUILD) { + // If the autogen target depends on an other target don't use PRE_BUILD + for (std::vector::iterator it = autogenDepends.begin(); + it != autogenDepends.end(); ++it) { + if (makefile->FindTargetToUse(*it) != CM_NULLPTR) { + usePRE_BUILD = false; + break; + } + } + } + if (usePRE_BUILD) { // Add the pre-build command directly to bypass the OBJECT_LIBRARY // rejection in cmMakefile::AddCustomCommandToTarget because we know // PRE_BUILD will work for an OBJECT_LIBRARY in this specific case. std::vector no_output; - std::vector no_byproducts; - cmCustomCommand cc(makefile, no_output, no_byproducts, depends, + cmCustomCommand cc(makefile, no_output, autogenProvides, autogenDepends, commandLines, autogenComment.c_str(), workingDirectory.c_str()); cc.SetEscapeOldStyle(false); @@ -728,7 +754,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( { cmTarget* autogenTarget = makefile->AddUtilityCommand( autogenTargetName, true, workingDirectory.c_str(), - /*byproducts=*/autogenOutputFiles, depends, commandLines, false, + /*byproducts=*/autogenProvides, autogenDepends, commandLines, false, autogenComment.c_str()); cmGeneratorTarget* gt = new cmGeneratorTarget(autogenTarget, lg); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c52eecc303f8cb3de406d788914a2071cef4e60f commit c52eecc303f8cb3de406d788914a2071cef4e60f Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:32:33 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Initializer cleanups diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2b53982..2829c8a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -129,18 +129,17 @@ static void AddDefinitionEscaped(cmMakefile* makefile, const char* key, key, cmOutputConverter::EscapeForCMake(cmJoin(values, ";")).c_str()); } -static void SetupSourceFiles(cmGeneratorTarget const* target, +static void AcquireScanFiles(cmGeneratorTarget const* target, std::vector& mocUicSources, std::vector& mocUicHeaders, std::vector& mocSkipList, std::vector& uicSkipList) { - std::vector srcFiles; - target->GetConfigCommonSourceFiles(srcFiles); - const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); + std::vector srcFiles; + target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; @@ -478,47 +477,44 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc") { - const bool skip = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) || - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC")); - if (!skip) { - const std::string absFile = - cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // qrc file - _rcc_files.push_back(absFile); - // qrc file entries - { - std::string entriesList = "{"; - // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::string error; - std::vector files; - if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files, &error)) { - entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); - } else { - cmSystemTools::Error(error.c_str()); - } + if ((sf->GetExtension() == "qrc") && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + const std::string absFile = + cmsys::SystemTools::GetRealPath(sf->GetFullPath()); + // qrc file + _rcc_files.push_back(absFile); + // qrc file entries + { + std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files, &error)) { + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); + } else { + cmSystemTools::Error(error.c_str()); } - entriesList += "}"; - _rcc_inputs.push_back(entriesList); } - // rcc options for this qrc file - { - // Merged target and file options - std::vector rccOptions(rccOptionsTarget); - if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { - std::vector optsVec; - cmSystemTools::ExpandListArgument(prop, optsVec); - RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); - } - // Only store non empty options lists - if (!rccOptions.empty()) { - rccFileFiles.push_back(absFile); - rccFileOptions.push_back( - cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); - } + entriesList += "}"; + _rcc_inputs.push_back(entriesList); + } + // rcc options for this qrc file + { + // Merged target and file options + std::vector rccOptions(rccOptionsTarget); + if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { + std::vector optsVec; + cmSystemTools::ExpandListArgument(prop, optsVec); + RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); + } + // Only store non empty options lists + if (!rccOptions.empty()) { + rccFileFiles.push_back(absFile); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } @@ -550,6 +546,9 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmMakefile* makefile = target->Target->GetMakefile(); // Create a custom target for running generators at buildtime + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string autogenBuildDir = GetAutogenTargetBuildDir(target); const std::string workingDirectory = @@ -571,8 +570,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", autogenBuildDir.c_str(), false); - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC")) { + if (mocEnabled || uicEnabled) { // Create autogen target includes directory and // add it to the origin target INCLUDE_DIRECTORIES const std::string incsDir = autogenBuildDir + "include"; @@ -580,7 +578,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddIncludeDirectory(incsDir, true); } - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { // Register moc compilation file as generated autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); } @@ -608,13 +606,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( std::string autogenComment; { std::vector toolNames; - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { toolNames.push_back("MOC"); } - if (target->GetPropertyAsBool("AUTOUIC")) { + if (uicEnabled) { toolNames.push_back("UIC"); } - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { toolNames.push_back("RCC"); } @@ -655,7 +653,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( } #endif - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { cmFilePathChecksum fpathCheckSum(makefile); std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); @@ -767,38 +765,37 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( std::map configMocDefines; std::map configUicOptions; { - // create a custom target for running generators at buildtime: + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string qtMajorVersion = GetQtMajorVersion(target); - AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); - AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); - AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); - std::vector _sources; std::vector _headers; - std::vector mocSkipList; - std::vector uicSkipList; - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC") || - target->GetPropertyAsBool("AUTORCC")) { - SetupSourceFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled || uicEnabled || rccEnabled) { + std::vector mocSkipList; + std::vector uicSkipList; + AcquireScanFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled) { + MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, + mocSkipList, configMocIncludes, configMocDefines); + } + if (uicEnabled) { + UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, + configUicOptions); + } + if (rccEnabled) { + RccSetupAutoTarget(target, qtMajorVersion); + } } + + AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); + AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); + AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); AddDefinitionEscaped(makefile, "_sources", _sources); AddDefinitionEscaped(makefile, "_headers", _headers); - - if (target->GetPropertyAsBool("AUTOMOC")) { - MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, - mocSkipList, configMocIncludes, configMocDefines); - } - if (target->GetPropertyAsBool("AUTOUIC")) { - UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, - configUicOptions); - } - if (target->GetPropertyAsBool("AUTORCC")) { - RccSetupAutoTarget(target, qtMajorVersion); - } } // Generate config file https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=86e4fcadd5edc38a9291366de61ca9fe63eae4f8 commit 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:06:02 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 21:51:29 2017 +0100 Autogen: Add support for generated .qrc files diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index 5146b1a..dcd61a3 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -24,47 +24,62 @@ static std::string utilStripCR(std::string const& line) /// @brief Reads the resource files list from from a .qrc file - Qt4 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt4(const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - // Qrc file directory - std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); - if (!qrcDir.empty()) { - qrcDir += '/'; - } - - // Read file into string + bool allGood = true; + // Read qrc file content into string std::string qrcContents; { - std::ostringstream stream; - stream << cmsys::ifstream(fileName).rdbuf(); - qrcContents = stream.str(); + cmsys::ifstream ifs(fileName.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + qrcContents = osst.str(); + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file not readable:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } + allGood = false; + } } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); + if (allGood) { + // qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = qrcDir + qrcEntry; + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); } - files.push_back(qrcEntry); } - return true; + return allGood; } /// @brief Reads the resource files list from from a .qrc file - Qt5 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt5(const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { if (rccCommand.empty()) { cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); @@ -104,11 +119,14 @@ static bool RccListInputsQt5(const std::string& rccCommand, CM_NULLPTR, cmSystemTools::OUTPUT_NONE); } if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc list process for " << fileName + << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << "\n"; + *errorMessage = ost.str(); + } return false; } @@ -134,10 +152,12 @@ static bool RccListInputsQt5(const std::string& rccCommand, std::string::size_type pos = eline.find(searchString); if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc lists unparsable output:\n" + << cmQtAutoGeneratorCommon::Quoted(eline) << "\n"; + *errorMessage = ost.str(); + } return false; } pos += searchString.length(); @@ -154,13 +174,42 @@ static bool RccListInputsQt5(const std::string& rccCommand, const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; +std::string cmQtAutoGeneratorCommon::Quoted(const std::string& text) +{ + static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", + "\b", "\\b", "\f", "\\f", "\n", "\\n", + "\r", "\\r", "\t", "\\t", "\v", "\\v" }; + + std::string res = text; + for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); + it += 2) { + cmSystemTools::ReplaceString(res, *it, *(it + 1)); + } + res = '"' + res; + res += '"'; + return res; +} + bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - if (qtMajorVersion == "4") { - return RccListInputsQt4(fileName, files); + bool allGood = false; + if (cmsys::SystemTools::FileExists(fileName.c_str())) { + if (qtMajorVersion == "4") { + allGood = RccListInputsQt4(fileName, files, errorMessage); + } else { + allGood = RccListInputsQt5(rccCommand, fileName, files, errorMessage); + } + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file does not exist:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } } - return RccListInputsQt5(rccCommand, fileName, files); + return allGood; } diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h index 48abacb..ee97b71 100644 --- a/Source/cmQtAutoGeneratorCommon.h +++ b/Source/cmQtAutoGeneratorCommon.h @@ -17,13 +17,18 @@ public: static const char* listSep; public: + /// @brief Returns a the string escaped and enclosed in quotes + /// + static std::string Quoted(const std::string& text); + /// @brief Reads the resource files list from from a .qrc file /// @arg fileName Must be the absolute path of the .qrc file /// @return True if the rcc file was successfully parsed static bool RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files); + std::vector& files, + std::string* errorMessage = CM_NULLPTR); }; #endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 0f29e02..2b53982 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -490,13 +490,15 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // qrc file entries { std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files)) { + qtMajorVersion, rccCommand, absFile, files, &error)) { entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { - return; + cmSystemTools::Error(error.c_str()); } } entriesList += "}"; @@ -690,8 +692,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #endif ) { if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends); + { + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends, &error)) { + cmSystemTools::Error(error.c_str()); + } + } #if defined(_WIN32) && !defined(__CYGWIN__) // Cannot use PRE_BUILD because the resource files themselves // may not be sources within the target so VS may not know the diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 4d14e99..2510066 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -37,23 +37,9 @@ static const char* SettingsKeyRcc = "AM_RCC_OLD_SETTINGS"; // -- Static functions -/** - * @brief Returns a the string escaped and enclosed in quotes - */ -static std::string Quoted(const std::string& text) +inline static std::string Quoted(const std::string& text) { - static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", - "\b", "\\b", "\f", "\\f", "\n", "\\n", - "\r", "\\r", "\t", "\\t", "\v", "\\v" }; - - std::string res = text; - for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); - it += 2) { - cmSystemTools::ReplaceString(res, *it, *(it + 1)); - } - res = '"' + res; - res += '"'; - return res; + return cmQtAutoGeneratorCommon::Quoted(text); } static void InfoGet(cmMakefile* makefile, const char* key, std::string& value) @@ -403,7 +389,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } else { this->LogError( "AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " - "a multiple of 2"); + "a multiple of 2 in:\n" + + Quoted(filename)); return false; } } @@ -431,8 +418,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: Uic files/options lists size missmatch in: " + - filename); + "AutoGen: Error: Uic files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -447,7 +434,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); - if (rccFilesVec.size() != rccOptionsVec.size()) { + if (rccFilesVec.size() == rccOptionsVec.size()) { for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); @@ -459,8 +446,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC files/options lists size missmatch in: " + - filename); + "AutoGen: Error: RCC files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -484,8 +471,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + - filename); + "AutoGen: Error: RCC sources/inputs lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -1574,13 +1561,30 @@ bool cmQtAutoGenerators::RccGenerateFile(const std::string& rccInputFile, // Test if the resources list file is newer than build file generateRcc = FileAbsentOrOlder(rccBuildFile, rccInputFile); if (!generateRcc) { - // Test if any resource file is newer than the build file - const std::vector& files = this->RccInputs[rccInputFile]; - for (std::vector::const_iterator it = files.begin(); - it != files.end(); ++it) { - if (FileAbsentOrOlder(rccBuildFile, *it)) { - generateRcc = true; - break; + // Acquire input file list + std::vector readFiles; + const std::vector* files = &this->RccInputs[rccInputFile]; + if (files->empty()) { + // Read input file list from qrc file + std::string error; + if (cmQtAutoGeneratorCommon::RccListInputs( + this->QtMajorVersion, this->RccExecutable, rccInputFile, + readFiles, &error)) { + files = &readFiles; + } else { + files = CM_NULLPTR; + this->LogError(error); + this->RunRccFailed = true; + } + } + // Test if any input file is newer than the build file + if (files != CM_NULLPTR) { + for (std::vector::const_iterator it = files->begin(); + it != files->end(); ++it) { + if (FileAbsentOrOlder(rccBuildFile, *it)) { + generateRcc = true; + break; + } } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab commit 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab Author: Sebastian Holtermann AuthorDate: Thu Mar 2 12:32:47 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Embrace qrc file lists in braces in AutogenInfo.cmake This allows empty .qrc files in any list position. diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index c42f71d..5146b1a 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -152,7 +152,7 @@ static bool RccListInputsQt5(const std::string& rccCommand, // - Class definitions -const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; +const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 151f39c..0f29e02 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -489,16 +489,17 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, _rcc_files.push_back(absFile); // qrc file entries { - std::string entriesList; + std::string entriesList = "{"; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( qtMajorVersion, rccCommand, absFile, files)) { - entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } } + entriesList += "}"; _rcc_inputs.push_back(entriesList); } // rcc options for this qrc file diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index bc9c511..4d14e99 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -441,49 +441,53 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( // - Rcc if (this->RccEnabled()) { InfoGet(makefile, "AM_RCC_SOURCES", this->RccSources); + // File options { std::vector rccFilesVec; std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); if (rccFilesVec.size() != rccOptionsVec.size()) { + for (std::vector::iterator + fileIt = rccFilesVec.begin(), + optionIt = rccOptionsVec.begin(); + fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { + // Replace item separator + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); + this->RccOptions[*fileIt] = *optionIt; + } + } else { this->LogError( "AutoGen: Error: RCC files/options lists size missmatch in: " + filename); return false; } - for (std::vector::iterator fileIt = rccFilesVec.begin(), - optionIt = rccOptionsVec.begin(); - fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, - cmQtAutoGeneratorCommon::listSep, ";"); - this->RccOptions[*fileIt] = *optionIt; - } } + // File lists { std::vector rccInputLists; InfoGet(makefile, "AM_RCC_INPUTS", rccInputLists); - - // qrc files in the end of the list may have been empty - if (rccInputLists.size() < this->RccSources.size()) { - rccInputLists.resize(this->RccSources.size()); - } - if (this->RccSources.size() != rccInputLists.size()) { + if (this->RccSources.size() == rccInputLists.size()) { + for (std::vector::iterator + fileIt = this->RccSources.begin(), + inputIt = rccInputLists.begin(); + fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { + // Remove braces + *inputIt = inputIt->substr(1, inputIt->size() - 2); + // Replace item separator + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); + std::vector rccInputFiles; + cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); + this->RccInputs[*fileIt] = rccInputFiles; + } + } else { this->LogError( "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + filename); return false; } - for (std::vector::iterator - fileIt = this->RccSources.begin(), - inputIt = rccInputLists.begin(); - fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, - cmQtAutoGeneratorCommon::listSep, ";"); - std::vector rccInputFiles; - cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); - this->RccInputs[*fileIt] = rccInputFiles; - } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f9531b373f27367ac0d8c4beae474768b7745b59 commit f9531b373f27367ac0d8c4beae474768b7745b59 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:34:35 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Remove unused variables diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 3a7951a..151f39c 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -135,15 +135,12 @@ static void SetupSourceFiles(cmGeneratorTarget const* target, std::vector& mocSkipList, std::vector& uicSkipList) { - cmMakefile* makefile = target->Target->GetMakefile(); - std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); - cmFilePathChecksum fpathCheckSum(makefile); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=100723035ac228187e60f549dd38c8f89c447b40 commit 100723035ac228187e60f549dd38c8f89c447b40 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:08:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 2 16:39:38 2017 +0100 Autogen: Add cmQtAutogeneratorCommon class with shared types and functions diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 76b98fc..5f2cbc3 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -344,6 +344,8 @@ set(SRCS cmPropertyDefinitionMap.h cmPropertyMap.cxx cmPropertyMap.h + cmQtAutoGeneratorCommon.cxx + cmQtAutoGeneratorCommon.h cmQtAutoGeneratorInitializer.cxx cmQtAutoGeneratorInitializer.h cmQtAutoGenerators.cxx diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx new file mode 100644 index 0000000..c42f71d --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -0,0 +1,166 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmQtAutoGeneratorCommon.h" +#include "cmAlgorithms.h" +#include "cmSystemTools.h" + +#include +#include + +#include + +// - Static functions + +static std::string utilStripCR(std::string const& line) +{ + // Strip CR characters rcc may have printed (possibly more than one!). + std::string::size_type cr = line.find('\r'); + if (cr != line.npos) { + return line.substr(0, cr); + } + return line; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt4 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt4(const std::string& fileName, + std::vector& files) +{ + // Qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; + } + + // Read file into string + std::string qrcContents; + { + std::ostringstream stream; + stream << cmsys::ifstream(fileName).rdbuf(); + qrcContents = stream.str(); + } + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); + } + return true; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt5 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt5(const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (rccCommand.empty()) { + cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); + return false; + } + + // Read rcc features + bool hasDashDashList = false; + { + std::vector command; + command.push_back(rccCommand); + command.push_back("--help"); + std::string rccStdOut; + std::string rccStdErr; + int retVal = 0; + bool result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + if (result && retVal == 0 && + rccStdOut.find("--list") != std::string::npos) { + hasDashDashList = true; + } + } + + // Run rcc list command + bool result = false; + int retVal = 0; + std::string rccStdOut; + std::string rccStdErr; + { + std::vector command; + command.push_back(rccCommand); + command.push_back(hasDashDashList ? "--list" : "-list"); + command.push_back(fileName); + result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + } + if (!result || retVal) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + + // Parse rcc std output + { + std::istringstream ostr(rccStdOut); + std::string oline; + while (std::getline(ostr, oline)) { + oline = utilStripCR(oline); + if (!oline.empty()) { + files.push_back(oline); + } + } + } + // Parse rcc error output + { + std::istringstream estr(rccStdErr); + std::string eline; + while (std::getline(estr, eline)) { + eline = utilStripCR(eline); + if (cmHasLiteralPrefix(eline, "RCC: Error in")) { + static std::string searchString = "Cannot find file '"; + + std::string::size_type pos = eline.find(searchString); + if (pos == std::string::npos) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc lists unparsable output " << eline + << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + pos += searchString.length(); + std::string::size_type sz = eline.size() - pos - 1; + files.push_back(eline.substr(pos, sz)); + } + } + } + + return true; +} + +// - Class definitions + +const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; + +bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (qtMajorVersion == "4") { + return RccListInputsQt4(fileName, files); + } + return RccListInputsQt5(rccCommand, fileName, files); +} diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h new file mode 100644 index 0000000..48abacb --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.h @@ -0,0 +1,29 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmQtAutoGeneratorCommon_h +#define cmQtAutoGeneratorCommon_h + +#include // IWYU pragma: keep +#include +#include + +class cmGeneratorTarget; +class cmLocalGenerator; + +class cmQtAutoGeneratorCommon +{ + // - Types and statics +public: + static const char* listSep; + +public: + /// @brief Reads the resource files list from from a .qrc file + /// @arg fileName Must be the absolute path of the .qrc file + /// @return True if the rcc file was successfully parsed + static bool RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files); +}; + +#endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index a45b3d5..3a7951a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGeneratorInitializer.h" +#include "cmQtAutoGeneratorCommon.h" #include "cmAlgorithms.h" #include "cmCustomCommandLines.h" @@ -44,16 +45,6 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } -static std::string utilStripCR(std::string const& line) -{ - // Strip CR characters rcc may have printed (possibly more than one!). - std::string::size_type cr = line.find('\r'); - if (cr != line.npos) { - return line.substr(0, cr); - } - return line; -} - static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -361,7 +352,8 @@ static void UicSetupAutoTarget( uiFileFiles.push_back(absFile); { std::string opts = sf->GetProperty("AUTOUIC_OPTIONS"); - cmSystemTools::ReplaceString(opts, ";", "@list_sep@"); + cmSystemTools::ReplaceString(opts, ";", + cmQtAutoGeneratorCommon::listSep); uiFileOptions.push_back(opts); } } @@ -469,146 +461,12 @@ static void RccMergeOptions(std::vector& opts, opts.insert(opts.end(), extraOpts.begin(), extraOpts.end()); } -/// @brief Reads the resource files list from from a .qrc file - Qt5 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt5(cmSourceFile* sf, cmGeneratorTarget const* target, - std::vector& depends) -{ - const std::string rccCommand = RccGetExecutable(target, "5"); - if (rccCommand.empty()) { - cmSystemTools::Error("AUTOGEN: error: rcc executable not available\n"); - return false; - } - - bool hasDashDashList = false; - // Read rcc features - { - std::vector command; - command.push_back(rccCommand); - command.push_back("--help"); - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (result && retVal == 0 && - rccStdOut.find("--list") != std::string::npos) { - hasDashDashList = true; - } - } - // Run rcc list command - std::vector command; - command.push_back(rccCommand); - command.push_back(hasDashDashList ? "--list" : "-list"); - - std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - command.push_back(absFile); - - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << sf->GetFullPath() - << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - - // Parse rcc list output - { - std::istringstream ostr(rccStdOut); - std::string oline; - while (std::getline(ostr, oline)) { - oline = utilStripCR(oline); - if (!oline.empty()) { - depends.push_back(oline); - } - } - } - - { - std::istringstream estr(rccStdErr); - std::string eline; - while (std::getline(estr, eline)) { - eline = utilStripCR(eline); - if (cmHasLiteralPrefix(eline, "RCC: Error in")) { - static std::string searchString = "Cannot find file '"; - - std::string::size_type pos = eline.find(searchString); - if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - pos += searchString.length(); - std::string::size_type sz = eline.size() - pos - 1; - depends.push_back(eline.substr(pos, sz)); - } - } - } - - return true; -} - -/// @brief Reads the resource files list from from a .qrc file - Qt4 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt4(cmSourceFile* sf, - std::vector& depends) -{ - // Read file into string - std::string qrcContents; - { - std::ostringstream stream; - stream << cmsys::ifstream(sf->GetFullPath().c_str()).rdbuf(); - qrcContents = stream.str(); - } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); - } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = sf->GetLocation().GetDirectory() + "/" + qrcEntry; - } - depends.push_back(qrcEntry); - } - return true; -} - -/// @brief Reads the resource files list from from a .qrc file -/// @return True if the rcc file was successfully parsed -static bool RccListInputs(const std::string& qtMajorVersion, cmSourceFile* sf, - cmGeneratorTarget const* target, - std::vector& depends) -{ - if (qtMajorVersion == "5") { - return RccListInputsQt5(sf, target, depends); - } - return RccListInputsQt4(sf, depends); -} - static void RccSetupAutoTarget(cmGeneratorTarget const* target, const std::string& qtMajorVersion) { cmMakefile* makefile = target->Target->GetMakefile(); const bool qtMajorVersion5 = (qtMajorVersion == "5"); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector _rcc_files; std::vector _rcc_inputs; std::vector rccFileFiles; @@ -636,9 +494,10 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::vector depends; - if (RccListInputs(qtMajorVersion, sf, target, depends)) { - entriesList = cmJoin(depends, "@list_sep@"); + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files)) { + entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } @@ -657,19 +516,19 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // Only store non empty options lists if (!rccOptions.empty()) { rccFileFiles.push_back(absFile); - rccFileOptions.push_back(cmJoin(rccOptions, "@list_sep@")); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } } } + AddDefinitionEscaped(makefile, "_qt_rcc_executable", rccCommand); AddDefinitionEscaped(makefile, "_rcc_files", _rcc_files); AddDefinitionEscaped(makefile, "_rcc_inputs", _rcc_inputs); AddDefinitionEscaped(makefile, "_rcc_options_files", rccFileFiles); AddDefinitionEscaped(makefile, "_rcc_options_options", rccFileOptions); - AddDefinitionEscaped(makefile, "_qt_rcc_executable", - RccGetExecutable(target, qtMajorVersion)); } void cmQtAutoGeneratorInitializer::InitializeAutogenSources( @@ -696,6 +555,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( const std::string workingDirectory = cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector autogenOutputFiles; // Remove old settings on cleanup @@ -825,20 +685,22 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddSource(rccOutputFile); // Register rcc output file as generated autogenOutputFiles.push_back(rccOutputFile); - } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" + + if (lg->GetGlobalGenerator()->GetName() == "Ninja" #if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD + || usePRE_BUILD #endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - RccListInputs(qtMajorVersion, sf, target, depends); + ) { + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends); #if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; #endif + } } } } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index c83f9a9..bc9c511 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGenerators.h" +#include "cmQtAutoGeneratorCommon.h" #include #include @@ -178,7 +179,7 @@ static std::string JoinOptionsMap( for (std::map::const_iterator it = opts.begin(); it != opts.end(); ++it) { if (it != opts.begin()) { - result += "@list_sep@"; + result += cmQtAutoGeneratorCommon::listSep; } result += it->first; result += "==="; @@ -424,7 +425,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = uicFilesVec.begin(), optionIt = uicOptionsVec.begin(); fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->UicOptions[*fileIt] = *optionIt; } } else { @@ -453,7 +455,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->RccOptions[*fileIt] = *optionIt; } } @@ -475,7 +478,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = this->RccSources.begin(), inputIt = rccInputLists.begin(); fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); std::vector rccInputFiles; cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); this->RccInputs[*fileIt] = rccInputFiles; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 commit 09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 Author: Ben Boeckel AuthorDate: Wed Apr 6 14:03:28 2016 -0400 Commit: Ben Boeckel CommitDate: Wed Mar 1 14:30:18 2017 -0500 cmWorkingDirectory: add class for changing the workdir diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 76b98fc..e47a2eb 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -381,6 +381,8 @@ set(SRCS cmVariableWatch.h cmVersion.cxx cmVersion.h + cmWorkingDirectory.cxx + cmWorkingDirectory.h cmXMLParser.cxx cmXMLParser.h cmXMLSafe.cxx diff --git a/Source/cmWorkingDirectory.cxx b/Source/cmWorkingDirectory.cxx new file mode 100644 index 0000000..99c9ba8 --- /dev/null +++ b/Source/cmWorkingDirectory.cxx @@ -0,0 +1,24 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmWorkingDirectory.h" + +#include "cmSystemTools.h" + +cmWorkingDirectory::cmWorkingDirectory(std::string const& newdir) +{ + this->OldDir = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(newdir); +} + +cmWorkingDirectory::~cmWorkingDirectory() +{ + this->Pop(); +} + +void cmWorkingDirectory::Pop() +{ + if (!this->OldDir.empty()) { + cmSystemTools::ChangeDirectory(this->OldDir); + this->OldDir.clear(); + } +} diff --git a/Source/cmWorkingDirectory.h b/Source/cmWorkingDirectory.h new file mode 100644 index 0000000..091781e --- /dev/null +++ b/Source/cmWorkingDirectory.h @@ -0,0 +1,23 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmWorkingDirectory_h +#define cmWorkingDirectory_h + +#include + +/** \class cmWorkingDirectory + * \brief An RAII class to manipulate the working directory. + */ +class cmWorkingDirectory +{ +public: + cmWorkingDirectory(std::string const& newdir); + ~cmWorkingDirectory(); + + void Pop(); + +private: + std::string OldDir; +}; + +#endif diff --git a/bootstrap b/bootstrap index 8063edb..4f58365 100755 --- a/bootstrap +++ b/bootstrap @@ -404,6 +404,7 @@ CMAKE_CXX_SOURCES="\ cmUnsetCommand \ cmVersion \ cmWhileCommand \ + cmWorkingDirectory \ cmake \ cmakemain \ cmcmd \ https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ee20805d3b0ed67dad7c2835d673c98961736ef commit 1ee20805d3b0ed67dad7c2835d673c98961736ef Author: Ben Boeckel AuthorDate: Wed Apr 6 14:26:00 2016 -0400 Commit: Ben Boeckel CommitDate: Wed Mar 1 13:34:41 2017 -0500 cmCTest, cmCTestCoverageHandler: remove cwd dance The working directory changes here didn't really accomplish anything. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 989c096..ead1c26 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -1646,11 +1646,7 @@ int cmCTestCoverageHandler::HandleTracePyCoverage( std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; std::string tempDir = testingDir + "/CoverageInfo"; - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); cmSystemTools::MakeDirectory(tempDir.c_str()); - cmSystemTools::ChangeDirectory(tempDir); - - cmSystemTools::ChangeDirectory(currentDirectory); std::vector::iterator fileIt; int file_count = 0; @@ -1737,7 +1733,6 @@ int cmCTestCoverageHandler::HandleTracePyCoverage( } ++file_count; } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 559275e..e6e50e9 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -1122,7 +1122,6 @@ int cmCTest::RunTest(std::vector argv, std::string* output, if (log) { *log << "* Run internal CTest" << std::endl; } - std::string oldpath = cmSystemTools::GetCurrentWorkingDirectory(); CM_AUTO_PTR saveEnv; if (modifyEnv) { @@ -1137,7 +1136,6 @@ int cmCTest::RunTest(std::vector argv, std::string* output, if (log && output) { *log << *output; } - cmSystemTools::ChangeDirectory(oldpath); if (output) { cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Internal cmCTest object used to run test." << std::endl https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 commit 5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 Author: Ben Boeckel AuthorDate: Wed Apr 6 14:22:43 2016 -0400 Commit: Ben Boeckel CommitDate: Wed Mar 1 13:34:07 2017 -0500 OSXScriptLauncher: remove unused variable diff --git a/Source/CPack/OSXScriptLauncher.cxx b/Source/CPack/OSXScriptLauncher.cxx index b159e64..aeabde9 100644 --- a/Source/CPack/OSXScriptLauncher.cxx +++ b/Source/CPack/OSXScriptLauncher.cxx @@ -20,7 +20,6 @@ int main(int argc, char* argv[]) { // if ( cmsys::SystemTools::FileExists( - std::string cwd = cmsys::SystemTools::GetCurrentWorkingDirectory(); cmsys::ofstream ofs("/tmp/output.txt"); CFStringRef fileName; ----------------------------------------------------------------------- Summary of changes: Source/CMakeLists.txt | 4 + Source/CPack/OSXScriptLauncher.cxx | 1 - Source/CPack/cmCPackArchiveGenerator.cxx | 10 +- Source/CPack/cmCPackGenerator.cxx | 4 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 14 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 25 +- Source/CTest/cmCTestHandlerCommand.cxx | 5 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 11 +- Source/CTest/cmCTestRunTest.cxx | 19 +- Source/CTest/cmCTestSubmitHandler.cxx | 13 +- Source/CTest/cmCTestTestHandler.cxx | 70 +-- Source/cmCTest.cxx | 2 - Source/cmDepends.cxx | 14 +- Source/cmGlobalGenerator.cxx | 9 +- Source/cmMakefile.cxx | 11 +- Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++------------ Source/cmQtAutoGenerators.cxx | 225 ++++++---- Source/cmQtAutoGenerators.h | 2 +- Source/cmWorkingDirectory.cxx | 24 + Source/cmWorkingDirectory.h | 23 + Source/cmake.cxx | 30 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + .../{automoc_rerun => mocRerun}/CMakeLists.txt | 14 +- .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + .../{autorcc_depends => rccDepends}/CMakeLists.txt | 15 +- .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- .../{autorcc_depends => rccDepends}/test_res1.cpp | 0 bootstrap | 1 + 49 files changed, 940 insertions(+), 598 deletions(-) create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h create mode 100644 Source/cmWorkingDirectory.cxx create mode 100644 Source/cmWorkingDirectory.h delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp rename Tests/QtAutogen/{automoc_rerun => mocRerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) rename Tests/QtAutogen/{autorcc_depends => rccDepends}/test_res1.cpp (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 15:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 15:15:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-371-ge6cd443 Message-ID: <20170303201502.C6EA2BFFC6@public.kitware.com> 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 e6cd443763d90583d1664403619979b4bce44393 (commit) via 9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 (commit) from fddee0f94de26cd9540becfca7ad81716023f767 (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=e6cd443763d90583d1664403619979b4bce44393 commit e6cd443763d90583d1664403619979b4bce44393 Merge: fddee0f 9a1ee04 Author: Brad King AuthorDate: Fri Mar 3 20:05:37 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 3 15:05:39 2017 -0500 Stage topic 'binaries-from-gitlab-repo' Topic-id: 22863 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/547 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 commit 9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 Author: Brad King AuthorDate: Fri Mar 3 14:34:58 2017 -0500 Commit: Brad King CommitDate: Fri Mar 3 15:03:00 2017 -0500 Utilities/Release: Fetch from gitlab.kitware.com repository Update our release scripts to fetch from the gitlab.kitware.com repository instead of the cmake.org repository. Revise our mapping of special branch names to account for the refs that now store them in the new repository. diff --git a/Utilities/Release/release_cmake.cmake b/Utilities/Release/release_cmake.cmake index 0db89b5..ee1a0dc 100644 --- a/Utilities/Release/release_cmake.cmake +++ b/Utilities/Release/release_cmake.cmake @@ -32,9 +32,15 @@ if(NOT DEFINED GIT_COMMAND) set(GIT_COMMAND git) endif() -if(${CMAKE_CREATE_VERSION} MATCHES "^(release|maint|next|nightly)$") +if(CMAKE_CREATE_VERSION MATCHES "^(master|release)$") + set(GIT_FETCH "") set(GIT_BRANCH origin/${CMAKE_CREATE_VERSION}) +elseif(CMAKE_CREATE_VERSION STREQUAL "nightly") + set(nightly stage/master/nightly/latest) + set(GIT_FETCH "${GIT_COMMAND} fetch origin refs/${nightly}:refs/remotes/origin/${nightly}") + set(GIT_BRANCH origin/${nightly}) else() + set(GIT_FETCH "") set(GIT_BRANCH ${CMAKE_CREATE_VERSION}) endif() diff --git a/Utilities/Release/release_cmake.sh.in b/Utilities/Release/release_cmake.sh.in index 1465129..f363b3d 100755 --- a/Utilities/Release/release_cmake.sh.in +++ b/Utilities/Release/release_cmake.sh.in @@ -94,13 +94,15 @@ cd @CMAKE_RELEASE_DIRECTORY@ if [ ! -z "@GIT_COMMAND@" ]; then # clone the repo without creating any source files in the directory # matching the branch being built (i.e. master CMake-2-8, etc) - @GIT_COMMAND@ clone -n git://cmake.org/cmake.git @CMAKE_CREATE_VERSION@ - check_exit_value $? "Checkout git cmake source" || exit 1 + @GIT_COMMAND@ clone -n https://gitlab.kitware.com/cmake/cmake.git @CMAKE_CREATE_VERSION@ + check_exit_value $? "git clone cmake source" || exit 1 # go into the git directory cd @CMAKE_CREATE_VERSION@ # run any extra commands if they exist @GIT_EXTRA@ check_exit_value $? "git extra cmake source" || exit 1 + @GIT_FETCH@ + check_exit_value $? "git extra fetch" || exit 1 # now checkout a copy on the local branch working @GIT_COMMAND@ checkout -b working @GIT_BRANCH@ check_exit_value $? "git checkout" || exit 1 ----------------------------------------------------------------------- Summary of changes: Utilities/Release/release_cmake.cmake | 8 +++++++- Utilities/Release/release_cmake.sh.in | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-371-ge6cd443 Message-ID: <20170304010503.D3504FA532@public.kitware.com> 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, nightly has been updated via e6cd443763d90583d1664403619979b4bce44393 (commit) via 9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 (commit) via fddee0f94de26cd9540becfca7ad81716023f767 (commit) via de21e3afaad243f15577d8bc1b20a76c563680d7 (commit) via e7e939058d568a7aac9952386057fc869c240a9e (commit) via 6cd3079ce8072203a71f9dc8d3f0b578f9ad063c (commit) via 75da91ab952ad770c2d1fe9a96aa630a4d02738e (commit) via 1cc73e9a6c6dca38a163a8e61208b6ab74839441 (commit) via 9a65b1272c94cfbaa929e674db55c67485a2cf2a (commit) via 205ac0f034b9fac9d220b2c24a17738708f3068b (commit) via 9360e6c6a0197e9ac05d085221eb7ec31be3c2eb (commit) via c3eb88e23d958676dd7bd3435d2005341a4caca3 (commit) via ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) via 28878dbdd49dce43a15a98062696af30f26800cf (commit) via 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) via 614917f70e292763b14b1c388e92714bac31fa9c (commit) via 505ed4e76f3043cdb5d45effc4791455136560df (commit) via eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) via c511576c620ecbc614591722ad1b381c8a7d2528 (commit) via 4ef593ed4940229437dbbad7707a6461846318f8 (commit) via bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) via c52eecc303f8cb3de406d788914a2071cef4e60f (commit) via 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) via 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) via f9531b373f27367ac0d8c4beae474768b7745b59 (commit) via 100723035ac228187e60f549dd38c8f89c447b40 (commit) via d33de80c8a9e3e5e56012cbfe640004f7cb1550f (commit) via 09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 (commit) via 1ee20805d3b0ed67dad7c2835d673c98961736ef (commit) via 5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 (commit) from 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: CMakeLists.txt | 1 + CONTRIBUTING.rst | 10 + Help/dev/README.rst | 27 ++ Help/dev/review.rst | 304 +++++++++++++ Source/CMakeLists.txt | 4 + Source/CPack/OSXScriptLauncher.cxx | 1 - Source/CPack/cmCPackArchiveGenerator.cxx | 10 +- Source/CPack/cmCPackGenerator.cxx | 4 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 14 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 25 +- Source/CTest/cmCTestHandlerCommand.cxx | 5 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 11 +- Source/CTest/cmCTestRunTest.cxx | 19 +- Source/CTest/cmCTestSubmitHandler.cxx | 13 +- Source/CTest/cmCTestTestHandler.cxx | 70 +-- Source/cmCTest.cxx | 2 - Source/cmDepends.cxx | 14 +- Source/cmGlobalGenerator.cxx | 9 +- Source/cmMakefile.cxx | 11 +- Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++------------ Source/cmQtAutoGenerators.cxx | 225 ++++++---- Source/cmQtAutoGenerators.h | 2 +- Source/cmWorkingDirectory.cxx | 24 + Source/cmWorkingDirectory.h | 23 + Source/cmake.cxx | 30 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + .../{automoc_rerun => mocRerun}/CMakeLists.txt | 14 +- .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + .../{autorcc_depends => rccDepends}/CMakeLists.txt | 15 +- .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- .../{autorcc_depends => rccDepends}/test_res1.cpp | 0 Utilities/GitSetup/config | 9 +- Utilities/Release/release_cmake.cmake | 8 +- Utilities/Release/release_cmake.sh.in | 6 +- Utilities/SetupForDevelopment.sh | 5 +- Utilities/Sphinx/conf.py.in | 4 +- bootstrap | 1 + 58 files changed, 1298 insertions(+), 614 deletions(-) create mode 100644 Help/dev/README.rst create mode 100644 Help/dev/review.rst create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h create mode 100644 Source/cmWorkingDirectory.cxx create mode 100644 Source/cmWorkingDirectory.h delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp rename Tests/QtAutogen/{automoc_rerun => mocRerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) rename Tests/QtAutogen/{autorcc_depends => rccDepends}/test_res1.cpp (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 3 20:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 3 Mar 2017 20:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-349-ge7e9390 Message-ID: <20170304010504.6E0A7FA522@public.kitware.com> 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, nightly-master has been updated via e7e939058d568a7aac9952386057fc869c240a9e (commit) via 6cd3079ce8072203a71f9dc8d3f0b578f9ad063c (commit) via 75da91ab952ad770c2d1fe9a96aa630a4d02738e (commit) via 1cc73e9a6c6dca38a163a8e61208b6ab74839441 (commit) via 9a65b1272c94cfbaa929e674db55c67485a2cf2a (commit) via 205ac0f034b9fac9d220b2c24a17738708f3068b (commit) via 9360e6c6a0197e9ac05d085221eb7ec31be3c2eb (commit) via 4e8ffb952c41e19a5a4b24cdcbc504dba3f03f11 (commit) via e1adec32b8325fb731da084e99acd6070f5e39bf (commit) via d9f54b565a80c0811f31374d6359085874d6b23c (commit) via 2b52c6cde5933d7e46b2d85788ba67b20069ab86 (commit) via 9f37f94d639aa4a5cc42a2f60fafb51bed317e1b (commit) via d0ada3e2183d3f80125795a3b13acafa7cc0c477 (commit) via 2ccf879ab4efca38bb2918bfb4ba5946328f8bb1 (commit) via 71d9861a42e591d609fce20ea334eedc80f8b199 (commit) via 4e537aa42c7d5731272d75b4a298271e26d36cee (commit) via 79b017f23cb012aaaad361c5e4478dcfa7bcc829 (commit) via 24c0e229efd92392a877ba5c7c52d74fb9fdf689 (commit) via 1e0841c67244c70641a18c348cd8a274f4789010 (commit) via 3e06cdc19bc6670e19dd3697f257f0b89e5cd3f7 (commit) via 8e58f360f53eab991debe507c669595cec7f07fa (commit) via 6b6191d8754fd6a805a83c2a10f521aa92e26175 (commit) via 8d1af9cad2f55fda440b3db537fc99e1d78b2aad (commit) via 5228d36aac11e23c795019b28eba57195392b51c (commit) via 69528fe65f0c4402c6560917d6cb118d2c103445 (commit) via f3102ca884496a4a0644dc43afaf80a253191ed8 (commit) via c3fb650c85a01f1a31f3f56f5ae630d4e6c6e98d (commit) via d33de80c8a9e3e5e56012cbfe640004f7cb1550f (commit) via b1a37362b87c24d409f4037cd59c33056468c11b (commit) from 06ef23c3e0abf79f451cf69fbd3ac646b7e17c27 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: CMakeLists.txt | 1 + CONTRIBUTING.rst | 10 + Help/dev/README.rst | 27 ++ Help/dev/review.rst | 304 ++++++++++++++++++++ Help/manual/cmake-variables.7.rst | 1 + Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION.rst | 4 + .../dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 6 + .../CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst | 8 + Modules/FindJNI.cmake | 5 + Modules/FindVulkan.cmake | 8 +- Source/CMakeVersion.cmake | 2 +- Source/cmOrderDirectories.cxx | 22 +- Source/cmOrderDirectories.h | 2 + Source/cmTarget.cxx | 1 + Tests/RunCMake/CMakeLists.txt | 3 + .../RunCMake/RuntimePath/A.c | 2 +- .../{Cpplint => RuntimePath}/CMakeLists.txt | 0 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake | 18 ++ Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake | 17 ++ .../SymlinkImplicitCheck-result.txt} | 0 .../RuntimePath/SymlinkImplicitCheck-stderr.txt | 22 ++ .../RuntimePath/SymlinkImplicitCheck.cmake | 2 + .../RuntimePath}/main.c | 0 Utilities/GitSetup/config | 9 +- Utilities/SetupForDevelopment.sh | 5 +- Utilities/Sphinx/conf.py.in | 4 +- 26 files changed, 459 insertions(+), 24 deletions(-) create mode 100644 Help/dev/README.rst create mode 100644 Help/dev/review.rst create mode 100644 Help/release/dev/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst create mode 100644 Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION.rst copy Modules/DummyCXXFile.cxx => Tests/RunCMake/RuntimePath/A.c (51%) copy Tests/RunCMake/{Cpplint => RuntimePath}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/RuntimePath/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicit.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => RuntimePath/SymlinkImplicitCheck-result.txt} (100%) create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck-stderr.txt create mode 100644 Tests/RunCMake/RuntimePath/SymlinkImplicitCheck.cmake copy Tests/{CMakeOnly/LinkInterfaceLoop => RunCMake/RuntimePath}/main.c (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 4 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 4 Mar 2017 00:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-350-gd96d971 Message-ID: <20170304050506.3036DFA64E@public.kitware.com> 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 d96d971ac048acc8fa266b2e1320cc7f0470aeae (commit) from e7e939058d568a7aac9952386057fc869c240a9e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 4 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 4 Mar 2017 00:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-372-ga5ba5d4 Message-ID: <20170304050506.54865FA64F@public.kitware.com> 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 e6cd443763d90583d1664403619979b4bce44393 (commit) discards fddee0f94de26cd9540becfca7ad81716023f767 (commit) discards de21e3afaad243f15577d8bc1b20a76c563680d7 (commit) via a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 (commit) via 6f1b38f432db822b9eb4f75596a5a06e573b46a1 (commit) via ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 (commit) via d96d971ac048acc8fa266b2e1320cc7f0470aeae (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 (e6cd443763d90583d1664403619979b4bce44393) \ N -- N -- N (a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8) 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=a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 commit a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 Merge: 6f1b38f 9a1ee04 Author: Brad King AuthorDate: Fri Mar 3 20:05:37 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 4 00:01:18 2017 -0500 Stage topic 'binaries-from-gitlab-repo' Topic-id: 22863 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/547 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f1b38f432db822b9eb4f75596a5a06e573b46a1 commit 6f1b38f432db822b9eb4f75596a5a06e573b46a1 Merge: ca5d018 c3eb88e Author: Brad King AuthorDate: Fri Mar 3 18:58:53 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 4 00:01:18 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 commit ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 Merge: d96d971 ef4e1e8 Author: Brad King AuthorDate: Fri Mar 3 18:55:51 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 4 00:01:18 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 4 20:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 4 Mar 2017 20:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-372-ga5ba5d4 Message-ID: <20170305010506.A9408FA361@public.kitware.com> 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, nightly has been updated discards e6cd443763d90583d1664403619979b4bce44393 (commit) discards fddee0f94de26cd9540becfca7ad81716023f767 (commit) discards de21e3afaad243f15577d8bc1b20a76c563680d7 (commit) via a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 (commit) via 6f1b38f432db822b9eb4f75596a5a06e573b46a1 (commit) via ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 (commit) via d96d971ac048acc8fa266b2e1320cc7f0470aeae (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 (e6cd443763d90583d1664403619979b4bce44393) \ N -- N -- N (a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 4 20:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 4 Mar 2017 20:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-350-gd96d971 Message-ID: <20170305010506.C3167FA36A@public.kitware.com> 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, nightly-master has been updated via d96d971ac048acc8fa266b2e1320cc7f0470aeae (commit) from e7e939058d568a7aac9952386057fc869c240a9e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 5 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 5 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-351-g01d5963 Message-ID: <20170305050504.AC767F9F8F@public.kitware.com> 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 01d5963552ca375f04cfdaf21f24aa0d51574a43 (commit) from d96d971ac048acc8fa266b2e1320cc7f0470aeae (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 5 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 5 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-373-g9956b01 Message-ID: <20170305050504.F2ACAF9F88@public.kitware.com> 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 a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 (commit) discards 6f1b38f432db822b9eb4f75596a5a06e573b46a1 (commit) discards ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 (commit) via 9956b0118c2b9aba2c38c407bc2fff199a707a6f (commit) via fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 (commit) via 79d8942b3df193b5dd95b76092ab6001f449e94d (commit) via 01d5963552ca375f04cfdaf21f24aa0d51574a43 (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 (a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8) \ N -- N -- N (9956b0118c2b9aba2c38c407bc2fff199a707a6f) 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=9956b0118c2b9aba2c38c407bc2fff199a707a6f commit 9956b0118c2b9aba2c38c407bc2fff199a707a6f Merge: fab6a95 9a1ee04 Author: Brad King AuthorDate: Fri Mar 3 20:05:37 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 5 00:01:19 2017 -0500 Stage topic 'binaries-from-gitlab-repo' Topic-id: 22863 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/547 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 commit fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 Merge: 79d8942 c3eb88e Author: Brad King AuthorDate: Fri Mar 3 18:58:53 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 5 00:01:19 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=79d8942b3df193b5dd95b76092ab6001f449e94d commit 79d8942b3df193b5dd95b76092ab6001f449e94d Merge: 01d5963 ef4e1e8 Author: Brad King AuthorDate: Fri Mar 3 18:55:51 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 5 00:01:19 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 5 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 5 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-373-g9956b01 Message-ID: <20170306010503.0AC2FFA655@public.kitware.com> 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, nightly has been updated discards a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8 (commit) discards 6f1b38f432db822b9eb4f75596a5a06e573b46a1 (commit) discards ca5d0185ca63c2dd2835f5629ac4aea85fbba1d8 (commit) via 9956b0118c2b9aba2c38c407bc2fff199a707a6f (commit) via fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 (commit) via 79d8942b3df193b5dd95b76092ab6001f449e94d (commit) via 01d5963552ca375f04cfdaf21f24aa0d51574a43 (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 (a5ba5d4c91e4ee0e783bae0a54c8989f9fb4c7b8) \ N -- N -- N (9956b0118c2b9aba2c38c407bc2fff199a707a6f) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 5 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 5 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-351-g01d5963 Message-ID: <20170306010503.209C0FA65E@public.kitware.com> 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, nightly-master has been updated via 01d5963552ca375f04cfdaf21f24aa0d51574a43 (commit) from d96d971ac048acc8fa266b2e1320cc7f0470aeae (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 00:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 00:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-352-g9f40ba2 Message-ID: <20170306050503.30B7BFA752@public.kitware.com> 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 9f40ba259a1d55e9277e0d0c2b706272a0ee75ee (commit) from 01d5963552ca375f04cfdaf21f24aa0d51574a43 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 00:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 00:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-374-g2eec08c Message-ID: <20170306050503.4E7D5FA753@public.kitware.com> 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 9956b0118c2b9aba2c38c407bc2fff199a707a6f (commit) discards fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 (commit) discards 79d8942b3df193b5dd95b76092ab6001f449e94d (commit) via 2eec08c0c8297fabab5d3f84bc6f53ca98b08b65 (commit) via 5cf284282e51f6e5b6ad9777ef58f4ba6cb0e9d6 (commit) via 1b1bccc06db42727cf0d8d7f21215081c78e8fb3 (commit) via 9f40ba259a1d55e9277e0d0c2b706272a0ee75ee (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 (9956b0118c2b9aba2c38c407bc2fff199a707a6f) \ N -- N -- N (2eec08c0c8297fabab5d3f84bc6f53ca98b08b65) 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=2eec08c0c8297fabab5d3f84bc6f53ca98b08b65 commit 2eec08c0c8297fabab5d3f84bc6f53ca98b08b65 Merge: 5cf2842 9a1ee04 Author: Brad King AuthorDate: Fri Mar 3 20:05:37 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 00:01:17 2017 -0500 Stage topic 'binaries-from-gitlab-repo' Topic-id: 22863 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/547 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5cf284282e51f6e5b6ad9777ef58f4ba6cb0e9d6 commit 5cf284282e51f6e5b6ad9777ef58f4ba6cb0e9d6 Merge: 1b1bccc c3eb88e Author: Brad King AuthorDate: Fri Mar 3 18:58:53 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 00:01:17 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1b1bccc06db42727cf0d8d7f21215081c78e8fb3 commit 1b1bccc06db42727cf0d8d7f21215081c78e8fb3 Merge: 9f40ba2 ef4e1e8 Author: Brad King AuthorDate: Fri Mar 3 18:55:51 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 00:01:16 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 10:35:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 10:35:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-354-ga55ed1a Message-ID: <20170306153507.07BEEFA6D9@public.kitware.com> 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 a55ed1a37c74a7a112e6c355af0658b5d89dede1 (commit) via 9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 (commit) from 9f40ba259a1d55e9277e0d0c2b706272a0ee75ee (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Utilities/Release/release_cmake.cmake | 8 +++++++- Utilities/Release/release_cmake.sh.in | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 10:35:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 10:35:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-359-ge532884 Message-ID: <20170306153509.87343FA6D8@public.kitware.com> 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 2eec08c0c8297fabab5d3f84bc6f53ca98b08b65 (commit) discards 5cf284282e51f6e5b6ad9777ef58f4ba6cb0e9d6 (commit) discards 1b1bccc06db42727cf0d8d7f21215081c78e8fb3 (commit) discards ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) discards 28878dbdd49dce43a15a98062696af30f26800cf (commit) discards 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) discards 614917f70e292763b14b1c388e92714bac31fa9c (commit) discards 505ed4e76f3043cdb5d45effc4791455136560df (commit) discards eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) discards c511576c620ecbc614591722ad1b381c8a7d2528 (commit) discards 4ef593ed4940229437dbbad7707a6461846318f8 (commit) discards bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) discards c52eecc303f8cb3de406d788914a2071cef4e60f (commit) discards 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) discards 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) discards f9531b373f27367ac0d8c4beae474768b7745b59 (commit) discards 100723035ac228187e60f549dd38c8f89c447b40 (commit) via e532884e84cc22a99a9321f966f205db3a0fee84 (commit) via a55ed1a37c74a7a112e6c355af0658b5d89dede1 (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 (2eec08c0c8297fabab5d3f84bc6f53ca98b08b65) \ N -- N -- N (e532884e84cc22a99a9321f966f205db3a0fee84) 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=e532884e84cc22a99a9321f966f205db3a0fee84 commit e532884e84cc22a99a9321f966f205db3a0fee84 Merge: a55ed1a c3eb88e Author: Brad King AuthorDate: Fri Mar 3 18:58:53 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 10:31:49 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 ----------------------------------------------------------------------- Summary of changes: Source/CMakeLists.txt | 2 - Source/cmQtAutoGeneratorCommon.cxx | 215 --------- Source/cmQtAutoGeneratorCommon.h | 34 -- Source/cmQtAutoGeneratorInitializer.cxx | 472 ++++++++++++-------- Source/cmQtAutoGenerators.cxx | 225 ++++------ Source/cmQtAutoGenerators.h | 2 +- Tests/QtAutogen/CMakeLists.txt | 98 ++-- .../{mocRerun => automoc_rerun}/CMakeLists.txt | 14 +- .../{mocRerun => automoc_rerun}/input.txt | 0 .../QtAutogen/{mocRerun => automoc_rerun}/res1.qrc | 0 .../automoc_rerun/test1.cpp} | 1 + Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 + Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 + .../{rccDepends => autorcc_depends}/CMakeLists.txt | 15 +- .../{rccDepends => autorcc_depends}/res1.qrc.in | 0 .../res1/input.txt.in} | 0 .../{rccDepends => autorcc_depends}/test_res1.cpp | 0 Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 -- Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 - Tests/QtAutogen/mocDepends/object.hpp.in | 14 - Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 - Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 - Tests/QtAutogen/mocDepends/test1.cpp | 9 - Tests/QtAutogen/mocDepends/test2.cpp | 10 - Tests/QtAutogen/mocDepends/test2.hpp | 16 - Tests/QtAutogen/mocRerun/main.cpp.in | 18 - Tests/QtAutogen/mocRerun/test1a.h.in | 8 - Tests/QtAutogen/mocRerun/test1b.h.in | 7 - Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 - Tests/QtAutogen/rccDepends/res2.qrc.in | 5 - 30 files changed, 439 insertions(+), 808 deletions(-) delete mode 100644 Source/cmQtAutoGeneratorCommon.cxx delete mode 100644 Source/cmQtAutoGeneratorCommon.h rename Tests/QtAutogen/{mocRerun => automoc_rerun}/CMakeLists.txt (51%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/input.txt (100%) rename Tests/QtAutogen/{mocRerun => automoc_rerun}/res1.qrc (100%) copy Tests/{BuildDepends/Project/object_depends.cxx => QtAutogen/automoc_rerun/test1.cpp} (58%) create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 create mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 rename Tests/QtAutogen/{rccDepends => autorcc_depends}/CMakeLists.txt (51%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/res1.qrc.in (100%) rename Tests/QtAutogen/{rccDepends/res/input1.txt.in => autorcc_depends/res1/input.txt.in} (100%) rename Tests/QtAutogen/{rccDepends => autorcc_depends}/test_res1.cpp (100%) delete mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt delete mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in delete mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in delete mode 100644 Tests/QtAutogen/mocDepends/test1.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.cpp delete mode 100644 Tests/QtAutogen/mocDepends/test2.hpp delete mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in delete mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in delete mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in delete mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in delete mode 100644 Tests/QtAutogen/rccDepends/res2.qrc.in hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 10:45:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 10:45:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-359-gd309b4f Message-ID: <20170306154507.6202CF3BBA@public.kitware.com> 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 e532884e84cc22a99a9321f966f205db3a0fee84 (commit) discards c3eb88e23d958676dd7bd3435d2005341a4caca3 (commit) discards 09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 (commit) discards 1ee20805d3b0ed67dad7c2835d673c98961736ef (commit) discards 5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 (commit) via d309b4feda99b7a3682947e79f24d7d33bed8447 (commit) via aba92ffd92bb1cc4bbe898b7abe65347b0468d33 (commit) via 047a5e4d6656f362151b855b34c259708b8419ba (commit) via 89891bcb9e226cc6216227634d0272adbc080c72 (commit) via c3304fa510fa0dba380190cfb775be2fafcd8527 (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 (e532884e84cc22a99a9321f966f205db3a0fee84) \ N -- N -- N (d309b4feda99b7a3682947e79f24d7d33bed8447) 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=d309b4feda99b7a3682947e79f24d7d33bed8447 commit d309b4feda99b7a3682947e79f24d7d33bed8447 Merge: a55ed1a aba92ff Author: Brad King AuthorDate: Mon Mar 6 15:40:46 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 10:40:51 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aba92ffd92bb1cc4bbe898b7abe65347b0468d33 commit aba92ffd92bb1cc4bbe898b7abe65347b0468d33 Author: Ben Boeckel AuthorDate: Wed Mar 1 13:41:50 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 10:38:58 2017 -0500 cmWorkingDirectory: use the new class These functions just need to change the directory for a block of code and then go back to the caller's expected location. Use cmWorkingDirectory to ensure that all return paths are handled. diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx index 9d9cd66..cc01b0c 100644 --- a/Source/CPack/cmCPackArchiveGenerator.cxx +++ b/Source/CPack/cmCPackArchiveGenerator.cxx @@ -7,6 +7,7 @@ #include "cmCPackLog.h" #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -37,9 +38,8 @@ int cmCPackArchiveGenerator::addOneComponentToArchive( // Add the files of this component to the archive std::string localToplevel(this->GetOption("CPACK_TEMPORARY_DIRECTORY")); localToplevel += "/" + component->Name; - std::string dir = cmSystemTools::GetCurrentWorkingDirectory(); // Change to local toplevel - cmSystemTools::ChangeDirectory(localToplevel); + cmWorkingDirectory workdir(localToplevel); std::string filePrefix; if (this->IsOn("CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY")) { filePrefix = this->GetOption("CPACK_PACKAGE_FILE_NAME"); @@ -64,8 +64,6 @@ int cmCPackArchiveGenerator::addOneComponentToArchive( return 0; } } - // Go back to previous dir - cmSystemTools::ChangeDirectory(dir); return 1; } @@ -227,8 +225,7 @@ int cmCPackArchiveGenerator::PackageFiles() // CASE 3 : NON COMPONENT package. DECLARE_AND_OPEN_ARCHIVE(packageFileNames[0], archive); std::vector::const_iterator fileIt; - std::string dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(toplevel); + cmWorkingDirectory workdir(toplevel); for (fileIt = files.begin(); fileIt != files.end(); ++fileIt) { // Get the relative path to the file std::string rp = @@ -241,7 +238,6 @@ int cmCPackArchiveGenerator::PackageFiles() return 0; } } - cmSystemTools::ChangeDirectory(dir); // The destructor of cmArchiveWrite will close and finish the write return 1; } diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index e1a4a2a..f6ea8cf 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -16,6 +16,7 @@ #include "cmGlobalGenerator.h" #include "cmMakefile.h" #include "cmStateSnapshot.h" +#include "cmWorkingDirectory.h" #include "cmXMLSafe.h" #include "cm_auto_ptr.hxx" #include "cmake.h" @@ -383,7 +384,7 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( goToDir += "/" + subdir; cmCPackLogger(cmCPackLog::LOG_DEBUG, "Change dir to: " << goToDir << std::endl); - cmSystemTools::ChangeDirectory(goToDir); + cmWorkingDirectory workdir(goToDir); for (symlinkedIt = symlinkedFiles.begin(); symlinkedIt != symlinkedFiles.end(); ++symlinkedIt) { cmCPackLogger(cmCPackLog::LOG_DEBUG, "Will create a symlink: " @@ -408,7 +409,6 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( } cmCPackLogger(cmCPackLog::LOG_DEBUG, "Going back to: " << curDir << std::endl); - cmSystemTools::ChangeDirectory(curDir); } } } diff --git a/Source/CTest/cmCTestBuildAndTestHandler.cxx b/Source/CTest/cmCTestBuildAndTestHandler.cxx index 6780a0e..6f81429 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.cxx +++ b/Source/CTest/cmCTestBuildAndTestHandler.cxx @@ -6,6 +6,7 @@ #include "cmCTestTestHandler.h" #include "cmGlobalGenerator.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #include @@ -42,7 +43,7 @@ int cmCTestBuildAndTestHandler::ProcessHandler() int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, std::ostringstream& out, std::string& cmakeOutString, - std::string& cwd, cmake* cm) + cmake* cm) { unsigned int k; std::vector args; @@ -85,8 +86,6 @@ int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, if (cm->Run(args) != 0) { out << "Error: cmake execution failed\n"; out << cmakeOutString << "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); if (outstring) { *outstring = out.str(); } else { @@ -99,8 +98,6 @@ int cmCTestBuildAndTestHandler::RunCMake(std::string* outstring, if (cm->Run(args) != 0) { out << "Error: cmake execution failed\n"; out << cmakeOutString << "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); if (outstring) { *outstring = out.str(); } else { @@ -199,13 +196,12 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) double clock_start = cmSystemTools::GetTime(); // make sure the binary dir is there - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); out << "Internal cmake changing into directory: " << this->BinaryDir << std::endl; if (!cmSystemTools::FileIsDirectory(this->BinaryDir)) { cmSystemTools::MakeDirectory(this->BinaryDir.c_str()); } - cmSystemTools::ChangeDirectory(this->BinaryDir); + cmWorkingDirectory workdir(this->BinaryDir); if (this->BuildNoCMake) { // Make the generator available for the Build call below. @@ -217,7 +213,7 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) cm.LoadCache(this->BinaryDir); } else { // do the cmake step, no timeout here since it is not a sub process - if (this->RunCMake(outstring, out, cmakeOutString, cwd, &cm)) { + if (this->RunCMake(outstring, out, cmakeOutString, &cm)) { return 1; } } @@ -304,8 +300,6 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring) } else { cmCTestLog(this->CTest, ERROR_MESSAGE, out.str()); } - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } diff --git a/Source/CTest/cmCTestBuildAndTestHandler.h b/Source/CTest/cmCTestBuildAndTestHandler.h index 5885738..af082a3 100644 --- a/Source/CTest/cmCTestBuildAndTestHandler.h +++ b/Source/CTest/cmCTestBuildAndTestHandler.h @@ -46,7 +46,7 @@ protected: ///! Run CMake and build a test and then run it as a single test. int RunCMakeAndTest(std::string* output); int RunCMake(std::string* outstring, std::ostringstream& out, - std::string& cmakeOutString, std::string& cwd, cmake* cm); + std::string& cmakeOutString, cmake* cm); std::string Output; diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index ead1c26..120c5d9 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -12,6 +12,7 @@ #include "cmParseJacocoCoverage.h" #include "cmParsePHPCoverage.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmXMLWriter.h" #include "cmake.h" @@ -969,9 +970,8 @@ int cmCTestCoverageHandler::HandleGCovCoverage( std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; std::string tempDir = testingDir + "/CoverageInfo"; - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); cmSystemTools::MakeDirectory(tempDir.c_str()); - cmSystemTools::ChangeDirectory(tempDir); + cmWorkingDirectory workdir(tempDir); int gcovStyle = 0; @@ -1294,7 +1294,6 @@ int cmCTestCoverageHandler::HandleGCovCoverage( } } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } @@ -1340,7 +1339,6 @@ int cmCTestCoverageHandler::HandleLCovCoverage( return 0; } std::string testingDir = this->CTest->GetBinaryDir(); - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); std::set missingFiles; @@ -1362,7 +1360,7 @@ int cmCTestCoverageHandler::HandleLCovCoverage( cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, "." << std::flush, this->Quiet); std::string fileDir = cmSystemTools::GetFilenamePath(*it); - cmSystemTools::ChangeDirectory(fileDir); + cmWorkingDirectory workdir(fileDir); std::string command = "\"" + lcovCommand + "\" " + lcovExtraFlags + " "; cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, @@ -1552,7 +1550,6 @@ int cmCTestCoverageHandler::HandleLCovCoverage( } } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } @@ -1591,13 +1588,8 @@ bool cmCTestCoverageHandler::FindLCovFiles(std::vector& files) gl.RecurseOff(); // No need of recurse if -prof_dir${BUILD_DIR} flag is // used while compiling. gl.RecurseThroughSymlinksOff(); - std::string prevBinaryDir; std::string buildDir = this->CTest->GetCTestConfiguration("BuildDirectory"); - if (cmSystemTools::ChangeDirectory(buildDir)) { - cmCTestLog(this->CTest, ERROR_MESSAGE, "Error changing directory to " - << buildDir << std::endl); - return false; - } + cmWorkingDirectory workdir(buildDir); // Run profmerge to merge all *.dyn files into dpi files if (!cmSystemTools::RunSingleCommand("profmerge")) { @@ -1605,11 +1597,9 @@ bool cmCTestCoverageHandler::FindLCovFiles(std::vector& files) return false; } - prevBinaryDir = cmSystemTools::GetCurrentWorkingDirectory(); - // DPI file should appear in build directory std::string daGlob; - daGlob = prevBinaryDir; + daGlob = buildDir; daGlob += "/*.dpi"; cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " looking for dpi files in: " << daGlob << std::endl, diff --git a/Source/CTest/cmCTestHandlerCommand.cxx b/Source/CTest/cmCTestHandlerCommand.cxx index 2a67d47..c99e450 100644 --- a/Source/CTest/cmCTestHandlerCommand.cxx +++ b/Source/CTest/cmCTestHandlerCommand.cxx @@ -6,6 +6,7 @@ #include "cmCTestGenericHandler.h" #include "cmMakefile.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #include @@ -216,8 +217,7 @@ bool cmCTestHandlerCommand::InitialPass(std::vector const& args, handler->SetSubmitIndex(atoi(this->Values[ct_SUBMIT_INDEX])); } } - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory( + cmWorkingDirectory workdir( this->CTest->GetCTestConfiguration("BuildDirectory")); int res = handler->ProcessHandler(); if (this->Values[ct_RETURN_VALUE] && *this->Values[ct_RETURN_VALUE]) { @@ -243,7 +243,6 @@ bool cmCTestHandlerCommand::InitialPass(std::vector const& args, this->Makefile->AddDefinition(this->Values[ct_CAPTURE_CMAKE_ERROR], returnString); } - cmSystemTools::ChangeDirectory(current_dir); return true; } diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index c1724ab..ff465ab 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -7,6 +7,7 @@ #include "cmCTestScriptHandler.h" #include "cmCTestTestHandler.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -138,8 +139,7 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test) } } - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->Properties[test]->Directory); + cmWorkingDirectory workdir(this->Properties[test]->Directory); // Lock the resources we'll be using this->LockResources(test); @@ -166,7 +166,6 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test) this->Failed->push_back(this->Properties[test]->Name); delete testRun; } - cmSystemTools::ChangeDirectory(current_dir); } void cmCTestMultiProcessHandler::LockResources(int index) @@ -683,9 +682,7 @@ void cmCTestMultiProcessHandler::PrintTestList() count++; cmCTestTestHandler::cmCTestTestProperties& p = *it->second; - // push working dir - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(p.Directory); + cmWorkingDirectory workdir(p.Directory); cmCTestRunTest testRun(this->TestHandler); testRun.SetIndex(p.Index); @@ -724,8 +721,6 @@ void cmCTestMultiProcessHandler::PrintTestList() cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " ", this->Quiet); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, p.Name << std::endl, this->Quiet); - // pop working dir - cmSystemTools::ChangeDirectory(current_dir); } cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, std::endl diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index ac1644f..f148f30 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -7,6 +7,7 @@ #include "cmCTestTestHandler.h" #include "cmProcess.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -270,14 +271,11 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) *this->TestHandler->LogFile << "Test time = " << buf << std::endl; } - // Set the working directory to the tests directory - std::string oldpath = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->TestProperties->Directory); - - this->DartProcessing(); - - // restore working directory - cmSystemTools::ChangeDirectory(oldpath); + // Set the working directory to the tests directory to process Dart files. + { + cmWorkingDirectory workdir(this->TestProperties->Directory); + this->DartProcessing(); + } // if this is doing MemCheck then all the output needs to be put into // Output since that is what is parsed by cmCTestMemCheckHandler @@ -356,11 +354,8 @@ bool cmCTestRunTest::StartAgain() } this->RunAgain = false; // reset // change to tests directory - std::string current_dir = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(this->TestProperties->Directory); + cmWorkingDirectory workdir(this->TestProperties->Directory); this->StartTest(this->TotalNumberOfTests); - // change back - cmSystemTools::ChangeDirectory(current_dir); return true; } diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index 5e5119d..cc399b0 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -19,6 +19,7 @@ #include "cmState.h" #include "cmSystemTools.h" #include "cmThirdParty.h" +#include "cmWorkingDirectory.h" #include "cmXMLParser.h" #include "cmake.h" @@ -1519,7 +1520,6 @@ int cmCTestSubmitHandler::ProcessHandler() #endif } else if (dropMethod == "scp") { std::string url; - std::string oldWorkingDirectory; if (!this->CTest->GetCTestConfiguration("DropSiteUser").empty()) { url += this->CTest->GetCTestConfiguration("DropSiteUser") + "@"; } @@ -1528,19 +1528,16 @@ int cmCTestSubmitHandler::ProcessHandler() // change to the build directory so that we can uses a relative path // on windows since scp dosn't support "c:" a drive in the path - oldWorkingDirectory = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(buildDirectory); + cmWorkingDirectory workdir(buildDirectory); if (!this->SubmitUsingSCP(this->CTest->GetCTestConfiguration("ScpCommand"), "Testing/" + this->CTest->GetCurrentTag(), files, prefix, url)) { - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestLog(this->CTest, ERROR_MESSAGE, " Problems when submitting via SCP" << std::endl); ofs << " Problems when submitting via SCP" << std::endl; return -1; } - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " Submission successful" << std::endl, this->Quiet); ofs << " Submission successful" << std::endl; @@ -1550,22 +1547,18 @@ int cmCTestSubmitHandler::ProcessHandler() // change to the build directory so that we can uses a relative path // on windows since scp dosn't support "c:" a drive in the path - std::string oldWorkingDirectory = - cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(buildDirectory); + cmWorkingDirectory workdir(buildDirectory); cmCTestOptionalLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " Change directory: " << buildDirectory << std::endl, this->Quiet); if (!this->SubmitUsingCP("Testing/" + this->CTest->GetCurrentTag(), files, prefix, location)) { - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestLog(this->CTest, ERROR_MESSAGE, " Problems when submitting via CP" << std::endl); ofs << " Problems when submitting via cp" << std::endl; return -1; } - cmSystemTools::ChangeDirectory(oldWorkingDirectory); cmCTestOptionalLog(this->CTest, HANDLER_OUTPUT, " Submission successful" << std::endl, this->Quiet); ofs << " Submission successful" << std::endl; diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 6175e50..9d22065 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -27,6 +27,7 @@ #include "cmState.h" #include "cmStateSnapshot.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include "cmXMLWriter.h" #include "cm_auto_ptr.hxx" #include "cm_utf8.h" @@ -86,22 +87,24 @@ bool cmCTestSubdirCommand::InitialPass(std::vector const& args, // No subdirectory? So what... continue; } - cmSystemTools::ChangeDirectory(fname); - const char* testFilename; - if (cmSystemTools::FileExists("CTestTestfile.cmake")) { - // does the CTestTestfile.cmake exist ? - testFilename = "CTestTestfile.cmake"; - } else if (cmSystemTools::FileExists("DartTestfile.txt")) { - // does the DartTestfile.txt exist ? - testFilename = "DartTestfile.txt"; - } else { - // No CTestTestfile? Who cares... - continue; + bool readit = false; + { + cmWorkingDirectory workdir(fname); + const char* testFilename; + if (cmSystemTools::FileExists("CTestTestfile.cmake")) { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } else if (cmSystemTools::FileExists("DartTestfile.txt")) { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } else { + // No CTestTestfile? Who cares... + continue; + } + fname += "/"; + fname += testFilename; + readit = this->Makefile->ReadDependentFile(fname.c_str()); } - fname += "/"; - fname += testFilename; - bool readit = this->Makefile->ReadDependentFile(fname.c_str()); - cmSystemTools::ChangeDirectory(cwd); if (!readit) { std::string m = "Could not find include file: "; m += fname; @@ -109,7 +112,6 @@ bool cmCTestSubdirCommand::InitialPass(std::vector const& args, return false; } } - cmSystemTools::ChangeDirectory(cwd); return true; } @@ -149,9 +151,7 @@ bool cmCTestAddSubdirectoryCommand::InitialPass( return false; } - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(cwd); - std::string fname = cwd; + std::string fname = cmSystemTools::GetCurrentWorkingDirectory(); fname += "/"; fname += args[0]; @@ -159,23 +159,23 @@ bool cmCTestAddSubdirectoryCommand::InitialPass( // No subdirectory? So what... return true; } - cmSystemTools::ChangeDirectory(fname); - const char* testFilename; - if (cmSystemTools::FileExists("CTestTestfile.cmake")) { - // does the CTestTestfile.cmake exist ? - testFilename = "CTestTestfile.cmake"; - } else if (cmSystemTools::FileExists("DartTestfile.txt")) { - // does the DartTestfile.txt exist ? - testFilename = "DartTestfile.txt"; - } else { - // No CTestTestfile? Who cares... - cmSystemTools::ChangeDirectory(cwd); - return true; + bool readit = false; + { + const char* testFilename; + if (cmSystemTools::FileExists("CTestTestfile.cmake")) { + // does the CTestTestfile.cmake exist ? + testFilename = "CTestTestfile.cmake"; + } else if (cmSystemTools::FileExists("DartTestfile.txt")) { + // does the DartTestfile.txt exist ? + testFilename = "DartTestfile.txt"; + } else { + // No CTestTestfile? Who cares... + return true; + } + fname += "/"; + fname += testFilename; + readit = this->Makefile->ReadDependentFile(fname.c_str()); } - fname += "/"; - fname += testFilename; - bool readit = this->Makefile->ReadDependentFile(fname.c_str()); - cmSystemTools::ChangeDirectory(cwd); if (!readit) { std::string m = "Could not find include file: "; m += fname; diff --git a/Source/cmDepends.cxx b/Source/cmDepends.cxx index c189419..b8c76b9 100644 --- a/Source/cmDepends.cxx +++ b/Source/cmDepends.cxx @@ -7,6 +7,7 @@ #include "cmLocalGenerator.h" #include "cmMakefile.h" #include "cmSystemTools.h" +#include "cmWorkingDirectory.h" #include #include @@ -75,13 +76,7 @@ bool cmDepends::Check(const char* makeFile, const char* internalFile, std::map& validDeps) { // Dependency checks must be done in proper working directory. - std::string oldcwd = "."; - if (this->CompileDirectory != ".") { - // Get the CWD but do not call CollapseFullPath because - // we only need it to cd back, and the form does not matter - oldcwd = cmSystemTools::GetCurrentWorkingDirectory(false); - cmSystemTools::ChangeDirectory(this->CompileDirectory); - } + cmWorkingDirectory workdir(this->CompileDirectory); // Check whether dependencies must be regenerated. bool okay = true; @@ -93,11 +88,6 @@ bool cmDepends::Check(const char* makeFile, const char* internalFile, okay = false; } - // Restore working directory. - if (oldcwd != ".") { - cmSystemTools::ChangeDirectory(oldcwd); - } - return okay; } diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b6b7d9e..1f5e624 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -42,6 +42,7 @@ #include "cmStateDirectory.h" #include "cmStateTypes.h" #include "cmVersion.h" +#include "cmWorkingDirectory.h" #include "cmake.h" #if defined(CMAKE_BUILD_WITH_CMAKE) @@ -1763,8 +1764,7 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, /** * Run an executable command and put the stdout in output. */ - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(bindir); + cmWorkingDirectory workdir(bindir); output += "Change Dir: "; output += bindir; output += "\n"; @@ -1804,8 +1804,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, output += *outputPtr; output += "\nGenerator: execution of make clean failed.\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } output += *outputPtr; @@ -1828,8 +1826,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, output += "\nGenerator: execution of make failed. Make command was: " + makeCommandStr + "\n"; - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); return 1; } output += *outputPtr; @@ -1842,7 +1838,6 @@ int cmGlobalGenerator::Build(const std::string& /*unused*/, retVal = 1; } - cmSystemTools::ChangeDirectory(cwd); return retVal; } diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c75d101..204fd8f 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -36,6 +36,7 @@ #include "cmTest.h" #include "cmTestGenerator.h" // IWYU pragma: keep #include "cmVersion.h" +#include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" #include "cmake.h" @@ -3147,8 +3148,7 @@ int cmMakefile::TryCompile(const std::string& srcdir, // change to the tests directory and run cmake // use the cmake object instead of calling cmake - std::string cwd = cmSystemTools::GetCurrentWorkingDirectory(); - cmSystemTools::ChangeDirectory(bindir); + cmWorkingDirectory workdir(bindir); // make sure the same generator is used // use this program as the cmake to be run, it should not @@ -3162,8 +3162,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->GetGlobalGenerator()->GetName() + "' could not be created."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3227,8 +3225,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->IssueMessage(cmake::FATAL_ERROR, "Failed to configure test project build system."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3237,8 +3233,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, this->IssueMessage(cmake::FATAL_ERROR, "Failed to generate test project build system."); cmSystemTools::SetFatalErrorOccured(); - // return to the original directory - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return 1; } @@ -3247,7 +3241,6 @@ int cmMakefile::TryCompile(const std::string& srcdir, int ret = this->GetGlobalGenerator()->TryCompile( srcdir, bindir, projectName, targetName, fast, output, this); - cmSystemTools::ChangeDirectory(cwd); this->IsSourceFileTryCompile = false; return ret; } diff --git a/Source/cmake.cxx b/Source/cmake.cxx index b2384cd..3af3be6 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -23,6 +23,7 @@ #include "cmTargetLinkLibraryType.h" #include "cmUtils.hxx" #include "cmVersionConfig.h" +#include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" #if defined(CMAKE_BUILD_WITH_CMAKE) @@ -2199,24 +2200,23 @@ int cmake::GetSystemInformation(std::vector& args) resultFile += "/__cmake_systeminformation/results.txt"; } - // now run cmake on the CMakeLists file - cmSystemTools::ChangeDirectory(destPath); - std::vector args2; - args2.push_back(args[0]); - args2.push_back(destPath); - std::string resultArg = "-DRESULT_FILE="; - resultArg += resultFile; - args2.push_back(resultArg); - int res = this->Run(args2, false); + { + // now run cmake on the CMakeLists file + cmWorkingDirectory workdir(destPath); + std::vector args2; + args2.push_back(args[0]); + args2.push_back(destPath); + std::string resultArg = "-DRESULT_FILE="; + resultArg += resultFile; + args2.push_back(resultArg); + int res = this->Run(args2, false); - if (res != 0) { - std::cerr << "Error: --system-information failed on internal CMake!\n"; - return res; + if (res != 0) { + std::cerr << "Error: --system-information failed on internal CMake!\n"; + return res; + } } - // change back to the original directory - cmSystemTools::ChangeDirectory(cwd); - // echo results to stdout if needed if (writeToStdout) { FILE* fin = cmsys::SystemTools::Fopen(resultFile, "r"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=047a5e4d6656f362151b855b34c259708b8419ba commit 047a5e4d6656f362151b855b34c259708b8419ba Author: Ben Boeckel AuthorDate: Wed Mar 1 13:40:22 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 10:38:20 2017 -0500 cmWorkingDirectory: add class for changing the workdir diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 76b98fc..e47a2eb 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -381,6 +381,8 @@ set(SRCS cmVariableWatch.h cmVersion.cxx cmVersion.h + cmWorkingDirectory.cxx + cmWorkingDirectory.h cmXMLParser.cxx cmXMLParser.h cmXMLSafe.cxx diff --git a/Source/cmWorkingDirectory.cxx b/Source/cmWorkingDirectory.cxx new file mode 100644 index 0000000..99c9ba8 --- /dev/null +++ b/Source/cmWorkingDirectory.cxx @@ -0,0 +1,24 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmWorkingDirectory.h" + +#include "cmSystemTools.h" + +cmWorkingDirectory::cmWorkingDirectory(std::string const& newdir) +{ + this->OldDir = cmSystemTools::GetCurrentWorkingDirectory(); + cmSystemTools::ChangeDirectory(newdir); +} + +cmWorkingDirectory::~cmWorkingDirectory() +{ + this->Pop(); +} + +void cmWorkingDirectory::Pop() +{ + if (!this->OldDir.empty()) { + cmSystemTools::ChangeDirectory(this->OldDir); + this->OldDir.clear(); + } +} diff --git a/Source/cmWorkingDirectory.h b/Source/cmWorkingDirectory.h new file mode 100644 index 0000000..af0fd44 --- /dev/null +++ b/Source/cmWorkingDirectory.h @@ -0,0 +1,25 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmWorkingDirectory_h +#define cmWorkingDirectory_h + +#include // IWYU pragma: keep + +#include + +/** \class cmWorkingDirectory + * \brief An RAII class to manipulate the working directory. + */ +class cmWorkingDirectory +{ +public: + cmWorkingDirectory(std::string const& newdir); + ~cmWorkingDirectory(); + + void Pop(); + +private: + std::string OldDir; +}; + +#endif diff --git a/bootstrap b/bootstrap index 8063edb..4f58365 100755 --- a/bootstrap +++ b/bootstrap @@ -404,6 +404,7 @@ CMAKE_CXX_SOURCES="\ cmUnsetCommand \ cmVersion \ cmWhileCommand \ + cmWorkingDirectory \ cmake \ cmakemain \ cmcmd \ https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=89891bcb9e226cc6216227634d0272adbc080c72 commit 89891bcb9e226cc6216227634d0272adbc080c72 Author: Ben Boeckel AuthorDate: Wed Mar 1 13:38:18 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 10:38:00 2017 -0500 cmCTest, cmCTestCoverageHandler: remove cwd dance The working directory changes here didn't really accomplish anything. diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 989c096..ead1c26 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -1646,11 +1646,7 @@ int cmCTestCoverageHandler::HandleTracePyCoverage( std::string testingDir = this->CTest->GetBinaryDir() + "/Testing"; std::string tempDir = testingDir + "/CoverageInfo"; - std::string currentDirectory = cmSystemTools::GetCurrentWorkingDirectory(); cmSystemTools::MakeDirectory(tempDir.c_str()); - cmSystemTools::ChangeDirectory(tempDir); - - cmSystemTools::ChangeDirectory(currentDirectory); std::vector::iterator fileIt; int file_count = 0; @@ -1737,7 +1733,6 @@ int cmCTestCoverageHandler::HandleTracePyCoverage( } ++file_count; } - cmSystemTools::ChangeDirectory(currentDirectory); return file_count; } diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 559275e..e6e50e9 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -1122,7 +1122,6 @@ int cmCTest::RunTest(std::vector argv, std::string* output, if (log) { *log << "* Run internal CTest" << std::endl; } - std::string oldpath = cmSystemTools::GetCurrentWorkingDirectory(); CM_AUTO_PTR saveEnv; if (modifyEnv) { @@ -1137,7 +1136,6 @@ int cmCTest::RunTest(std::vector argv, std::string* output, if (log && output) { *log << *output; } - cmSystemTools::ChangeDirectory(oldpath); if (output) { cmCTestLog(this, HANDLER_VERBOSE_OUTPUT, "Internal cmCTest object used to run test." << std::endl https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c3304fa510fa0dba380190cfb775be2fafcd8527 commit c3304fa510fa0dba380190cfb775be2fafcd8527 Author: Ben Boeckel AuthorDate: Wed Mar 1 13:34:07 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 10:37:41 2017 -0500 OSXScriptLauncher: remove unused variable diff --git a/Source/CPack/OSXScriptLauncher.cxx b/Source/CPack/OSXScriptLauncher.cxx index b159e64..aeabde9 100644 --- a/Source/CPack/OSXScriptLauncher.cxx +++ b/Source/CPack/OSXScriptLauncher.cxx @@ -20,7 +20,6 @@ int main(int argc, char* argv[]) { // if ( cmsys::SystemTools::FileExists( - std::string cwd = cmsys::SystemTools::GetCurrentWorkingDirectory(); cmsys::ofstream ofs("/tmp/output.txt"); CFStringRef fileName; ----------------------------------------------------------------------- Summary of changes: Source/cmWorkingDirectory.h | 2 ++ 1 file changed, 2 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 11:35:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 11:35:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-361-ga44391e Message-ID: <20170306163510.49384FA72A@public.kitware.com> 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 a44391e3b42ee480eaaf9704978f7b183c15249f (commit) via 485685fdd9dc4de8db8184c9f57f644575f1c129 (commit) from d309b4feda99b7a3682947e79f24d7d33bed8447 (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=a44391e3b42ee480eaaf9704978f7b183c15249f commit a44391e3b42ee480eaaf9704978f7b183c15249f Merge: d309b4f 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 11:34:42 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=485685fdd9dc4de8db8184c9f57f644575f1c129 commit 485685fdd9dc4de8db8184c9f57f644575f1c129 Author: Brad King AuthorDate: Mon Mar 6 11:30:45 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 11:31:19 2017 -0500 Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF" This reverts commit v3.8.0-rc1~305^2 (Remove CTestTestfile.cmake when BUILD_TESTING is OFF, 2016-11-14). It breaks projects that never enable testing but create their own `CTestTestfile.cmake` manually instead. diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 44c390c..7077bbb 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -214,14 +214,7 @@ void cmLocalGenerator::TraceDependencies() void cmLocalGenerator::GenerateTestFiles() { - std::string file = this->StateSnapshot.GetDirectory().GetCurrentBinary(); - file += "/"; - file += "CTestTestfile.cmake"; - if (!this->Makefile->IsOn("CMAKE_TESTING_ENABLED")) { - if (cmSystemTools::FileExists(file)) { - cmSystemTools::RemoveFile(file); - } return; } @@ -230,6 +223,10 @@ void cmLocalGenerator::GenerateTestFiles() const std::string& config = this->Makefile->GetConfigurations(configurationTypes, false); + std::string file = this->StateSnapshot.GetDirectory().GetCurrentBinary(); + file += "/"; + file += "CTestTestfile.cmake"; + cmGeneratedFileStream fout(file.c_str()); fout.SetCopyIfDifferent(true); ----------------------------------------------------------------------- Summary of changes: Source/cmLocalGenerator.cxx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:05:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-356-gadd3b1e Message-ID: <20170306180508.9D0B4FA752@public.kitware.com> 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 add3b1ee4f798fe667b53a521eb18a623e64f0e0 (commit) via ea2a8dd268a31ad2562d23f41df90f134811d52c (commit) from a55ed1a37c74a7a112e6c355af0658b5d89dede1 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:05:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:05:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-363-g4765438 Message-ID: <20170306180509.4ADC9FA74F@public.kitware.com> 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 a44391e3b42ee480eaaf9704978f7b183c15249f (commit) discards d309b4feda99b7a3682947e79f24d7d33bed8447 (commit) via 47654380fde8c0617777daa1614b2c1c60666085 (commit) via c54a2e69cf5d477aff32da3744a2752211c4ab05 (commit) via add3b1ee4f798fe667b53a521eb18a623e64f0e0 (commit) via ea2a8dd268a31ad2562d23f41df90f134811d52c (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 (a44391e3b42ee480eaaf9704978f7b183c15249f) \ N -- N -- N (47654380fde8c0617777daa1614b2c1c60666085) 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=47654380fde8c0617777daa1614b2c1c60666085 commit 47654380fde8c0617777daa1614b2c1c60666085 Merge: c54a2e6 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 12:57:04 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c54a2e69cf5d477aff32da3744a2752211c4ab05 commit c54a2e69cf5d477aff32da3744a2752211c4ab05 Merge: add3b1e aba92ff Author: Brad King AuthorDate: Mon Mar 6 15:40:46 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 12:57:03 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:15:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:15:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-365-g1b28b4e Message-ID: <20170306181502.3D71DE4AED@public.kitware.com> 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 1b28b4e3dc7e74579ba3e41801a55e8da42eba3a (commit) via c6bef559f308ea6715a3395562ee66e8f8825b9d (commit) from 47654380fde8c0617777daa1614b2c1c60666085 (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=1b28b4e3dc7e74579ba3e41801a55e8da42eba3a commit 1b28b4e3dc7e74579ba3e41801a55e8da42eba3a Merge: 4765438 c6bef55 Author: Brad King AuthorDate: Mon Mar 6 18:11:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:11:40 2017 -0500 Stage topic 'FindHDF5-definitions-fix' Topic-id: 22872 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/548 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c6bef559f308ea6715a3395562ee66e8f8825b9d commit c6bef559f308ea6715a3395562ee66e8f8825b9d Author: Kris Thielemans AuthorDate: Sat Mar 4 06:24:39 2017 -0500 Commit: Brad King CommitDate: Mon Mar 6 13:09:49 2017 -0500 FindHDF5: set HDF5__INCLUDE_DIRS in all cases In the case that we're using `find_path` to find the include directory, only the `_DIR` variable was set, while in all other cases only the `_DIRS` variable was set. Set the `_DIRS` variable in all cases (while keeping `_DIR` as result of `find_path`). Also document the `_DIRS` variable. Fixes: #16694 diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 5e1b520..4884174 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -69,6 +69,9 @@ # HDF5_C_DEFINITIONS -- Required compiler definitions for HDF5 C bindings # HDF5_CXX_DEFINITIONS -- Required compiler definitions for HDF5 C++ bindings # HDF5_Fortran_DEFINITIONS -- Required compiler definitions for HDF5 Fortran bindings +# HDF5_C_INCLUDE_DIRS -- Required include directories for HDF5 C bindings +# HDF5_CXX_INCLUDE_DIRS -- Required include directories for HDF5 C++ bindings +# HDF5_Fortran_INCLUDE_DIRS -- Required include directories for HDF5 Fortran bindings # HDF5_C_LIBRARIES - Required libraries for the HDF5 C bindings # HDF5_CXX_LIBRARIES - Required libraries for the HDF5 C++ bindings # HDF5_Fortran_LIBRARIES - Required libraries for the HDF5 Fortran bindings @@ -696,6 +699,8 @@ if( NOT HDF5_FOUND ) ${_HDF5_SEARCH_OPTS} ) mark_as_advanced(HDF5_${__lang}_INCLUDE_DIR) + # set the _DIRS variable as this is what the user will normally use + set(HDF5_${__lang}_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR}) list(APPEND HDF5_INCLUDE_DIRS ${HDF5_${__lang}_INCLUDE_DIR}) # find the HDF5 libraries ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 5 +++++ 1 file changed, 5 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:25:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:25:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-367-g6ea3158 Message-ID: <20170306182502.8001BF9C16@public.kitware.com> 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 6ea3158a2c65d627d32d280a90b086710290d32c (commit) via 957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 (commit) from 1b28b4e3dc7e74579ba3e41801a55e8da42eba3a (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=6ea3158a2c65d627d32d280a90b086710290d32c commit 6ea3158a2c65d627d32d280a90b086710290d32c Merge: 1b28b4e 957bdb9 Author: Brad King AuthorDate: Mon Mar 6 18:21:26 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:21:52 2017 -0500 Stage topic 'pr.map.config' Topic-id: 22852 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/545 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 commit 957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 Author: Ruslan Baratov AuthorDate: Fri Mar 3 18:01:57 2017 +0800 Commit: Brad King CommitDate: Mon Mar 6 13:14:34 2017 -0500 Help: Add example to MAP_IMPORTED_CONFIG_ docs diff --git a/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst b/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst index 4da855b..266ccf0 100644 --- a/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst +++ b/Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst @@ -23,3 +23,48 @@ is ignored for non-imported targets. This property is initialized by the value of the :variable:`CMAKE_MAP_IMPORTED_CONFIG_` variable if it is set when a target is created. + +Example +^^^^^^^ + +For example creating imported C++ library ``foo``: + +.. code-block:: cmake + + add_library(foo STATIC IMPORTED) + +Use ``foo_debug`` path for ``Debug`` build type: + +.. code-block:: cmake + + set_property( + TARGET foo APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG + ) + + set_target_properties(foo PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX" + IMPORTED_LOCATION_DEBUG "${foo_debug}" + ) + +Use ``foo_release`` path for ``Release`` build type: + +.. code-block:: cmake + + set_property( + TARGET foo APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE + ) + + set_target_properties(foo PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${foo_release}" + ) + +Use ``Release`` version of library for ``MinSizeRel`` and ``RelWithDebInfo`` +build types: + +.. code-block:: cmake + + set_target_properties(foo PROPERTIES + MAP_IMPORTED_CONFIG_MINSIZEREL Release + MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release + ) ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:45:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-358-g8c5ed37 Message-ID: <20170306184503.CD391E4CDD@public.kitware.com> 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 8c5ed37e0815b2fca234cf5d4b85eedf02ec8daf (commit) via 723955cd2b562d4ffe0c9b4f8e524b110ec6f374 (commit) from add3b1ee4f798fe667b53a521eb18a623e64f0e0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindVulkan.cmake | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:45:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-369-g4f432d3 Message-ID: <20170306184504.3AD24E20E8@public.kitware.com> 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 6ea3158a2c65d627d32d280a90b086710290d32c (commit) discards 1b28b4e3dc7e74579ba3e41801a55e8da42eba3a (commit) discards 47654380fde8c0617777daa1614b2c1c60666085 (commit) discards c54a2e69cf5d477aff32da3744a2752211c4ab05 (commit) via 4f432d3085ab68e03019fe0bfbfe34cefd18316b (commit) via b079fa12a428064ca4d09ed8aac5bdcf14a37388 (commit) via 2a4766f3136b9dad2ad2a97938b62299bfb61636 (commit) via c6f363665d7101c8b6425a05b542fcdac17066c5 (commit) via 8c5ed37e0815b2fca234cf5d4b85eedf02ec8daf (commit) via 723955cd2b562d4ffe0c9b4f8e524b110ec6f374 (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 (6ea3158a2c65d627d32d280a90b086710290d32c) \ N -- N -- N (4f432d3085ab68e03019fe0bfbfe34cefd18316b) 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=4f432d3085ab68e03019fe0bfbfe34cefd18316b commit 4f432d3085ab68e03019fe0bfbfe34cefd18316b Merge: b079fa1 957bdb9 Author: Brad King AuthorDate: Mon Mar 6 18:21:26 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:36:08 2017 -0500 Stage topic 'pr.map.config' Topic-id: 22852 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/545 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b079fa12a428064ca4d09ed8aac5bdcf14a37388 commit b079fa12a428064ca4d09ed8aac5bdcf14a37388 Merge: 2a4766f c6bef55 Author: Brad King AuthorDate: Mon Mar 6 18:11:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:36:08 2017 -0500 Stage topic 'FindHDF5-definitions-fix' Topic-id: 22872 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/548 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a4766f3136b9dad2ad2a97938b62299bfb61636 commit 2a4766f3136b9dad2ad2a97938b62299bfb61636 Merge: c6f3636 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:36:08 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c6f363665d7101c8b6425a05b542fcdac17066c5 commit c6f363665d7101c8b6425a05b542fcdac17066c5 Merge: 8c5ed37 aba92ff Author: Brad King AuthorDate: Mon Mar 6 15:40:46 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:36:08 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 ----------------------------------------------------------------------- Summary of changes: Modules/FindVulkan.cmake | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:55:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-360-g9662b9e Message-ID: <20170306185503.D8B81FA54C@public.kitware.com> 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 9662b9efb747192b6825100e5d06fe63c0893484 (commit) via 957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 (commit) from 8c5ed37e0815b2fca234cf5d4b85eedf02ec8daf (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 13:55:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 13:55:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-369-g1347b2b Message-ID: <20170306185504.5D46CFA513@public.kitware.com> 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 4f432d3085ab68e03019fe0bfbfe34cefd18316b (commit) discards b079fa12a428064ca4d09ed8aac5bdcf14a37388 (commit) discards 2a4766f3136b9dad2ad2a97938b62299bfb61636 (commit) discards c6f363665d7101c8b6425a05b542fcdac17066c5 (commit) via 1347b2b9dfba766fab43e9f7daf88225862aa14d (commit) via 88f3777b973b527a544fee2a222fb94c65524d41 (commit) via 97fcafc7a9430bf83795702d078ae194767b0f7f (commit) via 9662b9efb747192b6825100e5d06fe63c0893484 (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 (4f432d3085ab68e03019fe0bfbfe34cefd18316b) \ N -- N -- N (1347b2b9dfba766fab43e9f7daf88225862aa14d) 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=1347b2b9dfba766fab43e9f7daf88225862aa14d commit 1347b2b9dfba766fab43e9f7daf88225862aa14d Merge: 88f3777 c6bef55 Author: Brad King AuthorDate: Mon Mar 6 18:11:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:50:45 2017 -0500 Stage topic 'FindHDF5-definitions-fix' Topic-id: 22872 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/548 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=88f3777b973b527a544fee2a222fb94c65524d41 commit 88f3777b973b527a544fee2a222fb94c65524d41 Merge: 97fcafc 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:50:44 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=97fcafc7a9430bf83795702d078ae194767b0f7f commit 97fcafc7a9430bf83795702d078ae194767b0f7f Merge: 9662b9e aba92ff Author: Brad King AuthorDate: Mon Mar 6 15:40:46 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:50:44 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 14:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 14:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-371-g50566bc Message-ID: <20170306190504.716D8FA6C4@public.kitware.com> 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 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 (commit) via 09475c298b83cbbaae2ca7ba6f52c0fa74607568 (commit) from 1347b2b9dfba766fab43e9f7daf88225862aa14d (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=50566bc5816f03b5d0a29dd3f9d4228b698d9e39 commit 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 Merge: 1347b2b 09475c2 Author: Brad King AuthorDate: Mon Mar 6 18:56:25 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 13:56:28 2017 -0500 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 22698 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/512 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09475c298b83cbbaae2ca7ba6f52c0fa74607568 commit 09475c298b83cbbaae2ca7ba6f52c0fa74607568 Author: Roman W?ger AuthorDate: Wed Mar 1 20:18:28 2017 +0100 Commit: Roman W?ger CommitDate: Wed Mar 1 20:18:28 2017 +0100 CPack/NSIS: Sign the uninstaller diff --git a/Help/release/dev/cpack-sign-uninstaller.rst b/Help/release/dev/cpack-sign-uninstaller.rst new file mode 100644 index 0000000..ff2b402 --- /dev/null +++ b/Help/release/dev/cpack-sign-uninstaller.rst @@ -0,0 +1,5 @@ +cpack-sign_uninstaller +---------------------- + +* The :module:`CPackNSIS` module learned to sign the uninstaller + when using :variable:`CPACK_NSIS_SIGN_UNINSTALLER` variable. diff --git a/Modules/CPackNSIS.cmake b/Modules/CPackNSIS.cmake index 18d1871..37fedf3 100644 --- a/Modules/CPackNSIS.cmake +++ b/Modules/CPackNSIS.cmake @@ -133,6 +133,10 @@ # "doc/cmake- at CMake_VERSION_MAJOR@. at CMake_VERSION_MINOR@/cmake.html" # "CMake Help" "https://cmake.org" "CMake Web Site") # +# .. variable:: CPACK_NSIS_SIGN_UNINSTALLER +# +# Specify a command to use for signing the uninstaller. The command will +# be invoked a path to the uninstaller as its only argument. #FIXME we should put NSIS specific code here #FIXME but I'm not doing it because I'm not able to test it... diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index 9001888..ffa6277 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -29,6 +29,33 @@ ;-------------------------------- ;General +!ifdef INNER + OutFile "$%TEMP%\tempinstaller.exe" + SetCompress off ; for speed +!else + ; Call makensis again, defining INNER. This writes an installer for us which, when + ; it is invoked, will just write the uninstaller to some location, and then exit. + ; Be sure to substitute the name of this script here. + + !system "$\"${NSISDIR}\makensis$\" /DINNER $\"@CPACK_TEMPORARY_DIRECTORY@/../project.nsi$\"" = 0 + + ; So now run that installer we just created as %TEMP%\tempinstaller.exe. Since it + ; calls quit the return value isn't zero. + + !system "$%TEMP%\tempinstaller.exe" = 2 + + ; That will have written an uninstaller binary for us. Now we sign it with your + ; favourite code signing tool. + + !tempfile INCEXIST + !system 'if exist "@CPACK_NSIS_SIGN_UNINSTALLER@" echo !define HAVE_SIGN_UNINST > "${INCEXIST}"' + !include "${INCEXIST}" + !delfile "${INCEXIST}" + !ifdef HAVE_SIGN_UNINST + !system '"@CPACK_NSIS_SIGN_UNINSTALLER@" "$%TEMP%\Uninstall.exe"' = 0 + !endif + + ; Good. Now we can carry on writing the real installer. ;Name and file Name "@CPACK_NSIS_PACKAGE_NAME@" @@ -36,6 +63,7 @@ ;Set compression SetCompressor @CPACK_NSIS_COMPRESSOR@ +!endif ;Require administrator access RequestExecutionLevel admin @@ -559,8 +587,10 @@ FunctionEnd !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH +!ifdef INNER !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES +!endif ;-------------------------------- ;Languages @@ -642,7 +672,10 @@ Section "-Core installation" WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR ;Create uninstaller - WriteUninstaller "$INSTDIR\Uninstall.exe" +!ifndef INNER + ; this packages the signed uninstaller + File "$%TEMP%\Uninstall.exe" +!endif Push "DisplayName" Push "@CPACK_NSIS_DISPLAY_NAME@" Call ConditionalAddToRegisty @@ -801,6 +834,7 @@ FunctionEnd ;-------------------------------- ;Uninstaller Section +!ifdef INNER Section "Uninstall" ReadRegStr $START_MENU SHCTX \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu" @@ -886,6 +920,7 @@ Section "Uninstall" Call un.RemoveFromPath doNotRemoveFromPath: SectionEnd +!endif ;-------------------------------- ; determine admin versus local install @@ -898,6 +933,14 @@ SectionEnd ; "Program Files" for AllUsers, "My Documents" for JustMe... Function .onInit +!ifdef INNER + ; If INNER is defined, then we aren't supposed to do anything except write out + ; the installer. This is better than processing a command line option as it means + ; this entire code path is not present in the final (real) installer. + + WriteUninstaller "$%TEMP%\Uninstall.exe" + Quit ; just bail out quickly when running the "inner" installer +!endif StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString" ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-sign-uninstaller.rst | 5 +++ Modules/CPackNSIS.cmake | 4 +++ Modules/NSIS.template.in | 45 ++++++++++++++++++++++++++- 3 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 16:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 16:45:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-373-g4b2df49 Message-ID: <20170306214505.0774EE202B@public.kitware.com> 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 4b2df493e05d9a3eff12ae8f974ea58309db70ae (commit) via 97a7030c4fb2a0fe842086c4d6aba8b941318cbe (commit) from 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 (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=4b2df493e05d9a3eff12ae8f974ea58309db70ae commit 4b2df493e05d9a3eff12ae8f974ea58309db70ae Merge: 50566bc 97a7030 Author: Brad King AuthorDate: Mon Mar 6 21:37:02 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 16:37:23 2017 -0500 Stage topic 'pr.sort.variables' Topic-id: 22896 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/556 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=97a7030c4fb2a0fe842086c4d6aba8b941318cbe commit 97a7030c4fb2a0fe842086c4d6aba8b941318cbe Author: Ruslan Baratov AuthorDate: Tue Mar 7 05:21:17 2017 +0800 Commit: Ruslan Baratov CommitDate: Tue Mar 7 05:21:17 2017 +0800 Docs: Sort 'cmake-variables' file diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index d4fe0e4..3ec0c19 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -13,9 +13,9 @@ Variables that Provide Information .. toctree:: :maxdepth: 1 + /variable/CMAKE_AR /variable/CMAKE_ARGC /variable/CMAKE_ARGV0 - /variable/CMAKE_AR /variable/CMAKE_BINARY_DIR /variable/CMAKE_BUILD_TOOL /variable/CMAKE_CACHEFILE_DIR @@ -85,15 +85,15 @@ Variables that Provide Information /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION /variable/CMAKE_XCODE_PLATFORM_TOOLSET - /variable/PROJECT_BINARY_DIR /variable/PROJECT-NAME_BINARY_DIR - /variable/PROJECT_NAME /variable/PROJECT-NAME_SOURCE_DIR /variable/PROJECT-NAME_VERSION /variable/PROJECT-NAME_VERSION_MAJOR /variable/PROJECT-NAME_VERSION_MINOR /variable/PROJECT-NAME_VERSION_PATCH /variable/PROJECT-NAME_VERSION_TWEAK + /variable/PROJECT_BINARY_DIR + /variable/PROJECT_NAME /variable/PROJECT_SOURCE_DIR /variable/PROJECT_VERSION /variable/PROJECT_VERSION_MAJOR @@ -127,7 +127,6 @@ Variables that Change Behavior /variable/CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION /variable/CMAKE_EXPORT_COMPILE_COMMANDS /variable/CMAKE_EXPORT_NO_PACKAGE_REGISTRY - /variable/CMAKE_SYSROOT /variable/CMAKE_FIND_APPBUNDLE /variable/CMAKE_FIND_FRAMEWORK /variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX @@ -144,9 +143,9 @@ Variables that Change Behavior /variable/CMAKE_FIND_ROOT_PATH_MODE_PROGRAM /variable/CMAKE_FRAMEWORK_PATH /variable/CMAKE_IGNORE_PATH - /variable/CMAKE_INCLUDE_PATH /variable/CMAKE_INCLUDE_DIRECTORIES_BEFORE /variable/CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE + /variable/CMAKE_INCLUDE_PATH /variable/CMAKE_INSTALL_DEFAULT_COMPONENT_NAME /variable/CMAKE_INSTALL_MESSAGE /variable/CMAKE_INSTALL_PREFIX @@ -164,6 +163,7 @@ Variables that Change Behavior /variable/CMAKE_STAGING_PREFIX /variable/CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS /variable/CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE + /variable/CMAKE_SYSROOT /variable/CMAKE_SYSTEM_APPBUNDLE_PATH /variable/CMAKE_SYSTEM_FRAMEWORK_PATH /variable/CMAKE_SYSTEM_IGNORE_PATH @@ -188,23 +188,24 @@ Variables that Describe the System /variable/CMAKE_COMPILER_2005 /variable/CMAKE_HOST_APPLE /variable/CMAKE_HOST_SOLARIS + /variable/CMAKE_HOST_SYSTEM /variable/CMAKE_HOST_SYSTEM_NAME /variable/CMAKE_HOST_SYSTEM_PROCESSOR - /variable/CMAKE_HOST_SYSTEM /variable/CMAKE_HOST_SYSTEM_VERSION /variable/CMAKE_HOST_UNIX /variable/CMAKE_HOST_WIN32 - /variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX /variable/CMAKE_LIBRARY_ARCHITECTURE + /variable/CMAKE_LIBRARY_ARCHITECTURE_REGEX /variable/CMAKE_OBJECT_PATH_MAX + /variable/CMAKE_SYSTEM /variable/CMAKE_SYSTEM_NAME /variable/CMAKE_SYSTEM_PROCESSOR - /variable/CMAKE_SYSTEM /variable/CMAKE_SYSTEM_VERSION /variable/CYGWIN /variable/ENV /variable/GHS-MULTI /variable/MINGW + /variable/MSVC /variable/MSVC10 /variable/MSVC11 /variable/MSVC12 @@ -215,7 +216,6 @@ Variables that Describe the System /variable/MSVC80 /variable/MSVC90 /variable/MSVC_IDE - /variable/MSVC /variable/MSVC_VERSION /variable/UNIX /variable/WIN32 @@ -257,9 +257,9 @@ Variables that Control the Build /variable/CMAKE_ANDROID_STL_TYPE /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY /variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG + /variable/CMAKE_AUTOMOC /variable/CMAKE_AUTOMOC_DEPEND_FILTERS /variable/CMAKE_AUTOMOC_MOC_OPTIONS - /variable/CMAKE_AUTOMOC /variable/CMAKE_AUTORCC /variable/CMAKE_AUTORCC_OPTIONS /variable/CMAKE_AUTOUIC @@ -273,15 +273,15 @@ Variables that Control the Build /variable/CMAKE_CONFIG_POSTFIX /variable/CMAKE_DEBUG_POSTFIX /variable/CMAKE_ENABLE_EXPORTS + /variable/CMAKE_EXE_LINKER_FLAGS /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT - /variable/CMAKE_EXE_LINKER_FLAGS /variable/CMAKE_EXE_LINKER_FLAGS_INIT /variable/CMAKE_Fortran_FORMAT /variable/CMAKE_Fortran_MODULE_DIRECTORY /variable/CMAKE_GNUtoMS - /variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE /variable/CMAKE_INCLUDE_CURRENT_DIR + /variable/CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE /variable/CMAKE_INSTALL_NAME_DIR /variable/CMAKE_INSTALL_RPATH /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH @@ -304,9 +304,9 @@ Variables that Control the Build /variable/CMAKE_MACOSX_BUNDLE /variable/CMAKE_MACOSX_RPATH /variable/CMAKE_MAP_IMPORTED_CONFIG_CONFIG + /variable/CMAKE_MODULE_LINKER_FLAGS /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG /variable/CMAKE_MODULE_LINKER_FLAGS_CONFIG_INIT - /variable/CMAKE_MODULE_LINKER_FLAGS /variable/CMAKE_MODULE_LINKER_FLAGS_INIT /variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX /variable/CMAKE_NO_BUILTIN_CHRPATH @@ -319,15 +319,15 @@ Variables that Control the Build /variable/CMAKE_POSITION_INDEPENDENT_CODE /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY /variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY_CONFIG + /variable/CMAKE_SHARED_LINKER_FLAGS /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG /variable/CMAKE_SHARED_LINKER_FLAGS_CONFIG_INIT - /variable/CMAKE_SHARED_LINKER_FLAGS /variable/CMAKE_SHARED_LINKER_FLAGS_INIT /variable/CMAKE_SKIP_BUILD_RPATH /variable/CMAKE_SKIP_INSTALL_RPATH + /variable/CMAKE_STATIC_LINKER_FLAGS /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG /variable/CMAKE_STATIC_LINKER_FLAGS_CONFIG_INIT - /variable/CMAKE_STATIC_LINKER_FLAGS /variable/CMAKE_STATIC_LINKER_FLAGS_INIT /variable/CMAKE_TRY_COMPILE_CONFIGURATION /variable/CMAKE_TRY_COMPILE_PLATFORM_VARIABLES @@ -336,8 +336,8 @@ Variables that Control the Build /variable/CMAKE_VISIBILITY_INLINES_HIDDEN /variable/CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD /variable/CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD - /variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS /variable/CMAKE_WIN32_EXECUTABLE + /variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS /variable/CMAKE_XCODE_ATTRIBUTE_an-attribute /variable/EXECUTABLE_OUTPUT_PATH /variable/LIBRARY_OUTPUT_PATH @@ -351,10 +351,6 @@ Variables for Languages /variable/CMAKE_COMPILER_IS_GNUCC /variable/CMAKE_COMPILER_IS_GNUCXX /variable/CMAKE_COMPILER_IS_GNUG77 - /variable/CMAKE_C_COMPILE_FEATURES - /variable/CMAKE_C_EXTENSIONS - /variable/CMAKE_C_STANDARD - /variable/CMAKE_C_STANDARD_REQUIRED /variable/CMAKE_CUDA_EXTENSIONS /variable/CMAKE_CUDA_STANDARD /variable/CMAKE_CUDA_STANDARD_REQUIRED @@ -363,6 +359,10 @@ Variables for Languages /variable/CMAKE_CXX_EXTENSIONS /variable/CMAKE_CXX_STANDARD /variable/CMAKE_CXX_STANDARD_REQUIRED + /variable/CMAKE_C_COMPILE_FEATURES + /variable/CMAKE_C_EXTENSIONS + /variable/CMAKE_C_STANDARD + /variable/CMAKE_C_STANDARD_REQUIRED /variable/CMAKE_Fortran_MODDIR_DEFAULT /variable/CMAKE_Fortran_MODDIR_FLAG /variable/CMAKE_Fortran_MODOUT_FLAG @@ -373,27 +373,27 @@ Variables for Languages /variable/CMAKE_LANG_ARCHIVE_APPEND /variable/CMAKE_LANG_ARCHIVE_CREATE /variable/CMAKE_LANG_ARCHIVE_FINISH - /variable/CMAKE_LANG_COMPILE_OBJECT + /variable/CMAKE_LANG_COMPILER /variable/CMAKE_LANG_COMPILER_ABI + /variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN /variable/CMAKE_LANG_COMPILER_ID /variable/CMAKE_LANG_COMPILER_LOADED - /variable/CMAKE_LANG_COMPILER - /variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN /variable/CMAKE_LANG_COMPILER_TARGET /variable/CMAKE_LANG_COMPILER_VERSION + /variable/CMAKE_LANG_COMPILE_OBJECT /variable/CMAKE_LANG_CREATE_SHARED_LIBRARY /variable/CMAKE_LANG_CREATE_SHARED_MODULE /variable/CMAKE_LANG_CREATE_STATIC_LIBRARY + /variable/CMAKE_LANG_FLAGS /variable/CMAKE_LANG_FLAGS_DEBUG /variable/CMAKE_LANG_FLAGS_DEBUG_INIT + /variable/CMAKE_LANG_FLAGS_INIT /variable/CMAKE_LANG_FLAGS_MINSIZEREL /variable/CMAKE_LANG_FLAGS_MINSIZEREL_INIT /variable/CMAKE_LANG_FLAGS_RELEASE /variable/CMAKE_LANG_FLAGS_RELEASE_INIT /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO /variable/CMAKE_LANG_FLAGS_RELWITHDEBINFO_INIT - /variable/CMAKE_LANG_FLAGS - /variable/CMAKE_LANG_FLAGS_INIT /variable/CMAKE_LANG_GHS_KERNEL_FLAGS_DEBUG /variable/CMAKE_LANG_GHS_KERNEL_FLAGS_MINSIZEREL /variable/CMAKE_LANG_GHS_KERNEL_FLAGS_RELEASE @@ -404,8 +404,8 @@ Variables for Languages /variable/CMAKE_LANG_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES /variable/CMAKE_LANG_IMPLICIT_LINK_LIBRARIES /variable/CMAKE_LANG_LIBRARY_ARCHITECTURE - /variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES /variable/CMAKE_LANG_LINKER_PREFERENCE + /variable/CMAKE_LANG_LINKER_PREFERENCE_PROPAGATES /variable/CMAKE_LANG_LINK_EXECUTABLE /variable/CMAKE_LANG_OUTPUT_EXTENSION /variable/CMAKE_LANG_PLATFORM_ID ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 52 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 26 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 18:35:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 18:35:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-388-gf7085d1 Message-ID: <20170306233506.6320EFA5D7@public.kitware.com> 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 f7085d1fb3f0f477a9a2858d016d3164997e518c (commit) via ef3c319b971de36eabdc4180243a07e3581f84b7 (commit) via 7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e (commit) via 81656b92107b798d2e78929042812248d12853be (commit) via d9a7ef80aaff4373baf4c864c97efbbf20337dea (commit) via 89780663b3f64eddf7dda2b5565935b73d92c146 (commit) via 9cad44dce264b509afc4b50b540b3a8594cf3217 (commit) via 60274e1d94c8409f810332345339de5dd449056b (commit) via 8f2ad9c4a06029d6d2859119f957a83c6082b14e (commit) via ea3bc1e5b04fd420c4627e520af2e913b88e1100 (commit) via e3af6bec6733fb21206998c0c8f155e6d13b4367 (commit) via 699321bfd5a997aceb64649c83ce78044ce11cc1 (commit) via a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 (commit) via 0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 (commit) via 47dbe9267eea47e7be656da409a9ee8ced691422 (commit) from 4b2df493e05d9a3eff12ae8f974ea58309db70ae (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=f7085d1fb3f0f477a9a2858d016d3164997e518c commit f7085d1fb3f0f477a9a2858d016d3164997e518c Merge: 4b2df49 ef3c319 Author: Sebastian Holtermann AuthorDate: Mon Mar 6 23:32:50 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 6 18:32:54 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef3c319b971de36eabdc4180243a07e3581f84b7 commit ef3c319b971de36eabdc4180243a07e3581f84b7 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:16:24 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:04 2017 +0100 Autogen: Test: Add mocDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 1952379..86af746 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -239,6 +239,10 @@ target_link_libraries(skipRccB ${QT_LIBRARIES}) add_subdirectory(sameName) # -- Test +# Tests AUTOMOC with generated sources +add_subdirectory(mocDepends) + +# -- Test # Tests various include moc patterns add_subdirectory(mocIncludeStrict) diff --git a/Tests/QtAutogen/mocDepends/CMakeLists.txt b/Tests/QtAutogen/mocDepends/CMakeLists.txt new file mode 100644 index 0000000..8bd72eb --- /dev/null +++ b/Tests/QtAutogen/mocDepends/CMakeLists.txt @@ -0,0 +1,45 @@ +cmake_minimum_required(VERSION 3.7) +project(mocDepends) + +if (QT_TEST_VERSION STREQUAL 4) + find_package(Qt4 REQUIRED) + set(QT_CORE_TARGET Qt4::QtCore) +else() + if (NOT QT_TEST_VERSION STREQUAL 5) + message(SEND_ERROR "Invalid Qt version specified.") + endif() + + find_package(Qt5Core REQUIRED) + set(QT_CORE_TARGET Qt5::Core) +endif() + +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +# -- Test 1 using generated header +# This tests the dependency of AUTOMOC of mocDepends1 to the generated object.hpp +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/object.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/object.hpp + ) + +add_executable(mocDepends1 test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/object.hpp +) +target_link_libraries(mocDepends1 ${QT_CORE_TARGET}) +set_target_properties(mocDepends1 PROPERTIES AUTOMOC TRUE) + +# -- Test 2 using generated library +# This tests the dependency of AUTOMOC of mocDepends2 to the +# generated simpleLib.hpp which belongs to a linked library of mocDepends2 +add_custom_command(OUTPUT simpleLib.hpp simpleLib.cpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/invalid.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.hpp + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/simpleLib.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/simpleLib.cpp + ) +add_library(SimpleLib STATIC simpleLib.hpp simpleLib.cpp) + +add_executable(mocDepends2 test2.cpp ) +target_link_libraries(mocDepends2 SimpleLib ${QT_CORE_TARGET}) +set_target_properties(mocDepends2 PROPERTIES AUTOMOC TRUE) diff --git a/Tests/QtAutogen/mocDepends/invalid.hpp.in b/Tests/QtAutogen/mocDepends/invalid.hpp.in new file mode 100644 index 0000000..854d9a1 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/invalid.hpp.in @@ -0,0 +1 @@ +#ifndef diff --git a/Tests/QtAutogen/mocDepends/object.hpp.in b/Tests/QtAutogen/mocDepends/object.hpp.in new file mode 100644 index 0000000..f364f7c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/object.hpp.in @@ -0,0 +1,14 @@ +#ifndef OBJECT_HPP +#define OBJECT_HPP + +#include + +class Object : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/simpleLib.cpp.in b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in new file mode 100644 index 0000000..fa33bd3 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.cpp.in @@ -0,0 +1,9 @@ +#include "simpleLib.hpp" + +SimpleLib::SimpleLib() +{ +} + +SimpleLib::~SimpleLib() +{ +} diff --git a/Tests/QtAutogen/mocDepends/simpleLib.hpp.in b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in new file mode 100644 index 0000000..758f1f6 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/simpleLib.hpp.in @@ -0,0 +1,11 @@ +#ifndef SIMPLE_LIB_H +#define SIMPLE_LIB_H + +class SimpleLib +{ +public: + SimpleLib(); + ~SimpleLib(); +}; + +#endif diff --git a/Tests/QtAutogen/mocDepends/test1.cpp b/Tests/QtAutogen/mocDepends/test1.cpp new file mode 100644 index 0000000..92c259c --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test1.cpp @@ -0,0 +1,9 @@ + +#include "object.hpp" + +int main() +{ + Object obj; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.cpp b/Tests/QtAutogen/mocDepends/test2.cpp new file mode 100644 index 0000000..155b19b --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.cpp @@ -0,0 +1,10 @@ + +#include "test2.hpp" + +int main() +{ + SimpleLib obj; + LObject lobject; + + return 0; +} diff --git a/Tests/QtAutogen/mocDepends/test2.hpp b/Tests/QtAutogen/mocDepends/test2.hpp new file mode 100644 index 0000000..0125f07 --- /dev/null +++ b/Tests/QtAutogen/mocDepends/test2.hpp @@ -0,0 +1,16 @@ +#ifndef TEST2_HPP +#define TEST2_HPP + +#include "simpleLib.hpp" +#include + +// This object triggers the AUTOMOC on this file +class LObject : public QObject +{ + Q_OBJECT +public: + Q_SLOT + void aSlot(){}; +}; + +#endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e commit 7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e Author: Sebastian Holtermann AuthorDate: Thu Mar 2 18:16:54 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:04 2017 +0100 Autogen: Test: Add generated qrc file to rccDepends test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index c941d8c..1952379 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -101,7 +101,7 @@ list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -# Touch qrc input file and rebuild +# Touch first qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . @@ -111,11 +111,26 @@ execute_process(COMMAND "${CMAKE_COMMAND}" --build . if (rccDepends_result) message(SEND_ERROR "Second build of rccDepends failed.") endif() - # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") +endif() + +# Touch second qrc input file and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res2/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result +) +if (rccDepends_result) + message(SEND_ERROR "Third build of rccDepends failed.") +endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep2 "${timeformat}") +if (NOT timeStep2 GREATER timeStep1) + message(SEND_ERROR "File (${binFile}) should have changed in the second step!") endif() # -- Test diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index 6fa5752..de98573 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -15,13 +15,22 @@ else() set(QT_CORE_TARGET Qt5::Core) endif() +configure_file(res/input1.txt.in res1/input.txt @ONLY) +configure_file(res/input2.txt.in res2/input.txt @ONLY) +# Configure time generated qrc file configure_file(res1.qrc.in res1.qrc @ONLY) -configure_file(res1/input.txt.in res1/input.txt @ONLY) +# Dependency generated qrc file +add_custom_command(OUTPUT res2.qrc + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res2.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc + ) -add_executable(test_res1 - test_res1.cpp + +add_executable(rccDepends + main.cpp ${CMAKE_CURRENT_BINARY_DIR}/res1.qrc + ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc ) -target_link_libraries(test_res1 ${QT_CORE_TARGET}) -add_custom_command(TARGET test_res1 POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > target1.txt) +target_link_libraries(rccDepends ${QT_CORE_TARGET}) +add_custom_command(TARGET rccDepends POST_BUILD COMMAND + ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/rccDepends/test_res1.cpp b/Tests/QtAutogen/rccDepends/main.cpp similarity index 100% rename from Tests/QtAutogen/rccDepends/test_res1.cpp rename to Tests/QtAutogen/rccDepends/main.cpp diff --git a/Tests/QtAutogen/rccDepends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res/input1.txt.in similarity index 100% rename from Tests/QtAutogen/rccDepends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res/input1.txt.in diff --git a/Tests/QtAutogen/rccDepends/res/input2.txt.in b/Tests/QtAutogen/rccDepends/res/input2.txt.in new file mode 100644 index 0000000..08e14b7 --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res/input2.txt.in @@ -0,0 +1 @@ +Res2 input. diff --git a/Tests/QtAutogen/rccDepends/res2.qrc.in b/Tests/QtAutogen/rccDepends/res2.qrc.in new file mode 100644 index 0000000..18b916a --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res2.qrc.in @@ -0,0 +1,5 @@ + + + res2/input.txt + + https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=81656b92107b798d2e78929042812248d12853be commit 81656b92107b798d2e78929042812248d12853be Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:50:34 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Test: Add generated file to moc rerun test diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index ca0eedf..6689f50 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -17,13 +17,19 @@ set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) configure_file(test1a.h.in test1.h COPYONLY) +# Generated source file +add_custom_command(OUTPUT main.cpp + COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + ) -add_executable(test1 +add_executable(mocRerun ${CMAKE_CURRENT_BINARY_DIR}/test1.h - test1.cpp + ${CMAKE_CURRENT_BINARY_DIR}/main.cpp res1.qrc ) -target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -target_link_libraries(test1 ${QT_CORE_TARGET}) -add_custom_command(TARGET test1 POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > target1.txt) +target_include_directories(mocRerun PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +target_link_libraries(mocRerun ${QT_CORE_TARGET}) +# Write target name to text file +add_custom_command(TARGET mocRerun POST_BUILD COMMAND + ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/mocRerun/main.cpp.in b/Tests/QtAutogen/mocRerun/main.cpp.in new file mode 100644 index 0000000..b37ff61 --- /dev/null +++ b/Tests/QtAutogen/mocRerun/main.cpp.in @@ -0,0 +1,18 @@ +#include "test1.h" + +class Test2 : public QObject +{ + Q_OBJECT +public slots: + void onTst1() {} +}; + +int main() +{ + Test1 test1; + Test2 test2; + + return 0; +} + +#include "main.moc" diff --git a/Tests/QtAutogen/mocRerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp deleted file mode 100644 index 4316a91..0000000 --- a/Tests/QtAutogen/mocRerun/test1.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include "test1.h" -int main() -{ - return 0; -} diff --git a/Tests/QtAutogen/mocRerun/test1a.h.in b/Tests/QtAutogen/mocRerun/test1a.h.in index fee2c09..a335046 100644 --- a/Tests/QtAutogen/mocRerun/test1a.h.in +++ b/Tests/QtAutogen/mocRerun/test1a.h.in @@ -1,8 +1,8 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} - void onTst2() {} +public slots: + void onTst1() {} + void onTst2() {} }; diff --git a/Tests/QtAutogen/mocRerun/test1b.h.in b/Tests/QtAutogen/mocRerun/test1b.h.in index 6531d10..6128eeb 100644 --- a/Tests/QtAutogen/mocRerun/test1b.h.in +++ b/Tests/QtAutogen/mocRerun/test1b.h.in @@ -1,7 +1,7 @@ #include -class test1 : public QObject +class Test1 : public QObject { Q_OBJECT - public slots: - void onTst1() {} +public slots: + void onTst1() {} }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9a7ef80aaff4373baf4c864c97efbbf20337dea commit d9a7ef80aaff4373baf4c864c97efbbf20337dea Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:26:11 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Test: Add timestamp comparison to moc rerun test diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index bf40166..c941d8c 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -95,25 +95,27 @@ if (NOT RCC_DEPENDS) message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) - -list(GET qrc_files 0 qrc_file1) - +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/target1.txt" target1List) +list(GET target1List 0 binFile) set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") -file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") - +# Touch qrc input file and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") - execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + RESULT_VARIABLE rccDepends_result ) +if (rccDepends_result) + message(SEND_ERROR "Second build of rccDepends failed.") +endif() -file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") - -if (NOT file1_step1 GREATER file1_before) - message(SEND_ERROR "file1 (${qrc_file1}) should have changed in the first step!") +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "file1 (${binFile}) should have changed in the first step!") endif() # -- Test @@ -131,16 +133,29 @@ if (NOT MOC_RERUN) message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) +# Get name and timestamp of the output binary +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/mocRerun/target1.txt" target1List) +list(GET target1List 0 binFile) +set(timeformat "%Y%j%H%M%S") +file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") +# Change file content and rebuild +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" - RESULT_VARIABLE automoc_rerun_result + RESULT_VARIABLE mocRerun_result ) -if (automoc_rerun_result) +if (mocRerun_result) message(SEND_ERROR "Second build of mocRerun failed.") endif() +# Compare timestamps +file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +if (NOT timeStep1 GREATER timeBegin) + message(SEND_ERROR "File (${binFile}) should have changed in the first step!") +endif() + # -- Test # Test for SKIP_AUTOMOC and SKIP_AUTOGEN on an AUTOMOC enabled target qtx_wrap_cpp(skipMocWrapMoc diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index efe936e..ca0eedf 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -25,3 +25,5 @@ add_executable(test1 ) target_include_directories(test1 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(test1 ${QT_CORE_TARGET}) +add_custom_command(TARGET test1 POST_BUILD COMMAND + ${CMAKE_COMMAND} -E echo "$" > target1.txt) diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index c983420..6fa5752 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -24,4 +24,4 @@ add_executable(test_res1 ) target_link_libraries(test_res1 ${QT_CORE_TARGET}) add_custom_command(TARGET test_res1 POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > info_file.txt) + ${CMAKE_COMMAND} -E echo "$" > target1.txt) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=89780663b3f64eddf7dda2b5565935b73d92c146 commit 89780663b3f64eddf7dda2b5565935b73d92c146 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:13:41 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Test: Rename automoc_rerun test to mocRerun diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4b84486..bf40166 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -119,26 +119,26 @@ endif() # -- Test # Ensure a repeated build succeeds when a header containing a QObject changes try_compile(MOC_RERUN - "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" - "${CMAKE_CURRENT_SOURCE_DIR}/automoc_rerun" - automoc_rerun + "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" + "${CMAKE_CURRENT_SOURCE_DIR}/mocRerun" + mocRerun CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT MOC_RERUN) - message(SEND_ERROR "Initial build of automoc_rerun failed. Output: ${output}") + message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() -configure_file(automoc_rerun/test1.h.in2 automoc_rerun/test1.h COPYONLY) +configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" RESULT_VARIABLE automoc_rerun_result ) if (automoc_rerun_result) - message(SEND_ERROR "Second build of automoc_rerun failed.") + message(SEND_ERROR "Second build of mocRerun failed.") endif() # -- Test diff --git a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt similarity index 88% rename from Tests/QtAutogen/automoc_rerun/CMakeLists.txt rename to Tests/QtAutogen/mocRerun/CMakeLists.txt index 92a682b..efe936e 100644 --- a/Tests/QtAutogen/automoc_rerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(automoc_rerun CXX) +project(mocRerun CXX) if (QT_TEST_VERSION STREQUAL 4) find_package(Qt4 REQUIRED) @@ -16,7 +16,7 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -configure_file(test1.h.in1 test1.h COPYONLY) +configure_file(test1a.h.in test1.h COPYONLY) add_executable(test1 ${CMAKE_CURRENT_BINARY_DIR}/test1.h diff --git a/Tests/QtAutogen/automoc_rerun/input.txt b/Tests/QtAutogen/mocRerun/input.txt similarity index 100% rename from Tests/QtAutogen/automoc_rerun/input.txt rename to Tests/QtAutogen/mocRerun/input.txt diff --git a/Tests/QtAutogen/automoc_rerun/res1.qrc b/Tests/QtAutogen/mocRerun/res1.qrc similarity index 100% rename from Tests/QtAutogen/automoc_rerun/res1.qrc rename to Tests/QtAutogen/mocRerun/res1.qrc diff --git a/Tests/QtAutogen/automoc_rerun/test1.cpp b/Tests/QtAutogen/mocRerun/test1.cpp similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.cpp rename to Tests/QtAutogen/mocRerun/test1.cpp diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in1 b/Tests/QtAutogen/mocRerun/test1a.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in1 rename to Tests/QtAutogen/mocRerun/test1a.h.in diff --git a/Tests/QtAutogen/automoc_rerun/test1.h.in2 b/Tests/QtAutogen/mocRerun/test1b.h.in similarity index 100% rename from Tests/QtAutogen/automoc_rerun/test1.h.in2 rename to Tests/QtAutogen/mocRerun/test1b.h.in https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9cad44dce264b509afc4b50b540b3a8594cf3217 commit 9cad44dce264b509afc4b50b540b3a8594cf3217 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 17:07:53 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Test: Rename autorcc_depends test to rccDepends diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 4960472..4b84486 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -83,19 +83,19 @@ target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES}) # -- Test # When a file listed in a .qrc file changes the target must be rebuilt try_compile(RCC_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" - "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends" - autorcc_depends + "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" + "${CMAKE_CURRENT_SOURCE_DIR}/rccDepends" + rccDepends CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" "-DCMAKE_PREFIX_PATH=${Qt_PREFIX_DIR}" OUTPUT_VARIABLE output ) if (NOT RCC_DEPENDS) - message(SEND_ERROR "Initial build of autorcc_depends failed. Output: ${output}") + message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/info_file.txt" qrc_files) +file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/info_file.txt" qrc_files) list(GET qrc_files 0 qrc_file1) @@ -104,10 +104,10 @@ set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${qrc_file1}" file1_before "${timeformat}") execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. -execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends/res1/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" ) file(TIMESTAMP "${qrc_file1}" file1_step1 "${timeformat}") diff --git a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt similarity index 96% rename from Tests/QtAutogen/autorcc_depends/CMakeLists.txt rename to Tests/QtAutogen/rccDepends/CMakeLists.txt index 7b51e11..c983420 100644 --- a/Tests/QtAutogen/autorcc_depends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.7) -project(autorcc_depends) +project(rccDepends) set(CMAKE_AUTORCC ON) diff --git a/Tests/QtAutogen/autorcc_depends/res1.qrc.in b/Tests/QtAutogen/rccDepends/res1.qrc.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1.qrc.in rename to Tests/QtAutogen/rccDepends/res1.qrc.in diff --git a/Tests/QtAutogen/autorcc_depends/res1/input.txt.in b/Tests/QtAutogen/rccDepends/res1/input.txt.in similarity index 100% rename from Tests/QtAutogen/autorcc_depends/res1/input.txt.in rename to Tests/QtAutogen/rccDepends/res1/input.txt.in diff --git a/Tests/QtAutogen/autorcc_depends/test_res1.cpp b/Tests/QtAutogen/rccDepends/test_res1.cpp similarity index 100% rename from Tests/QtAutogen/autorcc_depends/test_res1.cpp rename to Tests/QtAutogen/rccDepends/test_res1.cpp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60274e1d94c8409f810332345339de5dd449056b commit 60274e1d94c8409f810332345339de5dd449056b Author: Sebastian Holtermann AuthorDate: Mon Mar 6 19:57:49 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Add RunCommand method with built in logging diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index c9b650a..246dd8d 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -1312,18 +1312,12 @@ bool cmQtAutoGenerators::MocGenerateFile( cmd.push_back(mocFileAbs); cmd.push_back(sourceFile); - // Log moc command - if (this->Verbose) { - this->LogCommand(cmd); - } - // Execute moc command - bool res = false; - int retVal = 0; std::string output; - res = cmSystemTools::RunSingleCommand(cmd, &output, &output, &retVal); - - if (!res || (retVal != 0)) { + if (this->RunCommand(cmd, output)) { + // Success + mocGenerated = true; + } else { // Command failed { std::ostringstream ost; @@ -1335,9 +1329,6 @@ bool cmQtAutoGenerators::MocGenerateFile( } cmSystemTools::RemoveFile(mocFileAbs); this->RunMocFailed = true; - } else { - // Success - mocGenerated = true; } } else { // Parent directory creation failed @@ -1492,18 +1483,11 @@ bool cmQtAutoGenerators::UicGenerateFile(const std::string& realName, cmd.push_back(uicFileAbs); cmd.push_back(uiInputFile); - // Log command - if (this->Verbose) { - this->LogCommand(cmd); - } - - // Execute command - bool res = false; - int retVal = 0; std::string output; - res = cmSystemTools::RunSingleCommand(cmd, &output, &output, &retVal); - - if (!res || (retVal != 0)) { + if (this->RunCommand(cmd, output)) { + // Success + uicGenerated = true; + } else { // Command failed { std::ostringstream ost; @@ -1516,9 +1500,6 @@ bool cmQtAutoGenerators::UicGenerateFile(const std::string& realName, } cmSystemTools::RemoveFile(uicFileAbs); this->RunUicFailed = true; - } else { - // Success - uicGenerated = true; } } else { // Parent directory creation failed @@ -1649,17 +1630,11 @@ bool cmQtAutoGenerators::RccGenerateFile(const std::string& rccInputFile, cmd.push_back(rccBuildFile); cmd.push_back(rccInputFile); - // Log command - if (this->Verbose) { - this->LogCommand(cmd); - } - - // Execute command - bool res = false; - int retVal = 0; std::string output; - res = cmSystemTools::RunSingleCommand(cmd, &output, &output, &retVal); - if (!res || (retVal != 0)) { + if (this->RunCommand(cmd, output)) { + // Success + rccGenerated = true; + } else { // Command failed { std::ostringstream ost; @@ -1671,9 +1646,6 @@ bool cmQtAutoGenerators::RccGenerateFile(const std::string& rccInputFile, } cmSystemTools::RemoveFile(rccBuildFile); this->RunRccFailed = true; - } else { - // Success - rccGenerated = true; } } else { // Parent directory creation failed @@ -1751,7 +1723,18 @@ void cmQtAutoGenerators::LogError(const std::string& message) const void cmQtAutoGenerators::LogCommand( const std::vector& command) const { - this->LogInfo(cmJoin(command, " ")); + std::vector cmdEscaped; + typedef std::vector::const_iterator Iter; + for (Iter cit = command.begin(); cit != command.end(); ++cit) { + const std::string cesc = Quoted(*cit); + if ((cesc.size() > (cit->size() + 2)) || + (cesc.find(' ') != std::string::npos)) { + cmdEscaped.push_back(cesc); + } else { + cmdEscaped.push_back(*cit); + } + } + this->LogInfo(cmJoin(cmdEscaped, " ")); } /** @@ -1801,6 +1784,41 @@ std::string cmQtAutoGenerators::ChecksumedPath(const std::string& sourceFile, } /** + * @brief Generates the parent directory of the given file on demand + * @return True on success + */ +bool cmQtAutoGenerators::MakeParentDirectory(const std::string& filename) const +{ + bool success = true; + const std::string dirName = cmSystemTools::GetFilenamePath(filename); + if (!dirName.empty()) { + success = cmsys::SystemTools::MakeDirectory(dirName); + if (!success) { + this->LogError("AutoGen: Error: Directory creation failed: " + dirName); + } + } + return success; +} + +/** + * @brief Runs a command and returns true on success + * @return True on success + */ +bool cmQtAutoGenerators::RunCommand(const std::vector& command, + std::string& output) const +{ + // Log command + if (this->Verbose) { + this->LogCommand(command); + } + // Execute command + int retVal = 0; + bool res = + cmSystemTools::RunSingleCommand(command, &output, &output, &retVal); + return (res && (retVal == 0)); +} + +/** * @brief Tries to find the header file to the given file base path by * appending different header extensions * @return True on success @@ -1874,20 +1892,3 @@ bool cmQtAutoGenerators::MocFindIncludedFile( } return success; } - -/** - * @brief Generates the parent directory of the given file on demand - * @return True on success - */ -bool cmQtAutoGenerators::MakeParentDirectory(const std::string& filename) const -{ - bool success = true; - const std::string dirName = cmSystemTools::GetFilenamePath(filename); - if (!dirName.empty()) { - success = cmsys::SystemTools::MakeDirectory(dirName); - if (!success) { - this->LogError("AutoGen: Error: Directory creation failed: " + dirName); - } - } - return success; -} diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 00fa0c7..ee046de 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -142,6 +142,8 @@ private: const char* basePrefix, const char* baseSuffix) const; bool MakeParentDirectory(const std::string& filename) const; + bool RunCommand(const std::vector& command, + std::string& output) const; bool FindHeader(std::string& header, const std::string& testBasePath) const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8f2ad9c4a06029d6d2859119f957a83c6082b14e commit 8f2ad9c4a06029d6d2859119f957a83c6082b14e Author: Sebastian Holtermann AuthorDate: Thu Mar 2 19:39:50 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Error return when a scan file is not readable diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 2510066..c9b650a 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -125,13 +125,19 @@ static bool FileNameIsUnique(const std::string& filePath, return true; } -static std::string ReadAll(const std::string& filename) +static bool ReadAll(std::string& content, const std::string& filename) { - cmsys::ifstream file(filename.c_str()); - std::ostringstream stream; - stream << file.rdbuf(); - file.close(); - return stream.str(); + bool success = false; + { + cmsys::ifstream ifs(filename.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + content = osst.str(); + success = true; + } + } + return success; } /** @@ -682,8 +688,10 @@ bool cmQtAutoGenerators::RunAutogen() uicHeaderFiles.insert(headerName); } } - this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, - mocsNotIncluded, mocDepends, uisIncluded); + if (!this->ParseHeaders(mocHeaderFiles, uicHeaderFiles, mocsIncluded, + mocsNotIncluded, mocDepends, uisIncluded)) { + return false; + }; // Generate files if (!this->MocGenerateAll(mocsIncluded, mocsNotIncluded, mocDepends)) { @@ -799,23 +807,29 @@ bool cmQtAutoGenerators::ParseSourceFile( std::map >& mocDepends, std::map >& uisIncluded, bool relaxed) { - bool success = true; - const std::string contentText = ReadAll(absFilename); - if (contentText.empty()) { - std::ostringstream ost; - ost << "AutoGen: Warning: " << absFilename << "\n" - << "The file is empty\n"; - this->LogWarning(ost.str()); - } else { - // Parse source contents for MOC - if (success && !this->MocSkip(absFilename)) { - success = this->MocParseSourceContent(absFilename, contentText, - mocsIncluded, mocDepends, relaxed); - } - // Parse source contents for UIC - if (success && !this->UicSkip(absFilename)) { - this->UicParseContent(absFilename, contentText, uisIncluded); + std::string contentText; + bool success = ReadAll(contentText, absFilename); + if (success) { + if (!contentText.empty()) { + // Parse source contents for MOC + if (success && !this->MocSkip(absFilename)) { + success = this->MocParseSourceContent( + absFilename, contentText, mocsIncluded, mocDepends, relaxed); + } + // Parse source contents for UIC + if (success && !this->UicSkip(absFilename)) { + this->UicParseContent(absFilename, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Warning: The file is empty:\n" + << Quoted(absFilename) << "\n"; + this->LogWarning(ost.str()); } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read file:\n" << Quoted(absFilename); + this->LogError(ost.str()); } return success; } @@ -1078,7 +1092,7 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile( } } -void cmQtAutoGenerators::ParseHeaders( +bool cmQtAutoGenerators::ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, @@ -1086,6 +1100,7 @@ void cmQtAutoGenerators::ParseHeaders( std::map >& mocDepends, std::map >& uisIncluded) { + bool success = true; // Merged header files list to read files only once std::set headerFiles; headerFiles.insert(mocHeaderFiles.begin(), mocHeaderFiles.end()); @@ -1094,20 +1109,28 @@ void cmQtAutoGenerators::ParseHeaders( for (std::set::const_iterator hIt = headerFiles.begin(); hIt != headerFiles.end(); ++hIt) { const std::string& headerName = *hIt; - const std::string contentText = ReadAll(headerName); - - // Parse header content for MOC - if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && - (mocsIncluded.find(headerName) == mocsIncluded.end())) { - this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, - mocDepends); - } - - // Parse header content for UIC - if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { - this->UicParseContent(headerName, contentText, uisIncluded); + std::string contentText; + if (ReadAll(contentText, headerName)) { + // Parse header content for MOC + if ((mocHeaderFiles.find(headerName) != mocHeaderFiles.end()) && + (mocsIncluded.find(headerName) == mocsIncluded.end())) { + this->MocParseHeaderContent(headerName, contentText, mocsNotIncluded, + mocDepends); + } + // Parse header content for UIC + if (uicHeaderFiles.find(headerName) != uicHeaderFiles.end()) { + this->UicParseContent(headerName, contentText, uisIncluded); + } + } else { + std::ostringstream ost; + ost << "AutoGen: Error: Could not read header file:\n" + << Quoted(headerName); + this->LogError(ost.str()); + success = false; + break; } } + return success; } bool cmQtAutoGenerators::MocGenerateAll( @@ -1190,8 +1213,12 @@ bool cmQtAutoGenerators::MocGenerateAll( // Check if the content of moc_compilation.cpp changed { - const std::string oldContents = ReadAll(this->MocCppFilenameAbs); - mocCompChanged = (oldContents != automocSource); + std::string oldContents; + if (ReadAll(oldContents, this->MocCppFilenameAbs)) { + mocCompChanged = (oldContents != automocSource); + } else { + mocCompChanged = true; + } } bool success = true; diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index 3bff2b2..00fa0c7 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -78,7 +78,7 @@ private: std::set& mocHeaderFiles, std::set& uicHeaderFiles) const; - void ParseHeaders( + bool ParseHeaders( const std::set& mocHeaderFiles, const std::set& uicHeaderFiles, const std::map& mocsIncluded, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ea3bc1e5b04fd420c4627e520af2e913b88e1100 commit ea3bc1e5b04fd420c4627e520af2e913b88e1100 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 16:26:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:03 2017 +0100 Autogen: Add AUTOMOC/UIC support for generated source files Closes #16186 Closes #14379 diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2829c8a..94cc981 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -45,6 +45,11 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } +inline static bool PropertyEnabled(cmSourceFile* sourceFile, const char* key) +{ + return cmSystemTools::IsOn(sourceFile->GetPropertyForUser(key)); +} + static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -150,18 +155,12 @@ static void AcquireScanFiles(cmGeneratorTarget const* target, !(fileType == cmSystemTools::HEADER_FILE_FORMAT)) { continue; } - if (cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - continue; - } const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // Skip flags - const bool skipAll = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")); - const bool mocSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOMOC")); - const bool uicSkip = - skipAll || cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOUIC")); + const bool skipAll = PropertyEnabled(sf, "SKIP_AUTOGEN"); + const bool mocSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOMOC"); + const bool uicSkip = skipAll || PropertyEnabled(sf, "SKIP_AUTOUIC"); // Add file name to skip lists. // Do this even when the file is not added to the sources/headers lists // because the file name may be extracted from an other file when @@ -478,8 +477,8 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; if ((sf->GetExtension() == "qrc") && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + !PropertyEnabled(sf, "SKIP_AUTOGEN") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); // qrc file @@ -488,7 +487,7 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList = "{"; // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + if (!PropertyEnabled(sf, "GENERATED")) { std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( @@ -555,7 +554,8 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); - std::vector autogenOutputFiles; + std::vector autogenDepends; + std::vector autogenProvides; // Remove old settings on cleanup { @@ -565,31 +565,6 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( false); } - // Create autogen target build directory and add it to the clean files - cmSystemTools::MakeDirectory(autogenBuildDir); - makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", - autogenBuildDir.c_str(), false); - - if (mocEnabled || uicEnabled) { - // Create autogen target includes directory and - // add it to the origin target INCLUDE_DIRECTORIES - const std::string incsDir = autogenBuildDir + "include"; - cmSystemTools::MakeDirectory(incsDir); - target->AddIncludeDirectory(incsDir, true); - } - - if (mocEnabled) { - // Register moc compilation file as generated - autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); - } - - // Initialize autogen target dependencies - std::vector depends; - if (const char* autogenDepends = - target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { - cmSystemTools::ExpandListArgument(autogenDepends, depends); - } - // Compose command lines cmCustomCommandLines commandLines; { @@ -628,6 +603,24 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( autogenComment = "Automatic " + tools + " for target " + target->GetName(); } + // Create autogen target build directory and add it to the clean files + cmSystemTools::MakeDirectory(autogenBuildDir); + makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", + autogenBuildDir.c_str(), false); + + // Create autogen target includes directory and + // add it to the origin target INCLUDE_DIRECTORIES + if (mocEnabled || uicEnabled) { + const std::string incsDir = autogenBuildDir + "include"; + cmSystemTools::MakeDirectory(incsDir); + target->AddIncludeDirectory(incsDir, true); + } + + // Register moc compilation file as generated + if (mocEnabled) { + autogenProvides.push_back(autogenBuildDir + "moc_compilation.cpp"); + } + #if defined(_WIN32) && !defined(__CYGWIN__) bool usePRE_BUILD = false; cmGlobalGenerator* gg = lg->GetGlobalGenerator(); @@ -639,72 +632,100 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( // This also works around a VS 11 bug that may skip updating the target: // https://connect.microsoft.com/VisualStudio/feedback/details/769495 usePRE_BUILD = vsgg->GetVersion() >= cmGlobalVisualStudioGenerator::VS7; - if (usePRE_BUILD) { - // If the autogen target depends on an other target - // don't use PRE_BUILD - for (std::vector::iterator it = depends.begin(); - it != depends.end(); ++it) { - if (!makefile->FindTargetToUse(it->c_str())) { - usePRE_BUILD = false; - break; - } - } - } } #endif - if (rccEnabled) { + // Initialize autogen target dependencies + if (const char* deps = target->GetProperty("AUTOGEN_TARGET_DEPENDS")) { + cmSystemTools::ExpandListArgument(deps, autogenDepends); + } + // Add link library targets to the autogen dependencies + { + const cmTarget::LinkLibraryVectorType& libVec = + target->Target->GetOriginalLinkLibraries(); + for (cmTarget::LinkLibraryVectorType::const_iterator it = libVec.begin(); + it != libVec.end(); ++it) { + const std::string& libName = it->first; + if (makefile->FindTargetToUse(libName) != CM_NULLPTR) { + autogenDepends.push_back(libName); + } + } + } + { cmFilePathChecksum fpathCheckSum(makefile); + // Iterate over all source files std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc" && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && - !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { - { + if (!PropertyEnabled(sf, "SKIP_AUTOGEN")) { + const std::string ext = sf->GetExtension(); + // Add generated file that will be scanned by moc or uic to + // the dependencies + if (mocEnabled || uicEnabled) { + const cmSystemTools::FileFormat fileType = + cmSystemTools::GetFileFormat(ext.c_str()); + if ((fileType == cmSystemTools::CXX_FILE_FORMAT) || + (fileType == cmSystemTools::HEADER_FILE_FORMAT)) { + if (PropertyEnabled(sf, "GENERATED")) { + if ((mocEnabled && !PropertyEnabled(sf, "SKIP_AUTOMOC")) || + (uicEnabled && !PropertyEnabled(sf, "SKIP_AUTOUIC"))) { + autogenDepends.push_back( + cmsys::SystemTools::GetRealPath(sf->GetFullPath())); +#if defined(_WIN32) && !defined(__CYGWIN__) + // Cannot use PRE_BUILD with generated files + usePRE_BUILD = false; +#endif + } + } + } + } + // Process rcc enabled files + if (rccEnabled && (ext == "qrc") && + !PropertyEnabled(sf, "SKIP_AUTORCC")) { const std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // Run cmake again when .qrc file changes - makefile->AddCMakeDependFile(absFile); - - std::string rccOutputFile = autogenBuildDir; - rccOutputFile += fpathCheckSum.getPart(absFile); - rccOutputFile += "/qrc_"; - rccOutputFile += - cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); - rccOutputFile += ".cpp"; - - // Add rcc output file to origin target sources - cmSourceFile* gf = makefile->GetOrCreateSource(rccOutputFile, true); - gf->SetProperty("SKIP_AUTOGEN", "On"); - target->AddSource(rccOutputFile); - // Register rcc output file as generated - autogenOutputFiles.push_back(rccOutputFile); + // Compose rcc output file name + { + std::string rccOut = autogenBuildDir; + rccOut += fpathCheckSum.getPart(absFile); + rccOut += "/qrc_"; + rccOut += + cmsys::SystemTools::GetFilenameWithoutLastExtension(absFile); + rccOut += ".cpp"; + + // Register rcc output file as generated + autogenProvides.push_back(rccOut); + + // Add rcc output file to origin target sources + cmSourceFile* gf = makefile->GetOrCreateSource(rccOut, true); + gf->SetProperty("SKIP_AUTOGEN", "On"); + target->AddSource(rccOut); + } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" -#if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD -#endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - { - std::string error; - if (!cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends, &error)) { - cmSystemTools::Error(error.c_str()); - } - } -#if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; -#endif + if (PropertyEnabled(sf, "GENERATED")) { + // Add generated qrc file to the dependencies + autogenDepends.push_back(absFile); + } else { + // Run cmake again when .qrc file changes + makefile->AddCMakeDependFile(absFile); + + // Add the qrc input files to the dependencies + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, autogenDepends, + &error)) { + cmSystemTools::Error(error.c_str()); } } +#if defined(_WIN32) && !defined(__CYGWIN__) + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; +#endif } } } @@ -712,12 +733,21 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #if defined(_WIN32) && !defined(__CYGWIN__) if (usePRE_BUILD) { + // If the autogen target depends on an other target don't use PRE_BUILD + for (std::vector::iterator it = autogenDepends.begin(); + it != autogenDepends.end(); ++it) { + if (makefile->FindTargetToUse(*it) != CM_NULLPTR) { + usePRE_BUILD = false; + break; + } + } + } + if (usePRE_BUILD) { // Add the pre-build command directly to bypass the OBJECT_LIBRARY // rejection in cmMakefile::AddCustomCommandToTarget because we know // PRE_BUILD will work for an OBJECT_LIBRARY in this specific case. std::vector no_output; - std::vector no_byproducts; - cmCustomCommand cc(makefile, no_output, no_byproducts, depends, + cmCustomCommand cc(makefile, no_output, autogenProvides, autogenDepends, commandLines, autogenComment.c_str(), workingDirectory.c_str()); cc.SetEscapeOldStyle(false); @@ -728,7 +758,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( { cmTarget* autogenTarget = makefile->AddUtilityCommand( autogenTargetName, true, workingDirectory.c_str(), - /*byproducts=*/autogenOutputFiles, depends, commandLines, false, + /*byproducts=*/autogenProvides, autogenDepends, commandLines, false, autogenComment.c_str()); cmGeneratorTarget* gt = new cmGeneratorTarget(autogenTarget, lg); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e3af6bec6733fb21206998c0c8f155e6d13b4367 commit e3af6bec6733fb21206998c0c8f155e6d13b4367 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:32:33 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:02 2017 +0100 Autogen: Initializer cleanups diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 2b53982..2829c8a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -129,18 +129,17 @@ static void AddDefinitionEscaped(cmMakefile* makefile, const char* key, key, cmOutputConverter::EscapeForCMake(cmJoin(values, ";")).c_str()); } -static void SetupSourceFiles(cmGeneratorTarget const* target, +static void AcquireScanFiles(cmGeneratorTarget const* target, std::vector& mocUicSources, std::vector& mocUicHeaders, std::vector& mocSkipList, std::vector& uicSkipList) { - std::vector srcFiles; - target->GetConfigCommonSourceFiles(srcFiles); - const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); + std::vector srcFiles; + target->GetConfigCommonSourceFiles(srcFiles); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; @@ -478,47 +477,44 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; - if (sf->GetExtension() == "qrc") { - const bool skip = - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) || - cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC")); - if (!skip) { - const std::string absFile = - cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - // qrc file - _rcc_files.push_back(absFile); - // qrc file entries - { - std::string entriesList = "{"; - // Read input file list only for non generated .qrc files. - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::string error; - std::vector files; - if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files, &error)) { - entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); - } else { - cmSystemTools::Error(error.c_str()); - } + if ((sf->GetExtension() == "qrc") && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTOGEN")) && + !cmSystemTools::IsOn(sf->GetPropertyForUser("SKIP_AUTORCC"))) { + const std::string absFile = + cmsys::SystemTools::GetRealPath(sf->GetFullPath()); + // qrc file + _rcc_files.push_back(absFile); + // qrc file entries + { + std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files, &error)) { + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); + } else { + cmSystemTools::Error(error.c_str()); } - entriesList += "}"; - _rcc_inputs.push_back(entriesList); } - // rcc options for this qrc file - { - // Merged target and file options - std::vector rccOptions(rccOptionsTarget); - if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { - std::vector optsVec; - cmSystemTools::ExpandListArgument(prop, optsVec); - RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); - } - // Only store non empty options lists - if (!rccOptions.empty()) { - rccFileFiles.push_back(absFile); - rccFileOptions.push_back( - cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); - } + entriesList += "}"; + _rcc_inputs.push_back(entriesList); + } + // rcc options for this qrc file + { + // Merged target and file options + std::vector rccOptions(rccOptionsTarget); + if (const char* prop = sf->GetProperty("AUTORCC_OPTIONS")) { + std::vector optsVec; + cmSystemTools::ExpandListArgument(prop, optsVec); + RccMergeOptions(rccOptions, optsVec, qtMajorVersion5); + } + // Only store non empty options lists + if (!rccOptions.empty()) { + rccFileFiles.push_back(absFile); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } @@ -550,6 +546,9 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( cmMakefile* makefile = target->Target->GetMakefile(); // Create a custom target for running generators at buildtime + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string autogenBuildDir = GetAutogenTargetBuildDir(target); const std::string workingDirectory = @@ -571,8 +570,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( makefile->AppendProperty("ADDITIONAL_MAKE_CLEAN_FILES", autogenBuildDir.c_str(), false); - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC")) { + if (mocEnabled || uicEnabled) { // Create autogen target includes directory and // add it to the origin target INCLUDE_DIRECTORIES const std::string incsDir = autogenBuildDir + "include"; @@ -580,7 +578,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddIncludeDirectory(incsDir, true); } - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { // Register moc compilation file as generated autogenOutputFiles.push_back(autogenBuildDir + "moc_compilation.cpp"); } @@ -608,13 +606,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( std::string autogenComment; { std::vector toolNames; - if (target->GetPropertyAsBool("AUTOMOC")) { + if (mocEnabled) { toolNames.push_back("MOC"); } - if (target->GetPropertyAsBool("AUTOUIC")) { + if (uicEnabled) { toolNames.push_back("UIC"); } - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { toolNames.push_back("RCC"); } @@ -655,7 +653,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( } #endif - if (target->GetPropertyAsBool("AUTORCC")) { + if (rccEnabled) { cmFilePathChecksum fpathCheckSum(makefile); std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); @@ -767,38 +765,37 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( std::map configMocDefines; std::map configUicOptions; { - // create a custom target for running generators at buildtime: + const bool mocEnabled = target->GetPropertyAsBool("AUTOMOC"); + const bool uicEnabled = target->GetPropertyAsBool("AUTOUIC"); + const bool rccEnabled = target->GetPropertyAsBool("AUTORCC"); const std::string autogenTargetName = GetAutogenTargetName(target); const std::string qtMajorVersion = GetQtMajorVersion(target); - AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); - AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); - AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); - std::vector _sources; std::vector _headers; - std::vector mocSkipList; - std::vector uicSkipList; - if (target->GetPropertyAsBool("AUTOMOC") || - target->GetPropertyAsBool("AUTOUIC") || - target->GetPropertyAsBool("AUTORCC")) { - SetupSourceFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled || uicEnabled || rccEnabled) { + std::vector mocSkipList; + std::vector uicSkipList; + AcquireScanFiles(target, _sources, _headers, mocSkipList, uicSkipList); + if (mocEnabled) { + MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, + mocSkipList, configMocIncludes, configMocDefines); + } + if (uicEnabled) { + UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, + configUicOptions); + } + if (rccEnabled) { + RccSetupAutoTarget(target, qtMajorVersion); + } } + + AddDefinitionEscaped(makefile, "_autogen_target_name", autogenTargetName); + AddDefinitionEscaped(makefile, "_origin_target_name", target->GetName()); + AddDefinitionEscaped(makefile, "_qt_version_major", qtMajorVersion); AddDefinitionEscaped(makefile, "_sources", _sources); AddDefinitionEscaped(makefile, "_headers", _headers); - - if (target->GetPropertyAsBool("AUTOMOC")) { - MocSetupAutoTarget(target, autogenTargetName, qtMajorVersion, - mocSkipList, configMocIncludes, configMocDefines); - } - if (target->GetPropertyAsBool("AUTOUIC")) { - UicSetupAutoTarget(target, qtMajorVersion, uicSkipList, - configUicOptions); - } - if (target->GetPropertyAsBool("AUTORCC")) { - RccSetupAutoTarget(target, qtMajorVersion); - } } // Generate config file https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=699321bfd5a997aceb64649c83ce78044ce11cc1 commit 699321bfd5a997aceb64649c83ce78044ce11cc1 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 14:06:02 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:02 2017 +0100 Autogen: Add support for generated .qrc files diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index 5146b1a..dcd61a3 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -24,47 +24,62 @@ static std::string utilStripCR(std::string const& line) /// @brief Reads the resource files list from from a .qrc file - Qt4 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt4(const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - // Qrc file directory - std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); - if (!qrcDir.empty()) { - qrcDir += '/'; - } - - // Read file into string + bool allGood = true; + // Read qrc file content into string std::string qrcContents; { - std::ostringstream stream; - stream << cmsys::ifstream(fileName).rdbuf(); - qrcContents = stream.str(); + cmsys::ifstream ifs(fileName.c_str()); + if (ifs) { + std::ostringstream osst; + osst << ifs.rdbuf(); + qrcContents = osst.str(); + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file not readable:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } + allGood = false; + } } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); + if (allGood) { + // qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = qrcDir + qrcEntry; + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); } - files.push_back(qrcEntry); } - return true; + return allGood; } /// @brief Reads the resource files list from from a .qrc file - Qt5 version /// @return True if the .qrc file was successfully parsed static bool RccListInputsQt5(const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { if (rccCommand.empty()) { cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); @@ -104,11 +119,14 @@ static bool RccListInputsQt5(const std::string& rccCommand, CM_NULLPTR, cmSystemTools::OUTPUT_NONE); } if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc list process for " << fileName + << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << "\n"; + *errorMessage = ost.str(); + } return false; } @@ -134,10 +152,12 @@ static bool RccListInputsQt5(const std::string& rccCommand, std::string::size_type pos = eline.find(searchString); if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc lists unparsable output:\n" + << cmQtAutoGeneratorCommon::Quoted(eline) << "\n"; + *errorMessage = ost.str(); + } return false; } pos += searchString.length(); @@ -154,13 +174,42 @@ static bool RccListInputsQt5(const std::string& rccCommand, const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; +std::string cmQtAutoGeneratorCommon::Quoted(const std::string& text) +{ + static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", + "\b", "\\b", "\f", "\\f", "\n", "\\n", + "\r", "\\r", "\t", "\\t", "\v", "\\v" }; + + std::string res = text; + for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); + it += 2) { + cmSystemTools::ReplaceString(res, *it, *(it + 1)); + } + res = '"' + res; + res += '"'; + return res; +} + bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files) + std::vector& files, + std::string* errorMessage) { - if (qtMajorVersion == "4") { - return RccListInputsQt4(fileName, files); + bool allGood = false; + if (cmsys::SystemTools::FileExists(fileName.c_str())) { + if (qtMajorVersion == "4") { + allGood = RccListInputsQt4(fileName, files, errorMessage); + } else { + allGood = RccListInputsQt5(rccCommand, fileName, files, errorMessage); + } + } else { + if (errorMessage != CM_NULLPTR) { + std::ostringstream ost; + ost << "AutoRcc: Error: Rcc file does not exist:\n" + << cmQtAutoGeneratorCommon::Quoted(fileName) << "\n"; + *errorMessage = ost.str(); + } } - return RccListInputsQt5(rccCommand, fileName, files); + return allGood; } diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h index 48abacb..ee97b71 100644 --- a/Source/cmQtAutoGeneratorCommon.h +++ b/Source/cmQtAutoGeneratorCommon.h @@ -17,13 +17,18 @@ public: static const char* listSep; public: + /// @brief Returns a the string escaped and enclosed in quotes + /// + static std::string Quoted(const std::string& text); + /// @brief Reads the resource files list from from a .qrc file /// @arg fileName Must be the absolute path of the .qrc file /// @return True if the rcc file was successfully parsed static bool RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, const std::string& fileName, - std::vector& files); + std::vector& files, + std::string* errorMessage = CM_NULLPTR); }; #endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 0f29e02..2b53982 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -490,13 +490,15 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // qrc file entries { std::string entriesList = "{"; + // Read input file list only for non generated .qrc files. if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + std::string error; std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, files)) { + qtMajorVersion, rccCommand, absFile, files, &error)) { entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { - return; + cmSystemTools::Error(error.c_str()); } } entriesList += "}"; @@ -690,8 +692,13 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( #endif ) { if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - cmQtAutoGeneratorCommon::RccListInputs( - qtMajorVersion, rccCommand, absFile, depends); + { + std::string error; + if (!cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends, &error)) { + cmSystemTools::Error(error.c_str()); + } + } #if defined(_WIN32) && !defined(__CYGWIN__) // Cannot use PRE_BUILD because the resource files themselves // may not be sources within the target so VS may not know the diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 4d14e99..2510066 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -37,23 +37,9 @@ static const char* SettingsKeyRcc = "AM_RCC_OLD_SETTINGS"; // -- Static functions -/** - * @brief Returns a the string escaped and enclosed in quotes - */ -static std::string Quoted(const std::string& text) +inline static std::string Quoted(const std::string& text) { - static const char* rep[18] = { "\\", "\\\\", "\"", "\\\"", "\a", "\\a", - "\b", "\\b", "\f", "\\f", "\n", "\\n", - "\r", "\\r", "\t", "\\t", "\v", "\\v" }; - - std::string res = text; - for (const char* const* it = cmArrayBegin(rep); it != cmArrayEnd(rep); - it += 2) { - cmSystemTools::ReplaceString(res, *it, *(it + 1)); - } - res = '"' + res; - res += '"'; - return res; + return cmQtAutoGeneratorCommon::Quoted(text); } static void InfoGet(cmMakefile* makefile, const char* key, std::string& value) @@ -403,7 +389,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } else { this->LogError( "AutoMoc: Error: AUTOMOC_DEPEND_FILTERS list size is not " - "a multiple of 2"); + "a multiple of 2 in:\n" + + Quoted(filename)); return false; } } @@ -431,8 +418,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: Uic files/options lists size missmatch in: " + - filename); + "AutoGen: Error: Uic files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -447,7 +434,7 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); - if (rccFilesVec.size() != rccOptionsVec.size()) { + if (rccFilesVec.size() == rccOptionsVec.size()) { for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); @@ -459,8 +446,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC files/options lists size missmatch in: " + - filename); + "AutoGen: Error: RCC files/options lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -484,8 +471,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( } } else { this->LogError( - "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + - filename); + "AutoGen: Error: RCC sources/inputs lists size missmatch in:\n" + + Quoted(filename)); return false; } } @@ -1574,13 +1561,30 @@ bool cmQtAutoGenerators::RccGenerateFile(const std::string& rccInputFile, // Test if the resources list file is newer than build file generateRcc = FileAbsentOrOlder(rccBuildFile, rccInputFile); if (!generateRcc) { - // Test if any resource file is newer than the build file - const std::vector& files = this->RccInputs[rccInputFile]; - for (std::vector::const_iterator it = files.begin(); - it != files.end(); ++it) { - if (FileAbsentOrOlder(rccBuildFile, *it)) { - generateRcc = true; - break; + // Acquire input file list + std::vector readFiles; + const std::vector* files = &this->RccInputs[rccInputFile]; + if (files->empty()) { + // Read input file list from qrc file + std::string error; + if (cmQtAutoGeneratorCommon::RccListInputs( + this->QtMajorVersion, this->RccExecutable, rccInputFile, + readFiles, &error)) { + files = &readFiles; + } else { + files = CM_NULLPTR; + this->LogError(error); + this->RunRccFailed = true; + } + } + // Test if any input file is newer than the build file + if (files != CM_NULLPTR) { + for (std::vector::const_iterator it = files->begin(); + it != files->end(); ++it) { + if (FileAbsentOrOlder(rccBuildFile, *it)) { + generateRcc = true; + break; + } } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 commit a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 Author: Sebastian Holtermann AuthorDate: Thu Mar 2 12:32:47 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:02 2017 +0100 Autogen: Embrace qrc file lists in braces in AutogenInfo.cmake This allows empty .qrc files in any list position. diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index c42f71d..5146b1a 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -152,7 +152,7 @@ static bool RccListInputsQt5(const std::string& rccCommand, // - Class definitions -const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; +const char* cmQtAutoGeneratorCommon::listSep = "@LSEP@"; bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, const std::string& rccCommand, diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 151f39c..0f29e02 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -489,16 +489,17 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, _rcc_files.push_back(absFile); // qrc file entries { - std::string entriesList; + std::string entriesList = "{"; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { std::vector files; if (cmQtAutoGeneratorCommon::RccListInputs( qtMajorVersion, rccCommand, absFile, files)) { - entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); + entriesList += cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } } + entriesList += "}"; _rcc_inputs.push_back(entriesList); } // rcc options for this qrc file diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index bc9c511..4d14e99 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -441,49 +441,53 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( // - Rcc if (this->RccEnabled()) { InfoGet(makefile, "AM_RCC_SOURCES", this->RccSources); + // File options { std::vector rccFilesVec; std::vector rccOptionsVec; InfoGet(makefile, "AM_RCC_OPTIONS_FILES", rccFilesVec); InfoGet(makefile, "AM_RCC_OPTIONS_OPTIONS", rccOptionsVec); if (rccFilesVec.size() != rccOptionsVec.size()) { + for (std::vector::iterator + fileIt = rccFilesVec.begin(), + optionIt = rccOptionsVec.begin(); + fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { + // Replace item separator + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); + this->RccOptions[*fileIt] = *optionIt; + } + } else { this->LogError( "AutoGen: Error: RCC files/options lists size missmatch in: " + filename); return false; } - for (std::vector::iterator fileIt = rccFilesVec.begin(), - optionIt = rccOptionsVec.begin(); - fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, - cmQtAutoGeneratorCommon::listSep, ";"); - this->RccOptions[*fileIt] = *optionIt; - } } + // File lists { std::vector rccInputLists; InfoGet(makefile, "AM_RCC_INPUTS", rccInputLists); - - // qrc files in the end of the list may have been empty - if (rccInputLists.size() < this->RccSources.size()) { - rccInputLists.resize(this->RccSources.size()); - } - if (this->RccSources.size() != rccInputLists.size()) { + if (this->RccSources.size() == rccInputLists.size()) { + for (std::vector::iterator + fileIt = this->RccSources.begin(), + inputIt = rccInputLists.begin(); + fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { + // Remove braces + *inputIt = inputIt->substr(1, inputIt->size() - 2); + // Replace item separator + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); + std::vector rccInputFiles; + cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); + this->RccInputs[*fileIt] = rccInputFiles; + } + } else { this->LogError( "AutoGen: Error: RCC sources/inputs lists size missmatch in: " + filename); return false; } - for (std::vector::iterator - fileIt = this->RccSources.begin(), - inputIt = rccInputLists.begin(); - fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, - cmQtAutoGeneratorCommon::listSep, ";"); - std::vector rccInputFiles; - cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); - this->RccInputs[*fileIt] = rccInputFiles; - } } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 commit 0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:34:35 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:02 2017 +0100 Autogen: Remove unused variables diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 3a7951a..151f39c 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -135,15 +135,12 @@ static void SetupSourceFiles(cmGeneratorTarget const* target, std::vector& mocSkipList, std::vector& uicSkipList) { - cmMakefile* makefile = target->Target->GetMakefile(); - std::vector srcFiles; target->GetConfigCommonSourceFiles(srcFiles); const bool mocTarget = target->GetPropertyAsBool("AUTOMOC"); const bool uicTarget = target->GetPropertyAsBool("AUTOUIC"); - cmFilePathChecksum fpathCheckSum(makefile); for (std::vector::const_iterator fileIt = srcFiles.begin(); fileIt != srcFiles.end(); ++fileIt) { cmSourceFile* sf = *fileIt; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47dbe9267eea47e7be656da409a9ee8ced691422 commit 47dbe9267eea47e7be656da409a9ee8ced691422 Author: Sebastian Holtermann AuthorDate: Tue Feb 28 12:08:26 2017 +0100 Commit: Sebastian Holtermann CommitDate: Mon Mar 6 22:01:02 2017 +0100 Autogen: Add cmQtAutogeneratorCommon class with shared types and functions diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 76b98fc..5f2cbc3 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -344,6 +344,8 @@ set(SRCS cmPropertyDefinitionMap.h cmPropertyMap.cxx cmPropertyMap.h + cmQtAutoGeneratorCommon.cxx + cmQtAutoGeneratorCommon.h cmQtAutoGeneratorInitializer.cxx cmQtAutoGeneratorInitializer.h cmQtAutoGenerators.cxx diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx new file mode 100644 index 0000000..c42f71d --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -0,0 +1,166 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmQtAutoGeneratorCommon.h" +#include "cmAlgorithms.h" +#include "cmSystemTools.h" + +#include +#include + +#include + +// - Static functions + +static std::string utilStripCR(std::string const& line) +{ + // Strip CR characters rcc may have printed (possibly more than one!). + std::string::size_type cr = line.find('\r'); + if (cr != line.npos) { + return line.substr(0, cr); + } + return line; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt4 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt4(const std::string& fileName, + std::vector& files) +{ + // Qrc file directory + std::string qrcDir(cmsys::SystemTools::GetFilenamePath(fileName)); + if (!qrcDir.empty()) { + qrcDir += '/'; + } + + // Read file into string + std::string qrcContents; + { + std::ostringstream stream; + stream << cmsys::ifstream(fileName).rdbuf(); + qrcContents = stream.str(); + } + + cmsys::RegularExpression fileMatchRegex("(]*>)"); + + size_t offset = 0; + while (fileMatchRegex.find(qrcContents.c_str() + offset)) { + std::string qrcEntry = fileMatchRegex.match(1); + offset += qrcEntry.size(); + { + fileReplaceRegex.find(qrcEntry); + std::string tag = fileReplaceRegex.match(1); + qrcEntry = qrcEntry.substr(tag.size()); + } + if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { + qrcEntry = qrcDir + qrcEntry; + } + files.push_back(qrcEntry); + } + return true; +} + +/// @brief Reads the resource files list from from a .qrc file - Qt5 version +/// @return True if the .qrc file was successfully parsed +static bool RccListInputsQt5(const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (rccCommand.empty()) { + cmSystemTools::Error("AutoRcc: Error: rcc executable not available\n"); + return false; + } + + // Read rcc features + bool hasDashDashList = false; + { + std::vector command; + command.push_back(rccCommand); + command.push_back("--help"); + std::string rccStdOut; + std::string rccStdErr; + int retVal = 0; + bool result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + if (result && retVal == 0 && + rccStdOut.find("--list") != std::string::npos) { + hasDashDashList = true; + } + } + + // Run rcc list command + bool result = false; + int retVal = 0; + std::string rccStdOut; + std::string rccStdErr; + { + std::vector command; + command.push_back(rccCommand); + command.push_back(hasDashDashList ? "--list" : "-list"); + command.push_back(fileName); + result = + cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, + CM_NULLPTR, cmSystemTools::OUTPUT_NONE); + } + if (!result || retVal) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc list process for " << fileName << " failed:\n" + << rccStdOut << "\n" + << rccStdErr << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + + // Parse rcc std output + { + std::istringstream ostr(rccStdOut); + std::string oline; + while (std::getline(ostr, oline)) { + oline = utilStripCR(oline); + if (!oline.empty()) { + files.push_back(oline); + } + } + } + // Parse rcc error output + { + std::istringstream estr(rccStdErr); + std::string eline; + while (std::getline(estr, eline)) { + eline = utilStripCR(eline); + if (cmHasLiteralPrefix(eline, "RCC: Error in")) { + static std::string searchString = "Cannot find file '"; + + std::string::size_type pos = eline.find(searchString); + if (pos == std::string::npos) { + std::ostringstream err; + err << "AUTOGEN: error: Rcc lists unparsable output " << eline + << std::endl; + cmSystemTools::Error(err.str().c_str()); + return false; + } + pos += searchString.length(); + std::string::size_type sz = eline.size() - pos - 1; + files.push_back(eline.substr(pos, sz)); + } + } + } + + return true; +} + +// - Class definitions + +const char* cmQtAutoGeneratorCommon::listSep = "@list_sep@"; + +bool cmQtAutoGeneratorCommon::RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files) +{ + if (qtMajorVersion == "4") { + return RccListInputsQt4(fileName, files); + } + return RccListInputsQt5(rccCommand, fileName, files); +} diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h new file mode 100644 index 0000000..48abacb --- /dev/null +++ b/Source/cmQtAutoGeneratorCommon.h @@ -0,0 +1,29 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmQtAutoGeneratorCommon_h +#define cmQtAutoGeneratorCommon_h + +#include // IWYU pragma: keep +#include +#include + +class cmGeneratorTarget; +class cmLocalGenerator; + +class cmQtAutoGeneratorCommon +{ + // - Types and statics +public: + static const char* listSep; + +public: + /// @brief Reads the resource files list from from a .qrc file + /// @arg fileName Must be the absolute path of the .qrc file + /// @return True if the rcc file was successfully parsed + static bool RccListInputs(const std::string& qtMajorVersion, + const std::string& rccCommand, + const std::string& fileName, + std::vector& files); +}; + +#endif diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index a45b3d5..3a7951a 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGeneratorInitializer.h" +#include "cmQtAutoGeneratorCommon.h" #include "cmAlgorithms.h" #include "cmCustomCommandLines.h" @@ -44,16 +45,6 @@ static void utilCopyTargetProperty(cmTarget* destinationTarget, } } -static std::string utilStripCR(std::string const& line) -{ - // Strip CR characters rcc may have printed (possibly more than one!). - std::string::size_type cr = line.find('\r'); - if (cr != line.npos) { - return line.substr(0, cr); - } - return line; -} - static std::string GetSafeProperty(cmGeneratorTarget const* target, const char* key) { @@ -361,7 +352,8 @@ static void UicSetupAutoTarget( uiFileFiles.push_back(absFile); { std::string opts = sf->GetProperty("AUTOUIC_OPTIONS"); - cmSystemTools::ReplaceString(opts, ";", "@list_sep@"); + cmSystemTools::ReplaceString(opts, ";", + cmQtAutoGeneratorCommon::listSep); uiFileOptions.push_back(opts); } } @@ -469,146 +461,12 @@ static void RccMergeOptions(std::vector& opts, opts.insert(opts.end(), extraOpts.begin(), extraOpts.end()); } -/// @brief Reads the resource files list from from a .qrc file - Qt5 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt5(cmSourceFile* sf, cmGeneratorTarget const* target, - std::vector& depends) -{ - const std::string rccCommand = RccGetExecutable(target, "5"); - if (rccCommand.empty()) { - cmSystemTools::Error("AUTOGEN: error: rcc executable not available\n"); - return false; - } - - bool hasDashDashList = false; - // Read rcc features - { - std::vector command; - command.push_back(rccCommand); - command.push_back("--help"); - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (result && retVal == 0 && - rccStdOut.find("--list") != std::string::npos) { - hasDashDashList = true; - } - } - // Run rcc list command - std::vector command; - command.push_back(rccCommand); - command.push_back(hasDashDashList ? "--list" : "-list"); - - std::string absFile = cmsys::SystemTools::GetRealPath(sf->GetFullPath()); - command.push_back(absFile); - - std::string rccStdOut; - std::string rccStdErr; - int retVal = 0; - bool result = - cmSystemTools::RunSingleCommand(command, &rccStdOut, &rccStdErr, &retVal, - CM_NULLPTR, cmSystemTools::OUTPUT_NONE); - if (!result || retVal) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc list process for " << sf->GetFullPath() - << " failed:\n" - << rccStdOut << "\n" - << rccStdErr << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - - // Parse rcc list output - { - std::istringstream ostr(rccStdOut); - std::string oline; - while (std::getline(ostr, oline)) { - oline = utilStripCR(oline); - if (!oline.empty()) { - depends.push_back(oline); - } - } - } - - { - std::istringstream estr(rccStdErr); - std::string eline; - while (std::getline(estr, eline)) { - eline = utilStripCR(eline); - if (cmHasLiteralPrefix(eline, "RCC: Error in")) { - static std::string searchString = "Cannot find file '"; - - std::string::size_type pos = eline.find(searchString); - if (pos == std::string::npos) { - std::ostringstream err; - err << "AUTOGEN: error: Rcc lists unparsable output " << eline - << std::endl; - cmSystemTools::Error(err.str().c_str()); - return false; - } - pos += searchString.length(); - std::string::size_type sz = eline.size() - pos - 1; - depends.push_back(eline.substr(pos, sz)); - } - } - } - - return true; -} - -/// @brief Reads the resource files list from from a .qrc file - Qt4 version -/// @return True if the .qrc file was successfully parsed -static bool RccListInputsQt4(cmSourceFile* sf, - std::vector& depends) -{ - // Read file into string - std::string qrcContents; - { - std::ostringstream stream; - stream << cmsys::ifstream(sf->GetFullPath().c_str()).rdbuf(); - qrcContents = stream.str(); - } - - cmsys::RegularExpression fileMatchRegex("(]*>)"); - - size_t offset = 0; - while (fileMatchRegex.find(qrcContents.c_str() + offset)) { - std::string qrcEntry = fileMatchRegex.match(1); - offset += qrcEntry.size(); - { - fileReplaceRegex.find(qrcEntry); - std::string tag = fileReplaceRegex.match(1); - qrcEntry = qrcEntry.substr(tag.size()); - } - if (!cmSystemTools::FileIsFullPath(qrcEntry.c_str())) { - qrcEntry = sf->GetLocation().GetDirectory() + "/" + qrcEntry; - } - depends.push_back(qrcEntry); - } - return true; -} - -/// @brief Reads the resource files list from from a .qrc file -/// @return True if the rcc file was successfully parsed -static bool RccListInputs(const std::string& qtMajorVersion, cmSourceFile* sf, - cmGeneratorTarget const* target, - std::vector& depends) -{ - if (qtMajorVersion == "5") { - return RccListInputsQt5(sf, target, depends); - } - return RccListInputsQt4(sf, depends); -} - static void RccSetupAutoTarget(cmGeneratorTarget const* target, const std::string& qtMajorVersion) { cmMakefile* makefile = target->Target->GetMakefile(); const bool qtMajorVersion5 = (qtMajorVersion == "5"); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector _rcc_files; std::vector _rcc_inputs; std::vector rccFileFiles; @@ -636,9 +494,10 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, { std::string entriesList; if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - std::vector depends; - if (RccListInputs(qtMajorVersion, sf, target, depends)) { - entriesList = cmJoin(depends, "@list_sep@"); + std::vector files; + if (cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, files)) { + entriesList = cmJoin(files, cmQtAutoGeneratorCommon::listSep); } else { return; } @@ -657,19 +516,19 @@ static void RccSetupAutoTarget(cmGeneratorTarget const* target, // Only store non empty options lists if (!rccOptions.empty()) { rccFileFiles.push_back(absFile); - rccFileOptions.push_back(cmJoin(rccOptions, "@list_sep@")); + rccFileOptions.push_back( + cmJoin(rccOptions, cmQtAutoGeneratorCommon::listSep)); } } } } } + AddDefinitionEscaped(makefile, "_qt_rcc_executable", rccCommand); AddDefinitionEscaped(makefile, "_rcc_files", _rcc_files); AddDefinitionEscaped(makefile, "_rcc_inputs", _rcc_inputs); AddDefinitionEscaped(makefile, "_rcc_options_files", rccFileFiles); AddDefinitionEscaped(makefile, "_rcc_options_options", rccFileOptions); - AddDefinitionEscaped(makefile, "_qt_rcc_executable", - RccGetExecutable(target, qtMajorVersion)); } void cmQtAutoGeneratorInitializer::InitializeAutogenSources( @@ -696,6 +555,7 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( const std::string workingDirectory = cmSystemTools::CollapseFullPath("", makefile->GetCurrentBinaryDirectory()); const std::string qtMajorVersion = GetQtMajorVersion(target); + const std::string rccCommand = RccGetExecutable(target, qtMajorVersion); std::vector autogenOutputFiles; // Remove old settings on cleanup @@ -825,20 +685,22 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( target->AddSource(rccOutputFile); // Register rcc output file as generated autogenOutputFiles.push_back(rccOutputFile); - } - if (lg->GetGlobalGenerator()->GetName() == "Ninja" + + if (lg->GetGlobalGenerator()->GetName() == "Ninja" #if defined(_WIN32) && !defined(__CYGWIN__) - || usePRE_BUILD + || usePRE_BUILD #endif - ) { - if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { - RccListInputs(qtMajorVersion, sf, target, depends); + ) { + if (!cmSystemTools::IsOn(sf->GetPropertyForUser("GENERATED"))) { + cmQtAutoGeneratorCommon::RccListInputs( + qtMajorVersion, rccCommand, absFile, depends); #if defined(_WIN32) && !defined(__CYGWIN__) - // Cannot use PRE_BUILD because the resource files themselves - // may not be sources within the target so VS may not know the - // target needs to re-build at all. - usePRE_BUILD = false; + // Cannot use PRE_BUILD because the resource files themselves + // may not be sources within the target so VS may not know the + // target needs to re-build at all. + usePRE_BUILD = false; #endif + } } } } diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index c83f9a9..bc9c511 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -1,6 +1,7 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmQtAutoGenerators.h" +#include "cmQtAutoGeneratorCommon.h" #include #include @@ -178,7 +179,7 @@ static std::string JoinOptionsMap( for (std::map::const_iterator it = opts.begin(); it != opts.end(); ++it) { if (it != opts.begin()) { - result += "@list_sep@"; + result += cmQtAutoGeneratorCommon::listSep; } result += it->first; result += "==="; @@ -424,7 +425,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = uicFilesVec.begin(), optionIt = uicOptionsVec.begin(); fileIt != uicFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->UicOptions[*fileIt] = *optionIt; } } else { @@ -453,7 +455,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( for (std::vector::iterator fileIt = rccFilesVec.begin(), optionIt = rccOptionsVec.begin(); fileIt != rccFilesVec.end(); ++fileIt, ++optionIt) { - cmSystemTools::ReplaceString(*optionIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*optionIt, + cmQtAutoGeneratorCommon::listSep, ";"); this->RccOptions[*fileIt] = *optionIt; } } @@ -475,7 +478,8 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( fileIt = this->RccSources.begin(), inputIt = rccInputLists.begin(); fileIt != this->RccSources.end(); ++fileIt, ++inputIt) { - cmSystemTools::ReplaceString(*inputIt, "@list_sep@", ";"); + cmSystemTools::ReplaceString(*inputIt, + cmQtAutoGeneratorCommon::listSep, ";"); std::vector rccInputFiles; cmSystemTools::ExpandListArgument(*inputIt, rccInputFiles); this->RccInputs[*fileIt] = rccInputFiles; ----------------------------------------------------------------------- Summary of changes: Source/CMakeLists.txt | 2 + Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 486 ++++++++------------ Source/cmQtAutoGenerators.cxx | 342 ++++++++------ Source/cmQtAutoGenerators.h | 4 +- Tests/QtAutogen/CMakeLists.txt | 86 ++-- Tests/QtAutogen/automoc_rerun/CMakeLists.txt | 27 -- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/autorcc_depends/CMakeLists.txt | 27 -- Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + Tests/QtAutogen/mocRerun/CMakeLists.txt | 35 ++ .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + Tests/QtAutogen/rccDepends/CMakeLists.txt | 36 ++ .../test_res1.cpp => rccDepends/main.cpp} | 0 .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- 32 files changed, 916 insertions(+), 549 deletions(-) create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h delete mode 100644 Tests/QtAutogen/automoc_rerun/CMakeLists.txt delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 delete mode 100644 Tests/QtAutogen/autorcc_depends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp create mode 100644 Tests/QtAutogen/mocRerun/CMakeLists.txt rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in create mode 100644 Tests/QtAutogen/rccDepends/CMakeLists.txt rename Tests/QtAutogen/{autorcc_depends/test_res1.cpp => rccDepends/main.cpp} (100%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-388-gf7085d1 Message-ID: <20170307010503.516F2FA6E3@public.kitware.com> 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, nightly has been updated discards 9956b0118c2b9aba2c38c407bc2fff199a707a6f (commit) discards fab6a95a4d0f61a3706ca8fda2ae6b0c01014031 (commit) discards 79d8942b3df193b5dd95b76092ab6001f449e94d (commit) discards c3eb88e23d958676dd7bd3435d2005341a4caca3 (commit) discards ef4e1e86441b515c60b4a1dfcf1c1e5e66ca1d76 (commit) discards 28878dbdd49dce43a15a98062696af30f26800cf (commit) discards 59dd1e390e1fdc1391cd81c08a300716a8a6c10c (commit) discards 614917f70e292763b14b1c388e92714bac31fa9c (commit) discards 505ed4e76f3043cdb5d45effc4791455136560df (commit) discards eae0b2823cb000db9a78881a517538a8a7fb7286 (commit) discards c511576c620ecbc614591722ad1b381c8a7d2528 (commit) discards 4ef593ed4940229437dbbad7707a6461846318f8 (commit) discards bdec46b75eb93427aafb70d2d5e9d6601fda26a4 (commit) discards c52eecc303f8cb3de406d788914a2071cef4e60f (commit) discards 86e4fcadd5edc38a9291366de61ca9fe63eae4f8 (commit) discards 04ecb9a1df0ec91c1e6eb0eefb3719b84ac85dab (commit) discards f9531b373f27367ac0d8c4beae474768b7745b59 (commit) discards 100723035ac228187e60f549dd38c8f89c447b40 (commit) discards 09be79c707ac6999ebad689bcf83b2cbcd3cd4a2 (commit) discards 1ee20805d3b0ed67dad7c2835d673c98961736ef (commit) discards 5ce0b3e7ce885931c2ffdf04c0a9ffc69a91e2f4 (commit) via f7085d1fb3f0f477a9a2858d016d3164997e518c (commit) via 4b2df493e05d9a3eff12ae8f974ea58309db70ae (commit) via 97a7030c4fb2a0fe842086c4d6aba8b941318cbe (commit) via ef3c319b971de36eabdc4180243a07e3581f84b7 (commit) via 7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e (commit) via 81656b92107b798d2e78929042812248d12853be (commit) via d9a7ef80aaff4373baf4c864c97efbbf20337dea (commit) via 89780663b3f64eddf7dda2b5565935b73d92c146 (commit) via 9cad44dce264b509afc4b50b540b3a8594cf3217 (commit) via 60274e1d94c8409f810332345339de5dd449056b (commit) via 8f2ad9c4a06029d6d2859119f957a83c6082b14e (commit) via ea3bc1e5b04fd420c4627e520af2e913b88e1100 (commit) via e3af6bec6733fb21206998c0c8f155e6d13b4367 (commit) via 699321bfd5a997aceb64649c83ce78044ce11cc1 (commit) via a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 (commit) via 0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 (commit) via 47dbe9267eea47e7be656da409a9ee8ced691422 (commit) via 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 (commit) via 1347b2b9dfba766fab43e9f7daf88225862aa14d (commit) via 88f3777b973b527a544fee2a222fb94c65524d41 (commit) via 97fcafc7a9430bf83795702d078ae194767b0f7f (commit) via 9662b9efb747192b6825100e5d06fe63c0893484 (commit) via 8c5ed37e0815b2fca234cf5d4b85eedf02ec8daf (commit) via 723955cd2b562d4ffe0c9b4f8e524b110ec6f374 (commit) via 957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 (commit) via c6bef559f308ea6715a3395562ee66e8f8825b9d (commit) via add3b1ee4f798fe667b53a521eb18a623e64f0e0 (commit) via ea2a8dd268a31ad2562d23f41df90f134811d52c (commit) via 485685fdd9dc4de8db8184c9f57f644575f1c129 (commit) via aba92ffd92bb1cc4bbe898b7abe65347b0468d33 (commit) via 047a5e4d6656f362151b855b34c259708b8419ba (commit) via 89891bcb9e226cc6216227634d0272adbc080c72 (commit) via c3304fa510fa0dba380190cfb775be2fafcd8527 (commit) via a55ed1a37c74a7a112e6c355af0658b5d89dede1 (commit) via 9f40ba259a1d55e9277e0d0c2b706272a0ee75ee (commit) via 09475c298b83cbbaae2ca7ba6f52c0fa74607568 (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 (9956b0118c2b9aba2c38c407bc2fff199a707a6f) \ N -- N -- N (f7085d1fb3f0f477a9a2858d016d3164997e518c) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 52 ++++----- Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst | 45 ++++++++ Help/release/dev/cpack-sign-uninstaller.rst | 5 + Modules/CPackNSIS.cmake | 4 + Modules/FindHDF5.cmake | 7 +- Modules/FindVulkan.cmake | 1 + Modules/NSIS.template.in | 45 +++++++- Source/CMakeVersion.cmake | 2 +- Source/cmLocalGenerator.cxx | 11 +- Source/cmQtAutoGeneratorInitializer.cxx | 14 ++- Source/cmQtAutoGenerators.cxx | 117 ++++++++++---------- Source/cmQtAutoGenerators.h | 2 + Source/cmWorkingDirectory.h | 2 + Tests/QtAutogen/CMakeLists.txt | 12 +- Tests/QtAutogen/mocDepends/CMakeLists.txt | 20 ++-- Tests/QtAutogen/mocRerun/CMakeLists.txt | 10 +- Tests/QtAutogen/rccDepends/CMakeLists.txt | 10 +- .../rccDepends/{test_res1.cpp => main.cpp} | 0 18 files changed, 234 insertions(+), 125 deletions(-) create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst rename Tests/QtAutogen/rccDepends/{test_res1.cpp => main.cpp} (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 6 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 6 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-360-g9662b9e Message-ID: <20170307010503.B7AC2FA6E2@public.kitware.com> 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, nightly-master has been updated via 9662b9efb747192b6825100e5d06fe63c0893484 (commit) via 8c5ed37e0815b2fca234cf5d4b85eedf02ec8daf (commit) via 723955cd2b562d4ffe0c9b4f8e524b110ec6f374 (commit) via 957bdb9e6e4d8e0855f3a9d98cbc6a196bb07293 (commit) via add3b1ee4f798fe667b53a521eb18a623e64f0e0 (commit) via ea2a8dd268a31ad2562d23f41df90f134811d52c (commit) via a55ed1a37c74a7a112e6c355af0658b5d89dede1 (commit) via 9f40ba259a1d55e9277e0d0c2b706272a0ee75ee (commit) via 9a1ee04dd5b7da3bda7159500b3eeda16ee86fb0 (commit) from 01d5963552ca375f04cfdaf21f24aa0d51574a43 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/MAP_IMPORTED_CONFIG_CONFIG.rst | 45 ++++++++++++++++++++++++++ Modules/FindHDF5.cmake | 2 +- Modules/FindVulkan.cmake | 1 + Source/CMakeVersion.cmake | 2 +- Utilities/Release/release_cmake.cmake | 8 ++++- Utilities/Release/release_cmake.sh.in | 6 ++-- 6 files changed, 59 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-361-g51fbaa3 Message-ID: <20170307050504.43861FA6E1@public.kitware.com> 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 51fbaa30997d2bc22d3483065ea04165526dc025 (commit) from 9662b9efb747192b6825100e5d06fe63c0893484 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-389-g65a8510 Message-ID: <20170307050504.8E051FA6E2@public.kitware.com> 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 f7085d1fb3f0f477a9a2858d016d3164997e518c (commit) discards 4b2df493e05d9a3eff12ae8f974ea58309db70ae (commit) discards 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 (commit) discards 1347b2b9dfba766fab43e9f7daf88225862aa14d (commit) discards 88f3777b973b527a544fee2a222fb94c65524d41 (commit) discards 97fcafc7a9430bf83795702d078ae194767b0f7f (commit) via 65a8510350df79126a75e47b2802f3e4abbcf1a7 (commit) via 0a1f7d0add29311f655c9678060ff00b77f15217 (commit) via d67ee04d6f74d825aeb3fada193df7bddf265050 (commit) via 6812265b2bcd709a925c8c7814fca05e2a8e2bd5 (commit) via 4d64c639b23f07572b8fa8bf0d1cb1762cb6d8ed (commit) via 09f73f330ed50e5f93c010d279edf2dccc79afb7 (commit) via 51fbaa30997d2bc22d3483065ea04165526dc025 (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 (f7085d1fb3f0f477a9a2858d016d3164997e518c) \ N -- N -- N (65a8510350df79126a75e47b2802f3e4abbcf1a7) 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=65a8510350df79126a75e47b2802f3e4abbcf1a7 commit 65a8510350df79126a75e47b2802f3e4abbcf1a7 Merge: 0a1f7d0 ef3c319 Author: Sebastian Holtermann AuthorDate: Mon Mar 6 23:32:50 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:19 2017 -0500 Stage topic 'autogen_common' Topic-id: 22843 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/543 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a1f7d0add29311f655c9678060ff00b77f15217 commit 0a1f7d0add29311f655c9678060ff00b77f15217 Merge: d67ee04 97a7030 Author: Brad King AuthorDate: Mon Mar 6 21:37:02 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:19 2017 -0500 Stage topic 'pr.sort.variables' Topic-id: 22896 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/556 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d67ee04d6f74d825aeb3fada193df7bddf265050 commit d67ee04d6f74d825aeb3fada193df7bddf265050 Merge: 6812265 09475c2 Author: Brad King AuthorDate: Mon Mar 6 18:56:25 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:19 2017 -0500 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 22698 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/512 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6812265b2bcd709a925c8c7814fca05e2a8e2bd5 commit 6812265b2bcd709a925c8c7814fca05e2a8e2bd5 Merge: 4d64c63 c6bef55 Author: Brad King AuthorDate: Mon Mar 6 18:11:35 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:19 2017 -0500 Stage topic 'FindHDF5-definitions-fix' Topic-id: 22872 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/548 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4d64c639b23f07572b8fa8bf0d1cb1762cb6d8ed commit 4d64c639b23f07572b8fa8bf0d1cb1762cb6d8ed Merge: 09f73f3 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:19 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=09f73f330ed50e5f93c010d279edf2dccc79afb7 commit 09f73f330ed50e5f93c010d279edf2dccc79afb7 Merge: 51fbaa3 aba92ff Author: Brad King AuthorDate: Mon Mar 6 15:40:46 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 00:01:18 2017 -0500 Stage topic 'working-directory-fixes' Topic-id: 22824 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/540 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 08:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 08:25:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-387-ge66eec1 Message-ID: <20170307132504.517CDFA565@public.kitware.com> 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 e66eec143c86cb36bc468b78583f689840156d99 (commit) via 632534104c4c094d07ab085fc10f2e3e35961ae0 (commit) via 696c75e99124728d35339d1465e3e8edbed7fd04 (commit) via 1e1cb41c46d5247c437b384fa702cfe774aaf501 (commit) via fda91f4099d4ebf1b53592e56a29694a7837810e (commit) via eb44f00192f635fc209b37d35d57ebbcc453ce11 (commit) via ef3c319b971de36eabdc4180243a07e3581f84b7 (commit) via 7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e (commit) via 81656b92107b798d2e78929042812248d12853be (commit) via d9a7ef80aaff4373baf4c864c97efbbf20337dea (commit) via 89780663b3f64eddf7dda2b5565935b73d92c146 (commit) via 9cad44dce264b509afc4b50b540b3a8594cf3217 (commit) via 60274e1d94c8409f810332345339de5dd449056b (commit) via 8f2ad9c4a06029d6d2859119f957a83c6082b14e (commit) via ea3bc1e5b04fd420c4627e520af2e913b88e1100 (commit) via e3af6bec6733fb21206998c0c8f155e6d13b4367 (commit) via 699321bfd5a997aceb64649c83ce78044ce11cc1 (commit) via a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 (commit) via 0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 (commit) via 47dbe9267eea47e7be656da409a9ee8ced691422 (commit) via c6bef559f308ea6715a3395562ee66e8f8825b9d (commit) via aba92ffd92bb1cc4bbe898b7abe65347b0468d33 (commit) via 047a5e4d6656f362151b855b34c259708b8419ba (commit) via 89891bcb9e226cc6216227634d0272adbc080c72 (commit) via c3304fa510fa0dba380190cfb775be2fafcd8527 (commit) via 09475c298b83cbbaae2ca7ba6f52c0fa74607568 (commit) from 51fbaa30997d2bc22d3483065ea04165526dc025 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 52 +-- Help/release/dev/cpack-sign-uninstaller.rst | 5 + Modules/CPackNSIS.cmake | 4 + Modules/FindHDF5.cmake | 5 + Modules/NSIS.template.in | 45 +- Source/CMakeLists.txt | 4 + Source/CPack/OSXScriptLauncher.cxx | 1 - Source/CPack/cmCPackArchiveGenerator.cxx | 10 +- Source/CPack/cmCPackGenerator.cxx | 4 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 14 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 25 +- Source/CTest/cmCTestHandlerCommand.cxx | 5 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 11 +- Source/CTest/cmCTestRunTest.cxx | 19 +- Source/CTest/cmCTestSubmitHandler.cxx | 13 +- Source/CTest/cmCTestTestHandler.cxx | 70 +-- Source/cmCTest.cxx | 2 - Source/cmDepends.cxx | 14 +- Source/cmGlobalGenerator.cxx | 9 +- Source/cmMakefile.cxx | 11 +- Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 486 ++++++++------------ Source/cmQtAutoGenerators.cxx | 342 ++++++++------ Source/cmQtAutoGenerators.h | 4 +- Source/cmWorkingDirectory.cxx | 24 + Source/cmWorkingDirectory.h | 25 + Source/cmake.cxx | 30 +- Tests/QtAutogen/CMakeLists.txt | 86 ++-- Tests/QtAutogen/automoc_rerun/CMakeLists.txt | 27 -- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/autorcc_depends/CMakeLists.txt | 27 -- Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + Tests/QtAutogen/mocRerun/CMakeLists.txt | 35 ++ .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + Tests/QtAutogen/rccDepends/CMakeLists.txt | 36 ++ .../test_res1.cpp => rccDepends/main.cpp} | 0 .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- bootstrap | 1 + 56 files changed, 1138 insertions(+), 730 deletions(-) create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h create mode 100644 Source/cmWorkingDirectory.cxx create mode 100644 Source/cmWorkingDirectory.h delete mode 100644 Tests/QtAutogen/automoc_rerun/CMakeLists.txt delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 delete mode 100644 Tests/QtAutogen/autorcc_depends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp create mode 100644 Tests/QtAutogen/mocRerun/CMakeLists.txt rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in create mode 100644 Tests/QtAutogen/rccDepends/CMakeLists.txt rename Tests/QtAutogen/{autorcc_depends/test_res1.cpp => rccDepends/main.cpp} (100%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 08:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 08:25:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-389-gff178a4 Message-ID: <20170307132504.D553DFA566@public.kitware.com> 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 65a8510350df79126a75e47b2802f3e4abbcf1a7 (commit) discards 0a1f7d0add29311f655c9678060ff00b77f15217 (commit) discards d67ee04d6f74d825aeb3fada193df7bddf265050 (commit) discards 6812265b2bcd709a925c8c7814fca05e2a8e2bd5 (commit) discards 4d64c639b23f07572b8fa8bf0d1cb1762cb6d8ed (commit) discards 09f73f330ed50e5f93c010d279edf2dccc79afb7 (commit) discards 97a7030c4fb2a0fe842086c4d6aba8b941318cbe (commit) via ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57 (commit) via e66eec143c86cb36bc468b78583f689840156d99 (commit) via 632534104c4c094d07ab085fc10f2e3e35961ae0 (commit) via 696c75e99124728d35339d1465e3e8edbed7fd04 (commit) via 1e1cb41c46d5247c437b384fa702cfe774aaf501 (commit) via fda91f4099d4ebf1b53592e56a29694a7837810e (commit) via eb44f00192f635fc209b37d35d57ebbcc453ce11 (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 (65a8510350df79126a75e47b2802f3e4abbcf1a7) \ N -- N -- N (ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57) 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=ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57 commit ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57 Merge: e66eec1 485685f Author: Brad King AuthorDate: Mon Mar 6 16:34:39 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 08:24:46 2017 -0500 Stage topic 'revert-CTestTestfile-removal' Topic-id: 22887 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/553 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 08:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 08:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-393-gdca58fa Message-ID: <20170307133503.35903FA760@public.kitware.com> 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 dca58fa27995e5579b8ff52efbc0a20d00f9918d (commit) via 3bccdd89c88864839a0c8d4ea56bd069c90fa02b (commit) via 6856c659efc46b1400e14a64cf98c71257e4b24f (commit) via 7cb89f6732845cb5d79f82d9ca8f260c9cdddaae (commit) via c1ba262a978be2f033d72434b0106a771755660f (commit) via 485685fdd9dc4de8db8184c9f57f644575f1c129 (commit) from e66eec143c86cb36bc468b78583f689840156d99 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmLocalGenerator.cxx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 08:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 08:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-393-gdca58fa Message-ID: <20170307133503.57508FA761@public.kitware.com> 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 ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57 (commit) via dca58fa27995e5579b8ff52efbc0a20d00f9918d (commit) via 3bccdd89c88864839a0c8d4ea56bd069c90fa02b (commit) via 6856c659efc46b1400e14a64cf98c71257e4b24f (commit) via 7cb89f6732845cb5d79f82d9ca8f260c9cdddaae (commit) via c1ba262a978be2f033d72434b0106a771755660f (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 (ff178a4937d09a5b0dc8b869abdc0b8d3a07fd57) \ N -- N -- N (dca58fa27995e5579b8ff52efbc0a20d00f9918d) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 08:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 08:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-6-g6856c65 Message-ID: <20170307133503.6FC81FA762@public.kitware.com> 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, release has been updated via 6856c659efc46b1400e14a64cf98c71257e4b24f (commit) via 7cb89f6732845cb5d79f82d9ca8f260c9cdddaae (commit) via 723955cd2b562d4ffe0c9b4f8e524b110ec6f374 (commit) via c1ba262a978be2f033d72434b0106a771755660f (commit) via ea2a8dd268a31ad2562d23f41df90f134811d52c (commit) via 485685fdd9dc4de8db8184c9f57f644575f1c129 (commit) from e1adec32b8325fb731da084e99acd6070f5e39bf (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 2 +- Modules/FindVulkan.cmake | 1 + Source/cmLocalGenerator.cxx | 11 ++++------- 3 files changed, 6 insertions(+), 8 deletions(-) hooks/post-receive -- CMake From brad.king at kitware.com Tue Mar 7 08:58:31 2017 From: brad.king at kitware.com (Brad King) Date: Tue, 7 Mar 2017 08:58:31 -0500 (EST) Subject: [Cmake-commits] CMake branch, dashboard, updated. 11006a894ef27738942c08abc300f15906c0e5c9 Message-ID: <20170307135831.3272BFA54A@public.kitware.com> 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, dashboard has been updated via 11006a894ef27738942c08abc300f15906c0e5c9 (commit) via 6ae8f7ee32e6651dee7649d198c28c3a7c3694d7 (commit) from 0130a0f3e753f27bca5c07350a634f2d65f20a06 (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=11006a894ef27738942c08abc300f15906c0e5c9 commit 11006a894ef27738942c08abc300f15906c0e5c9 Author: Brad King AuthorDate: Wed Mar 1 16:27:15 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 08:51:45 2017 -0500 cmake_common: Implement nightly testing for stage-based workflow CMake is moving away from a manually-maintained `next` branch to a model where we maintain a "stage" for each target branch (e.g. `master`) that consists of the target branch plus some set of MRs merged on top of it. The job of this testing script is now to test one of the integration branches or one of their stage branches. Add infrastructure to create or convert the local test repository such that it has tracking branches for each stage branch. Select one to check out and follow for testing. diff --git a/cmake_common.cmake b/cmake_common.cmake index f702043..075920d 100644 --- a/cmake_common.cmake +++ b/cmake_common.cmake @@ -134,13 +134,22 @@ endif() # Select Git source to use. if(NOT DEFINED dashboard_git_url) - set(dashboard_git_url "git://cmake.org/cmake.git") + set(dashboard_git_url "https://gitlab.kitware.com/cmake/cmake.git") endif() if(NOT DEFINED dashboard_git_branch) if("${dashboard_model}" STREQUAL "Nightly") - set(dashboard_git_branch nightly) + set(dashboard_git_branch stage/master/nightly/latest) else() - set(dashboard_git_branch next) + set(dashboard_git_branch stage/master/head) + endif() +else() + # map values from outdated client scripts + if(dashboard_git_branch STREQUAL "nightly-master") + set(dashboard_git_branch follow/master/nightly) + elseif(dashboard_git_branch STREQUAL "nightly") + set(dashboard_git_branch stage/master/nightly/latest) + elseif(dashboard_git_branch STREQUAL "next") + set(dashboard_git_branch stage/master/head) endif() endif() if(NOT DEFINED dashboard_git_crlf) @@ -180,6 +189,18 @@ if(NOT DEFINED CTEST_BINARY_DIRECTORY) endif() endif() +macro(dashboard_git) + execute_process( + COMMAND ${CTEST_GIT_COMMAND} ${ARGN} + WORKING_DIRECTORY "${CTEST_SOURCE_DIRECTORY}" + OUTPUT_VARIABLE dashboard_git_output + ERROR_VARIABLE dashboard_git_output + RESULT_VARIABLE dashboard_git_failed + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_STRIP_TRAILING_WHITESPACE + ) +endmacro() + # Delete source tree if it is incompatible with current VCS. if(EXISTS ${CTEST_SOURCE_DIRECTORY}) if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}/.git") @@ -202,6 +223,13 @@ if(EXISTS ${CTEST_SOURCE_DIRECTORY}) endif() endif() +# Upstream non-head refs to treat like branches. +set(dashboard_git_extra_branches + stage/master/head # topics staged on master continuously + stage/master/nightly/latest # updated nightly to stage/master/head + follow/master/nightly # updated nightly to master + ) + # Support initial checkout if necessary. if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}" AND NOT DEFINED CTEST_CHECKOUT_COMMAND) @@ -210,7 +238,7 @@ if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}" set(ctest_checkout_script ${CTEST_DASHBOARD_ROOT}/${_name}-init.cmake) file(WRITE ${ctest_checkout_script} "# git repo init script for ${_name} execute_process( - COMMAND \"${CTEST_GIT_COMMAND}\" clone -n -b ${dashboard_git_branch} -- \"${dashboard_git_url}\" + COMMAND \"${CTEST_GIT_COMMAND}\" clone -n -- \"${dashboard_git_url}\" \"${CTEST_SOURCE_DIRECTORY}\" ) if(EXISTS \"${CTEST_SOURCE_DIRECTORY}/.git\") @@ -218,13 +246,75 @@ if(EXISTS \"${CTEST_SOURCE_DIRECTORY}/.git\") COMMAND \"${CTEST_GIT_COMMAND}\" config core.autocrlf ${dashboard_git_crlf} WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" ) + foreach(b ${dashboard_git_extra_branches}) + execute_process( + COMMAND \"${CTEST_GIT_COMMAND}\" config --add remote.origin.fetch +refs/\${b}:refs/remotes/origin/\${b} + WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" + ) + endforeach() execute_process( - COMMAND \"${CTEST_GIT_COMMAND}\" checkout + COMMAND \"${CTEST_GIT_COMMAND}\" fetch + WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" + ) + foreach(b ${dashboard_git_extra_branches}) + execute_process( + COMMAND \"${CTEST_GIT_COMMAND}\" branch \${b} origin/\${b} + WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" + ) + execute_process( + COMMAND \"${CTEST_GIT_COMMAND}\" config branch.\${b}.remote origin + WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" + ) + execute_process( + COMMAND \"${CTEST_GIT_COMMAND}\" config branch.\${b}.merge refs/\${b} + WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" + ) + endforeach() + execute_process( + COMMAND \"${CTEST_GIT_COMMAND}\" checkout ${dashboard_git_branch} WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" ) endif() ") set(CTEST_CHECKOUT_COMMAND "\"${CMAKE_COMMAND}\" -P \"${ctest_checkout_script}\"") +elseif(EXISTS "${CTEST_SOURCE_DIRECTORY}/.git") + # Upstream URL. + dashboard_git(config --get remote.origin.url) + if(NOT dashboard_git_output STREQUAL "${dashboard_git_url}") + dashboard_git(config remote.origin.url "${dashboard_git_url}") + endif() + + # Local refs for remote branches. + set(added_branches 0) + foreach(b ${dashboard_git_extra_branches}) + dashboard_git(rev-parse --verify -q refs/remotes/origin/${b}) + if(dashboard_git_failed) + dashboard_git(config --add remote.origin.fetch +refs/${b}:refs/remotes/origin/${b}) + set(added_branches 1) + endif() + endforeach() + if(added_branches) + dashboard_git(fetch origin) + endif() + + # Local branches. + foreach(b ${dashboard_git_extra_branches}) + dashboard_git(rev-parse --verify -q refs/heads/${b}) + if(dashboard_git_failed) + dashboard_git(branch ${b} origin/${b}) + dashboard_git(config branch.${b}.remote origin) + dashboard_git(config branch.${b}.merge refs/${b}) + endif() + endforeach() + + # Local checkout. + dashboard_git(symbolic-ref HEAD) + if(NOT dashboard_git_output STREQUAL "${dashboard_git_branch}") + dashboard_git(checkout ${dashboard_git_branch}) + if(dashboard_git_failed) + message(FATAL_ERROR "Failed to checkout branch ${dashboard_git_branch}:\n${dashboard_git_output}") + endif() + endif() endif() # Enable bootstrap build? https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ae8f7ee32e6651dee7649d198c28c3a7c3694d7 commit 6ae8f7ee32e6651dee7649d198c28c3a7c3694d7 Author: Brad King AuthorDate: Wed Mar 1 16:20:20 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 08:51:43 2017 -0500 cmake_common: Drop support for Git < 1.6.5 diff --git a/cmake_common.cmake b/cmake_common.cmake index 9ed0ccf..f702043 100644 --- a/cmake_common.cmake +++ b/cmake_common.cmake @@ -205,24 +205,12 @@ endif() # Support initial checkout if necessary. if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}" AND NOT DEFINED CTEST_CHECKOUT_COMMAND) - get_filename_component(_name "${CTEST_SOURCE_DIRECTORY}" NAME) - execute_process(COMMAND ${CTEST_GIT_COMMAND} --version OUTPUT_VARIABLE output) - string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+(\\.[0-9]+(\\.g[0-9a-f]+)?)?" GIT_VERSION "${output}") - if(NOT "${GIT_VERSION}" VERSION_LESS "1.6.5") - # Have "git clone -b " option. - set(git_branch_new "-b ${dashboard_git_branch}") - set(git_branch_old) - else() - # No "git clone -b " option. - set(git_branch_new) - set(git_branch_old "-b ${dashboard_git_branch} origin/${dashboard_git_branch}") - endif() - # Generate an initial checkout script. + get_filename_component(_name "${CTEST_SOURCE_DIRECTORY}" NAME) set(ctest_checkout_script ${CTEST_DASHBOARD_ROOT}/${_name}-init.cmake) file(WRITE ${ctest_checkout_script} "# git repo init script for ${_name} execute_process( - COMMAND \"${CTEST_GIT_COMMAND}\" clone -n ${git_branch_new} -- \"${dashboard_git_url}\" + COMMAND \"${CTEST_GIT_COMMAND}\" clone -n -b ${dashboard_git_branch} -- \"${dashboard_git_url}\" \"${CTEST_SOURCE_DIRECTORY}\" ) if(EXISTS \"${CTEST_SOURCE_DIRECTORY}/.git\") @@ -231,7 +219,7 @@ if(EXISTS \"${CTEST_SOURCE_DIRECTORY}/.git\") WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" ) execute_process( - COMMAND \"${CTEST_GIT_COMMAND}\" checkout ${git_branch_old} + COMMAND \"${CTEST_GIT_COMMAND}\" checkout WORKING_DIRECTORY \"${CTEST_SOURCE_DIRECTORY}\" ) endif() ----------------------------------------------------------------------- Summary of changes: cmake_common.cmake | 114 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 96 insertions(+), 18 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 09:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 09:35:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-397-gad772c2 Message-ID: <20170307143502.151B0FA6E3@public.kitware.com> 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 ad772c20e46456021e257b87b9c405b026f0f3a4 (commit) via bd8b5401cfb2088d5e5494d04236eda36278da8b (commit) via 9f25e120b4805b612c7abada2c1a02096c878fce (commit) via e2f25d3e8218fe0ae02680966b71cba8755d38de (commit) from dca58fa27995e5579b8ff52efbc0a20d00f9918d (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=ad772c20e46456021e257b87b9c405b026f0f3a4 commit ad772c20e46456021e257b87b9c405b026f0f3a4 Merge: 9f25e12 bd8b540 Author: Brad King AuthorDate: Tue Mar 7 14:31:16 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 09:31:18 2017 -0500 Stage topic 'fix_csharp_custom_targets' Topic-id: 22903 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/557 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bd8b5401cfb2088d5e5494d04236eda36278da8b commit bd8b5401cfb2088d5e5494d04236eda36278da8b Author: Michael St?rmer AuthorDate: Tue Mar 7 11:40:31 2017 +0100 Commit: Brad King CommitDate: Tue Mar 7 09:30:27 2017 -0500 VS: Do not treat custom targets as CSharp targets Fixes: #16697 diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index cc2536c..ced0c26 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -750,6 +750,10 @@ bool cmGlobalVisualStudioGenerator::TargetIsCSharpOnly( if (!gt->GetConfigCommonSourceFiles(sources)) { return false; } + // Only "real" targets are allowed to be C# targets. + if (gt->Target->GetType() > cmStateEnums::OBJECT_LIBRARY) { + return false; + } } gt->GetLanguages(languages, ""); if (languages.size() == 1) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9f25e120b4805b612c7abada2c1a02096c878fce commit 9f25e120b4805b612c7abada2c1a02096c878fce Merge: dca58fa e2f25d3 Author: Brad King AuthorDate: Tue Mar 7 14:27:10 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 09:27:13 2017 -0500 Stage topic 'fix-static-assert' Topic-id: 22892 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/555 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e2f25d3e8218fe0ae02680966b71cba8755d38de commit e2f25d3e8218fe0ae02680966b71cba8755d38de Author: Daniel Pfeifer AuthorDate: Mon Mar 6 20:52:09 2017 +0100 Commit: Daniel Pfeifer CommitDate: Mon Mar 6 20:52:09 2017 +0100 WriteCompilerDetectionHeader: fix STATIC_ASSERT fixes #16185 diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake index 0b16aa4..362099e 100644 --- a/Modules/WriteCompilerDetectionHeader.cmake +++ b/Modules/WriteCompilerDetectionHeader.cmake @@ -503,10 +503,19 @@ function(write_compiler_detection_header if (feature STREQUAL cxx_static_assert) set(def_value "${prefix_arg}_STATIC_ASSERT(X)") set(def_value_msg "${prefix_arg}_STATIC_ASSERT_MSG(X, MSG)") - set(static_assert_struct "template struct ${prefix_arg}StaticAssert;\ntemplate<> struct ${prefix_arg}StaticAssert{};\n") - set(def_standard "# define ${def_value} static_assert(X, #X)\n# define ${def_value_msg} static_assert(X, MSG)") - set(def_alternative "${static_assert_struct}# define ${def_value} sizeof(${prefix_arg}StaticAssert)\n# define ${def_value_msg} sizeof(${prefix_arg}StaticAssert)") - string(APPEND file_content "# if defined(${def_name}) && ${def_name}\n${def_standard}\n# else\n${def_alternative}\n# endif\n\n") + set(def_fallback "enum { ${prefix_arg}_STATIC_ASSERT_JOIN(${prefix_arg}StaticAssertEnum, __LINE__) = sizeof(${prefix_arg}StaticAssert) }") + string(APPEND file_content "# if defined(${def_name}) && ${def_name} +# define ${def_value} static_assert(X, #X) +# define ${def_value_msg} static_assert(X, MSG) +# else +# define ${prefix_arg}_STATIC_ASSERT_JOIN(X, Y) ${prefix_arg}_STATIC_ASSERT_JOIN_IMPL(X, Y) +# define ${prefix_arg}_STATIC_ASSERT_JOIN_IMPL(X, Y) X##Y +template struct ${prefix_arg}StaticAssert; +template<> struct ${prefix_arg}StaticAssert{}; +# define ${def_value} ${def_fallback} +# define ${def_value_msg} ${def_fallback} +# endif +\n") endif() if (feature STREQUAL cxx_alignas) set(def_value "${prefix_arg}_ALIGNAS(X)") diff --git a/Tests/Module/WriteCompilerDetectionHeader/main.cpp b/Tests/Module/WriteCompilerDetectionHeader/main.cpp index 192094c..9979cba 100644 --- a/Tests/Module/WriteCompilerDetectionHeader/main.cpp +++ b/Tests/Module/WriteCompilerDetectionHeader/main.cpp @@ -8,6 +8,9 @@ #error Expect no C features defined #endif +TEST_STATIC_ASSERT(true); +TEST_STATIC_ASSERT_MSG(true, "msg"); + int main() { return 0; diff --git a/Tests/Module/WriteCompilerDetectionHeader/multi_files.cpp b/Tests/Module/WriteCompilerDetectionHeader/multi_files.cpp index 1635091..d1f178f 100644 --- a/Tests/Module/WriteCompilerDetectionHeader/multi_files.cpp +++ b/Tests/Module/WriteCompilerDetectionHeader/multi_files.cpp @@ -8,6 +8,9 @@ #error Expect no C features defined #endif +MULTI_STATIC_ASSERT(true); +MULTI_STATIC_ASSERT_MSG(true, "msg"); + int main() { return 0; ----------------------------------------------------------------------- Summary of changes: Modules/WriteCompilerDetectionHeader.cmake | 17 +++++++++++++---- Source/cmGlobalVisualStudioGenerator.cxx | 4 ++++ Tests/Module/WriteCompilerDetectionHeader/main.cpp | 3 +++ .../WriteCompilerDetectionHeader/multi_files.cpp | 3 +++ 4 files changed, 23 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 10:15:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 10:15:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-399-gfc4565f Message-ID: <20170307151505.A4303F9D83@public.kitware.com> 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 fc4565fcf2b7c5537c78a3f521ccff04a86fa464 (commit) via 322425faca3fa6dca1356cdcb4c44ea8d46bc32a (commit) from ad772c20e46456021e257b87b9c405b026f0f3a4 (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=fc4565fcf2b7c5537c78a3f521ccff04a86fa464 commit fc4565fcf2b7c5537c78a3f521ccff04a86fa464 Merge: ad772c2 322425f Author: Brad King AuthorDate: Tue Mar 7 15:09:22 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 10:09:24 2017 -0500 Stage topic 'target-type-ordering-comment' Topic-id: 22907 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/560 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=322425faca3fa6dca1356cdcb4c44ea8d46bc32a commit 322425faca3fa6dca1356cdcb4c44ea8d46bc32a Author: Ben Boeckel AuthorDate: Tue Mar 7 09:30:07 2017 -0500 Commit: Ben Boeckel CommitDate: Tue Mar 7 09:30:07 2017 -0500 cmStateTypes: document that the ordering of targets is important The ordering is assumed in many places throughout the code and modification of the enumeration should be done carefully. diff --git a/Source/cmStateTypes.h b/Source/cmStateTypes.h index 2c974c1..da14cdb 100644 --- a/Source/cmStateTypes.h +++ b/Source/cmStateTypes.h @@ -27,6 +27,9 @@ enum SnapshotType VariableScopeType }; +// There are multiple overlapping ranges represented here. Be aware that adding +// a value to this enumeration may cause failures in numerous places which +// assume details about the ordering. enum TargetType { EXECUTABLE, ----------------------------------------------------------------------- Summary of changes: Source/cmStateTypes.h | 3 +++ 1 file changed, 3 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 11:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 11:25:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-396-g52d3926 Message-ID: <20170307162503.8D798FA4DD@public.kitware.com> 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 52d39264b49c18f6f1e98a2348e69cd679e389bc (commit) via 2927e437e0f6001270783958b5c3e447339e3cc7 (commit) via b55e19dd1f6a4d679d36ba9f006a10c291f6b5db (commit) from dca58fa27995e5579b8ff52efbc0a20d00f9918d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/README.rst | 8 ++++++-- Help/dev/review.rst | 18 ++++++++++-------- Help/dev/testing.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 Help/dev/testing.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 11:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 11:25:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-402-gb51484f Message-ID: <20170307162503.EECC9FA520@public.kitware.com> 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 fc4565fcf2b7c5537c78a3f521ccff04a86fa464 (commit) discards ad772c20e46456021e257b87b9c405b026f0f3a4 (commit) discards 9f25e120b4805b612c7abada2c1a02096c878fce (commit) via b51484f3bad25c2973be261f5487e6b01dd1497a (commit) via 10340c212344a89f912dcda4da0ae458aebcc341 (commit) via 648c956d3197677da768df3b7084ba2d12acc86b (commit) via 52d39264b49c18f6f1e98a2348e69cd679e389bc (commit) via 2927e437e0f6001270783958b5c3e447339e3cc7 (commit) via b55e19dd1f6a4d679d36ba9f006a10c291f6b5db (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 (fc4565fcf2b7c5537c78a3f521ccff04a86fa464) \ N -- N -- N (b51484f3bad25c2973be261f5487e6b01dd1497a) 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=b51484f3bad25c2973be261f5487e6b01dd1497a commit b51484f3bad25c2973be261f5487e6b01dd1497a Merge: 10340c2 322425f Author: Brad King AuthorDate: Tue Mar 7 15:09:22 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 11:24:32 2017 -0500 Stage topic 'target-type-ordering-comment' Topic-id: 22907 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/560 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=10340c212344a89f912dcda4da0ae458aebcc341 commit 10340c212344a89f912dcda4da0ae458aebcc341 Merge: 648c956 bd8b540 Author: Brad King AuthorDate: Tue Mar 7 14:31:16 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 11:24:32 2017 -0500 Stage topic 'fix_csharp_custom_targets' Topic-id: 22903 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/557 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=648c956d3197677da768df3b7084ba2d12acc86b commit 648c956d3197677da768df3b7084ba2d12acc86b Merge: 52d3926 e2f25d3 Author: Brad King AuthorDate: Tue Mar 7 14:27:10 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 11:24:31 2017 -0500 Stage topic 'fix-static-assert' Topic-id: 22892 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/555 ----------------------------------------------------------------------- Summary of changes: Help/dev/README.rst | 8 ++++++-- Help/dev/review.rst | 18 ++++++++++-------- Help/dev/testing.rst | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 Help/dev/testing.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 11:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 11:45:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-406-ga2fbb87 Message-ID: <20170307164502.B3939F6981@public.kitware.com> 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 a2fbb872bbdf459b40c2c026077714d4aeeb33b5 (commit) via 68df742d4488631167bbc292200ed467780c9883 (commit) via de6aa5e7332f9ff3715021d8bfef9bece407c6e3 (commit) via b0ad0c0397d0d1b415d907e3e4ebccf9e507125d (commit) from b51484f3bad25c2973be261f5487e6b01dd1497a (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=a2fbb872bbdf459b40c2c026077714d4aeeb33b5 commit a2fbb872bbdf459b40c2c026077714d4aeeb33b5 Merge: b51484f 68df742 Author: Brad King AuthorDate: Tue Mar 7 16:42:14 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 11:42:17 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=68df742d4488631167bbc292200ed467780c9883 commit 68df742d4488631167bbc292200ed467780c9883 Author: Brad King AuthorDate: Mon Mar 6 11:15:00 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 11:40:52 2017 -0500 Help: Add notes for topic 'x32-abi' diff --git a/Help/release/dev/x32-abi.rst b/Help/release/dev/x32-abi.rst new file mode 100644 index 0000000..7571fac --- /dev/null +++ b/Help/release/dev/x32-abi.rst @@ -0,0 +1,6 @@ +x32-abi +------- + +* The :command:`find_library` command learned to search ``libx32`` paths + when the build targets the ``x32`` ABI. See the + :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=de6aa5e7332f9ff3715021d8bfef9bece407c6e3 commit de6aa5e7332f9ff3715021d8bfef9bece407c6e3 Author: Steven Newbury AuthorDate: Mon Feb 27 21:17:28 2017 +0000 Commit: Brad King CommitDate: Tue Mar 7 11:40:51 2017 -0500 Modules: Add x32-abi support to hard-coded paths Update hard-coded library paths in bundled CMake Modules for libx32 as used with x32-abi. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 722ee15..b32feb5 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -1044,7 +1044,7 @@ function(cpack_rpm_prepare_content_list) endif() if(NOT DEFINED CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/include) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/libx32 /usr/include) if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION) if(CPACK_RPM_PACKAGE_DEBUG) message("CPackRPM:Debug: Adding ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION} to builtin omit list.") diff --git a/Modules/FindDevIL.cmake b/Modules/FindDevIL.cmake index 45fab82..4b868a2 100644 --- a/Modules/FindDevIL.cmake +++ b/Modules/FindDevIL.cmake @@ -45,7 +45,7 @@ find_path(IL_INCLUDE_DIR il.h find_library(IL_LIBRARIES NAMES IL DEVIL - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the base il library." ) @@ -53,7 +53,7 @@ find_library(IL_LIBRARIES find_library(ILUT_LIBRARIES NAMES ILUT - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the il (system?) utility library." ) @@ -61,7 +61,7 @@ find_library(ILUT_LIBRARIES find_library(ILU_LIBRARIES NAMES ILU - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the il utility library." ) diff --git a/Modules/FindGLEW.cmake b/Modules/FindGLEW.cmake index d8609e6..11e8724 100644 --- a/Modules/FindGLEW.cmake +++ b/Modules/FindGLEW.cmake @@ -27,7 +27,7 @@ find_path(GLEW_INCLUDE_DIR GL/glew.h) if(NOT GLEW_LIBRARY) - find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64) + find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32) find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64) include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 20d7924..2eca5f9 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -292,8 +292,10 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) find_path(GTK2_${_var}_INCLUDE_DIR ${_hdr} PATHS ${_gtk2_arch_dir} + /usr/local/libx32 /usr/local/lib64 /usr/local/lib + /usr/libx32 /usr/lib64 /usr/lib /usr/X11R6/include diff --git a/Modules/FindIce.cmake b/Modules/FindIce.cmake index a61d4a8..e0286ee 100644 --- a/Modules/FindIce.cmake +++ b/Modules/FindIce.cmake @@ -198,7 +198,7 @@ function(_Ice_FIND) endif() # Generic 64-bit and 32-bit directories list(APPEND ice_binary_suffixes "bin${_x64}" "bin") - list(APPEND ice_library_suffixes "${_lib64}" "lib${_x64}" "lib") + list(APPEND ice_library_suffixes "libx32" "${_lib64}" "lib${_x64}" "lib") list(APPEND ice_include_suffixes "include") list(APPEND ice_slice_suffixes "slice") diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake index 62e2a50..03216a5 100644 --- a/Modules/FindKDE3.cmake +++ b/Modules/FindKDE3.cmake @@ -221,6 +221,8 @@ get_filename_component(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH ) if(NOT KDE3_LIBTOOL_DIR) if(KDE3_KDECORE_LIBRARY MATCHES lib64) set(KDE3_LIBTOOL_DIR /lib64/kde3) + elseif(KDE3_KDECORE_LIBRARY MATCHES libx32) + set(KDE3_LIBTOOL_DIR /libx32/kde3) else() set(KDE3_LIBTOOL_DIR /lib/kde3) endif() diff --git a/Modules/FindOpenAL.cmake b/Modules/FindOpenAL.cmake index 8622b4c..c3d202e 100644 --- a/Modules/FindOpenAL.cmake +++ b/Modules/FindOpenAL.cmake @@ -79,7 +79,7 @@ find_library(OPENAL_LIBRARY NAMES OpenAL al openal OpenAL32 HINTS ENV OPENALDIR - PATH_SUFFIXES lib64 lib libs64 libs ${_OpenAL_ARCH_DIR} + PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR} PATHS ~/Library/Frameworks /Library/Frameworks diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 417af7c..a3b97ab 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -521,7 +521,7 @@ function(gp_resolved_file_type original_file file exepath dirs type_var) string(TOLOWER "${resolved_file}" lower) if(UNIX) - if(resolved_file MATCHES "^(/lib/|/lib32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)") + if(resolved_file MATCHES "^(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)") set(is_system 1) endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b0ad0c0397d0d1b415d907e3e4ebccf9e507125d commit b0ad0c0397d0d1b415d907e3e4ebccf9e507125d Author: Steven Newbury AuthorDate: Mon Feb 27 21:06:51 2017 +0000 Commit: Brad King CommitDate: Tue Mar 7 11:40:51 2017 -0500 Add support for x32-abi Detect x32-abi through CMakeCompilerABI infrastruture and use this information at runtime to determine the correct library paths with `FIND_LIBRARY_USE_LIBX32_PATHS`. Fixes: #15994 diff --git a/Help/command/find_library.rst b/Help/command/find_library.rst index e912040..f774f17 100644 --- a/Help/command/find_library.rst +++ b/Help/command/find_library.rst @@ -53,7 +53,8 @@ If the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable is set all search paths will be tested as normal, with the suffix appended, and with all matches of ``lib/`` replaced with ``lib${CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}/``. This variable overrides -the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` +the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS`, +:prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS`, and :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global properties. If the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global property is set @@ -63,6 +64,13 @@ automatically set for the platforms that are known to need it if at least one of the languages supported by the :command:`project` command is enabled. +If the :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property is set +all search paths will be tested as normal, with ``x32/`` appended, and +with all matches of ``lib/`` replaced with ``libx32/``. This property is +automatically set for the platforms that are known to need it if at +least one of the languages supported by the :command:`project` command +is enabled. + If the :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global property is set all search paths will be tested as normal, with ``64/`` appended, and with all matches of ``lib/`` replaced with ``lib64/``. This property is diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 5bd6365..2157ba5 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -26,6 +26,7 @@ Properties of Global Scope /prop_gbl/ENABLED_LANGUAGES /prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS /prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS + /prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS /prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING /prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE /prop_gbl/GLOBAL_DEPENDS_NO_CYCLES diff --git a/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst b/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst new file mode 100644 index 0000000..b87b09b --- /dev/null +++ b/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst @@ -0,0 +1,12 @@ +FIND_LIBRARY_USE_LIBX32_PATHS +----------------------------- + +Whether the :command:`find_library` command should automatically search +``libx32`` directories. + +``FIND_LIBRARY_USE_LIBX32_PATHS`` is a boolean specifying whether the +:command:`find_library` command should automatically search the ``libx32`` +variant of directories called ``lib`` in the search path when building +x32-abi binaries. + +See also the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable. diff --git a/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst index f7c6524..ada8955 100644 --- a/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst +++ b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst @@ -9,3 +9,4 @@ This overrides the behavior of related global properties: * :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` * :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` +* :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` diff --git a/Modules/CMakeCompilerABI.h b/Modules/CMakeCompilerABI.h index f2714b4..ad481d6 100644 --- a/Modules/CMakeCompilerABI.h +++ b/Modules/CMakeCompilerABI.h @@ -25,6 +25,10 @@ const char info_sizeof_dptr[] = { #elif defined(__GNU__) && defined(__ELF__) && defined(__ARMEL__) #define ABI_ID "ELF ARM" +#elif defined(__linux__) && defined(__ELF__) && defined(__amd64__) && \ + defined(__ILP32__) +#define ABI_ID "ELF X32" + #elif defined(__ELF__) #define ABI_ID "ELF" #endif diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index a69081f..54572f0 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -312,6 +312,10 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma if(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) list(APPEND _lib_dirs "lib64/pkgconfig") endif() + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + list(APPEND _lib_dirs "libx32/pkgconfig") + endif() endif() endif() list(APPEND _lib_dirs "lib/pkgconfig") diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index b216d03..c1d2c03 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -86,3 +86,4 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES # Enable use of lib32 and lib64 search path variants by default. set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE) set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS TRUE) diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 64ea3c8..3b76a87 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -195,8 +195,10 @@ void cmExportInstallFileGenerator::GenerateImportPrefix(std::ostream& os) << " \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n"; if (cmHasLiteralPrefix(absDestS.c_str(), "/lib/") || cmHasLiteralPrefix(absDestS.c_str(), "/lib64/") || + cmHasLiteralPrefix(absDestS.c_str(), "/libx32/") || cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib/") || - cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib64/")) { + cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib64/") || + cmHasLiteralPrefix(absDestS.c_str(), "/usr/libx32/")) { // Handle "/usr move" symlinks created by some Linux distros. /* clang-format off */ os << diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index 69f9078..e92d672 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -43,7 +43,8 @@ bool cmFindLibraryCommand::InitialPass(std::vector const& argsIn, return true; } - // add custom lib paths instead of using fixed lib32 or lib64 + // add custom lib paths instead of using fixed lib32, lib64 or + // libx32 if (const char* customLib = this->Makefile->GetDefinition( "CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX")) { this->AddArchitecturePaths(customLib); @@ -60,6 +61,12 @@ bool cmFindLibraryCommand::InitialPass(std::vector const& argsIn, "FIND_LIBRARY_USE_LIB64_PATHS")) { this->AddArchitecturePaths("64"); } + // add special 32 bit paths if this is an x32 compile. + else if (this->Makefile->PlatformIsx32() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIBX32_PATHS")) { + this->AddArchitecturePaths("x32"); + } std::string library = this->FindLibrary(); if (library != "") { diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 60de74f..4b29837 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -92,6 +92,7 @@ cmFindPackageCommand::cmFindPackageCommand() this->DebugMode = false; this->UseLib32Paths = false; this->UseLib64Paths = false; + this->UseLibx32Paths = false; this->PolicyScope = true; this->VersionMajor = 0; this->VersionMinor = 0; @@ -173,6 +174,13 @@ bool cmFindPackageCommand::InitialPass(std::vector const& args, this->UseLib64Paths = true; } + // Lookup whether libx32 paths should be used. + if (this->Makefile->PlatformIsx32() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIBX32_PATHS")) { + this->UseLibx32Paths = true; + } + // Check if User Package Registry should be disabled if (this->Makefile->IsOn("CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY")) { this->NoUserRegistry = true; @@ -2002,6 +2010,9 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in) if (this->UseLib64Paths) { common.push_back("lib64"); } + if (this->UseLibx32Paths) { + common.push_back("libx32"); + } common.push_back("lib"); common.push_back("share"); diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h index d454892..61a8dd6 100644 --- a/Source/cmFindPackageCommand.h +++ b/Source/cmFindPackageCommand.h @@ -169,6 +169,7 @@ private: bool DebugMode; bool UseLib32Paths; bool UseLib64Paths; + bool UseLibx32Paths; bool PolicyScope; std::string LibraryArchitecture; std::vector Names; diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c75d101..66e01fe 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2149,6 +2149,12 @@ bool cmMakefile::IsSet(const std::string& name) const bool cmMakefile::PlatformIs32Bit() const { + if (const char* plat_abi = + this->GetDefinition("CMAKE_INTERNAL_PLATFORM_ABI")) { + if (strcmp(plat_abi, "ELF X32") == 0) { + return false; + } + } if (const char* sizeof_dptr = this->GetDefinition("CMAKE_SIZEOF_VOID_P")) { return atoi(sizeof_dptr) == 4; } @@ -2163,6 +2169,16 @@ bool cmMakefile::PlatformIs64Bit() const return false; } +bool cmMakefile::PlatformIsx32() const +{ + if (const char* plat_abi = + this->GetDefinition("CMAKE_INTERNAL_PLATFORM_ABI")) { + if (strcmp(plat_abi, "ELF X32") == 0) + return true; + } + return false; +} + bool cmMakefile::PlatformIsAppleIos() const { std::string sdkRoot; diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 4d5ce98..4e48c88 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -436,6 +436,8 @@ public: /** Return whether the target platform is 64-bit. */ bool PlatformIs64Bit() const; + /** Return whether the target platform is x32. */ + bool PlatformIsx32() const; /** Return whether the target platform is Apple iOS. */ bool PlatformIsAppleIos() const; ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +++++++++- Help/manual/cmake-properties.7.rst | 1 + ...B32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++++++------- Help/release/dev/x32-abi.rst | 6 ++++++ Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Modules/CMakeCompilerABI.h | 4 ++++ Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 ++ Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 ++ Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Source/cmExportInstallFileGenerator.cxx | 4 +++- Source/cmFindLibraryCommand.cxx | 9 ++++++++- Source/cmFindPackageCommand.cxx | 11 +++++++++++ Source/cmFindPackageCommand.h | 1 + Source/cmMakefile.cxx | 16 ++++++++++++++++ Source/cmMakefile.h | 2 ++ 22 files changed, 86 insertions(+), 18 deletions(-) copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 11:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 11:55:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-408-gf986793 Message-ID: <20170307165502.D4346FA54A@public.kitware.com> 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 f9867934158a7f067202d89dd683b1e8ed1010f3 (commit) via f5c4dada1bf8bf6463d1128065b3f85e78935ecf (commit) from a2fbb872bbdf459b40c2c026077714d4aeeb33b5 (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=f9867934158a7f067202d89dd683b1e8ed1010f3 commit f9867934158a7f067202d89dd683b1e8ed1010f3 Merge: a2fbb87 f5c4dad Author: Brad King AuthorDate: Tue Mar 7 16:53:40 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 11:53:43 2017 -0500 Stage topic 'cmake-server-aix' Topic-id: 22915 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/562 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f5c4dada1bf8bf6463d1128065b3f85e78935ecf commit f5c4dada1bf8bf6463d1128065b3f85e78935ecf Author: Brad King AuthorDate: Tue Mar 7 11:50:17 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 11:50:17 2017 -0500 cmFileMonitor.h: Include cmConfigure.h first We need this to make Large File Support definitions consistent with other translation units. diff --git a/Source/cmFileMonitor.h b/Source/cmFileMonitor.h index 48169b8..2957328 100644 --- a/Source/cmFileMonitor.h +++ b/Source/cmFileMonitor.h @@ -2,6 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once +#include // IWYU pragma: keep + #include #include #include ----------------------------------------------------------------------- Summary of changes: Source/cmFileMonitor.h | 2 ++ 1 file changed, 2 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 13:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 13:35:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-410-gd0791d8 Message-ID: <20170307183502.E7995FA661@public.kitware.com> 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 d0791d846e7e09fec819acb3660803cd286efa9e (commit) via 613b3e49a009c4b3c39909c803d2c8b383a8c14f (commit) from f9867934158a7f067202d89dd683b1e8ed1010f3 (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=d0791d846e7e09fec819acb3660803cd286efa9e commit d0791d846e7e09fec819acb3660803cd286efa9e Merge: f986793 613b3e4 Author: Brad King AuthorDate: Tue Mar 7 18:28:55 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 13:28:58 2017 -0500 Stage topic 'cuda-test-spelling' Topic-id: 22917 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/563 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=613b3e49a009c4b3c39909c803d2c8b383a8c14f commit 613b3e49a009c4b3c39909c803d2c8b383a8c14f Author: Brad King AuthorDate: Tue Mar 7 13:26:01 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 13:26:01 2017 -0500 CUDA: Fix spelling of CudaOnly.SeparateCompilation test targets diff --git a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt index d134b96..420d7a9 100644 --- a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt +++ b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt @@ -12,22 +12,22 @@ project (CudaOnlySeparateCompilation CUDA) string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=compute_30") set(CMAKE_CXX_STANDARD 11) set(CMAKE_CUDA_STANDARD 11) -add_library(CUDASerarateLibA STATIC file1.cu file2.cu file3.cu) +add_library(CUDASeparateLibA STATIC file1.cu file2.cu file3.cu) #Having file4/file5 in a shared library causes serious problems #with the nvcc linker and it will generate bad entries that will #cause a segv when trying to run the executable # -add_library(CUDASerarateLibB STATIC file4.cu file5.cu) -target_link_libraries(CUDASerarateLibB PRIVATE CUDASerarateLibA) +add_library(CUDASeparateLibB STATIC file4.cu file5.cu) +target_link_libraries(CUDASeparateLibB PRIVATE CUDASeparateLibA) add_executable(CudaOnlySeparateCompilation main.cu) -target_link_libraries(CudaOnlySeparateCompilation PRIVATE CUDASerarateLibB) +target_link_libraries(CudaOnlySeparateCompilation PRIVATE CUDASeparateLibB) -set_target_properties( CUDASerarateLibA - CUDASerarateLibB +set_target_properties( CUDASeparateLibA + CUDASeparateLibB PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -set_target_properties( CUDASerarateLibA - CUDASerarateLibB +set_target_properties( CUDASeparateLibA + CUDASeparateLibB PROPERTIES POSITION_INDEPENDENT_CODE ON) ----------------------------------------------------------------------- Summary of changes: Tests/CudaOnly/SeparateCompilation/CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 15:25:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 15:25:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-406-ge66966f Message-ID: <20170307202506.25CFEF9DC0@public.kitware.com> 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 d0791d846e7e09fec819acb3660803cd286efa9e (commit) discards f9867934158a7f067202d89dd683b1e8ed1010f3 (commit) discards a2fbb872bbdf459b40c2c026077714d4aeeb33b5 (commit) discards 68df742d4488631167bbc292200ed467780c9883 (commit) discards de6aa5e7332f9ff3715021d8bfef9bece407c6e3 (commit) discards b0ad0c0397d0d1b415d907e3e4ebccf9e507125d (commit) via e66966fb2564ae0ec8eac4c1a710c34ba98033ba (commit) via 0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 (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 (d0791d846e7e09fec819acb3660803cd286efa9e) \ N -- N -- N (e66966fb2564ae0ec8eac4c1a710c34ba98033ba) 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=e66966fb2564ae0ec8eac4c1a710c34ba98033ba commit e66966fb2564ae0ec8eac4c1a710c34ba98033ba Merge: 0d5670a 613b3e4 Author: Brad King AuthorDate: Tue Mar 7 18:28:55 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 15:24:16 2017 -0500 Stage topic 'cuda-test-spelling' Topic-id: 22917 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/563 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 commit 0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 Merge: b51484f f5c4dad Author: Brad King AuthorDate: Tue Mar 7 16:53:40 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 15:24:16 2017 -0500 Stage topic 'cmake-server-aix' Topic-id: 22915 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/562 ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +--------- Help/manual/cmake-properties.7.rst | 1 - Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst | 12 ------------ Help/release/dev/x32-abi.rst | 6 ------ Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 - Modules/CMakeCompilerABI.h | 4 ---- Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 -- Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 -- Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ---- Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 - Source/cmExportInstallFileGenerator.cxx | 4 +--- Source/cmFindLibraryCommand.cxx | 9 +-------- Source/cmFindPackageCommand.cxx | 11 ----------- Source/cmFindPackageCommand.h | 1 - Source/cmMakefile.cxx | 16 ---------------- Source/cmMakefile.h | 2 -- 22 files changed, 11 insertions(+), 91 deletions(-) delete mode 100644 Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst delete mode 100644 Help/release/dev/x32-abi.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 15:35:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 15:35:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-410-gf8b3d13 Message-ID: <20170307203504.3202BFA4C9@public.kitware.com> 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 f8b3d1328b4e3c58c3958354dd15f74f1e138f07 (commit) via 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) via bed9c73decfcda0366984d990045e588928440ec (commit) via 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) from e66966fb2564ae0ec8eac4c1a710c34ba98033ba (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=f8b3d1328b4e3c58c3958354dd15f74f1e138f07 commit f8b3d1328b4e3c58c3958354dd15f74f1e138f07 Merge: e66966f 5b6d354 Author: Brad King AuthorDate: Tue Mar 7 20:26:16 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 7 15:26:24 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b6d354f70e1faddb006a7c98479f5d655a07b87 commit 5b6d354f70e1faddb006a7c98479f5d655a07b87 Author: Brad King AuthorDate: Mon Mar 6 11:15:00 2017 -0500 Commit: Brad King CommitDate: Tue Mar 7 15:22:55 2017 -0500 Help: Add notes for topic 'x32-abi' diff --git a/Help/release/dev/x32-abi.rst b/Help/release/dev/x32-abi.rst new file mode 100644 index 0000000..7571fac --- /dev/null +++ b/Help/release/dev/x32-abi.rst @@ -0,0 +1,6 @@ +x32-abi +------- + +* The :command:`find_library` command learned to search ``libx32`` paths + when the build targets the ``x32`` ABI. See the + :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bed9c73decfcda0366984d990045e588928440ec commit bed9c73decfcda0366984d990045e588928440ec Author: Steven Newbury AuthorDate: Mon Feb 27 21:17:28 2017 +0000 Commit: Brad King CommitDate: Tue Mar 7 15:22:55 2017 -0500 Modules: Add x32-abi support to hard-coded paths Update hard-coded library paths in bundled CMake Modules for libx32 as used with x32-abi. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 722ee15..b32feb5 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -1044,7 +1044,7 @@ function(cpack_rpm_prepare_content_list) endif() if(NOT DEFINED CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/include) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/libx32 /usr/include) if(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION) if(CPACK_RPM_PACKAGE_DEBUG) message("CPackRPM:Debug: Adding ${CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION} to builtin omit list.") diff --git a/Modules/FindDevIL.cmake b/Modules/FindDevIL.cmake index 45fab82..4b868a2 100644 --- a/Modules/FindDevIL.cmake +++ b/Modules/FindDevIL.cmake @@ -45,7 +45,7 @@ find_path(IL_INCLUDE_DIR il.h find_library(IL_LIBRARIES NAMES IL DEVIL - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the base il library." ) @@ -53,7 +53,7 @@ find_library(IL_LIBRARIES find_library(ILUT_LIBRARIES NAMES ILUT - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the il (system?) utility library." ) @@ -61,7 +61,7 @@ find_library(ILUT_LIBRARIES find_library(ILU_LIBRARIES NAMES ILU - PATH_SUFFIXES lib64 lib lib32 + PATH_SUFFIXES libx32 lib64 lib lib32 DOC "The file that corresponds to the il utility library." ) diff --git a/Modules/FindGLEW.cmake b/Modules/FindGLEW.cmake index d8609e6..11e8724 100644 --- a/Modules/FindGLEW.cmake +++ b/Modules/FindGLEW.cmake @@ -27,7 +27,7 @@ find_path(GLEW_INCLUDE_DIR GL/glew.h) if(NOT GLEW_LIBRARY) - find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64) + find_library(GLEW_LIBRARY_RELEASE NAMES GLEW glew32 glew glew32s PATH_SUFFIXES lib64 libx32) find_library(GLEW_LIBRARY_DEBUG NAMES GLEWd glew32d glewd PATH_SUFFIXES lib64) include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 20d7924..2eca5f9 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -292,8 +292,10 @@ function(_GTK2_FIND_INCLUDE_DIR _var _hdr) find_path(GTK2_${_var}_INCLUDE_DIR ${_hdr} PATHS ${_gtk2_arch_dir} + /usr/local/libx32 /usr/local/lib64 /usr/local/lib + /usr/libx32 /usr/lib64 /usr/lib /usr/X11R6/include diff --git a/Modules/FindIce.cmake b/Modules/FindIce.cmake index a61d4a8..e0286ee 100644 --- a/Modules/FindIce.cmake +++ b/Modules/FindIce.cmake @@ -198,7 +198,7 @@ function(_Ice_FIND) endif() # Generic 64-bit and 32-bit directories list(APPEND ice_binary_suffixes "bin${_x64}" "bin") - list(APPEND ice_library_suffixes "${_lib64}" "lib${_x64}" "lib") + list(APPEND ice_library_suffixes "libx32" "${_lib64}" "lib${_x64}" "lib") list(APPEND ice_include_suffixes "include") list(APPEND ice_slice_suffixes "slice") diff --git a/Modules/FindKDE3.cmake b/Modules/FindKDE3.cmake index 62e2a50..03216a5 100644 --- a/Modules/FindKDE3.cmake +++ b/Modules/FindKDE3.cmake @@ -221,6 +221,8 @@ get_filename_component(KDE3_LIB_DIR ${KDE3_KDECORE_LIBRARY} PATH ) if(NOT KDE3_LIBTOOL_DIR) if(KDE3_KDECORE_LIBRARY MATCHES lib64) set(KDE3_LIBTOOL_DIR /lib64/kde3) + elseif(KDE3_KDECORE_LIBRARY MATCHES libx32) + set(KDE3_LIBTOOL_DIR /libx32/kde3) else() set(KDE3_LIBTOOL_DIR /lib/kde3) endif() diff --git a/Modules/FindOpenAL.cmake b/Modules/FindOpenAL.cmake index 8622b4c..c3d202e 100644 --- a/Modules/FindOpenAL.cmake +++ b/Modules/FindOpenAL.cmake @@ -79,7 +79,7 @@ find_library(OPENAL_LIBRARY NAMES OpenAL al openal OpenAL32 HINTS ENV OPENALDIR - PATH_SUFFIXES lib64 lib libs64 libs ${_OpenAL_ARCH_DIR} + PATH_SUFFIXES libx32 lib64 lib libs64 libs ${_OpenAL_ARCH_DIR} PATHS ~/Library/Frameworks /Library/Frameworks diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 417af7c..a3b97ab 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -521,7 +521,7 @@ function(gp_resolved_file_type original_file file exepath dirs type_var) string(TOLOWER "${resolved_file}" lower) if(UNIX) - if(resolved_file MATCHES "^(/lib/|/lib32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)") + if(resolved_file MATCHES "^(/lib/|/lib32/|/libx32/|/lib64/|/usr/lib/|/usr/lib32/|/usr/libx32/|/usr/lib64/|/usr/X11R6/|/usr/bin/)") set(is_system 1) endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=462cf254270fbd56bffc73b00dc28882fdb0bdd6 commit 462cf254270fbd56bffc73b00dc28882fdb0bdd6 Author: Steven Newbury AuthorDate: Mon Feb 27 21:06:51 2017 +0000 Commit: Brad King CommitDate: Tue Mar 7 15:22:55 2017 -0500 Add support for x32-abi Detect x32-abi through CMakeCompilerABI infrastruture and use this information at runtime to determine the correct library paths with `FIND_LIBRARY_USE_LIBX32_PATHS`. Fixes: #15994 diff --git a/Help/command/find_library.rst b/Help/command/find_library.rst index e912040..f774f17 100644 --- a/Help/command/find_library.rst +++ b/Help/command/find_library.rst @@ -53,7 +53,8 @@ If the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable is set all search paths will be tested as normal, with the suffix appended, and with all matches of ``lib/`` replaced with ``lib${CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX}/``. This variable overrides -the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` +the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS`, +:prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS`, and :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global properties. If the :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` global property is set @@ -63,6 +64,13 @@ automatically set for the platforms that are known to need it if at least one of the languages supported by the :command:`project` command is enabled. +If the :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` global property is set +all search paths will be tested as normal, with ``x32/`` appended, and +with all matches of ``lib/`` replaced with ``libx32/``. This property is +automatically set for the platforms that are known to need it if at +least one of the languages supported by the :command:`project` command +is enabled. + If the :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` global property is set all search paths will be tested as normal, with ``64/`` appended, and with all matches of ``lib/`` replaced with ``lib64/``. This property is diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 5bd6365..2157ba5 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -26,6 +26,7 @@ Properties of Global Scope /prop_gbl/ENABLED_LANGUAGES /prop_gbl/FIND_LIBRARY_USE_LIB32_PATHS /prop_gbl/FIND_LIBRARY_USE_LIB64_PATHS + /prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS /prop_gbl/FIND_LIBRARY_USE_OPENBSD_VERSIONING /prop_gbl/GLOBAL_DEPENDS_DEBUG_MODE /prop_gbl/GLOBAL_DEPENDS_NO_CYCLES diff --git a/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst b/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst new file mode 100644 index 0000000..b87b09b --- /dev/null +++ b/Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst @@ -0,0 +1,12 @@ +FIND_LIBRARY_USE_LIBX32_PATHS +----------------------------- + +Whether the :command:`find_library` command should automatically search +``libx32`` directories. + +``FIND_LIBRARY_USE_LIBX32_PATHS`` is a boolean specifying whether the +:command:`find_library` command should automatically search the ``libx32`` +variant of directories called ``lib`` in the search path when building +x32-abi binaries. + +See also the :variable:`CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX` variable. diff --git a/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst index f7c6524..ada8955 100644 --- a/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst +++ b/Help/variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst @@ -9,3 +9,4 @@ This overrides the behavior of related global properties: * :prop_gbl:`FIND_LIBRARY_USE_LIB32_PATHS` * :prop_gbl:`FIND_LIBRARY_USE_LIB64_PATHS` +* :prop_gbl:`FIND_LIBRARY_USE_LIBX32_PATHS` diff --git a/Modules/CMakeCompilerABI.h b/Modules/CMakeCompilerABI.h index f2714b4..ad481d6 100644 --- a/Modules/CMakeCompilerABI.h +++ b/Modules/CMakeCompilerABI.h @@ -25,6 +25,10 @@ const char info_sizeof_dptr[] = { #elif defined(__GNU__) && defined(__ELF__) && defined(__ARMEL__) #define ABI_ID "ELF ARM" +#elif defined(__linux__) && defined(__ELF__) && defined(__amd64__) && \ + defined(__ILP32__) +#define ABI_ID "ELF X32" + #elif defined(__ELF__) #define ABI_ID "ELF" #endif diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index a69081f..54572f0 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -312,6 +312,10 @@ macro(_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cma if(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) list(APPEND _lib_dirs "lib64/pkgconfig") endif() + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + list(APPEND _lib_dirs "libx32/pkgconfig") + endif() endif() endif() list(APPEND _lib_dirs "lib/pkgconfig") diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index b216d03..c1d2c03 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -86,3 +86,4 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES # Enable use of lib32 and lib64 search path variants by default. set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE) set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS TRUE) diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx index 64ea3c8..3b76a87 100644 --- a/Source/cmExportInstallFileGenerator.cxx +++ b/Source/cmExportInstallFileGenerator.cxx @@ -195,8 +195,10 @@ void cmExportInstallFileGenerator::GenerateImportPrefix(std::ostream& os) << " \"${CMAKE_CURRENT_LIST_FILE}\" PATH)\n"; if (cmHasLiteralPrefix(absDestS.c_str(), "/lib/") || cmHasLiteralPrefix(absDestS.c_str(), "/lib64/") || + cmHasLiteralPrefix(absDestS.c_str(), "/libx32/") || cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib/") || - cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib64/")) { + cmHasLiteralPrefix(absDestS.c_str(), "/usr/lib64/") || + cmHasLiteralPrefix(absDestS.c_str(), "/usr/libx32/")) { // Handle "/usr move" symlinks created by some Linux distros. /* clang-format off */ os << diff --git a/Source/cmFindLibraryCommand.cxx b/Source/cmFindLibraryCommand.cxx index 69f9078..e92d672 100644 --- a/Source/cmFindLibraryCommand.cxx +++ b/Source/cmFindLibraryCommand.cxx @@ -43,7 +43,8 @@ bool cmFindLibraryCommand::InitialPass(std::vector const& argsIn, return true; } - // add custom lib paths instead of using fixed lib32 or lib64 + // add custom lib paths instead of using fixed lib32, lib64 or + // libx32 if (const char* customLib = this->Makefile->GetDefinition( "CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX")) { this->AddArchitecturePaths(customLib); @@ -60,6 +61,12 @@ bool cmFindLibraryCommand::InitialPass(std::vector const& argsIn, "FIND_LIBRARY_USE_LIB64_PATHS")) { this->AddArchitecturePaths("64"); } + // add special 32 bit paths if this is an x32 compile. + else if (this->Makefile->PlatformIsx32() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIBX32_PATHS")) { + this->AddArchitecturePaths("x32"); + } std::string library = this->FindLibrary(); if (library != "") { diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 60de74f..4b29837 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -92,6 +92,7 @@ cmFindPackageCommand::cmFindPackageCommand() this->DebugMode = false; this->UseLib32Paths = false; this->UseLib64Paths = false; + this->UseLibx32Paths = false; this->PolicyScope = true; this->VersionMajor = 0; this->VersionMinor = 0; @@ -173,6 +174,13 @@ bool cmFindPackageCommand::InitialPass(std::vector const& args, this->UseLib64Paths = true; } + // Lookup whether libx32 paths should be used. + if (this->Makefile->PlatformIsx32() && + this->Makefile->GetState()->GetGlobalPropertyAsBool( + "FIND_LIBRARY_USE_LIBX32_PATHS")) { + this->UseLibx32Paths = true; + } + // Check if User Package Registry should be disabled if (this->Makefile->IsOn("CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY")) { this->NoUserRegistry = true; @@ -2002,6 +2010,9 @@ bool cmFindPackageCommand::SearchPrefix(std::string const& prefix_in) if (this->UseLib64Paths) { common.push_back("lib64"); } + if (this->UseLibx32Paths) { + common.push_back("libx32"); + } common.push_back("lib"); common.push_back("share"); diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h index d454892..61a8dd6 100644 --- a/Source/cmFindPackageCommand.h +++ b/Source/cmFindPackageCommand.h @@ -169,6 +169,7 @@ private: bool DebugMode; bool UseLib32Paths; bool UseLib64Paths; + bool UseLibx32Paths; bool PolicyScope; std::string LibraryArchitecture; std::vector Names; diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c75d101..da32dd7 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -2149,6 +2149,12 @@ bool cmMakefile::IsSet(const std::string& name) const bool cmMakefile::PlatformIs32Bit() const { + if (const char* plat_abi = + this->GetDefinition("CMAKE_INTERNAL_PLATFORM_ABI")) { + if (strcmp(plat_abi, "ELF X32") == 0) { + return false; + } + } if (const char* sizeof_dptr = this->GetDefinition("CMAKE_SIZEOF_VOID_P")) { return atoi(sizeof_dptr) == 4; } @@ -2163,6 +2169,17 @@ bool cmMakefile::PlatformIs64Bit() const return false; } +bool cmMakefile::PlatformIsx32() const +{ + if (const char* plat_abi = + this->GetDefinition("CMAKE_INTERNAL_PLATFORM_ABI")) { + if (strcmp(plat_abi, "ELF X32") == 0) { + return true; + } + } + return false; +} + bool cmMakefile::PlatformIsAppleIos() const { std::string sdkRoot; diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 4d5ce98..4e48c88 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -436,6 +436,8 @@ public: /** Return whether the target platform is 64-bit. */ bool PlatformIs64Bit() const; + /** Return whether the target platform is x32. */ + bool PlatformIsx32() const; /** Return whether the target platform is Apple iOS. */ bool PlatformIsAppleIos() const; ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +++++++++- Help/manual/cmake-properties.7.rst | 1 + ...32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++++++------- Help/release/dev/x32-abi.rst | 6 ++++++ .../variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Modules/CMakeCompilerABI.h | 4 ++++ Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 ++ Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 ++ Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Source/cmExportInstallFileGenerator.cxx | 4 +++- Source/cmFindLibraryCommand.cxx | 9 ++++++++- Source/cmFindPackageCommand.cxx | 11 +++++++++++ Source/cmFindPackageCommand.h | 1 + Source/cmMakefile.cxx | 17 +++++++++++++++++ Source/cmMakefile.h | 2 ++ 22 files changed, 87 insertions(+), 18 deletions(-) copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 20:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 20:05:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-410-gf8b3d13 Message-ID: <20170308010510.EA582FA3E7@public.kitware.com> 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, nightly has been updated discards f7085d1fb3f0f477a9a2858d016d3164997e518c (commit) discards 4b2df493e05d9a3eff12ae8f974ea58309db70ae (commit) discards 97a7030c4fb2a0fe842086c4d6aba8b941318cbe (commit) discards 50566bc5816f03b5d0a29dd3f9d4228b698d9e39 (commit) discards 1347b2b9dfba766fab43e9f7daf88225862aa14d (commit) discards 88f3777b973b527a544fee2a222fb94c65524d41 (commit) discards 97fcafc7a9430bf83795702d078ae194767b0f7f (commit) via f8b3d1328b4e3c58c3958354dd15f74f1e138f07 (commit) via e66966fb2564ae0ec8eac4c1a710c34ba98033ba (commit) via 0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 (commit) via 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) via bed9c73decfcda0366984d990045e588928440ec (commit) via 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) via 613b3e49a009c4b3c39909c803d2c8b383a8c14f (commit) via f5c4dada1bf8bf6463d1128065b3f85e78935ecf (commit) via b51484f3bad25c2973be261f5487e6b01dd1497a (commit) via 10340c212344a89f912dcda4da0ae458aebcc341 (commit) via 648c956d3197677da768df3b7084ba2d12acc86b (commit) via 52d39264b49c18f6f1e98a2348e69cd679e389bc (commit) via 2927e437e0f6001270783958b5c3e447339e3cc7 (commit) via b55e19dd1f6a4d679d36ba9f006a10c291f6b5db (commit) via bd8b5401cfb2088d5e5494d04236eda36278da8b (commit) via 322425faca3fa6dca1356cdcb4c44ea8d46bc32a (commit) via dca58fa27995e5579b8ff52efbc0a20d00f9918d (commit) via 3bccdd89c88864839a0c8d4ea56bd069c90fa02b (commit) via e66eec143c86cb36bc468b78583f689840156d99 (commit) via 632534104c4c094d07ab085fc10f2e3e35961ae0 (commit) via 696c75e99124728d35339d1465e3e8edbed7fd04 (commit) via 1e1cb41c46d5247c437b384fa702cfe774aaf501 (commit) via fda91f4099d4ebf1b53592e56a29694a7837810e (commit) via eb44f00192f635fc209b37d35d57ebbcc453ce11 (commit) via 51fbaa30997d2bc22d3483065ea04165526dc025 (commit) via e2f25d3e8218fe0ae02680966b71cba8755d38de (commit) via 6856c659efc46b1400e14a64cf98c71257e4b24f (commit) via 7cb89f6732845cb5d79f82d9ca8f260c9cdddaae (commit) via c1ba262a978be2f033d72434b0106a771755660f (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 (f7085d1fb3f0f477a9a2858d016d3164997e518c) \ N -- N -- N (f8b3d1328b4e3c58c3958354dd15f74f1e138f07) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 ++++- Help/dev/README.rst | 8 +++- Help/dev/review.rst | 18 +++++---- Help/dev/testing.rst | 42 ++++++++++++++++++++ Help/manual/cmake-properties.7.rst | 1 + ...PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++---- Help/release/dev/x32-abi.rst | 6 +++ .../CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Modules/CMakeCompilerABI.h | 4 ++ Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +-- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 + Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 + Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Modules/WriteCompilerDetectionHeader.cmake | 17 ++++++-- Source/CMakeVersion.cmake | 2 +- Source/cmExportInstallFileGenerator.cxx | 4 +- Source/cmFileMonitor.h | 2 + Source/cmFindLibraryCommand.cxx | 9 ++++- Source/cmFindPackageCommand.cxx | 11 +++++ Source/cmFindPackageCommand.h | 1 + Source/cmGlobalVisualStudioGenerator.cxx | 4 ++ Source/cmMakefile.cxx | 17 ++++++++ Source/cmMakefile.h | 2 + Source/cmStateTypes.h | 3 ++ Tests/CudaOnly/SeparateCompilation/CMakeLists.txt | 16 ++++---- Tests/Module/WriteCompilerDetectionHeader/main.cpp | 3 ++ .../WriteCompilerDetectionHeader/multi_files.cpp | 3 ++ 33 files changed, 182 insertions(+), 41 deletions(-) create mode 100644 Help/dev/testing.rst copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 7 20:05:11 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 7 Mar 2017 20:05:11 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-396-g52d3926 Message-ID: <20170308010511.3CB5DFA3D8@public.kitware.com> 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, nightly-master has been updated via 52d39264b49c18f6f1e98a2348e69cd679e389bc (commit) via 2927e437e0f6001270783958b5c3e447339e3cc7 (commit) via b55e19dd1f6a4d679d36ba9f006a10c291f6b5db (commit) via dca58fa27995e5579b8ff52efbc0a20d00f9918d (commit) via 3bccdd89c88864839a0c8d4ea56bd069c90fa02b (commit) via e66eec143c86cb36bc468b78583f689840156d99 (commit) via 632534104c4c094d07ab085fc10f2e3e35961ae0 (commit) via 696c75e99124728d35339d1465e3e8edbed7fd04 (commit) via 1e1cb41c46d5247c437b384fa702cfe774aaf501 (commit) via fda91f4099d4ebf1b53592e56a29694a7837810e (commit) via eb44f00192f635fc209b37d35d57ebbcc453ce11 (commit) via 51fbaa30997d2bc22d3483065ea04165526dc025 (commit) via ef3c319b971de36eabdc4180243a07e3581f84b7 (commit) via 7f9baf579033e13a25fb9c4db4c79d8f7bb0b47e (commit) via 81656b92107b798d2e78929042812248d12853be (commit) via d9a7ef80aaff4373baf4c864c97efbbf20337dea (commit) via 89780663b3f64eddf7dda2b5565935b73d92c146 (commit) via 9cad44dce264b509afc4b50b540b3a8594cf3217 (commit) via 60274e1d94c8409f810332345339de5dd449056b (commit) via 8f2ad9c4a06029d6d2859119f957a83c6082b14e (commit) via ea3bc1e5b04fd420c4627e520af2e913b88e1100 (commit) via e3af6bec6733fb21206998c0c8f155e6d13b4367 (commit) via 699321bfd5a997aceb64649c83ce78044ce11cc1 (commit) via a28ae16e3cd6d42ab068b5bc0bedf5725a6ce743 (commit) via 0d9a5baa0e96fb2d14838ebeb6a86eec62acf100 (commit) via 47dbe9267eea47e7be656da409a9ee8ced691422 (commit) via 6856c659efc46b1400e14a64cf98c71257e4b24f (commit) via 7cb89f6732845cb5d79f82d9ca8f260c9cdddaae (commit) via c6bef559f308ea6715a3395562ee66e8f8825b9d (commit) via c1ba262a978be2f033d72434b0106a771755660f (commit) via 485685fdd9dc4de8db8184c9f57f644575f1c129 (commit) via aba92ffd92bb1cc4bbe898b7abe65347b0468d33 (commit) via 047a5e4d6656f362151b855b34c259708b8419ba (commit) via 89891bcb9e226cc6216227634d0272adbc080c72 (commit) via c3304fa510fa0dba380190cfb775be2fafcd8527 (commit) via 09475c298b83cbbaae2ca7ba6f52c0fa74607568 (commit) from 9662b9efb747192b6825100e5d06fe63c0893484 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/README.rst | 8 +- Help/dev/review.rst | 18 +- Help/dev/testing.rst | 42 ++ Help/manual/cmake-variables.7.rst | 52 +-- Help/release/dev/cpack-sign-uninstaller.rst | 5 + Modules/CPackNSIS.cmake | 4 + Modules/FindHDF5.cmake | 5 + Modules/NSIS.template.in | 45 +- Source/CMakeLists.txt | 4 + Source/CMakeVersion.cmake | 2 +- Source/CPack/OSXScriptLauncher.cxx | 1 - Source/CPack/cmCPackArchiveGenerator.cxx | 10 +- Source/CPack/cmCPackGenerator.cxx | 4 +- Source/CTest/cmCTestBuildAndTestHandler.cxx | 14 +- Source/CTest/cmCTestBuildAndTestHandler.h | 2 +- Source/CTest/cmCTestCoverageHandler.cxx | 25 +- Source/CTest/cmCTestHandlerCommand.cxx | 5 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 11 +- Source/CTest/cmCTestRunTest.cxx | 19 +- Source/CTest/cmCTestSubmitHandler.cxx | 13 +- Source/CTest/cmCTestTestHandler.cxx | 70 +-- Source/cmCTest.cxx | 2 - Source/cmDepends.cxx | 14 +- Source/cmGlobalGenerator.cxx | 9 +- Source/cmLocalGenerator.cxx | 11 +- Source/cmMakefile.cxx | 11 +- Source/cmQtAutoGeneratorCommon.cxx | 215 +++++++++ Source/cmQtAutoGeneratorCommon.h | 34 ++ Source/cmQtAutoGeneratorInitializer.cxx | 486 ++++++++------------ Source/cmQtAutoGenerators.cxx | 342 ++++++++------ Source/cmQtAutoGenerators.h | 4 +- Source/cmWorkingDirectory.cxx | 24 + Source/cmWorkingDirectory.h | 25 + Source/cmake.cxx | 30 +- Tests/QtAutogen/CMakeLists.txt | 86 ++-- Tests/QtAutogen/automoc_rerun/CMakeLists.txt | 27 -- Tests/QtAutogen/automoc_rerun/test1.cpp | 5 - Tests/QtAutogen/automoc_rerun/test1.h.in1 | 8 - Tests/QtAutogen/automoc_rerun/test1.h.in2 | 7 - Tests/QtAutogen/autorcc_depends/CMakeLists.txt | 27 -- Tests/QtAutogen/mocDepends/CMakeLists.txt | 45 ++ Tests/QtAutogen/mocDepends/invalid.hpp.in | 1 + Tests/QtAutogen/mocDepends/object.hpp.in | 14 + Tests/QtAutogen/mocDepends/simpleLib.cpp.in | 9 + Tests/QtAutogen/mocDepends/simpleLib.hpp.in | 11 + Tests/QtAutogen/mocDepends/test1.cpp | 9 + Tests/QtAutogen/mocDepends/test2.cpp | 10 + Tests/QtAutogen/mocDepends/test2.hpp | 16 + Tests/QtAutogen/mocRerun/CMakeLists.txt | 35 ++ .../{automoc_rerun => mocRerun}/input.txt | 0 Tests/QtAutogen/mocRerun/main.cpp.in | 18 + .../QtAutogen/{automoc_rerun => mocRerun}/res1.qrc | 0 Tests/QtAutogen/mocRerun/test1a.h.in | 8 + Tests/QtAutogen/mocRerun/test1b.h.in | 7 + Tests/QtAutogen/rccDepends/CMakeLists.txt | 36 ++ .../test_res1.cpp => rccDepends/main.cpp} | 0 .../input.txt.in => rccDepends/res/input1.txt.in} | 0 Tests/QtAutogen/rccDepends/res/input2.txt.in | 1 + .../{autorcc_depends => rccDepends}/res1.qrc.in | 0 .../res1.qrc => rccDepends/res2.qrc.in} | 2 +- bootstrap | 1 + 61 files changed, 1201 insertions(+), 748 deletions(-) create mode 100644 Help/dev/testing.rst create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst create mode 100644 Source/cmQtAutoGeneratorCommon.cxx create mode 100644 Source/cmQtAutoGeneratorCommon.h create mode 100644 Source/cmWorkingDirectory.cxx create mode 100644 Source/cmWorkingDirectory.h delete mode 100644 Tests/QtAutogen/automoc_rerun/CMakeLists.txt delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.cpp delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in1 delete mode 100644 Tests/QtAutogen/automoc_rerun/test1.h.in2 delete mode 100644 Tests/QtAutogen/autorcc_depends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/CMakeLists.txt create mode 100644 Tests/QtAutogen/mocDepends/invalid.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/object.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.cpp.in create mode 100644 Tests/QtAutogen/mocDepends/simpleLib.hpp.in create mode 100644 Tests/QtAutogen/mocDepends/test1.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.cpp create mode 100644 Tests/QtAutogen/mocDepends/test2.hpp create mode 100644 Tests/QtAutogen/mocRerun/CMakeLists.txt rename Tests/QtAutogen/{automoc_rerun => mocRerun}/input.txt (100%) create mode 100644 Tests/QtAutogen/mocRerun/main.cpp.in copy Tests/QtAutogen/{automoc_rerun => mocRerun}/res1.qrc (100%) create mode 100644 Tests/QtAutogen/mocRerun/test1a.h.in create mode 100644 Tests/QtAutogen/mocRerun/test1b.h.in create mode 100644 Tests/QtAutogen/rccDepends/CMakeLists.txt rename Tests/QtAutogen/{autorcc_depends/test_res1.cpp => rccDepends/main.cpp} (100%) rename Tests/QtAutogen/{autorcc_depends/res1/input.txt.in => rccDepends/res/input1.txt.in} (100%) create mode 100644 Tests/QtAutogen/rccDepends/res/input2.txt.in rename Tests/QtAutogen/{autorcc_depends => rccDepends}/res1.qrc.in (100%) rename Tests/QtAutogen/{automoc_rerun/res1.qrc => rccDepends/res2.qrc.in} (61%) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 00:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-397-gc87be0c Message-ID: <20170308050506.C4C0CFA110@public.kitware.com> 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 c87be0c0358c4cad12cdcdea719e2f583f788bc8 (commit) from 52d39264b49c18f6f1e98a2348e69cd679e389bc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 00:05:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-411-g4249d9d Message-ID: <20170308050507.1BD34FA11E@public.kitware.com> 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 f8b3d1328b4e3c58c3958354dd15f74f1e138f07 (commit) discards e66966fb2564ae0ec8eac4c1a710c34ba98033ba (commit) discards 0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 (commit) discards b51484f3bad25c2973be261f5487e6b01dd1497a (commit) discards 10340c212344a89f912dcda4da0ae458aebcc341 (commit) discards 648c956d3197677da768df3b7084ba2d12acc86b (commit) via 4249d9d0df008d317ff53d15ce59e414fdc94b8e (commit) via 084ef3fa069db8beceef0f8559072e65d0250da0 (commit) via a75d0d94306d65887b0fe33280fac18ec61027bc (commit) via 7631d1b8d1e736aab6fe280da2a5bd885ccb4595 (commit) via 25d4c020e1351c7cc4f477c40ad75b28b8bec530 (commit) via a7b13a9dfbeb92a3ac31c3ff68edb6870294e7fa (commit) via c87be0c0358c4cad12cdcdea719e2f583f788bc8 (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 (f8b3d1328b4e3c58c3958354dd15f74f1e138f07) \ N -- N -- N (4249d9d0df008d317ff53d15ce59e414fdc94b8e) 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=4249d9d0df008d317ff53d15ce59e414fdc94b8e commit 4249d9d0df008d317ff53d15ce59e414fdc94b8e Merge: 084ef3f 5b6d354 Author: Brad King AuthorDate: Tue Mar 7 20:26:16 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:38 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=084ef3fa069db8beceef0f8559072e65d0250da0 commit 084ef3fa069db8beceef0f8559072e65d0250da0 Merge: a75d0d9 613b3e4 Author: Brad King AuthorDate: Tue Mar 7 18:28:55 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:38 2017 -0500 Stage topic 'cuda-test-spelling' Topic-id: 22917 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/563 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a75d0d94306d65887b0fe33280fac18ec61027bc commit a75d0d94306d65887b0fe33280fac18ec61027bc Merge: 7631d1b f5c4dad Author: Brad King AuthorDate: Tue Mar 7 16:53:40 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:37 2017 -0500 Stage topic 'cmake-server-aix' Topic-id: 22915 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/562 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7631d1b8d1e736aab6fe280da2a5bd885ccb4595 commit 7631d1b8d1e736aab6fe280da2a5bd885ccb4595 Merge: 25d4c02 322425f Author: Brad King AuthorDate: Tue Mar 7 15:09:22 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:37 2017 -0500 Stage topic 'target-type-ordering-comment' Topic-id: 22907 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/560 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=25d4c020e1351c7cc4f477c40ad75b28b8bec530 commit 25d4c020e1351c7cc4f477c40ad75b28b8bec530 Merge: a7b13a9 bd8b540 Author: Brad King AuthorDate: Tue Mar 7 14:31:16 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:37 2017 -0500 Stage topic 'fix_csharp_custom_targets' Topic-id: 22903 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/557 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a7b13a9dfbeb92a3ac31c3ff68edb6870294e7fa commit a7b13a9dfbeb92a3ac31c3ff68edb6870294e7fa Merge: c87be0c e2f25d3 Author: Brad King AuthorDate: Tue Mar 7 14:27:10 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 00:01:36 2017 -0500 Stage topic 'fix-static-assert' Topic-id: 22892 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/555 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 08:45:12 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 08:45:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-409-g0a312e2 Message-ID: <20170308134512.A713AF7492@public.kitware.com> 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 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (commit) via 45ca6e739aa70a5e85ac39cef88cd1c2d0485025 (commit) via c912b72458e94528a560929038a653d6d46cd408 (commit) via 83f9c6275d8f2d20da924a929d659135335a213a (commit) via 49afdb1e8270f7ee60760cae4ff43ebb6864ce2c (commit) via 87f04b9572d64f1b96638c70a5a5b4e81478ae50 (commit) via 613b3e49a009c4b3c39909c803d2c8b383a8c14f (commit) via f5c4dada1bf8bf6463d1128065b3f85e78935ecf (commit) via ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (commit) via bd8b5401cfb2088d5e5494d04236eda36278da8b (commit) via 322425faca3fa6dca1356cdcb4c44ea8d46bc32a (commit) via e2f25d3e8218fe0ae02680966b71cba8755d38de (commit) from c87be0c0358c4cad12cdcdea719e2f583f788bc8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/WriteCompilerDetectionHeader.cmake | 17 +++++++++++++---- Source/cmFileMonitor.h | 2 ++ Source/cmGlobalVisualStudioGenerator.cxx | 4 ++++ Source/cmStateTypes.h | 3 +++ Tests/CudaOnly/SeparateCompilation/CMakeLists.txt | 16 ++++++++-------- Tests/Module/WriteCompilerDetectionHeader/main.cpp | 3 +++ .../WriteCompilerDetectionHeader/multi_files.cpp | 3 +++ 7 files changed, 36 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 08:45:12 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 08:45:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-409-g0a312e2 Message-ID: <20170308134512.D17EDF7ED2@public.kitware.com> 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 4249d9d0df008d317ff53d15ce59e414fdc94b8e (commit) discards 084ef3fa069db8beceef0f8559072e65d0250da0 (commit) discards a75d0d94306d65887b0fe33280fac18ec61027bc (commit) discards 7631d1b8d1e736aab6fe280da2a5bd885ccb4595 (commit) discards 25d4c020e1351c7cc4f477c40ad75b28b8bec530 (commit) discards a7b13a9dfbeb92a3ac31c3ff68edb6870294e7fa (commit) discards 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) discards bed9c73decfcda0366984d990045e588928440ec (commit) discards 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) via 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (commit) via 45ca6e739aa70a5e85ac39cef88cd1c2d0485025 (commit) via c912b72458e94528a560929038a653d6d46cd408 (commit) via 83f9c6275d8f2d20da924a929d659135335a213a (commit) via 49afdb1e8270f7ee60760cae4ff43ebb6864ce2c (commit) via 87f04b9572d64f1b96638c70a5a5b4e81478ae50 (commit) via ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (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 (4249d9d0df008d317ff53d15ce59e414fdc94b8e) \ N -- N -- N (0a312e2271710554f8e73518dc4b28bd1d0d1d7a) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +--------- Help/manual/cmake-properties.7.rst | 1 - Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst | 12 ------------ Help/release/dev/x32-abi.rst | 6 ------ .../variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 - Modules/CMakeCompilerABI.h | 4 ---- Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 -- Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 -- Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ---- Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 - Source/cmExportInstallFileGenerator.cxx | 4 +--- Source/cmFindLibraryCommand.cxx | 9 +-------- Source/cmFindPackageCommand.cxx | 11 ----------- Source/cmFindPackageCommand.h | 1 - Source/cmMakefile.cxx | 17 ----------------- Source/cmMakefile.h | 2 -- 22 files changed, 11 insertions(+), 92 deletions(-) delete mode 100644 Help/prop_gbl/FIND_LIBRARY_USE_LIBX32_PATHS.rst delete mode 100644 Help/release/dev/x32-abi.rst hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 08:45:12 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 08:45:12 -0500 (EST) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-8-gac66dec Message-ID: <20170308134512.E6DB9F8370@public.kitware.com> 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, release has been updated via ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (commit) via bd8b5401cfb2088d5e5494d04236eda36278da8b (commit) from 6856c659efc46b1400e14a64cf98c71257e4b24f (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalVisualStudioGenerator.cxx | 4 ++++ 1 file changed, 4 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 09:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 09:25:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-412-gbfbed2a Message-ID: <20170308142502.81EB8FA2B5@public.kitware.com> 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 bfbed2a2a8c10107c2279359572c11636c26bd76 (commit) via 7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe (commit) via 0f5e76df0cc97808f7dacdeb4376fe249af6c919 (commit) from 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (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=bfbed2a2a8c10107c2279359572c11636c26bd76 commit bfbed2a2a8c10107c2279359572c11636c26bd76 Merge: 0a312e2 7e8b08e Author: Brad King AuthorDate: Wed Mar 8 14:16:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 09:16:03 2017 -0500 Stage topic 'CheckLanguage-platform-toolset' Topic-id: 22929 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/565 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe commit 7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe Author: Brad King AuthorDate: Wed Mar 8 09:12:09 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 09:12:09 2017 -0500 Tests: Pass generator platform and toolset into check for Fortran Check for a Fortran compiler that supports the same target platform as we are testing. diff --git a/Tests/CheckFortran.cmake b/Tests/CheckFortran.cmake index 93990ad..b1652ba 100644 --- a/Tests/CheckFortran.cmake +++ b/Tests/CheckFortran.cmake @@ -18,6 +18,8 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" execute_process( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/CheckFortran COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR} + -A "${CMAKE_GENERATOR_PLATFORM}" + -T "${CMAKE_GENERATOR_TOOLSET}" OUTPUT_VARIABLE output ERROR_VARIABLE output RESULT_VARIABLE result https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0f5e76df0cc97808f7dacdeb4376fe249af6c919 commit 0f5e76df0cc97808f7dacdeb4376fe249af6c919 Author: Brad King AuthorDate: Wed Mar 8 09:10:45 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 09:10:45 2017 -0500 CheckLanguage: Pass generator platform and toolset into check Otherwise we do not check for support for the language with the same generator settings as the caller. diff --git a/Modules/CheckLanguage.cmake b/Modules/CheckLanguage.cmake index 6b4a9e4..1ea91d2 100644 --- a/Modules/CheckLanguage.cmake +++ b/Modules/CheckLanguage.cmake @@ -46,6 +46,8 @@ file(WRITE \"\${CMAKE_CURRENT_BINARY_DIR}/result.cmake\" execute_process( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/Check${lang} COMMAND ${CMAKE_COMMAND} . -G ${CMAKE_GENERATOR} + -A "${CMAKE_GENERATOR_PLATFORM}" + -T "${CMAKE_GENERATOR_TOOLSET}" OUTPUT_VARIABLE output ERROR_VARIABLE output RESULT_VARIABLE result ----------------------------------------------------------------------- Summary of changes: Modules/CheckLanguage.cmake | 2 ++ Tests/CheckFortran.cmake | 2 ++ 2 files changed, 4 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 14:25:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 14:25:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-417-g23265c6 Message-ID: <20170308192506.BC416FA74B@public.kitware.com> 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 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d (commit) via d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 (commit) via 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) via bed9c73decfcda0366984d990045e588928440ec (commit) via 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) from bfbed2a2a8c10107c2279359572c11636c26bd76 (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=23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d commit 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d Merge: bfbed2a d9bdcf3 Author: Brad King AuthorDate: Wed Mar 8 19:16:54 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 14:19:21 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 commit d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 Author: Steven Newbury AuthorDate: Wed Mar 8 17:13:29 2017 +0000 Commit: Steven Newbury CommitDate: Wed Mar 8 17:23:30 2017 +0000 Tests: Add x32 tests to test suite diff --git a/Tests/CMakeOnly/find_library/CMakeLists.txt b/Tests/CMakeOnly/find_library/CMakeLists.txt index 9c1aad8..749cf42 100644 --- a/Tests/CMakeOnly/find_library/CMakeLists.txt +++ b/Tests/CMakeOnly/find_library/CMakeLists.txt @@ -33,9 +33,11 @@ endmacro() set(CMAKE_FIND_LIBRARY_PREFIXES "lib") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a") +set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS TRUE) set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE) set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) +set(CMAKE_INTERNAL_PLATFORM_ABI "ELF") set(CMAKE_SIZEOF_VOID_P 4) foreach(lib lib/32/libtest5.a @@ -67,6 +69,20 @@ foreach(lib64 test_find_library_subst(${lib64}) endforeach() +set(CMAKE_INTERNAL_PLATFORM_ABI "ELF X32") +set(CMAKE_SIZEOF_VOID_P 4) +foreach(libx32 + lib/x32/libtest2.a + lib/A/libx32/libtest3.a + lib/libtest3.a + libx32/A/lib/libtest2.a + libx32/A/libx32/libtest1.a + libx32/A/libtest1.a + libx32/libtest1.a + ) + test_find_library_subst(${libx32}) +endforeach() + test_find_library("" A/libtestA.a NAMES testA testB PATHS ${CMAKE_CURRENT_SOURCE_DIR}/A ${CMAKE_CURRENT_SOURCE_DIR}/B diff --git a/Tests/CMakeOnly/find_library/lib/A/libx32/libtest3.a b/Tests/CMakeOnly/find_library/lib/A/libx32/libtest3.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/lib/x32/libtest2.a b/Tests/CMakeOnly/find_library/lib/x32/libtest2.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libx32/A/lib/libtest2.a b/Tests/CMakeOnly/find_library/libx32/A/lib/libtest2.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libx32/A/libtest1.a b/Tests/CMakeOnly/find_library/libx32/A/libtest1.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libx32/A/libx32/libtest1.a b/Tests/CMakeOnly/find_library/libx32/A/libx32/libtest1.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/CMakeOnly/find_library/libx32/libtest1.a b/Tests/CMakeOnly/find_library/libx32/libtest1.a new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake index 4a41533..2687efe 100644 --- a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake @@ -30,9 +30,12 @@ if(NOT DEFINED CMAKE_SYSTEM_NAME endif() else() # not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS) get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") + elseif(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") elseif(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake index b66d02f..74cda25 100644 --- a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake @@ -30,9 +30,12 @@ if(NOT DEFINED CMAKE_SYSTEM_NAME endif() else() # not debian, check the FIND_LIBRARY_USE_LIB64_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS) get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") + elseif(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") elseif(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake index bdecb8a..1defde8 100644 --- a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake @@ -30,9 +30,12 @@ if(NOT DEFINED CMAKE_SYSTEM_NAME endif() else() # not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS propertie + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS) get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") + elseif(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") elseif(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake index df67235..166a617 100644 --- a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake @@ -30,9 +30,12 @@ if(NOT DEFINED CMAKE_SYSTEM_NAME endif() else() # not debian, check the FIND_LIBRARY_USE_LIB32_PATHS and FIND_LIBRARY_USE_LIB64_PATHS properties + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS) get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig") + elseif(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig") elseif(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-foo/lib/pkgconfig") diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake index 1351b6f..e4673b3 100644 --- a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake @@ -30,9 +30,12 @@ if(NOT DEFINED CMAKE_SYSTEM_NAME endif() else() # not debian, check the FIND_LIBRARY_USE_LIB64_PATHS and FIND_LIBRARY_USE_LIB32_PATHS properties + get_property(uselibx32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIBX32_PATHS) get_property(uselib32 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS) get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS) - if(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) + if(uselibx32 AND CMAKE_INTERNAL_PLATFORM_ABI STREQUAL "ELF X32") + set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/libx32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") + elseif(uselib32 AND CMAKE_SIZEOF_VOID_P EQUAL 4) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib32/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") elseif(uselib64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(expected_path "/baz:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib64/pkgconfig:${CMAKE_CURRENT_SOURCE_DIR}/pc-bar/lib/pkgconfig") diff --git a/Tests/RunCMake/FindPkgConfig/pc-bar/libx32/pkgconfig/.placeholder b/Tests/RunCMake/FindPkgConfig/pc-bar/libx32/pkgconfig/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/FindPkgConfig/pc-foo/libx32/pkgconfig/.placeholder b/Tests/RunCMake/FindPkgConfig/pc-foo/libx32/pkgconfig/.placeholder new file mode 100644 index 0000000..e69de29 ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +++++++++- Help/manual/cmake-properties.7.rst | 1 + ...32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++++++------- Help/release/dev/x32-abi.rst | 6 ++++++ .../variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Modules/CMakeCompilerABI.h | 4 ++++ Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 ++ Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 ++ Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Source/cmExportInstallFileGenerator.cxx | 4 +++- Source/cmFindLibraryCommand.cxx | 9 ++++++++- Source/cmFindPackageCommand.cxx | 11 +++++++++++ Source/cmFindPackageCommand.h | 1 + Source/cmMakefile.cxx | 17 +++++++++++++++++ Source/cmMakefile.h | 2 ++ Tests/CMakeOnly/find_library/CMakeLists.txt | 16 ++++++++++++++++ .../find_library/lib/A/{lib32 => libx32}/libtest3.a | 0 .../CMakeOnly/find_library/lib/{64 => x32}/libtest2.a | 0 .../find_library/{lib/64 => libx32/A/lib}/libtest2.a | 0 .../find_library/{lib/A/lib => libx32/A}/libtest1.a | 0 .../{lib/A/lib => libx32/A/libx32}/libtest1.a | 0 .../find_library/{lib/A/lib => libx32}/libtest1.a | 0 .../FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake | 5 ++++- .../FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake | 5 ++++- .../FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake | 5 ++++- ...fig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake | 5 ++++- .../FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake | 5 ++++- .../i386-linux-gnu => libx32}/pkgconfig/.placeholder | 0 .../libx32}/pkgconfig/.placeholder | 0 36 files changed, 123 insertions(+), 23 deletions(-) copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst copy Tests/CMakeOnly/find_library/lib/A/{lib32 => libx32}/libtest3.a (100%) copy Tests/CMakeOnly/find_library/lib/{64 => x32}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/64 => libx32/A/lib}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A/libx32}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32}/libtest1.a (100%) copy Tests/RunCMake/FindPkgConfig/pc-bar/{lib/i386-linux-gnu => libx32}/pkgconfig/.placeholder (100%) copy Tests/RunCMake/FindPkgConfig/{pc-bar/lib/i386-linux-gnu => pc-foo/libx32}/pkgconfig/.placeholder (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 14:35:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 14:35:01 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-419-g2b55bd9a Message-ID: <20170308193501.E47F0FA7CA@public.kitware.com> 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 2b55bd9af89f57916a246970cc13045cadae77a7 (commit) via 66542b663645ffdde8481c1ad60e11fd14c2ccb6 (commit) from 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d (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=2b55bd9af89f57916a246970cc13045cadae77a7 commit 2b55bd9af89f57916a246970cc13045cadae77a7 Merge: 23265c6 66542b6 Author: Brad King AuthorDate: Wed Mar 8 19:33:34 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 8 14:33:38 2017 -0500 Stage topic 'doc-vs15-MSVC_VERSION' Topic-id: 22943 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/567 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=66542b663645ffdde8481c1ad60e11fd14c2ccb6 commit 66542b663645ffdde8481c1ad60e11fd14c2ccb6 Author: Wojciech Mamrak AuthorDate: Wed Mar 8 19:35:28 2017 +0100 Commit: Brad King CommitDate: Wed Mar 8 14:30:38 2017 -0500 Help: Update MSVC_VERSION for Visual Studio 2017 The value we documented was left from a preview that still used `v140` tools. Update it to match the `v141` tools distributed with the final release. diff --git a/Help/variable/MSVC_VERSION.rst b/Help/variable/MSVC_VERSION.rst index e2aff3c..8932147 100644 --- a/Help/variable/MSVC_VERSION.rst +++ b/Help/variable/MSVC_VERSION.rst @@ -13,4 +13,5 @@ Known version numbers are:: 1600 = VS 10.0 1700 = VS 11.0 1800 = VS 12.0 - 1900 = VS 14.0, 15.0 + 1900 = VS 14.0 + 1910 = VS 15.0 ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC_VERSION.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 20:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 20:05:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-419-g2b55bd9a Message-ID: <20170309010502.64DC7FA6C7@public.kitware.com> 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, nightly has been updated discards f8b3d1328b4e3c58c3958354dd15f74f1e138f07 (commit) discards e66966fb2564ae0ec8eac4c1a710c34ba98033ba (commit) discards 0d5670a71e54e7d0fb387f2ff2c992fb251e3b91 (commit) discards b51484f3bad25c2973be261f5487e6b01dd1497a (commit) discards 10340c212344a89f912dcda4da0ae458aebcc341 (commit) discards 648c956d3197677da768df3b7084ba2d12acc86b (commit) via 2b55bd9af89f57916a246970cc13045cadae77a7 (commit) via 66542b663645ffdde8481c1ad60e11fd14c2ccb6 (commit) via 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d (commit) via d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 (commit) via bfbed2a2a8c10107c2279359572c11636c26bd76 (commit) via 7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe (commit) via 0f5e76df0cc97808f7dacdeb4376fe249af6c919 (commit) via 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (commit) via 45ca6e739aa70a5e85ac39cef88cd1c2d0485025 (commit) via c912b72458e94528a560929038a653d6d46cd408 (commit) via 83f9c6275d8f2d20da924a929d659135335a213a (commit) via 49afdb1e8270f7ee60760cae4ff43ebb6864ce2c (commit) via 87f04b9572d64f1b96638c70a5a5b4e81478ae50 (commit) via c87be0c0358c4cad12cdcdea719e2f583f788bc8 (commit) via ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (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 (f8b3d1328b4e3c58c3958354dd15f74f1e138f07) \ N -- N -- N (2b55bd9af89f57916a246970cc13045cadae77a7) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC_VERSION.rst | 3 ++- Modules/CheckLanguage.cmake | 2 ++ Source/CMakeVersion.cmake | 2 +- Tests/CMakeOnly/find_library/CMakeLists.txt | 16 ++++++++++++++++ .../find_library/lib/A/{lib32 => libx32}/libtest3.a | 0 .../CMakeOnly/find_library/lib/{64 => x32}/libtest2.a | 0 .../find_library/{lib/64 => libx32/A/lib}/libtest2.a | 0 .../find_library/{lib/A/lib => libx32/A}/libtest1.a | 0 .../{lib/A/lib => libx32/A/libx32}/libtest1.a | 0 .../find_library/{lib/A/lib => libx32}/libtest1.a | 0 Tests/CheckFortran.cmake | 2 ++ .../FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake | 5 ++++- .../FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake | 5 ++++- .../FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake | 5 ++++- ...nfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake | 5 ++++- .../FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake | 5 ++++- .../i386-linux-gnu => libx32}/pkgconfig/.placeholder | 0 .../libx32}/pkgconfig/.placeholder | 0 18 files changed, 43 insertions(+), 7 deletions(-) copy Tests/CMakeOnly/find_library/lib/A/{lib32 => libx32}/libtest3.a (100%) copy Tests/CMakeOnly/find_library/lib/{64 => x32}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/64 => libx32/A/lib}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A/libx32}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32}/libtest1.a (100%) copy Tests/RunCMake/FindPkgConfig/pc-bar/{lib/i386-linux-gnu => libx32}/pkgconfig/.placeholder (100%) copy Tests/RunCMake/FindPkgConfig/{pc-bar/lib/i386-linux-gnu => pc-foo/libx32}/pkgconfig/.placeholder (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 8 20:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 8 Mar 2017 20:05:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-409-g0a312e2 Message-ID: <20170309010502.9E8F4FA6CD@public.kitware.com> 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, nightly-master has been updated via 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (commit) via 45ca6e739aa70a5e85ac39cef88cd1c2d0485025 (commit) via c912b72458e94528a560929038a653d6d46cd408 (commit) via 83f9c6275d8f2d20da924a929d659135335a213a (commit) via 49afdb1e8270f7ee60760cae4ff43ebb6864ce2c (commit) via 87f04b9572d64f1b96638c70a5a5b4e81478ae50 (commit) via c87be0c0358c4cad12cdcdea719e2f583f788bc8 (commit) via 613b3e49a009c4b3c39909c803d2c8b383a8c14f (commit) via f5c4dada1bf8bf6463d1128065b3f85e78935ecf (commit) via ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (commit) via bd8b5401cfb2088d5e5494d04236eda36278da8b (commit) via 322425faca3fa6dca1356cdcb4c44ea8d46bc32a (commit) via e2f25d3e8218fe0ae02680966b71cba8755d38de (commit) from 52d39264b49c18f6f1e98a2348e69cd679e389bc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/WriteCompilerDetectionHeader.cmake | 17 +++++++++++++---- Source/CMakeVersion.cmake | 2 +- Source/cmFileMonitor.h | 2 ++ Source/cmGlobalVisualStudioGenerator.cxx | 4 ++++ Source/cmStateTypes.h | 3 +++ Tests/CudaOnly/SeparateCompilation/CMakeLists.txt | 16 ++++++++-------- Tests/Module/WriteCompilerDetectionHeader/main.cpp | 3 +++ .../WriteCompilerDetectionHeader/multi_files.cpp | 3 +++ 8 files changed, 37 insertions(+), 13 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-410-gdcbe8ad Message-ID: <20170309050504.112D1FA781@public.kitware.com> 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 dcbe8ad42bed8077ad23e1c521963f059ee6c584 (commit) from 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 00:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-420-gc2c3ba6 Message-ID: <20170309050504.AE487FA782@public.kitware.com> 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 2b55bd9af89f57916a246970cc13045cadae77a7 (commit) discards 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d (commit) discards bfbed2a2a8c10107c2279359572c11636c26bd76 (commit) via c2c3ba655900714472a8b0f259517a8f7b3c90a6 (commit) via 66f5b2aaf1a403cddb0819af3ca049af8c71bdba (commit) via c03f8b60c0cf2cfacd59999bbb414617f884620d (commit) via dcbe8ad42bed8077ad23e1c521963f059ee6c584 (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 (2b55bd9af89f57916a246970cc13045cadae77a7) \ N -- N -- N (c2c3ba655900714472a8b0f259517a8f7b3c90a6) 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=c2c3ba655900714472a8b0f259517a8f7b3c90a6 commit c2c3ba655900714472a8b0f259517a8f7b3c90a6 Merge: 66f5b2a 66542b6 Author: Brad King AuthorDate: Wed Mar 8 19:33:34 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 00:01:18 2017 -0500 Stage topic 'doc-vs15-MSVC_VERSION' Topic-id: 22943 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/567 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=66f5b2aaf1a403cddb0819af3ca049af8c71bdba commit 66f5b2aaf1a403cddb0819af3ca049af8c71bdba Merge: c03f8b6 d9bdcf3 Author: Brad King AuthorDate: Wed Mar 8 19:16:54 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 00:01:18 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c03f8b60c0cf2cfacd59999bbb414617f884620d commit c03f8b60c0cf2cfacd59999bbb414617f884620d Merge: dcbe8ad 7e8b08e Author: Brad King AuthorDate: Wed Mar 8 14:16:00 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 00:01:18 2017 -0500 Stage topic 'CheckLanguage-platform-toolset' Topic-id: 22929 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/565 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 10:55:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 10:55:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-415-g31f3531 Message-ID: <20170309155504.DCF90FA59B@public.kitware.com> 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 31f3531856ab8ee0cdeaf427224b51abd7714ccc (commit) via c0e46d42a35d9394d856b958e17d015f4b521940 (commit) via 66542b663645ffdde8481c1ad60e11fd14c2ccb6 (commit) via 7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe (commit) via 0f5e76df0cc97808f7dacdeb4376fe249af6c919 (commit) from dcbe8ad42bed8077ad23e1c521963f059ee6c584 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC_VERSION.rst | 3 ++- Modules/CheckLanguage.cmake | 2 ++ Tests/CheckFortran.cmake | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 10:55:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 10:55:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-420-gfb3b15f Message-ID: <20170309155505.1AE01FA5A0@public.kitware.com> 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 c2c3ba655900714472a8b0f259517a8f7b3c90a6 (commit) discards 66f5b2aaf1a403cddb0819af3ca049af8c71bdba (commit) discards c03f8b60c0cf2cfacd59999bbb414617f884620d (commit) via fb3b15f316e8432e94325e90c32693ce1b8e38ee (commit) via 31f3531856ab8ee0cdeaf427224b51abd7714ccc (commit) via c0e46d42a35d9394d856b958e17d015f4b521940 (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 (c2c3ba655900714472a8b0f259517a8f7b3c90a6) \ N -- N -- N (fb3b15f316e8432e94325e90c32693ce1b8e38ee) 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=fb3b15f316e8432e94325e90c32693ce1b8e38ee commit fb3b15f316e8432e94325e90c32693ce1b8e38ee Merge: 31f3531 d9bdcf3 Author: Brad King AuthorDate: Wed Mar 8 19:16:54 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 10:51:49 2017 -0500 Stage topic 'master' Topic-id: 22785 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/532 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 11:15:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 11:15:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-420-gc4f9d10 Message-ID: <20170309161507.51D74F9CC3@public.kitware.com> 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 c4f9d104269938d8111030a05268b19a0f493098 (commit) via d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 (commit) via 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) via bed9c73decfcda0366984d990045e588928440ec (commit) via 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) from 31f3531856ab8ee0cdeaf427224b51abd7714ccc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +++++++++- Help/manual/cmake-properties.7.rst | 1 + ...32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++++++------- Help/release/dev/x32-abi.rst | 6 ++++++ .../variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Modules/CMakeCompilerABI.h | 4 ++++ Modules/CPackRPM.cmake | 2 +- Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 ++ Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 ++ Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Source/cmExportInstallFileGenerator.cxx | 4 +++- Source/cmFindLibraryCommand.cxx | 9 ++++++++- Source/cmFindPackageCommand.cxx | 11 +++++++++++ Source/cmFindPackageCommand.h | 1 + Source/cmMakefile.cxx | 17 +++++++++++++++++ Source/cmMakefile.h | 2 ++ Tests/CMakeOnly/find_library/CMakeLists.txt | 16 ++++++++++++++++ .../find_library/lib/A/{lib32 => libx32}/libtest3.a | 0 .../CMakeOnly/find_library/lib/{64 => x32}/libtest2.a | 0 .../find_library/{lib/64 => libx32/A/lib}/libtest2.a | 0 .../find_library/{lib/A/lib => libx32/A}/libtest1.a | 0 .../{lib/A/lib => libx32/A/libx32}/libtest1.a | 0 .../find_library/{lib/A/lib => libx32}/libtest1.a | 0 .../FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake | 5 ++++- .../FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake | 5 ++++- .../FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake | 5 ++++- ...fig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake | 5 ++++- .../FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake | 5 ++++- .../i386-linux-gnu => libx32}/pkgconfig/.placeholder | 0 .../libx32}/pkgconfig/.placeholder | 0 36 files changed, 123 insertions(+), 23 deletions(-) copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst copy Tests/CMakeOnly/find_library/lib/A/{lib32 => libx32}/libtest3.a (100%) copy Tests/CMakeOnly/find_library/lib/{64 => x32}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/64 => libx32/A/lib}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A/libx32}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32}/libtest1.a (100%) copy Tests/RunCMake/FindPkgConfig/pc-bar/{lib/i386-linux-gnu => libx32}/pkgconfig/.placeholder (100%) copy Tests/RunCMake/FindPkgConfig/{pc-bar/lib/i386-linux-gnu => pc-foo/libx32}/pkgconfig/.placeholder (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 11:15:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 11:15:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-443-g681a7ff Message-ID: <20170309161507.F1EF1F9CC3@public.kitware.com> 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 fb3b15f316e8432e94325e90c32693ce1b8e38ee (commit) via 681a7ff8d9d4ba633cc014026c94a50e8d95b7cd (commit) via 6a4231030a0d6aff2f8ec4dd8cacf1b8015600bd (commit) via c4f9d104269938d8111030a05268b19a0f493098 (commit) via ae0f7dfa954e97d8b62cf83f0063e37171b457f8 (commit) via bd0df62be9277cc23c006811d9c649cf9b7d5f3a (commit) via 49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 (commit) via 6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 (commit) via 4645f6128114a896402a0e6a6770ac1607c4bb54 (commit) via ac1fb1575466c2f09f68f5b24da611a23f984dd8 (commit) via 65ebb6301f040aee231e4d51cab9d1a8f2288d70 (commit) via 87128b1cb62375719009bd1c55421849777edd2d (commit) via 0c90892fc84455b5182fa5f2a81a6d38555edb3e (commit) via f912d40db1a5f7aee94ff2ce2434be2215abaf6c (commit) via 7f0b6d32b5c45139bebe411500de64437a5f5b0c (commit) via d1571e3df8782e67073a654cd3881aea11d58fa6 (commit) via 93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 (commit) via f2f6fcf621e09af9c2a8e01451b52e039c17e815 (commit) via e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 (commit) via c5b7598ef7410727b81738c891ca1fa50bdca87a (commit) via 99ce2751a470df3e0ea61a303917ce5816c3519f (commit) via 9b231290d639fb206707a3a0e6342f3d7458f5ae (commit) via 097de72be2cbd43fb165f1995a1ea97bd45369b4 (commit) via b9ea0713e8f660fa94d46c44c40327b8665054fe (commit) via cca12f281673e60c1b0179416c5a12f2a7eca82b (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 (fb3b15f316e8432e94325e90c32693ce1b8e38ee) \ N -- N -- N (681a7ff8d9d4ba633cc014026c94a50e8d95b7cd) 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=681a7ff8d9d4ba633cc014026c94a50e8d95b7cd commit 681a7ff8d9d4ba633cc014026c94a50e8d95b7cd Merge: 6a42310 bd0df62 Author: Brad King AuthorDate: Thu Mar 9 16:08:39 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 11:08:41 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6a4231030a0d6aff2f8ec4dd8cacf1b8015600bd commit 6a4231030a0d6aff2f8ec4dd8cacf1b8015600bd Merge: c4f9d10 ae0f7df Author: Brad King AuthorDate: Thu Mar 9 16:05:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 11:08:19 2017 -0500 Stage topic 'test-CPackComponents-fix-NSIS-root' Topic-id: 22969 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/569 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ae0f7dfa954e97d8b62cf83f0063e37171b457f8 commit ae0f7dfa954e97d8b62cf83f0063e37171b457f8 Author: Brad King AuthorDate: Thu Mar 9 10:18:08 2017 -0500 Commit: Brad King CommitDate: Thu Mar 9 10:20:35 2017 -0500 Tests: Fix CPackComponents NSIS install root Without `CPACK_VERBATIM_VARIABLES` a path with backslashes does not make it through `CPackConfig.cmake` properly. Just use forward slashes which NSIS seems to understand anyway. diff --git a/Tests/CPackComponents/CMakeLists.txt b/Tests/CPackComponents/CMakeLists.txt index 3c8ae35..5b03c9e 100644 --- a/Tests/CPackComponents/CMakeLists.txt +++ b/Tests/CPackComponents/CMakeLists.txt @@ -79,7 +79,7 @@ set(CPACK_NSIS_MENU_LINKS ) # Suggested default root for end users of the installer: -set(CPACK_NSIS_INSTALL_ROOT "C:\\Program Files\\CMake Tests Install Root") +set(CPACK_NSIS_INSTALL_ROOT "C:/Program Files/CMake Tests Install Root") # Include CPack to introduce the appropriate targets include(CPack) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bd0df62be9277cc23c006811d9c649cf9b7d5f3a commit bd0df62be9277cc23c006811d9c649cf9b7d5f3a Author: Brad King AuthorDate: Tue Mar 7 14:27:36 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:56 2017 -0500 CUDA: Work around VS limitation in CudaOnly.WithDefs test CUDA 8.0 MSBuild rules do not pass `-x cu` to nvcc and so cannot support a custom file extension. Fix our test for this to use a `.cu` extension instead. diff --git a/Tests/CudaOnly/WithDefs/CMakeLists.txt b/Tests/CudaOnly/WithDefs/CMakeLists.txt index 2646d29..38f2a44 100644 --- a/Tests/CudaOnly/WithDefs/CMakeLists.txt +++ b/Tests/CudaOnly/WithDefs/CMakeLists.txt @@ -16,8 +16,15 @@ set(release_compile_defs DEFREL) #build a executable that needs to be passed a complex define through add_defintions #this verifies we can pass things such as '_','(' to nvcc add_definitions("-DPACKED_DEFINE=__attribute__((packed))") -set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA) -add_executable(CudaOnlyWithDefs main.notcu) + +if(CMAKE_GENERATOR MATCHES "Visual Studio") + # CUDA MSBuild rules do not pass '-x cu' to nvcc + set(main main_for_vs.cu) +else() + set(main main.notcu) + set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA) +endif() +add_executable(CudaOnlyWithDefs ${main}) target_compile_options(CudaOnlyWithDefs PRIVATE diff --git a/Tests/CudaOnly/WithDefs/main_for_vs.cu b/Tests/CudaOnly/WithDefs/main_for_vs.cu new file mode 100644 index 0000000..56078e7 --- /dev/null +++ b/Tests/CudaOnly/WithDefs/main_for_vs.cu @@ -0,0 +1 @@ +#include "main.notcu" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 commit 49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 Author: Brad King AuthorDate: Tue Mar 7 16:25:09 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:52 2017 -0500 VS: Add more CUDA flag table entries diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index d8c27d7..da19d64 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -36,5 +36,16 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "cmake-temp-arch", "-gpu-architecture", "", "", cmVS7FlagTable::UserFollowing }, + // Other flags. + + { "FastMath", "use_fast_math", "", "true", 0 }, + { "FastMath", "-use_fast_math", "", "true", 0 }, + + { "GPUDebugInfo", "G", "", "true", 0 }, + { "GPUDebugInfo", "-device-debug", "", "true", 0 }, + + { "HostDebugInfo", "g", "", "true", 0 }, + { "HostDebugInfo", "-debug", "", "true", 0 }, + { 0, 0, 0, 0, 0 } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 commit 6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 Author: Brad King AuthorDate: Tue Mar 7 16:23:57 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:49 2017 -0500 VS: Add support for the CUDA_SEPARABLE_COMPILATION property diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 5ffa55c..fc59660 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2470,6 +2470,10 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( cudaOptions.Parse(defineFlags.c_str()); cudaOptions.ParseFinish(); + if (this->GeneratorTarget->GetPropertyAsBool("CUDA_SEPARABLE_COMPILATION")) { + cudaOptions.AddFlag("GenerateRelocatableDeviceCode", "true"); + } + // Convert the host compiler options to the toolset's abstractions // using a secondary flag table. cudaOptions.ClearTables(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4645f6128114a896402a0e6a6770ac1607c4bb54 commit 4645f6128114a896402a0e6a6770ac1607c4bb54 Author: Brad King AuthorDate: Tue Mar 7 16:21:29 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:45 2017 -0500 VS: Select CUDA code generation architectures Parse the `-gencode=`, `-arch`, and `-code` flags and generate a `CodeGeneration` field in the project file. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 268553d..d8c27d7 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -14,5 +14,27 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "CudaRuntime", "cudart", "CUDA runtime library", "", cmVS7FlagTable::UserFollowing }, + // Capture arch/code arguments into temporaries for post-processing. + { "cmake-temp-gencode", "gencode=", "", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "gencode", "", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "-generate-code=", "", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "-generate-code", "", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SemicolonAppendable }, + + { "cmake-temp-code", "code=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-code", "code", "", "", cmVS7FlagTable::UserFollowing }, + { "cmake-temp-code", "-gpu-code=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-code", "-gpu-code", "", "", cmVS7FlagTable::UserFollowing }, + + { "cmake-temp-arch", "arch=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-arch", "arch", "", "", cmVS7FlagTable::UserFollowing }, + { "cmake-temp-arch", "-gpu-architecture=", "", "", + cmVS7FlagTable::UserValue }, + { "cmake-temp-arch", "-gpu-architecture", "", "", + cmVS7FlagTable::UserFollowing }, + { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 8de9fe1..5ffa55c 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2480,6 +2480,8 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( // did not parse and hope it works. cudaOptions.RemoveFlag("AdditionalCompilerOptions"); + cudaOptions.FixCudaCodeGeneration(); + std::vector targetDefines; this->GeneratorTarget->GetCompileDefinitions(targetDefines, configName.c_str(), "CUDA"); diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index c79dc11..1ca6b9c 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -208,6 +208,57 @@ cmVisualStudioGeneratorOptions::GetCudaRuntime() const return CudaRuntimeStatic; } +void cmVisualStudioGeneratorOptions::FixCudaCodeGeneration() +{ + // Extract temporary values stored by our flag table. + FlagValue arch = this->TakeFlag("cmake-temp-arch"); + FlagValue code = this->TakeFlag("cmake-temp-code"); + FlagValue gencode = this->TakeFlag("cmake-temp-gencode"); + + // No -code allowed without -arch. + if (arch.empty()) { + code.clear(); + } + + if (arch.empty() && gencode.empty()) { + return; + } + + // Create a CodeGeneration field with [arch],[code] syntax in each entry. + // CUDA will convert it to `-gencode=arch=[arch],code="[code],[arch]"`. + FlagValue& result = this->FlagMap["CodeGeneration"]; + + // First entries for the -arch= [-code=,...] pair. + if (!arch.empty()) { + std::string arch_name = arch[0]; + std::vector codes; + if (!code.empty()) { + codes = cmSystemTools::tokenize(code[0], ","); + } + if (codes.empty()) { + codes.push_back(arch_name); + // nvcc -arch= has a special case that allows a real + // architecture to be specified instead of a virtual arch. + // It translates to -arch= -code=. + cmSystemTools::ReplaceString(arch_name, "sm_", "compute_"); + } + for (std::vector::iterator ci = codes.begin(); + ci != codes.end(); ++ci) { + std::string entry = arch_name + "," + *ci; + result.push_back(entry); + } + } + + // Now add entries for the -gencode=, pairs. + for (std::vector::iterator ei = gencode.begin(); + ei != gencode.end(); ++ei) { + std::string entry = *ei; + cmSystemTools::ReplaceString(entry, "arch=", ""); + cmSystemTools::ReplaceString(entry, "code=", ""); + result.push_back(entry); + } +} + void cmVisualStudioGeneratorOptions::Parse(const char* flags) { // Parse the input string as a windows command line since the string diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 6722503..52689e0 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -75,6 +75,8 @@ public: }; CudaRuntime GetCudaRuntime() const; + void FixCudaCodeGeneration(); + bool IsDebug() const; bool IsWinRt() const; bool IsManaged() const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac1fb1575466c2f09f68f5b24da611a23f984dd8 commit ac1fb1575466c2f09f68f5b24da611a23f984dd8 Author: Brad King AuthorDate: Tue Mar 7 16:19:22 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:42 2017 -0500 VS: Select the CUDA runtime library Parse the `-cudart=` option and add a corresponding `CudaRuntime` field to the generated project file. Also add a matching `.lib` to the list of libraries linked. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 0a93de8..268553d 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -5,5 +5,14 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "AdditionalCompilerOptions", "Xcompiler", "Host compiler options", "", cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SpaceAppendable }, + // Select the CUDA runtime library. + { "CudaRuntime", "cudart=none", "No CUDA runtime library", "None", 0 }, + { "CudaRuntime", "cudart=shared", "Shared/dynamic CUDA runtime library", + "Shared", 0 }, + { "CudaRuntime", "cudart=static", "Static CUDA runtime library", "Static", + 0 }, + { "CudaRuntime", "cudart", "CUDA runtime library", "", + cmVS7FlagTable::UserFollowing }, + { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7d66fcb..8de9fe1 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2855,8 +2855,10 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( this->LocalGenerator, Options::Linker, gg->GetLinkFlagTable(), 0, this)); Options& linkOptions = *pOptions; - const std::string& linkLanguage = - this->GeneratorTarget->GetLinkerLanguage(config.c_str()); + cmGeneratorTarget::LinkClosure const* linkClosure = + this->GeneratorTarget->GetLinkClosure(config); + + const std::string& linkLanguage = linkClosure->LinkerLanguage; if (linkLanguage.empty()) { cmSystemTools::Error( "CMake can not determine linker language for target: ", @@ -2911,6 +2913,19 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( std::vector libVec; std::vector vsTargetVec; this->AddLibraries(cli, libVec, vsTargetVec); + if (std::find(linkClosure->Languages.begin(), linkClosure->Languages.end(), + "CUDA") != linkClosure->Languages.end()) { + switch (this->CudaOptions[config]->GetCudaRuntime()) { + case cmVisualStudioGeneratorOptions::CudaRuntimeStatic: + libVec.push_back("cudart_static.lib"); + break; + case cmVisualStudioGeneratorOptions::CudaRuntimeShared: + libVec.push_back("cudart.lib"); + break; + case cmVisualStudioGeneratorOptions::CudaRuntimeNone: + break; + } + } std::string standardLibsVar = "CMAKE_"; standardLibsVar += linkLanguage; standardLibsVar += "_STANDARD_LIBRARIES"; diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 125d2c4..c79dc11 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -187,6 +187,27 @@ bool cmVisualStudioGeneratorOptions::UsingSBCS() const return false; } +cmVisualStudioGeneratorOptions::CudaRuntime +cmVisualStudioGeneratorOptions::GetCudaRuntime() const +{ + std::map::const_iterator i = + this->FlagMap.find("CudaRuntime"); + if (i != this->FlagMap.end() && i->second.size() == 1) { + std::string const& cudaRuntime = i->second[0]; + if (cudaRuntime == "Static") { + return CudaRuntimeStatic; + } + if (cudaRuntime == "Shared") { + return CudaRuntimeShared; + } + if (cudaRuntime == "None") { + return CudaRuntimeNone; + } + } + // nvcc default is static + return CudaRuntimeStatic; +} + void cmVisualStudioGeneratorOptions::Parse(const char* flags) { // Parse the input string as a windows command line since the string @@ -220,6 +241,21 @@ void cmVisualStudioGeneratorOptions::ParseFinish() rl += this->FortranRuntimeDLL ? "DLL" : ""; this->FlagMap["RuntimeLibrary"] = rl; } + + if (this->CurrentTool == CudaCompiler) { + std::map::iterator i = + this->FlagMap.find("CudaRuntime"); + if (i != this->FlagMap.end() && i->second.size() == 1) { + std::string& cudaRuntime = i->second[0]; + if (cudaRuntime == "static") { + cudaRuntime = "Static"; + } else if (cudaRuntime == "shared") { + cudaRuntime = "Shared"; + } else if (cudaRuntime == "none") { + cudaRuntime = "None"; + } + } + } } void cmVisualStudioGeneratorOptions::PrependInheritedString( diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index e19d2dd..6722503 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -67,6 +67,14 @@ public: bool UsingUnicode() const; bool UsingSBCS() const; + enum CudaRuntime + { + CudaRuntimeStatic, + CudaRuntimeShared, + CudaRuntimeNone + }; + CudaRuntime GetCudaRuntime() const; + bool IsDebug() const; bool IsWinRt() const; bool IsManaged() const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=65ebb6301f040aee231e4d51cab9d1a8f2288d70 commit 65ebb6301f040aee231e4d51cab9d1a8f2288d70 Author: Brad King AuthorDate: Tue Mar 7 16:12:27 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:38 2017 -0500 VS: Place CUDA host compiler options in proper project file fields The CUDA Toolkit's VS integration provides abstractions for host compiler options for `nvcc` to pass through `-Xcompiler` to the host MSVC. Populate our secondary flag table and use it to remove flags from the `AdditionalCompilerOptions` in favor of their abstractions. Unfortunately a bug in the CUDA 8.0 VS integration prevents us from passing anything in `AdditionalCompilerOptions` reliably. After taking out the flags that have dedicated abstractions, drop the rest. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 4df474e..0a93de8 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -1 +1,9 @@ -static cmVS7FlagTable cmVS10CudaFlagTable[] = { { 0, 0, 0, 0, 0 } }; +static cmVS7FlagTable cmVS10CudaFlagTable[] = { + // Collect options meant for the host compiler. + { "AdditionalCompilerOptions", "Xcompiler=", "Host compiler options", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SpaceAppendable }, + { "AdditionalCompilerOptions", "Xcompiler", "Host compiler options", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SpaceAppendable }, + + { 0, 0, 0, 0, 0 } +}; diff --git a/Source/cmVS10CudaHostFlagTable.h b/Source/cmVS10CudaHostFlagTable.h index 5ad05f1..5b61066 100644 --- a/Source/cmVS10CudaHostFlagTable.h +++ b/Source/cmVS10CudaHostFlagTable.h @@ -1 +1,35 @@ -static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { { 0, 0, 0, 0, 0 } }; +static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { + //{"Optimization", "", "", "InheritFromHost", 0}, + { "Optimization", "Od", "Disabled", "Od", 0 }, + { "Optimization", "O1", "Minimize Size", "O1", 0 }, + { "Optimization", "O2", "Maximize Speed", "O2", 0 }, + { "Optimization", "Ox", "Full Optimization", "O3", 0 }, + + //{"Runtime", "", "", "InheritFromHost", 0}, + { "Runtime", "MT", "Multi-Threaded", "MT", 0 }, + { "Runtime", "MTd", "Multi-Threaded Debug", "MTd", 0 }, + { "Runtime", "MD", "Multi-Threaded DLL", "MD", 0 }, + { "Runtime", "MDd", "Multi-threaded Debug DLL", "MDd", 0 }, + { "Runtime", "ML", "Single-Threaded", "ML", 0 }, + { "Runtime", "MLd", "Single-Threaded Debug", "MLd", 0 }, + + //{"RuntimeChecks", "", "", "InheritFromHost", 0}, + //{"RuntimeChecks", "", "Default", "Default", 0}, + { "RuntimeChecks", "RTCs", "Stack Frames", "RTCs", 0 }, + { "RuntimeChecks", "RTCu", "Uninitialized Variables", "RTCu", 0 }, + { "RuntimeChecks", "RTC1", "Both", "RTC1", 0 }, + + //{"TypeInfo", "", "", "InheritFromHost", 0}, + { "TypeInfo", "GR", "Yes", "true", 0 }, + { "TypeInfo", "GR-", "No", "false", 0 }, + + //{"Warning", "", "", "InheritFromHost", 0}, + { "Warning", "W0", "Off: Turn Off All Warnings", "W0", 0 }, + { "Warning", "W1", "Level 1", "W1", 0 }, + { "Warning", "W2", "Level 2", "W2", 0 }, + { "Warning", "W3", "Level 3", "W3", 0 }, + { "Warning", "W4", "Level 4", "W4", 0 }, + { "Warning", "Wall", "Enable All Warnings", "Wall", 0 }, + + { 0, 0, 0, 0, 0 } +}; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index ec39c8f..7d66fcb 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2470,6 +2470,16 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( cudaOptions.Parse(defineFlags.c_str()); cudaOptions.ParseFinish(); + // Convert the host compiler options to the toolset's abstractions + // using a secondary flag table. + cudaOptions.ClearTables(); + cudaOptions.AddTable(gg->GetCudaHostFlagTable()); + cudaOptions.Reparse("AdditionalCompilerOptions"); + + // `CUDA 8.0.targets` places these before nvcc! Just drop whatever + // did not parse and hope it works. + cudaOptions.RemoveFlag("AdditionalCompilerOptions"); + std::vector targetDefines; this->GeneratorTarget->GetCompileDefinitions(targetDefines, configName.c_str(), "CUDA"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=87128b1cb62375719009bd1c55421849777edd2d commit 87128b1cb62375719009bd1c55421849777edd2d Author: Brad King AuthorDate: Tue Mar 7 16:08:45 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:35 2017 -0500 VS: Do not pass CUDA compile options to C compiler diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index c4bcd41..ec39c8f 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2235,8 +2235,10 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( if (linkLanguage == "CXX") { clOptions.AddFlag("CompileAs", "CompileAsCpp"); } - this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget, - linkLanguage, configName.c_str()); + if (linkLanguage != "CUDA") { + this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget, + linkLanguage, configName.c_str()); + } // Get preprocessor definitions for this directory. std::string defineFlags = https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0c90892fc84455b5182fa5f2a81a6d38555edb3e commit 0c90892fc84455b5182fa5f2a81a6d38555edb3e Author: Brad King AuthorDate: Tue Mar 7 16:07:12 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:32 2017 -0500 VS: Do not use absolute paths to CUDA sources The CUDA Toolkit's VS integration does not properly compute the intermediate files directory location when the path to the source file is absolute. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 613c825..c4bcd41 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1717,8 +1717,10 @@ void cmVisualStudio10TargetGenerator::WriteSource(std::string const& tool, // // and fail if this exceeds the maximum allowed path length. Our path // conversion uses full paths when possible to allow deeper trees. - bool forceRelative = false; - std::string sourceFile = this->ConvertPath(sf->GetFullPath(), false); + // However, CUDA 8.0 msbuild rules fail on absolute paths so for CUDA + // we must use relative paths. + bool forceRelative = sf->GetLanguage() == "CUDA"; + std::string sourceFile = this->ConvertPath(sf->GetFullPath(), forceRelative); if (this->LocalGenerator->GetVersion() == cmGlobalVisualStudioGenerator::VS10 && cmSystemTools::FileIsFullPath(sourceFile.c_str())) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f912d40db1a5f7aee94ff2ce2434be2215abaf6c commit f912d40db1a5f7aee94ff2ce2434be2215abaf6c Author: Brad King AuthorDate: Tue Mar 7 15:59:33 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:28 2017 -0500 VS: Add basic infrastructure for CUDA generation Generate the `CudaCompile` elements in `.vcxproj` files. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index fbf7447..613c825 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -112,6 +112,10 @@ cmVisualStudio10TargetGenerator::~cmVisualStudio10TargetGenerator() i != this->LinkOptions.end(); ++i) { delete i->second; } + for (OptionsMap::iterator i = this->CudaOptions.begin(); + i != this->CudaOptions.end(); ++i) { + delete i->second; + } if (!this->BuildFileStream) { return; } @@ -206,6 +210,9 @@ void cmVisualStudio10TargetGenerator::Generate() if (!this->ComputeRcOptions()) { return; } + if (!this->ComputeCudaOptions()) { + return; + } if (!this->ComputeMasmOptions()) { return; } @@ -454,6 +461,14 @@ void cmVisualStudio10TargetGenerator::Generate() this->WriteString("\n", 1); } this->WriteString("\n", 1); + if (this->GlobalGenerator->IsCudaEnabled()) { + this->WriteString("BuildFileStream) + << cmVS10EscapeXML(this->GlobalGenerator->GetPlatformToolsetCudaString()) + << ".props\" />\n"; + } if (this->GlobalGenerator->IsMasmEnabled()) { this->WriteString("\n", @@ -524,6 +539,14 @@ void cmVisualStudio10TargetGenerator::Generate() this->WriteTargetSpecificReferences(); this->WriteString("\n", 1); this->WriteTargetsFileReferences(); + if (this->GlobalGenerator->IsCudaEnabled()) { + this->WriteString("BuildFileStream) + << cmVS10EscapeXML(this->GlobalGenerator->GetPlatformToolsetCudaString()) + << ".targets\" />\n"; + } if (this->GlobalGenerator->IsMasmEnabled()) { this->WriteString("\n", @@ -1772,6 +1795,8 @@ void cmVisualStudio10TargetGenerator::WriteAllSources() tool = "ResourceCompile"; } else if (lang == "CSharp") { tool = "Compile"; + } else if (lang == "CUDA" && this->GlobalGenerator->IsCudaEnabled()) { + tool = "CudaCompile"; } if (!tool.empty()) { @@ -2401,6 +2426,83 @@ void cmVisualStudio10TargetGenerator::WriteRCOptions( this->WriteString("\n", 2); } +bool cmVisualStudio10TargetGenerator::ComputeCudaOptions() +{ + if (!this->GlobalGenerator->IsCudaEnabled()) { + return true; + } + for (std::vector::const_iterator i = + this->Configurations.begin(); + i != this->Configurations.end(); ++i) { + if (!this->ComputeCudaOptions(*i)) { + return false; + } + } + return true; +} + +bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( + std::string const& configName) +{ + cmGlobalVisualStudio10Generator* gg = + static_cast(this->GlobalGenerator); + CM_AUTO_PTR pOptions(new Options( + this->LocalGenerator, Options::CudaCompiler, gg->GetCudaFlagTable())); + Options& cudaOptions = *pOptions; + + // Get compile flags for CUDA in this directory. + std::string CONFIG = cmSystemTools::UpperCase(configName); + std::string configFlagsVar = std::string("CMAKE_CUDA_FLAGS_") + CONFIG; + std::string flags = + std::string(this->Makefile->GetSafeDefinition("CMAKE_CUDA_FLAGS")) + + std::string(" ") + + std::string(this->Makefile->GetSafeDefinition(configFlagsVar)); + + // Get preprocessor definitions for this directory. + std::string defineFlags = + this->GeneratorTarget->Target->GetMakefile()->GetDefineFlags(); + + cudaOptions.Parse(flags.c_str()); + cudaOptions.Parse(defineFlags.c_str()); + cudaOptions.ParseFinish(); + + std::vector targetDefines; + this->GeneratorTarget->GetCompileDefinitions(targetDefines, + configName.c_str(), "CUDA"); + cudaOptions.AddDefines(targetDefines); + + // Add a definition for the configuration name. + std::string configDefine = "CMAKE_INTDIR=\""; + configDefine += configName; + configDefine += "\""; + cudaOptions.AddDefine(configDefine); + if (const char* exportMacro = this->GeneratorTarget->GetExportMacro()) { + cudaOptions.AddDefine(exportMacro); + } + + this->CudaOptions[configName] = pOptions.release(); + return true; +} + +void cmVisualStudio10TargetGenerator::WriteCudaOptions( + std::string const& configName, std::vector const& includes) +{ + if (!this->MSTools || !this->GlobalGenerator->IsCudaEnabled()) { + return; + } + this->WriteString("\n", 2); + + Options& cudaOptions = *(this->CudaOptions[configName]); + cudaOptions.AppendFlag("Include", includes); + cudaOptions.AppendFlag("Include", "%(Include)"); + cudaOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ", + "\n", "CUDA"); + cudaOptions.PrependInheritedString("AdditionalOptions"); + cudaOptions.OutputFlagMap(*this->BuildFileStream, " "); + + this->WriteString("\n", 2); +} + bool cmVisualStudio10TargetGenerator::ComputeMasmOptions() { if (!this->GlobalGenerator->IsMasmEnabled()) { @@ -3142,6 +3244,7 @@ void cmVisualStudio10TargetGenerator::WriteItemDefinitionGroups() this->WriteClOptions(*i, includes); // output rc compile flags this->WriteRCOptions(*i, includes); + this->WriteCudaOptions(*i, includes); this->WriteMasmOptions(*i, includes); this->WriteNasmOptions(*i, includes); } diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h index 0ebb4e4..52d5550 100644 --- a/Source/cmVisualStudio10TargetGenerator.h +++ b/Source/cmVisualStudio10TargetGenerator.h @@ -98,6 +98,10 @@ private: bool ComputeRcOptions(std::string const& config); void WriteRCOptions(std::string const& config, std::vector const& includes); + bool ComputeCudaOptions(); + bool ComputeCudaOptions(std::string const& config); + void WriteCudaOptions(std::string const& config, + std::vector const& includes); bool ComputeMasmOptions(); bool ComputeMasmOptions(std::string const& config); void WriteMasmOptions(std::string const& config, @@ -150,6 +154,7 @@ private: typedef std::map OptionsMap; OptionsMap ClOptions; OptionsMap RcOptions; + OptionsMap CudaOptions; OptionsMap MasmOptions; OptionsMap NasmOptions; OptionsMap LinkOptions; diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 3007f14..125d2c4 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -299,6 +299,9 @@ void cmVisualStudioGeneratorOptions::OutputPreprocessorDefinitions( return; } const char* tag = "PreprocessorDefinitions"; + if (lang == "CUDA") { + tag = "Defines"; + } if (this->Version >= cmGlobalVisualStudioGenerator::VS10) { // if there are configuration specific flags, then // use the configuration specific tag for PreprocessorDefinitions diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index e79c977..e19d2dd 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -26,6 +26,7 @@ public: { Compiler, ResourceCompiler, + CudaCompiler, MasmCompiler, NasmCompiler, Linker, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f0b6d32b5c45139bebe411500de64437a5f5b0c commit 7f0b6d32b5c45139bebe411500de64437a5f5b0c Author: Brad King AuthorDate: Tue Mar 7 15:47:50 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:25 2017 -0500 VS: Add placeholder CUDA flag tables The CUDA Toolkit's VS integration defines abstractions for both options to `nvcc` and options to pass through `-Xcompiler` to the host MSVC. We need a separate flag table to parse each set of flags into the corresponding abstractions. Add empty placeholders for these tables. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index fc0bffb..be12cab 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -10,6 +10,8 @@ #include "cmSourceFile.h" #include "cmVS10CLFlagTable.h" #include "cmVS10CSharpFlagTable.h" +#include "cmVS10CudaFlagTable.h" +#include "cmVS10CudaHostFlagTable.h" #include "cmVS10LibFlagTable.h" #include "cmVS10LinkFlagTable.h" #include "cmVS10MASMFlagTable.h" @@ -122,6 +124,8 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( this->DefaultCSharpFlagTable = cmVS10CSharpFlagTable; this->DefaultLibFlagTable = cmVS10LibFlagTable; this->DefaultLinkFlagTable = cmVS10LinkFlagTable; + this->DefaultCudaFlagTable = cmVS10CudaFlagTable; + this->DefaultCudaHostFlagTable = cmVS10CudaHostFlagTable; this->DefaultMasmFlagTable = cmVS10MASMFlagTable; this->DefaultNasmFlagTable = cmVS10NASMFlagTable; this->DefaultRcFlagTable = cmVS10RCFlagTable; @@ -934,6 +938,17 @@ cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetLinkFlagTable() const return (table != CM_NULLPTR) ? table : this->DefaultLinkFlagTable; } +cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetCudaFlagTable() const +{ + return this->DefaultCudaFlagTable; +} + +cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetCudaHostFlagTable() + const +{ + return this->DefaultCudaHostFlagTable; +} + cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetMasmFlagTable() const { cmIDEFlagTable const* table = this->ToolsetOptions.GetMasmFlagTable( diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index fdeb381..20f992a 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -100,6 +100,8 @@ public: cmIDEFlagTable const* GetRcFlagTable() const; cmIDEFlagTable const* GetLibFlagTable() const; cmIDEFlagTable const* GetLinkFlagTable() const; + cmIDEFlagTable const* GetCudaFlagTable() const; + cmIDEFlagTable const* GetCudaHostFlagTable() const; cmIDEFlagTable const* GetMasmFlagTable() const; cmIDEFlagTable const* GetNasmFlagTable() const; @@ -134,6 +136,8 @@ protected: cmIDEFlagTable const* DefaultCSharpFlagTable; cmIDEFlagTable const* DefaultLibFlagTable; cmIDEFlagTable const* DefaultLinkFlagTable; + cmIDEFlagTable const* DefaultCudaFlagTable; + cmIDEFlagTable const* DefaultCudaHostFlagTable; cmIDEFlagTable const* DefaultMasmFlagTable; cmIDEFlagTable const* DefaultNasmFlagTable; cmIDEFlagTable const* DefaultRcFlagTable; diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h new file mode 100644 index 0000000..4df474e --- /dev/null +++ b/Source/cmVS10CudaFlagTable.h @@ -0,0 +1 @@ +static cmVS7FlagTable cmVS10CudaFlagTable[] = { { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVS10CudaHostFlagTable.h b/Source/cmVS10CudaHostFlagTable.h new file mode 100644 index 0000000..5ad05f1 --- /dev/null +++ b/Source/cmVS10CudaHostFlagTable.h @@ -0,0 +1 @@ +static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { { 0, 0, 0, 0, 0 } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1571e3df8782e67073a654cd3881aea11d58fa6 commit d1571e3df8782e67073a654cd3881aea11d58fa6 Author: Brad King AuthorDate: Tue Mar 7 15:44:43 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:21 2017 -0500 VS: Record in global generator whether CUDA is enabled diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 3cde36d..fc0bffb 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -103,6 +103,7 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\10.0\\Setup\\VC;" "ProductDir", vc10Express, cmSystemTools::KeyWOW64_32); + this->CudaEnabled = false; this->SystemIsWindowsCE = false; this->SystemIsWindowsPhone = false; this->SystemIsWindowsStore = false; @@ -459,6 +460,9 @@ void cmGlobalVisualStudio10Generator::EnableLanguage( if (*it == "ASM_NASM") { this->NasmEnabled = true; } + if (*it == "CUDA") { + this->CudaEnabled = true; + } } this->AddPlatformDefinitions(mf); cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional); diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 581ad11..fdeb381 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -42,6 +42,8 @@ public: cmMakefile*, bool optional); virtual void WriteSLNHeader(std::ostream& fout); + bool IsCudaEnabled() const { return this->CudaEnabled; } + /** Generating for Nsight Tegra VS plugin? */ bool IsNsightTegra() const; std::string GetNsightTegraVersion() const; @@ -168,6 +170,8 @@ private: std::string VCTargetsPath; bool FindVCTargetsPath(cmMakefile* mf); + bool CudaEnabled; + // We do not use the reload macros for VS >= 10. virtual std::string GetUserMacrosDirectory() { return ""; } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 commit 93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 Author: Brad King AuthorDate: Tue Mar 7 14:32:35 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:18 2017 -0500 VS: Add support for determining CUDA compiler id Teach `CMakeDetermineCompilerId` how to generate a vcxproj file using the `CMAKE_VS_PLATFORM_TOOLSET_CUDA`. diff --git a/Modules/CMakeDetermineCUDACompiler.cmake b/Modules/CMakeDetermineCUDACompiler.cmake index 375e230..55a6f0c 100644 --- a/Modules/CMakeDetermineCUDACompiler.cmake +++ b/Modules/CMakeDetermineCUDACompiler.cmake @@ -5,36 +5,40 @@ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake) include(${CMAKE_ROOT}/Modules//CMakeParseImplicitLinkInfo.cmake) if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR - ("${CMAKE_GENERATOR}" MATCHES "Ninja") ) ) + ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR + ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[7-9][0-9])") ) ) message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator") endif() -if(NOT CMAKE_CUDA_COMPILER) - set(CMAKE_CUDA_COMPILER_INIT NOTFOUND) - - # prefer the environment variable CUDACXX - if(NOT $ENV{CUDACXX} STREQUAL "") - get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT) - if(CMAKE_CUDA_FLAGS_ENV_INIT) - set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler") - endif() - if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT}) - message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}") +if(${CMAKE_GENERATOR} MATCHES "Visual Studio") +else() + if(NOT CMAKE_CUDA_COMPILER) + set(CMAKE_CUDA_COMPILER_INIT NOTFOUND) + + # prefer the environment variable CUDACXX + if(NOT $ENV{CUDACXX} STREQUAL "") + get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT) + if(CMAKE_CUDA_FLAGS_ENV_INIT) + set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler") + endif() + if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT}) + message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}") + endif() endif() + + # finally list compilers to try + if(NOT CMAKE_CUDA_COMPILER_INIT) + set(CMAKE_CUDA_COMPILER_LIST nvcc) endif() - # finally list compilers to try - if(NOT CMAKE_CUDA_COMPILER_INIT) - set(CMAKE_CUDA_COMPILER_LIST nvcc) + _cmake_find_compiler(CUDA) + else() + _cmake_find_compiler_path(CUDA) endif() - _cmake_find_compiler(CUDA) -else() - _cmake_find_compiler_path(CUDA) + mark_as_advanced(CMAKE_CUDA_COMPILER) endif() -mark_as_advanced(CMAKE_CUDA_COMPILER) - #Allow the user to specify a host compiler set(CMAKE_CUDA_HOST_COMPILER "" CACHE FILEPATH "Host compiler to be used by nvcc") if(NOT $ENV{CUDAHOSTCXX} STREQUAL "") @@ -75,7 +79,12 @@ if(MSVC_CUDA_ARCHITECTURE_ID) "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})") endif() -if(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA) +if(${CMAKE_GENERATOR} MATCHES "Visual Studio") + set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +elseif(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA) set(_nvcc_log "") string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}") if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n") diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 5d85186..6fce8e2 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -241,6 +241,20 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_Import_targets "") set(id_ItemDefinitionGroup_entry "") set(id_Link_AdditionalDependencies "") + if(lang STREQUAL CUDA) + if(NOT CMAKE_VS_PLATFORM_TOOLSET_CUDA) + message(FATAL_ERROR "No CUDA toolset found.") + endif() + set(cuda_tools "CUDA ${CMAKE_VS_PLATFORM_TOOLSET_CUDA}") + set(id_compile "CudaCompile") + set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]]) + string(CONCAT id_Import_props [[]]) + string(CONCAT id_Import_targets [[]]) + if(CMAKE_VS_PLATFORM_NAME STREQUAL x64) + set(id_ItemDefinitionGroup_entry "64") + endif() + set(id_Link_AdditionalDependencies "cudart.lib") + endif() configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f2f6fcf621e09af9c2a8e01451b52e039c17e815 commit f2f6fcf621e09af9c2a8e01451b52e039c17e815 Author: Brad King AuthorDate: Tue Mar 7 15:16:17 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:15 2017 -0500 VS: Add method to take a value out of the option parser flag map Remove a flag from the map and return its value. diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 1d20d44..3007f14 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -274,6 +274,18 @@ void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) this->AppendFlagString(this->UnknownFlagField, opts); } +cmIDEOptions::FlagValue cmVisualStudioGeneratorOptions::TakeFlag( + std::string const& key) +{ + FlagValue value; + std::map::iterator i = this->FlagMap.find(key); + if (i != this->FlagMap.end()) { + value = i->second; + this->FlagMap.erase(i); + } + return value; +} + void cmVisualStudioGeneratorOptions::SetConfiguration(const char* config) { this->Configuration = config; diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 700b877..e79c977 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -91,6 +91,8 @@ private: std::string UnknownFlagField; virtual void StoreUnknownFlag(const char* flag); + + FlagValue TakeFlag(std::string const& key); }; #endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 commit e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 Author: Brad King AuthorDate: Tue Mar 7 15:10:30 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:12 2017 -0500 VS: Add method to re-parse specific option parser fields This will allow a client to parse flags, replace the flag tables, and then re-parse a field in which flags for a secondary tool were collected. diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 3f9ef94..1d20d44 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -43,6 +43,8 @@ cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( this->FortranRuntimeDebug = false; this->FortranRuntimeDLL = false; this->FortranRuntimeMT = false; + + this->UnknownFlagField = "AdditionalOptions"; } cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( @@ -67,6 +69,8 @@ cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( this->FortranRuntimeDebug = false; this->FortranRuntimeDLL = false; this->FortranRuntimeMT = false; + + this->UnknownFlagField = "AdditionalOptions"; } void cmVisualStudioGeneratorOptions::AddTable(cmVS7FlagTable const* table) @@ -229,6 +233,18 @@ void cmVisualStudioGeneratorOptions::PrependInheritedString( value = "%(" + key + ") " + value; } +void cmVisualStudioGeneratorOptions::Reparse(std::string const& key) +{ + std::map::iterator i = this->FlagMap.find(key); + if (i == this->FlagMap.end() || i->second.size() != 1) { + return; + } + std::string const original = i->second[0]; + i->second[0] = ""; + this->UnknownFlagField = key; + this->Parse(original.c_str()); +} + void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) { // Look for Intel Fortran flags that do not map well in the flag table. @@ -255,7 +271,7 @@ void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) std::string const opts = cmOutputConverter::EscapeWindowsShellArgument( flag, cmOutputConverter::Shell_Flag_AllowMakeVariables | cmOutputConverter::Shell_Flag_VSIDE); - this->AppendFlagString("AdditionalOptions", opts); + this->AppendFlagString(this->UnknownFlagField, opts); } void cmVisualStudioGeneratorOptions::SetConfiguration(const char* config) diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index f6cc7ec..700b877 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -52,6 +52,10 @@ public: void PrependInheritedString(std::string const& key); + // Parse the content of the given flag table entry again to extract + // known flags and leave the rest in the original entry. + void Reparse(std::string const& key); + // Fix the ExceptionHandling option to default to off. void FixExceptionHandlingDefault(); @@ -84,6 +88,8 @@ private: bool FortranRuntimeDLL; bool FortranRuntimeMT; + std::string UnknownFlagField; + virtual void StoreUnknownFlag(const char* flag); }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c5b7598ef7410727b81738c891ca1fa50bdca87a commit c5b7598ef7410727b81738c891ca1fa50bdca87a Author: Brad King AuthorDate: Wed Feb 15 09:40:07 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:08 2017 -0500 VS: Add method to clear flag tables of option parser diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index dfe5ce6..3f9ef94 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -81,6 +81,13 @@ void cmVisualStudioGeneratorOptions::AddTable(cmVS7FlagTable const* table) } } +void cmVisualStudioGeneratorOptions::ClearTables() +{ + for (int i = 0; i < FlagTableCount; ++i) { + this->FlagTable[i] = CM_NULLPTR; + } +} + void cmVisualStudioGeneratorOptions::FixExceptionHandlingDefault() { // Exception handling is on by default because the platform file has diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 8c49470..f6cc7ec 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -43,6 +43,9 @@ public: // Add a table of flags. void AddTable(cmVS7FlagTable const* table); + // Clear the flag tables. + void ClearTables(); + // Store options from command line flags. void Parse(const char* flags); void ParseFinish(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=99ce2751a470df3e0ea61a303917ce5816c3519f commit 99ce2751a470df3e0ea61a303917ce5816c3519f Author: Brad King AuthorDate: Mon Jan 16 15:24:24 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:05 2017 -0500 VS: Add more placeholders to compiler id detection project file template diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 7dcd981..5d85186 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -237,6 +237,10 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_src "${src}") set(id_compile "ClCompile") set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i") + set(id_Import_props "") + set(id_Import_targets "") + set(id_ItemDefinitionGroup_entry "") + set(id_Link_AdditionalDependencies "") configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") diff --git a/Modules/CompilerId/VS-10.vcxproj.in b/Modules/CompilerId/VS-10.vcxproj.in index a900482..6b9b361 100644 --- a/Modules/CompilerId/VS-10.vcxproj.in +++ b/Modules/CompilerId/VS-10.vcxproj.in @@ -25,6 +25,9 @@ MultiByte + + @id_Import_props@ + <_ProjectFileVersion>10.0.30319.1 .\ @@ -44,9 +47,11 @@ + @id_ItemDefinitionGroup_entry@ false Console + @id_Link_AdditionalDependencies@ @id_PostBuildEvent_Command@ @@ -56,4 +61,7 @@ <@id_compile@ Include="@id_src@" /> + + @id_Import_targets@ + https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9b231290d639fb206707a3a0e6342f3d7458f5ae commit 9b231290d639fb206707a3a0e6342f3d7458f5ae Author: Brad King AuthorDate: Mon Jan 16 15:21:23 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 15:00:02 2017 -0500 VS: Refactor compiler id detection project file template Make the `ClCompile` element name and `PostBuildEvent/Command` value configurable. Move the current content into default values for the corresponding variables. diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index ae485bf..7dcd981 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -235,6 +235,8 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} endif() set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR}) set(id_src "${src}") + set(id_compile "ClCompile") + set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i") configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") diff --git a/Modules/CompilerId/VS-10.vcxproj.in b/Modules/CompilerId/VS-10.vcxproj.in index 50be9cb..a900482 100644 --- a/Modules/CompilerId/VS-10.vcxproj.in +++ b/Modules/CompilerId/VS-10.vcxproj.in @@ -49,11 +49,11 @@ Console - for %%i in (@id_cl@) do %40echo CMAKE_ at id_lang@_COMPILER=%%~$PATH:i + @id_PostBuildEvent_Command@ - + <@id_compile@ Include="@id_src@" /> https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=097de72be2cbd43fb165f1995a1ea97bd45369b4 commit 097de72be2cbd43fb165f1995a1ea97bd45369b4 Author: Brad King AuthorDate: Wed Feb 8 16:25:03 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 14:59:59 2017 -0500 VS: Select highest available CUDA toolset by default If `CMAKE_GENERATOR_TOOLSET` does not have a `cuda=...` field then find available CUDA toolsets and choose the highest version. diff --git a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst index cc18a20..1604a76 100644 --- a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst +++ b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst @@ -6,5 +6,7 @@ NVIDIA CUDA Toolkit version whose Visual Studio toolset to use. The :ref:`Visual Studio Generators` for VS 2010 and above support using a CUDA toolset provided by a CUDA Toolkit. The toolset version number may be specified by a field in :variable:`CMAKE_GENERATOR_TOOLSET` of -the form ``cuda=8.0``. CMake provides the selected CUDA toolset version -in this variable. The value may be empty if no version was specified. +the form ``cuda=8.0``. If none is specified CMake will choose a default +version. CMake provides the selected CUDA toolset version in this variable. +The value may be empty if no CUDA Toolkit with Visual Studio integration +is installed. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index b05688d..3cde36d 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -22,8 +22,11 @@ #include "cmake.h" #include +#include #include +#include + static const char vs10generatorName[] = "Visual Studio 10 2010"; // Map generator name without year to name with year. @@ -160,6 +163,13 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorPlatform( return true; } +static void cmCudaToolVersion(std::string& s) +{ + // "CUDA x.y.props" => "x.y" + s = s.substr(5); + s = s.substr(0, s.size() - 6); +} + bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( std::string const& ts, cmMakefile* mf) { @@ -180,6 +190,23 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( return false; } + if (this->GeneratorToolsetCuda.empty()) { + // Find the highest available version of the CUDA tools. + std::vector cudaTools; + std::string const bcDir = this->VCTargetsPath + "/BuildCustomizations"; + cmsys::Glob gl; + gl.SetRelative(bcDir.c_str()); + if (gl.FindFiles(bcDir + "/CUDA *.props")) { + cudaTools = gl.GetFiles(); + } + if (!cudaTools.empty()) { + std::for_each(cudaTools.begin(), cudaTools.end(), cmCudaToolVersion); + std::sort(cudaTools.begin(), cudaTools.end(), + cmSystemTools::VersionCompareGreater); + this->GeneratorToolsetCuda = cudaTools.at(0); + } + } + if (const char* toolset = this->GetPlatformToolset()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b9ea0713e8f660fa94d46c44c40327b8665054fe commit b9ea0713e8f660fa94d46c44c40327b8665054fe Author: Brad King AuthorDate: Wed Feb 8 16:05:08 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 14:59:55 2017 -0500 VS: Provide an option to specify CUDA toolset version The NVIDIA CUDA Toolkit provides MSBuild toolset files for integration with Visual Studio. Multiple versions may be installed so we need a way to tell our VS generators which CUDA toolset to use. Extend the `CMAKE_GENERATOR_TOOLSET` specification to provide a `cuda=...` field specifying the version number. diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 3ec0c19..45829bc 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -82,6 +82,7 @@ Variables that Provide Information /variable/CMAKE_VS_NsightTegra_VERSION /variable/CMAKE_VS_PLATFORM_NAME /variable/CMAKE_VS_PLATFORM_TOOLSET + /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION /variable/CMAKE_XCODE_PLATFORM_TOOLSET diff --git a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst new file mode 100644 index 0000000..cc18a20 --- /dev/null +++ b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst @@ -0,0 +1,10 @@ +CMAKE_VS_PLATFORM_TOOLSET_CUDA +------------------------------ + +NVIDIA CUDA Toolkit version whose Visual Studio toolset to use. + +The :ref:`Visual Studio Generators` for VS 2010 and above support using +a CUDA toolset provided by a CUDA Toolkit. The toolset version number +may be specified by a field in :variable:`CMAKE_GENERATOR_TOOLSET` of +the form ``cuda=8.0``. CMake provides the selected CUDA toolset version +in this variable. The value may be empty if no version was specified. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index c47aec1..b05688d 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -186,6 +186,9 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( if (const char* hostArch = this->GetPlatformToolsetHostArchitecture()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE", hostArch); } + if (const char* cuda = this->GetPlatformToolsetCuda()) { + mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET_CUDA", cuda); + } return true; } @@ -261,8 +264,10 @@ bool cmGlobalVisualStudio10Generator::ParseGeneratorToolset( bool cmGlobalVisualStudio10Generator::ProcessGeneratorToolsetField( std::string const& key, std::string const& value) { - static_cast(key); - static_cast(value); + if (key == "cuda") { + this->GeneratorToolsetCuda = value; + return true; + } return false; } @@ -463,6 +468,20 @@ cmGlobalVisualStudio10Generator::GetPlatformToolsetHostArchitecture() const return CM_NULLPTR; } +const char* cmGlobalVisualStudio10Generator::GetPlatformToolsetCuda() const +{ + if (!this->GeneratorToolsetCuda.empty()) { + return this->GeneratorToolsetCuda.c_str(); + } + return CM_NULLPTR; +} + +std::string const& +cmGlobalVisualStudio10Generator::GetPlatformToolsetCudaString() const +{ + return this->GeneratorToolsetCuda; +} + bool cmGlobalVisualStudio10Generator::FindMakeProgram(cmMakefile* mf) { if (!this->cmGlobalVisualStudio8Generator::FindMakeProgram(mf)) { diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 149dcba..581ad11 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -53,6 +53,10 @@ public: /** The toolset host architecture name (e.g. x64 for 64-bit host tools). */ const char* GetPlatformToolsetHostArchitecture() const; + /** The cuda toolset version. */ + const char* GetPlatformToolsetCuda() const; + std::string const& GetPlatformToolsetCudaString() const; + /** Return the CMAKE_SYSTEM_NAME. */ std::string const& GetSystemName() const { return this->SystemName; } @@ -118,6 +122,7 @@ protected: std::string GeneratorToolset; std::string GeneratorToolsetHostArchitecture; + std::string GeneratorToolsetCuda; std::string DefaultPlatformToolset; std::string WindowsTargetPlatformVersion; std::string SystemName; diff --git a/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake index 44c67a2..f6449f2 100644 --- a/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake @@ -6,6 +6,12 @@ run_cmake(NoToolset) if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[01245]") set(RunCMake_GENERATOR_TOOLSET "Test Toolset") run_cmake(TestToolset) + set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=Test Cuda") + run_cmake(TestToolsetCudaBoth) + set(RunCMake_GENERATOR_TOOLSET ",cuda=Test Cuda") + run_cmake(TestToolsetCudaOnly) + set(RunCMake_GENERATOR_TOOLSET "cuda=Test Cuda") + run_cmake(TestToolsetCudaOnly) if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[245]") set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64") run_cmake(TestToolsetHostArchBoth) diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt new file mode 100644 index 0000000..90503e2 --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt @@ -0,0 +1,2 @@ +-- CMAKE_VS_PLATFORM_TOOLSET='Test Toolset' +-- CMAKE_VS_PLATFORM_TOOLSET_CUDA='Test Cuda' diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake new file mode 100644 index 0000000..befa0af --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake @@ -0,0 +1,2 @@ +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET='${CMAKE_VS_PLATFORM_TOOLSET}'") +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET_CUDA='${CMAKE_VS_PLATFORM_TOOLSET_CUDA}'") diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt new file mode 100644 index 0000000..f94971f --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt @@ -0,0 +1,2 @@ +-- CMAKE_VS_PLATFORM_TOOLSET='v[0-9]+' +-- CMAKE_VS_PLATFORM_TOOLSET_CUDA='Test Cuda' diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake new file mode 100644 index 0000000..befa0af --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake @@ -0,0 +1,2 @@ +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET='${CMAKE_VS_PLATFORM_TOOLSET}'") +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET_CUDA='${CMAKE_VS_PLATFORM_TOOLSET_CUDA}'") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cca12f281673e60c1b0179416c5a12f2a7eca82b commit cca12f281673e60c1b0179416c5a12f2a7eca82b Author: Brad King AuthorDate: Wed Feb 8 16:28:39 2017 -0500 Commit: Brad King CommitDate: Wed Mar 8 14:59:45 2017 -0500 VS: Find the MSBuild value for VCTargetsPath Run MSBuild on a simple `.vcxproj` file to extract the location of the toolset definitions. This will later be useful for looking at available BuildCustomizations. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index b1285ac..c47aec1 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -15,10 +15,15 @@ #include "cmVS10MASMFlagTable.h" #include "cmVS10NASMFlagTable.h" #include "cmVS10RCFlagTable.h" +#include "cmVersion.h" #include "cmVisualStudioSlnData.h" #include "cmVisualStudioSlnParser.h" +#include "cmXMLWriter.h" #include "cmake.h" +#include +#include + static const char vs10generatorName[] = "Visual Studio 10 2010"; // Map generator name without year to name with year. @@ -170,6 +175,11 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( if (!this->ParseGeneratorToolset(ts, mf)) { return false; } + + if (!this->FindVCTargetsPath(mf)) { + return false; + } + if (const char* toolset = this->GetPlatformToolset()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset); } @@ -507,6 +517,159 @@ std::string cmGlobalVisualStudio10Generator::FindDevEnvCommand() return this->cmGlobalVisualStudio71Generator::FindDevEnvCommand(); } +bool cmGlobalVisualStudio10Generator::FindVCTargetsPath(cmMakefile* mf) +{ + // Skip this in special cases within our own test suite. + if (this->GetPlatformName() == "Test Platform" || + this->GetPlatformToolsetString() == "Test Toolset") { + return true; + } + + std::string wd; + if (!this->ConfiguredFilesPath.empty()) { + // In a try-compile we are given the outer CMakeFiles directory. + wd = this->ConfiguredFilesPath; + } else { + wd = this->GetCMakeInstance()->GetHomeOutputDirectory(); + wd += cmake::GetCMakeFilesDirectory(); + } + wd += "/"; + wd += cmVersion::GetCMakeVersion(); + + // We record the result persistently in a file. + std::string const txt = wd + "/VCTargetsPath.txt"; + + // If we have a recorded result, use it. + { + cmsys::ifstream fin(txt.c_str()); + if (fin && cmSystemTools::GetLineFromStream(fin, this->VCTargetsPath) && + cmSystemTools::FileIsDirectory(this->VCTargetsPath)) { + cmSystemTools::ConvertToUnixSlashes(this->VCTargetsPath); + return true; + } + } + + // Prepare the work directory. + if (!cmSystemTools::MakeDirectory(wd)) { + std::string e = "Failed to make directory:\n " + wd; + mf->IssueMessage(cmake::FATAL_ERROR, e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + + // Generate a project file for MSBuild to tell us the VCTargetsPath value. + std::string const vcxproj = "VCTargetsPath.vcxproj"; + { + std::string const vcxprojAbs = wd + "/" + vcxproj; + cmsys::ofstream fout(vcxprojAbs.c_str()); + cmXMLWriter xw(fout); + + /* clang-format off */ + xw.StartDocument(); + xw.StartElement("Project"); + xw.Attribute("DefaultTargets", "Build"); + xw.Attribute("ToolsVersion", "4.0"); + xw.Attribute("xmlns", + "http://schemas.microsoft.com/developer/msbuild/2003"); + xw.StartElement("ItemGroup"); + xw.Attribute("Label", "ProjectConfigurations"); + xw.StartElement("ProjectConfiguration"); + xw.Attribute("Include", "Debug|" + this->GetPlatformName()); + xw.StartElement("Configuration"); + xw.Content("Debug"); + xw.EndElement(); // Configuration + xw.StartElement("Platform"); + xw.Content(this->GetPlatformName()); + xw.EndElement(); // Platform + xw.EndElement(); // ProjectConfiguration + xw.EndElement(); // ItemGroup + xw.StartElement("PropertyGroup"); + xw.Attribute("Label", "Globals"); + xw.StartElement("ProjectGUID"); + xw.Content("{F3FC6D86-508D-3FB1-96D2-995F08B142EC}"); + xw.EndElement(); // ProjectGUID + xw.StartElement("Keyword"); + xw.Content("Win32Proj"); + xw.EndElement(); // Keyword + xw.StartElement("Platform"); + xw.Content(this->GetPlatformName()); + xw.EndElement(); // Platform + xw.StartElement("ProjectName"); + xw.Content("VCTargetsPath"); + xw.EndElement(); // ProjectName + xw.EndElement(); // PropertyGroup + xw.StartElement("Import"); + xw.Attribute("Project", + "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); + xw.EndElement(); // Import + xw.StartElement("PropertyGroup"); + xw.Attribute("Label", "Configuration"); + xw.StartElement("ConfigurationType"); + xw.Content("Utility"); + xw.EndElement(); // ConfigurationType + xw.StartElement("CharacterSet"); + xw.Content("MultiByte"); + xw.EndElement(); // CharacterSet + xw.StartElement("PlatformToolset"); + xw.Content(this->GetPlatformToolsetString()); + xw.EndElement(); // PlatformToolset + xw.EndElement(); // PropertyGroup + xw.StartElement("Import"); + xw.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); + xw.EndElement(); // Import + xw.StartElement("ItemDefinitionGroup"); + xw.StartElement("PostBuildEvent"); + xw.StartElement("Command"); + xw.Content("echo VCTargetsPath=$(VCTargetsPath)"); + xw.EndElement(); // Command + xw.EndElement(); // PostBuildEvent + xw.EndElement(); // ItemDefinitionGroup + xw.StartElement("Import"); + xw.Attribute("Project", + "$(VCTargetsPath)\\Microsoft.Cpp.targets"); + xw.EndElement(); // Import + xw.EndElement(); // Project + xw.EndDocument(); + /* clang-format on */ + } + + std::vector cmd; + cmd.push_back(this->GetMSBuildCommand()); + cmd.push_back(vcxproj); + std::string out; + std::string err; + int ret = 0; + cmsys::RegularExpression regex("\n *VCTargetsPath=([^%\r\n]+)[\r\n]"); + if (!cmSystemTools::RunSingleCommand(cmd, &out, &err, &ret, wd.c_str(), + cmSystemTools::OUTPUT_NONE) || + ret != 0 || !regex.find(out)) { + std::ostringstream e; + /* clang-format off */ + e << + "Failed to run MSBuild command:\n" << + " " << cmd[0] << "\n" + "to get the value of VCTargetsPath:\n" << + out << "\n" << + err << "\n" + ; + /* clang-format on */ + if (ret != 0) { + e << "Exit code: " << ret << "\n"; + } + mf->IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + this->VCTargetsPath = regex.match(1); + cmSystemTools::ConvertToUnixSlashes(this->VCTargetsPath); + + { + cmsys::ofstream fout(txt.c_str()); + fout << this->VCTargetsPath << "\n"; + } + return true; +} + void cmGlobalVisualStudio10Generator::GenerateBuildCommand( std::vector& makeCommand, const std::string& makeProgram, const std::string& projectName, const std::string& projectDir, diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index c5e4bcd..149dcba 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -160,6 +160,9 @@ private: bool ParseGeneratorToolset(std::string const& ts, cmMakefile* mf); + std::string VCTargetsPath; + bool FindVCTargetsPath(cmMakefile* mf); + // We do not use the reload macros for VS >= 10. virtual std::string GetUserMacrosDirectory() { return ""; } }; ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 + Modules/CMakeDetermineCUDACompiler.cmake | 51 +++-- Modules/CMakeDetermineCompilerId.cmake | 20 ++ Modules/CompilerId/VS-10.vcxproj.in | 12 +- Source/cmGlobalVisualStudio10Generator.cxx | 232 +++++++++++++++++++- Source/cmGlobalVisualStudio10Generator.h | 16 ++ Source/cmVS10CudaFlagTable.h | 51 +++++ Source/cmVS10CudaHostFlagTable.h | 35 +++ Source/cmVisualStudio10TargetGenerator.cxx | 150 ++++++++++++- Source/cmVisualStudio10TargetGenerator.h | 5 + Source/cmVisualStudioGeneratorOptions.cxx | 127 ++++++++++- Source/cmVisualStudioGeneratorOptions.h | 22 ++ Tests/CPackComponents/CMakeLists.txt | 2 +- Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 + Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 + .../TestToolsetCudaBoth-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 + .../TestToolsetCudaOnly-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 + 21 files changed, 727 insertions(+), 35 deletions(-) create mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst create mode 100644 Source/cmVS10CudaFlagTable.h create mode 100644 Source/cmVS10CudaHostFlagTable.h create mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 11:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 11:25:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-421-g21499ee Message-ID: <20170309162502.96739FA38A@public.kitware.com> 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 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (commit) from c4f9d104269938d8111030a05268b19a0f493098 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 11:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 11:25:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-446-g23c5ecc Message-ID: <20170309162503.07798FA39E@public.kitware.com> 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 681a7ff8d9d4ba633cc014026c94a50e8d95b7cd (commit) discards 6a4231030a0d6aff2f8ec4dd8cacf1b8015600bd (commit) via 23c5ecceccdacbc4d5254eefe643b78e67266d24 (commit) via 000ce19e71da3250268d61fe4856b339aa13b058 (commit) via 73cd0b5ada01f032bc53648628b09b6278a54306 (commit) via 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (commit) via b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d (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 (681a7ff8d9d4ba633cc014026c94a50e8d95b7cd) \ N -- N -- N (23c5ecceccdacbc4d5254eefe643b78e67266d24) 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=23c5ecceccdacbc4d5254eefe643b78e67266d24 commit 23c5ecceccdacbc4d5254eefe643b78e67266d24 Merge: 000ce19 b9d3682 Author: Brad King AuthorDate: Thu Mar 9 16:17:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 11:17:34 2017 -0500 Stage topic 'pr.gcc_ar' Topic-id: 22874 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/550 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=000ce19e71da3250268d61fe4856b339aa13b058 commit 000ce19e71da3250268d61fe4856b339aa13b058 Merge: 73cd0b5 bd0df62 Author: Brad King AuthorDate: Thu Mar 9 16:08:39 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 11:15:45 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=73cd0b5ada01f032bc53648628b09b6278a54306 commit 73cd0b5ada01f032bc53648628b09b6278a54306 Merge: 21499ee ae0f7df Author: Brad King AuthorDate: Thu Mar 9 16:05:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 9 11:15:45 2017 -0500 Stage topic 'test-CPackComponents-fix-NSIS-root' Topic-id: 22969 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/569 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d commit b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d Author: Ruslan Baratov AuthorDate: Wed Mar 8 11:25:47 2017 +0800 Commit: Ruslan Baratov CommitDate: Thu Mar 9 04:28:01 2017 +0800 Add 'CMAKE_GCC_AR' and 'CMAKE_GCC_RANLIB' variables diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 3ec0c19..2606ba0 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -40,6 +40,8 @@ Variables that Provide Information /variable/CMAKE_FIND_PACKAGE_NAME /variable/CMAKE_FIND_PACKAGE_SORT_DIRECTION /variable/CMAKE_FIND_PACKAGE_SORT_ORDER + /variable/CMAKE_GCC_AR + /variable/CMAKE_GCC_RANLIB /variable/CMAKE_GENERATOR /variable/CMAKE_GENERATOR_PLATFORM /variable/CMAKE_GENERATOR_TOOLSET diff --git a/Help/release/dev/gcc_archiving_tools.rst b/Help/release/dev/gcc_archiving_tools.rst new file mode 100644 index 0000000..b3cc7d6 --- /dev/null +++ b/Help/release/dev/gcc_archiving_tools.rst @@ -0,0 +1,8 @@ +gcc_archiving_tools +------------------- + +* The :variable:`CMAKE_GCC_AR` variable with the path to GCC wrapper of ``ar`` + utility was added. + +* The :variable:`CMAKE_GCC_RANLIB` variable with the path to GCC wrapper of + ``ranlib`` utility was added. diff --git a/Help/variable/CMAKE_GCC_AR.rst b/Help/variable/CMAKE_GCC_AR.rst new file mode 100644 index 0000000..ac90b46 --- /dev/null +++ b/Help/variable/CMAKE_GCC_AR.rst @@ -0,0 +1,7 @@ +CMAKE_GCC_AR +------------ + +A wrapper around ``ar`` adding the appropriate ``--plugin`` option for the +GCC compiler. For other compilers variable is not defined. + +See also :variable:`CMAKE_AR`. diff --git a/Help/variable/CMAKE_GCC_RANLIB.rst b/Help/variable/CMAKE_GCC_RANLIB.rst new file mode 100644 index 0000000..3d42aba --- /dev/null +++ b/Help/variable/CMAKE_GCC_RANLIB.rst @@ -0,0 +1,7 @@ +CMAKE_GCC_RANLIB +---------------- + +A wrapper around ``ranlib`` adding the appropriate ``--plugin`` option for the +GCC compiler. For other compilers variable is not defined. + +See also :variable:`CMAKE_RANLIB`. diff --git a/Modules/CMakeASMCompiler.cmake.in b/Modules/CMakeASMCompiler.cmake.in index 8e58307..ad65698 100644 --- a/Modules/CMakeASMCompiler.cmake.in +++ b/Modules/CMakeASMCompiler.cmake.in @@ -1,7 +1,9 @@ set(CMAKE_ASM at ASM_DIALECT@_COMPILER "@_CMAKE_ASM_COMPILER@") set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ARG1 "@_CMAKE_ASM_COMPILER_ARG1@") set(CMAKE_AR "@CMAKE_AR@") +set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") +set(CMAKE_GCC_RANLIB "@CMAKE_GCC_RANLIB@") set(CMAKE_LINKER "@CMAKE_LINKER@") set(CMAKE_ASM at ASM_DIALECT@_COMPILER_LOADED 1) set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@") diff --git a/Modules/CMakeCCompiler.cmake.in b/Modules/CMakeCCompiler.cmake.in index 50b12f2..ab068a2 100644 --- a/Modules/CMakeCCompiler.cmake.in +++ b/Modules/CMakeCCompiler.cmake.in @@ -14,7 +14,9 @@ set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@") set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@") @SET_MSVC_C_ARCHITECTURE_ID@ set(CMAKE_AR "@CMAKE_AR@") +set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") +set(CMAKE_GCC_RANLIB "@CMAKE_GCC_RANLIB@") set(CMAKE_LINKER "@CMAKE_LINKER@") set(CMAKE_COMPILER_IS_GNUCC @CMAKE_COMPILER_IS_GNUCC@) set(CMAKE_C_COMPILER_LOADED 1) diff --git a/Modules/CMakeCXXCompiler.cmake.in b/Modules/CMakeCXXCompiler.cmake.in index 6d56488..27c8881 100644 --- a/Modules/CMakeCXXCompiler.cmake.in +++ b/Modules/CMakeCXXCompiler.cmake.in @@ -15,7 +15,9 @@ set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@") set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@") @SET_MSVC_CXX_ARCHITECTURE_ID@ set(CMAKE_AR "@CMAKE_AR@") +set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") +set(CMAKE_GCC_RANLIB "@CMAKE_GCC_RANLIB@") set(CMAKE_LINKER "@CMAKE_LINKER@") set(CMAKE_COMPILER_IS_GNUCXX @CMAKE_COMPILER_IS_GNUCXX@) set(CMAKE_CXX_COMPILER_LOADED 1) diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake index 4a315e0..5d9850d 100644 --- a/Modules/CMakeDetermineCCompiler.cmake +++ b/Modules/CMakeDetermineCCompiler.cmake @@ -166,6 +166,10 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX) endif () include(CMakeFindBinUtils) +set(_CMAKE_PROCESSING_LANGUAGE "C") +include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL) +unset(_CMAKE_PROCESSING_LANGUAGE) + if(MSVC_C_ARCHITECTURE_ID) set(SET_MSVC_C_ARCHITECTURE_ID "set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})") diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake index f2e0bb2..4d85150 100644 --- a/Modules/CMakeDetermineCXXCompiler.cmake +++ b/Modules/CMakeDetermineCXXCompiler.cmake @@ -161,6 +161,10 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX) endif () include(CMakeFindBinUtils) +set(_CMAKE_PROCESSING_LANGUAGE "CXX") +include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL) +unset(_CMAKE_PROCESSING_LANGUAGE) + if(MSVC_CXX_ARCHITECTURE_ID) set(SET_MSVC_CXX_ARCHITECTURE_ID "set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})") diff --git a/Modules/CMakeDetermineFortranCompiler.cmake b/Modules/CMakeDetermineFortranCompiler.cmake index 484fa66..9e9770a 100644 --- a/Modules/CMakeDetermineFortranCompiler.cmake +++ b/Modules/CMakeDetermineFortranCompiler.cmake @@ -255,6 +255,9 @@ if (CMAKE_CROSSCOMPILING AND NOT _CMAKE_TOOLCHAIN_PREFIX) endif () include(CMakeFindBinUtils) +set(_CMAKE_PROCESSING_LANGUAGE "Fortran") +include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL) +unset(_CMAKE_PROCESSING_LANGUAGE) if(MSVC_Fortran_ARCHITECTURE_ID) set(SET_MSVC_Fortran_ARCHITECTURE_ID diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in index 69800d7..c49621b 100644 --- a/Modules/CMakeFortranCompiler.cmake.in +++ b/Modules/CMakeFortranCompiler.cmake.in @@ -8,7 +8,9 @@ set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@") set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@") @SET_MSVC_Fortran_ARCHITECTURE_ID@ set(CMAKE_AR "@CMAKE_AR@") +set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") +set(CMAKE_GCC_RANLIB "@CMAKE_GCC_RANLIB@") set(CMAKE_COMPILER_IS_GNUG77 @CMAKE_COMPILER_IS_GNUG77@) set(CMAKE_Fortran_COMPILER_LOADED 1) set(CMAKE_Fortran_COMPILER_WORKS @CMAKE_Fortran_COMPILER_WORKS@) diff --git a/Modules/Compiler/GNU-FindBinUtils.cmake b/Modules/Compiler/GNU-FindBinUtils.cmake new file mode 100644 index 0000000..e314eb9 --- /dev/null +++ b/Modules/Compiler/GNU-FindBinUtils.cmake @@ -0,0 +1,27 @@ +cmake_policy(SET CMP0054 NEW) + +if("${_CMAKE_PROCESSING_LANGUAGE}" STREQUAL "") + message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set") +endif() + +string(REGEX MATCH "^([0-9]+\\.[0-9]+)" __version_x_y + "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}") + +# Try to find tools in the same directory as GCC itself +get_filename_component(__gcc_hints "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY) + +# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ar.1.html +find_program(CMAKE_GCC_AR NAMES + "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar" + "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ar-${__version_x_y}" + HINTS ${__gcc_hints} + DOC "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" +) + +# http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ranlib.1.html +find_program(CMAKE_GCC_RANLIB NAMES + "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib" + "${_CMAKE_TOOLCHAIN_PREFIX}gcc-ranlib-${__version_x_y}" + HINTS ${__gcc_hints} + DOC "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" +) ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 2 ++ Help/release/dev/gcc_archiving_tools.rst | 8 ++++++++ Help/variable/CMAKE_GCC_AR.rst | 7 +++++++ Help/variable/CMAKE_GCC_RANLIB.rst | 7 +++++++ Modules/CMakeASMCompiler.cmake.in | 2 ++ Modules/CMakeCCompiler.cmake.in | 2 ++ Modules/CMakeCXXCompiler.cmake.in | 2 ++ Modules/CMakeDetermineCCompiler.cmake | 4 ++++ Modules/CMakeDetermineCXXCompiler.cmake | 4 ++++ Modules/CMakeDetermineFortranCompiler.cmake | 3 +++ Modules/CMakeFortranCompiler.cmake.in | 2 ++ Modules/Compiler/GNU-FindBinUtils.cmake | 27 +++++++++++++++++++++++++++ 12 files changed, 70 insertions(+) create mode 100644 Help/release/dev/gcc_archiving_tools.rst create mode 100644 Help/variable/CMAKE_GCC_AR.rst create mode 100644 Help/variable/CMAKE_GCC_RANLIB.rst create mode 100644 Modules/Compiler/GNU-FindBinUtils.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 20:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 20:05:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-446-g23c5ecc Message-ID: <20170310010506.1E47DFA7A1@public.kitware.com> 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, nightly has been updated discards 2b55bd9af89f57916a246970cc13045cadae77a7 (commit) discards 23265c68ac4171ed33a3a7e8d13378ac0d0f6e5d (commit) discards bfbed2a2a8c10107c2279359572c11636c26bd76 (commit) via 23c5ecceccdacbc4d5254eefe643b78e67266d24 (commit) via 000ce19e71da3250268d61fe4856b339aa13b058 (commit) via 73cd0b5ada01f032bc53648628b09b6278a54306 (commit) via 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (commit) via c4f9d104269938d8111030a05268b19a0f493098 (commit) via 31f3531856ab8ee0cdeaf427224b51abd7714ccc (commit) via c0e46d42a35d9394d856b958e17d015f4b521940 (commit) via ae0f7dfa954e97d8b62cf83f0063e37171b457f8 (commit) via dcbe8ad42bed8077ad23e1c521963f059ee6c584 (commit) via b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d (commit) via bd0df62be9277cc23c006811d9c649cf9b7d5f3a (commit) via 49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 (commit) via 6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 (commit) via 4645f6128114a896402a0e6a6770ac1607c4bb54 (commit) via ac1fb1575466c2f09f68f5b24da611a23f984dd8 (commit) via 65ebb6301f040aee231e4d51cab9d1a8f2288d70 (commit) via 87128b1cb62375719009bd1c55421849777edd2d (commit) via 0c90892fc84455b5182fa5f2a81a6d38555edb3e (commit) via f912d40db1a5f7aee94ff2ce2434be2215abaf6c (commit) via 7f0b6d32b5c45139bebe411500de64437a5f5b0c (commit) via d1571e3df8782e67073a654cd3881aea11d58fa6 (commit) via 93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 (commit) via f2f6fcf621e09af9c2a8e01451b52e039c17e815 (commit) via e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 (commit) via c5b7598ef7410727b81738c891ca1fa50bdca87a (commit) via 99ce2751a470df3e0ea61a303917ce5816c3519f (commit) via 9b231290d639fb206707a3a0e6342f3d7458f5ae (commit) via 097de72be2cbd43fb165f1995a1ea97bd45369b4 (commit) via b9ea0713e8f660fa94d46c44c40327b8665054fe (commit) via cca12f281673e60c1b0179416c5a12f2a7eca82b (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 (2b55bd9af89f57916a246970cc13045cadae77a7) \ N -- N -- N (23c5ecceccdacbc4d5254eefe643b78e67266d24) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 3 + Help/release/dev/gcc_archiving_tools.rst | 8 + Help/variable/CMAKE_GCC_AR.rst | 7 + Help/variable/CMAKE_GCC_RANLIB.rst | 7 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 + Modules/CMakeASMCompiler.cmake.in | 2 + Modules/CMakeCCompiler.cmake.in | 2 + Modules/CMakeCXXCompiler.cmake.in | 2 + Modules/CMakeDetermineCCompiler.cmake | 4 + Modules/CMakeDetermineCUDACompiler.cmake | 51 +++-- Modules/CMakeDetermineCXXCompiler.cmake | 4 + Modules/CMakeDetermineCompilerId.cmake | 20 ++ Modules/CMakeDetermineFortranCompiler.cmake | 3 + Modules/CMakeFortranCompiler.cmake.in | 2 + Modules/Compiler/GNU-FindBinUtils.cmake | 27 +++ Modules/CompilerId/VS-10.vcxproj.in | 12 +- Source/CMakeVersion.cmake | 2 +- Source/cmGlobalVisualStudio10Generator.cxx | 232 +++++++++++++++++++- Source/cmGlobalVisualStudio10Generator.h | 16 ++ Source/cmVS10CudaFlagTable.h | 51 +++++ Source/cmVS10CudaHostFlagTable.h | 35 +++ Source/cmVisualStudio10TargetGenerator.cxx | 150 ++++++++++++- Source/cmVisualStudio10TargetGenerator.h | 5 + Source/cmVisualStudioGeneratorOptions.cxx | 127 ++++++++++- Source/cmVisualStudioGeneratorOptions.h | 22 ++ Tests/CPackComponents/CMakeLists.txt | 2 +- Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 + Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 + .../TestToolsetCudaBoth-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 + .../TestToolsetCudaOnly-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 + 33 files changed, 798 insertions(+), 36 deletions(-) create mode 100644 Help/release/dev/gcc_archiving_tools.rst create mode 100644 Help/variable/CMAKE_GCC_AR.rst create mode 100644 Help/variable/CMAKE_GCC_RANLIB.rst create mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst create mode 100644 Modules/Compiler/GNU-FindBinUtils.cmake create mode 100644 Source/cmVS10CudaFlagTable.h create mode 100644 Source/cmVS10CudaHostFlagTable.h create mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 9 20:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 9 Mar 2017 20:05:06 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-421-g21499ee Message-ID: <20170310010506.7DE1CFA7A0@public.kitware.com> 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, nightly-master has been updated via 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (commit) via c4f9d104269938d8111030a05268b19a0f493098 (commit) via 31f3531856ab8ee0cdeaf427224b51abd7714ccc (commit) via c0e46d42a35d9394d856b958e17d015f4b521940 (commit) via dcbe8ad42bed8077ad23e1c521963f059ee6c584 (commit) via 66542b663645ffdde8481c1ad60e11fd14c2ccb6 (commit) via d9bdcf34efa79dcdea4ded8e90b80a55db69fbf6 (commit) via 7e8b08ec6446649c9bcf4e48ff7810f4a0379bbe (commit) via 0f5e76df0cc97808f7dacdeb4376fe249af6c919 (commit) via 5b6d354f70e1faddb006a7c98479f5d655a07b87 (commit) via bed9c73decfcda0366984d990045e588928440ec (commit) via 462cf254270fbd56bffc73b00dc28882fdb0bdd6 (commit) from 0a312e2271710554f8e73518dc4b28bd1d0d1d7a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/command/find_library.rst | 10 +++++++++- Help/manual/cmake-properties.7.rst | 1 + ...32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} | 14 +++++++------- Help/release/dev/x32-abi.rst | 6 ++++++ .../variable/CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX.rst | 1 + Help/variable/MSVC_VERSION.rst | 3 ++- Modules/CMakeCompilerABI.h | 4 ++++ Modules/CPackRPM.cmake | 2 +- Modules/CheckLanguage.cmake | 2 ++ Modules/FindDevIL.cmake | 6 +++--- Modules/FindGLEW.cmake | 2 +- Modules/FindGTK2.cmake | 2 ++ Modules/FindIce.cmake | 2 +- Modules/FindKDE3.cmake | 2 ++ Modules/FindOpenAL.cmake | 2 +- Modules/FindPkgConfig.cmake | 4 ++++ Modules/GetPrerequisites.cmake | 2 +- Modules/Platform/UnixPaths.cmake | 1 + Source/CMakeVersion.cmake | 2 +- Source/cmExportInstallFileGenerator.cxx | 4 +++- Source/cmFindLibraryCommand.cxx | 9 ++++++++- Source/cmFindPackageCommand.cxx | 11 +++++++++++ Source/cmFindPackageCommand.h | 1 + Source/cmMakefile.cxx | 17 +++++++++++++++++ Source/cmMakefile.h | 2 ++ Tests/CMakeOnly/find_library/CMakeLists.txt | 16 ++++++++++++++++ .../find_library/lib/A/{lib32 => libx32}/libtest3.a | 0 .../CMakeOnly/find_library/lib/{64 => x32}/libtest2.a | 0 .../find_library/{lib/64 => libx32/A/lib}/libtest2.a | 0 .../find_library/{lib/A/lib => libx32/A}/libtest1.a | 0 .../{lib/A/lib => libx32/A/libx32}/libtest1.a | 0 .../find_library/{lib/A/lib => libx32}/libtest1.a | 0 Tests/CheckFortran.cmake | 2 ++ .../FindPkgConfig_CMAKE_APPBUNDLE_PATH.cmake | 5 ++++- .../FindPkgConfig_CMAKE_FRAMEWORK_PATH.cmake | 5 ++++- .../FindPkgConfig/FindPkgConfig_PKGCONFIG_PATH.cmake | 5 ++++- ...fig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH.cmake | 5 ++++- .../FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH.cmake | 5 ++++- .../i386-linux-gnu => libx32}/pkgconfig/.placeholder | 0 .../libx32}/pkgconfig/.placeholder | 0 40 files changed, 130 insertions(+), 25 deletions(-) copy Help/prop_gbl/{FIND_LIBRARY_USE_LIB32_PATHS.rst => FIND_LIBRARY_USE_LIBX32_PATHS.rst} (59%) create mode 100644 Help/release/dev/x32-abi.rst copy Tests/CMakeOnly/find_library/lib/A/{lib32 => libx32}/libtest3.a (100%) copy Tests/CMakeOnly/find_library/lib/{64 => x32}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/64 => libx32/A/lib}/libtest2.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32/A/libx32}/libtest1.a (100%) copy Tests/CMakeOnly/find_library/{lib/A/lib => libx32}/libtest1.a (100%) copy Tests/RunCMake/FindPkgConfig/pc-bar/{lib/i386-linux-gnu => libx32}/pkgconfig/.placeholder (100%) copy Tests/RunCMake/FindPkgConfig/{pc-bar/lib/i386-linux-gnu => pc-foo/libx32}/pkgconfig/.placeholder (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 00:05:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-422-g7bd58bd Message-ID: <20170310050505.2C148FA446@public.kitware.com> 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 7bd58bd67d204a73e40090ebe9a31b368cd73fb0 (commit) from 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 00:05:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-447-gc58f8d0 Message-ID: <20170310050505.55578FA478@public.kitware.com> 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 23c5ecceccdacbc4d5254eefe643b78e67266d24 (commit) discards 000ce19e71da3250268d61fe4856b339aa13b058 (commit) discards 73cd0b5ada01f032bc53648628b09b6278a54306 (commit) via c58f8d0e721cab3c4973308ec303454eb5e765b6 (commit) via c484e1de691ef9626ca3779aac21da3c1b83b5d5 (commit) via 6d886597e4975e20a34015aeaca4bad2d1f56b78 (commit) via 7bd58bd67d204a73e40090ebe9a31b368cd73fb0 (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 (23c5ecceccdacbc4d5254eefe643b78e67266d24) \ N -- N -- N (c58f8d0e721cab3c4973308ec303454eb5e765b6) 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=c58f8d0e721cab3c4973308ec303454eb5e765b6 commit c58f8d0e721cab3c4973308ec303454eb5e765b6 Merge: c484e1d b9d3682 Author: Brad King AuthorDate: Thu Mar 9 16:17:32 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 00:01:23 2017 -0500 Stage topic 'pr.gcc_ar' Topic-id: 22874 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/550 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c484e1de691ef9626ca3779aac21da3c1b83b5d5 commit c484e1de691ef9626ca3779aac21da3c1b83b5d5 Merge: 6d88659 bd0df62 Author: Brad King AuthorDate: Thu Mar 9 16:08:39 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 00:01:23 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6d886597e4975e20a34015aeaca4bad2d1f56b78 commit 6d886597e4975e20a34015aeaca4bad2d1f56b78 Merge: 7bd58bd ae0f7df Author: Brad King AuthorDate: Thu Mar 9 16:05:32 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 00:01:23 2017 -0500 Stage topic 'test-CPackComponents-fix-NSIS-root' Topic-id: 22969 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/569 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 08:25:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 08:25:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-451-g300bb06 Message-ID: <20170310132505.321B2F9CBB@public.kitware.com> 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 300bb0623b398f55727eaeae256d0ef1ac67fdbe (commit) via f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 (commit) via 25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf (commit) via 1e0a9ac45d51e0076222026b9c44604b287a6eae (commit) from c58f8d0e721cab3c4973308ec303454eb5e765b6 (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=300bb0623b398f55727eaeae256d0ef1ac67fdbe commit 300bb0623b398f55727eaeae256d0ef1ac67fdbe Merge: c58f8d0 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 08:24:47 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 commit f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 Author: Brad King AuthorDate: Thu Mar 9 15:56:30 2017 -0500 Commit: Brad King CommitDate: Thu Mar 9 16:25:15 2017 -0500 Refactor WINDOWS_EXPORT_ALL_SYMBOLS implementation Use `cmGeneratorTarget::ModuleDefinitionInfo` to combine the implementation of `WINDOWS_EXPORT_ALL_SYMBOLS` with that of using a `.def` file as a source. Only one of these could be used within a single target before anyway. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index acaa383..29698cf 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1975,7 +1975,12 @@ void cmGeneratorTarget::ComputeModuleDefinitionInfo( { std::vector sources; this->GetModuleDefinitionSources(sources, config); - if (!sources.empty()) { + info.WindowsExportAllSymbols = + this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS") && + this->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS"); + if (info.WindowsExportAllSymbols) { + info.DefFile = this->ObjectDirectory /* has slash */ + "exports.def"; + } else if (!sources.empty()) { info.DefFile = sources.front()->GetFullPath(); } } diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 2f75e20..92285f3 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -238,6 +238,7 @@ public: struct ModuleDefinitionInfo { std::string DefFile; + bool WindowsExportAllSymbols; }; ModuleDefinitionInfo const* GetModuleDefinitionInfo( std::string const& config) const; diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index ced0c26..a073426 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -814,10 +814,14 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( cmGeneratorTarget* gt, std::vector& commands, std::string const& configName) { + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + gt->GetModuleDefinitionInfo(configName); + if (!mdi || !mdi->WindowsExportAllSymbols) { + return; + } + std::vector outputs; - std::string deffile = gt->ObjectDirectory; - deffile += "/exportall.def"; - outputs.push_back(deffile); + outputs.push_back(mdi->DefFile); std::vector empty; std::vector objectSources; gt->GetObjectSources(objectSources, configName); @@ -835,7 +839,7 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( cmdl.push_back(cmakeCommand); cmdl.push_back("-E"); cmdl.push_back("__create_def"); - cmdl.push_back(deffile); + cmdl.push_back(mdi->DefFile); std::string obj_dir_expanded = obj_dir; cmSystemTools::ReplaceString(obj_dir_expanded, this->GetCMakeCFGIntDir(), configName.c_str()); diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index e14e20c..8026de9 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1004,13 +1004,6 @@ void cmLocalVisualStudio7Generator::OutputBuildTool( linkOptions.AddFlag("ModuleDefinitionFile", defFile.c_str()); } - if ((target->GetType() == cmStateEnums::SHARED_LIBRARY || - target->IsExecutableWithExports()) && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - if (target->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) { - linkOptions.AddFlag("ModuleDefinitionFile", "$(IntDir)/exportall.def"); - } - } switch (target->GetType()) { case cmStateEnums::UNKNOWN_LIBRARY: break; @@ -1823,17 +1816,15 @@ void cmLocalVisualStudio7Generator::OutputTargetRules( tool = this->FortranProject ? "VFPreLinkEventTool" : "VCPreLinkEventTool"; event.Start(tool); bool addedPrelink = false; - if ((target->GetType() == cmStateEnums::SHARED_LIBRARY || - target->IsExecutableWithExports()) && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - if (target->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) { - addedPrelink = true; - std::vector commands = target->GetPreLinkCommands(); - cmGlobalVisualStudioGenerator* gg = - static_cast(this->GlobalGenerator); - gg->AddSymbolExportCommand(target, commands, configName); - event.Write(commands); - } + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + target->GetModuleDefinitionInfo(configName); + if (mdi && mdi->WindowsExportAllSymbols) { + addedPrelink = true; + std::vector commands = target->GetPreLinkCommands(); + cmGlobalVisualStudioGenerator* gg = + static_cast(this->GlobalGenerator); + gg->AddSymbolExportCommand(target, commands, configName); + event.Write(commands); } if (!addedPrelink) { event.Write(target->GetPreLinkCommands()); diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index 8ed5051..493f474 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -556,10 +556,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) } // maybe create .def file from list of objects - if (this->GeneratorTarget->IsExecutableWithExports() && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - this->GenDefFile(real_link_commands, linkFlags); - } + this->GenDefFile(real_link_commands); std::string manifests = this->GetManifests(); diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index bc456cf..e5fae13 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -750,10 +750,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules( } // maybe create .def file from list of objects - if (this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - this->GenDefFile(real_link_commands, linkFlags); - } + this->GenDefFile(real_link_commands); std::string manifests = this->GetManifests(); diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index d9361f3..1fa8702 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1416,7 +1416,7 @@ void cmMakefileTargetGenerator::AppendLinkDepends( // Add a dependency on the link definitions file, if any. cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->DefFile.empty()) { + if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { depends.push_back(mdi->DefFile); } @@ -1720,49 +1720,39 @@ void cmMakefileTargetGenerator::AddIncludeFlags(std::string& flags, } void cmMakefileTargetGenerator::GenDefFile( - std::vector& real_link_commands, std::string& linkFlags) + std::vector& real_link_commands) { - if (this->GeneratorTarget->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) { - std::string name_of_def_file = - this->GeneratorTarget->GetSupportDirectory(); - name_of_def_file += std::string("/") + this->GeneratorTarget->GetName(); - name_of_def_file += ".def"; - std::string cmd = cmSystemTools::GetCMakeCommand(); - cmd = this->LocalGenerator->ConvertToOutputFormat( - cmd, cmOutputConverter::SHELL); - cmd += " -E __create_def "; - cmd += this->LocalGenerator->ConvertToOutputFormat( - this->LocalGenerator->MaybeConvertToRelativePath( - this->LocalGenerator->GetCurrentBinaryDirectory(), name_of_def_file), - cmOutputConverter::SHELL); - cmd += " "; - std::string objlist_file = name_of_def_file; - objlist_file += ".objs"; - cmd += this->LocalGenerator->ConvertToOutputFormat( - this->LocalGenerator->MaybeConvertToRelativePath( - this->LocalGenerator->GetCurrentBinaryDirectory(), objlist_file), - cmOutputConverter::SHELL); - real_link_commands.insert(real_link_commands.begin(), cmd); - // create a list of obj files for the -E __create_def to read - cmGeneratedFileStream fout(objlist_file.c_str()); - for (std::vector::const_iterator i = this->Objects.begin(); - i != this->Objects.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { - fout << *i << "\n"; - } - } - for (std::vector::const_iterator i = - this->ExternalObjects.begin(); - i != this->ExternalObjects.end(); ++i) { + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); + if (!mdi || !mdi->WindowsExportAllSymbols) { + return; + } + std::string cmd = cmSystemTools::GetCMakeCommand(); + cmd = + this->LocalGenerator->ConvertToOutputFormat(cmd, cmOutputConverter::SHELL); + cmd += " -E __create_def "; + cmd += this->LocalGenerator->ConvertToOutputFormat( + this->LocalGenerator->MaybeConvertToRelativePath( + this->LocalGenerator->GetCurrentBinaryDirectory(), mdi->DefFile), + cmOutputConverter::SHELL); + cmd += " "; + std::string objlist_file = mdi->DefFile + ".objs"; + cmd += this->LocalGenerator->ConvertToOutputFormat( + this->LocalGenerator->MaybeConvertToRelativePath( + this->LocalGenerator->GetCurrentBinaryDirectory(), objlist_file), + cmOutputConverter::SHELL); + real_link_commands.insert(real_link_commands.begin(), cmd); + // create a list of obj files for the -E __create_def to read + cmGeneratedFileStream fout(objlist_file.c_str()); + for (std::vector::const_iterator i = this->Objects.begin(); + i != this->Objects.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { fout << *i << "\n"; } - // now add the def file link flag - linkFlags += " "; - linkFlags += this->Makefile->GetSafeDefinition("CMAKE_LINK_DEF_FILE_FLAG"); - linkFlags += this->LocalGenerator->ConvertToOutputFormat( - this->LocalGenerator->MaybeConvertToRelativePath( - this->LocalGenerator->GetCurrentBinaryDirectory(), name_of_def_file), - cmOutputConverter::SHELL); - linkFlags += " "; + } + for (std::vector::const_iterator i = + this->ExternalObjects.begin(); + i != this->ExternalObjects.end(); ++i) { + fout << *i << "\n"; } } diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h index 347f9f2..07b8005 100644 --- a/Source/cmMakefileTargetGenerator.h +++ b/Source/cmMakefileTargetGenerator.h @@ -166,8 +166,7 @@ protected: bool useWatcomQuote); /** Add commands for generate def files */ - void GenDefFile(std::vector& real_link_commands, - std::string& linkFlags); + void GenDefFile(std::vector& real_link_commands); void AddIncludeFlags(std::string& flags, const std::string& lang) CM_OVERRIDE; diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 9bf0ccd..300618f 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -860,19 +860,6 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() linkLineComputer.get(), this->GetConfigName(), vars["LINK_LIBRARIES"], vars["FLAGS"], vars["LINK_FLAGS"], frameworkPath, linkPath, &genTarget); - if (this->GetMakefile()->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS") && - (gt.GetType() == cmStateEnums::SHARED_LIBRARY || - gt.IsExecutableWithExports())) { - if (gt.GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) { - std::string name_of_def_file = gt.GetSupportDirectory(); - name_of_def_file += "/" + gt.GetName(); - name_of_def_file += ".def "; - vars["LINK_FLAGS"] += " /DEF:"; - vars["LINK_FLAGS"] += this->GetLocalGenerator()->ConvertToOutputFormat( - name_of_def_file, cmOutputConverter::SHELL); - } - } - // Add OS X version flags, if any. if (this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY || this->GeneratorTarget->GetType() == cmStateEnums::MODULE_LIBRARY) { @@ -989,33 +976,27 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() } // maybe create .def file from list of objects - if ((gt.GetType() == cmStateEnums::SHARED_LIBRARY || - gt.IsExecutableWithExports()) && - this->GetMakefile()->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - if (gt.GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS")) { - std::string cmakeCommand = - this->GetLocalGenerator()->ConvertToOutputFormat( - cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL); - std::string name_of_def_file = gt.GetSupportDirectory(); - name_of_def_file += "/" + gt.GetName(); - name_of_def_file += ".def"; - std::string cmd = cmakeCommand; - cmd += " -E __create_def "; - cmd += this->GetLocalGenerator()->ConvertToOutputFormat( - name_of_def_file, cmOutputConverter::SHELL); - cmd += " "; - cmNinjaDeps objs = this->GetObjects(); - std::string obj_list_file = name_of_def_file; - obj_list_file += ".objs"; - cmd += this->GetLocalGenerator()->ConvertToOutputFormat( - obj_list_file, cmOutputConverter::SHELL); - preLinkCmdLines.push_back(cmd); - // create a list of obj files for the -E __create_def to read - cmGeneratedFileStream fout(obj_list_file.c_str()); - for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { - fout << *i << "\n"; - } + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + gt.GetModuleDefinitionInfo(this->GetConfigName()); + if (mdi && mdi->WindowsExportAllSymbols) { + std::string cmakeCommand = + this->GetLocalGenerator()->ConvertToOutputFormat( + cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL); + std::string cmd = cmakeCommand; + cmd += " -E __create_def "; + cmd += this->GetLocalGenerator()->ConvertToOutputFormat( + mdi->DefFile, cmOutputConverter::SHELL); + cmd += " "; + cmNinjaDeps objs = this->GetObjects(); + std::string obj_list_file = mdi->DefFile + ".objs"; + cmd += this->GetLocalGenerator()->ConvertToOutputFormat( + obj_list_file, cmOutputConverter::SHELL); + preLinkCmdLines.push_back(cmd); + // create a list of obj files for the -E __create_def to read + cmGeneratedFileStream fout(obj_list_file.c_str()); + for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { + fout << *i << "\n"; } } } diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 0e10ab4..917383d 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -214,7 +214,7 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const // Add a dependency on the link definitions file, if any. cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->DefFile.empty()) { + if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { result.push_back(this->ConvertToNinjaPath(mdi->DefFile)); } diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 698271d..4aea6f8 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2923,15 +2923,6 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( "%(IgnoreSpecificDefaultLibraries)"); } - if ((this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY || - this->GeneratorTarget->IsExecutableWithExports()) && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - if (this->GeneratorTarget->GetPropertyAsBool( - "WINDOWS_EXPORT_ALL_SYMBOLS")) { - linkOptions.AddFlag("ModuleDefinitionFile", "$(IntDir)exportall.def"); - } - } - // Hack to fix flag version selection in a common use case. // FIXME: Select flag table based on toolset instead of VS version. if (this->LocalGenerator->GetVersion() >= @@ -3169,18 +3160,15 @@ void cmVisualStudio10TargetGenerator::WriteEvents( std::string const& configName) { bool addedPrelink = false; - if ((this->GeneratorTarget->GetType() == cmStateEnums::SHARED_LIBRARY || - this->GeneratorTarget->IsExecutableWithExports()) && - this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")) { - if (this->GeneratorTarget->GetPropertyAsBool( - "WINDOWS_EXPORT_ALL_SYMBOLS")) { - addedPrelink = true; - std::vector commands = - this->GeneratorTarget->GetPreLinkCommands(); - this->GlobalGenerator->AddSymbolExportCommand(this->GeneratorTarget, - commands, configName); - this->WriteEvent("PreLinkEvent", commands, configName); - } + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(configName); + if (mdi && mdi->WindowsExportAllSymbols) { + addedPrelink = true; + std::vector commands = + this->GeneratorTarget->GetPreLinkCommands(); + this->GlobalGenerator->AddSymbolExportCommand(this->GeneratorTarget, + commands, configName); + this->WriteEvent("PreLinkEvent", commands, configName); } if (!addedPrelink) { this->WriteEvent("PreLinkEvent", https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf commit 25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf Author: Brad King AuthorDate: Thu Mar 9 15:28:14 2017 -0500 Commit: Brad King CommitDate: Thu Mar 9 16:25:14 2017 -0500 Refactor module definition file selection Create a `ModuleDefinitionInfo` structure for each configuration of a target to hold corresponding information about the selected module definition file (`.def` source). diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index 239582f..fd1ad36 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -26,7 +26,6 @@ cmCommonTargetGenerator::cmCommonTargetGenerator(cmGeneratorTarget* gt) , GlobalGenerator(static_cast( gt->LocalGenerator->GetGlobalGenerator())) , ConfigName(LocalGenerator->GetConfigName()) - , ModuleDefinitionFile(GeneratorTarget->GetModuleDefinitionFile(ConfigName)) { } @@ -63,14 +62,9 @@ void cmCommonTargetGenerator::AddFeatureFlags(std::string& flags, void cmCommonTargetGenerator::AddModuleDefinitionFlag( cmLinkLineComputer* linkLineComputer, std::string& flags) { - // A module definition file only makes sense on certain target types. - if (this->GeneratorTarget->GetType() != cmStateEnums::SHARED_LIBRARY && - this->GeneratorTarget->GetType() != cmStateEnums::MODULE_LIBRARY && - this->GeneratorTarget->GetType() != cmStateEnums::EXECUTABLE) { - return; - } - - if (!this->ModuleDefinitionFile) { + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); + if (!mdi || mdi->DefFile.empty()) { return; } @@ -85,8 +79,7 @@ void cmCommonTargetGenerator::AddModuleDefinitionFlag( // vs6's "cl -link" pass it to the linker. std::string flag = defFileFlag; flag += this->LocalGenerator->ConvertToOutputFormat( - linkLineComputer->ConvertToLinkReference( - this->ModuleDefinitionFile->GetFullPath()), + linkLineComputer->ConvertToLinkReference(mdi->DefFile), cmOutputConverter::SHELL); this->LocalGenerator->AppendFlags(flags, flag); } diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index d67fefb..8d68123 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -44,9 +44,6 @@ protected: cmGlobalCommonGenerator* GlobalGenerator; std::string ConfigName; - // The windows module definition source file (.def), if any. - cmSourceFile const* ModuleDefinitionFile; - void AppendFortranFormatFlags(std::string& flags, cmSourceFile const& source); diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 39336b2..acaa383 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1944,16 +1944,40 @@ cmGeneratorTarget::CompileInfo const* cmGeneratorTarget::GetCompileInfo( return &i->second; } -cmSourceFile const* cmGeneratorTarget::GetModuleDefinitionFile( - const std::string& config) const +cmGeneratorTarget::ModuleDefinitionInfo const* +cmGeneratorTarget::GetModuleDefinitionInfo(std::string const& config) const { - std::vector data; - this->GetModuleDefinitionSources(data, config); - if (!data.empty()) { - return data.front(); + // A module definition file only makes sense on certain target types. + if (this->GetType() != cmStateEnums::SHARED_LIBRARY && + this->GetType() != cmStateEnums::MODULE_LIBRARY && + !this->IsExecutableWithExports()) { + return CM_NULLPTR; } - return CM_NULLPTR; + // Lookup/compute/cache the compile information for this configuration. + std::string config_upper; + if (!config.empty()) { + config_upper = cmSystemTools::UpperCase(config); + } + ModuleDefinitionInfoMapType::const_iterator i = + this->ModuleDefinitionInfoMap.find(config_upper); + if (i == this->ModuleDefinitionInfoMap.end()) { + ModuleDefinitionInfo info; + this->ComputeModuleDefinitionInfo(config, info); + ModuleDefinitionInfoMapType::value_type entry(config_upper, info); + i = this->ModuleDefinitionInfoMap.insert(entry).first; + } + return &i->second; +} + +void cmGeneratorTarget::ComputeModuleDefinitionInfo( + std::string const& config, ModuleDefinitionInfo& info) const +{ + std::vector sources; + this->GetModuleDefinitionSources(sources, config); + if (!sources.empty()) { + info.DefFile = sources.front()->GetFullPath(); + } } bool cmGeneratorTarget::IsDLLPlatform() const diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index ea36e16..2f75e20 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -235,7 +235,12 @@ public: cmLocalGenerator* LocalGenerator; cmGlobalGenerator const* GlobalGenerator; - cmSourceFile const* GetModuleDefinitionFile(const std::string& config) const; + struct ModuleDefinitionInfo + { + std::string DefFile; + }; + ModuleDefinitionInfo const* GetModuleDefinitionInfo( + std::string const& config) const; /** Return whether or not the target is for a DLL platform. */ bool IsDLLPlatform() const; @@ -723,6 +728,12 @@ private: typedef std::map OutputInfoMapType; mutable OutputInfoMapType OutputInfoMap; + typedef std::map + ModuleDefinitionInfoMapType; + mutable ModuleDefinitionInfoMapType ModuleDefinitionInfoMap; + void ComputeModuleDefinitionInfo(std::string const& config, + ModuleDefinitionInfo& info) const; + typedef std::pair OutputNameKey; typedef std::map OutputNameMapType; mutable OutputNameMapType OutputNameMap; diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 6e976e1..e14e20c 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -996,9 +996,11 @@ void cmLocalVisualStudio7Generator::OutputBuildTool( linkOptions.AddTable(cmLocalVisualStudio7GeneratorLinkFlagTable); linkOptions.Parse(extraLinkOptions.c_str()); - if (!this->ModuleDefinitionFile.empty()) { - std::string defFile = this->ConvertToOutputFormat( - this->ModuleDefinitionFile, cmOutputConverter::SHELL); + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + target->GetModuleDefinitionInfo(configName); + if (mdi && !mdi->DefFile.empty()) { + std::string defFile = + this->ConvertToOutputFormat(mdi->DefFile, cmOutputConverter::SHELL); linkOptions.AddFlag("ModuleDefinitionFile", defFile.c_str()); } @@ -1362,7 +1364,6 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout, std::vector sourceGroups = this->Makefile->GetSourceGroups(); // get the classes from the source lists then add them to the groups - this->ModuleDefinitionFile = ""; std::vector classes; if (!target->GetConfigCommonSourceFiles(classes)) { return; @@ -1374,9 +1375,6 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout, } // Add the file to the list of sources. std::string source = (*i)->GetFullPath(); - if (cmSystemTools::UpperCase((*i)->GetExtension()) == "DEF") { - this->ModuleDefinitionFile = (*i)->GetFullPath(); - } cmSourceGroup* sourceGroup = this->Makefile->FindSourceGroup(source.c_str(), sourceGroups); sourceGroup->AssignSource(*i); diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h index d69cce1..ae6e2ed 100644 --- a/Source/cmLocalVisualStudio7Generator.h +++ b/Source/cmLocalVisualStudio7Generator.h @@ -128,7 +128,6 @@ private: friend class EventWriter; - std::string ModuleDefinitionFile; bool FortranProject; bool WindowsCEProject; cmLocalVisualStudio7GeneratorInternals* Internal; diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 54b3f36..d9361f3 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1414,8 +1414,10 @@ void cmMakefileTargetGenerator::AppendLinkDepends( this->AppendTargetDepends(depends); // Add a dependency on the link definitions file, if any. - if (this->ModuleDefinitionFile) { - depends.push_back(this->ModuleDefinitionFile->GetFullPath()); + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); + if (mdi && !mdi->DefFile.empty()) { + depends.push_back(mdi->DefFile); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index b1f26e4..0e10ab4 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -212,9 +212,10 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath()); // Add a dependency on the link definitions file, if any. - if (this->ModuleDefinitionFile) { - result.push_back( - this->ConvertToNinjaPath(this->ModuleDefinitionFile->GetFullPath())); + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); + if (mdi && !mdi->DefFile.empty()) { + result.push_back(this->ConvertToNinjaPath(mdi->DefFile)); } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index a5b1edf..698271d 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2914,10 +2914,10 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( linkOptions.Parse(flags.c_str()); if (this->MSTools) { - if (cmSourceFile const* defsrc = - this->GeneratorTarget->GetModuleDefinitionFile("")) { - linkOptions.AddFlag("ModuleDefinitionFile", - defsrc->GetFullPath().c_str()); + cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo(config); + if (mdi && !mdi->DefFile.empty()) { + linkOptions.AddFlag("ModuleDefinitionFile", mdi->DefFile.c_str()); } linkOptions.AppendFlag("IgnoreSpecificDefaultLibraries", "%(IgnoreSpecificDefaultLibraries)"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1e0a9ac45d51e0076222026b9c44604b287a6eae commit 1e0a9ac45d51e0076222026b9c44604b287a6eae Author: Brad King AuthorDate: Wed Mar 8 15:54:40 2017 -0500 Commit: Brad King CommitDate: Thu Mar 9 16:24:27 2017 -0500 Refactor module definition source enumeration Add a `cmGeneratorTarget::GetModuleDefinitionSources` method. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 47d685d..39336b2 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -112,7 +112,7 @@ struct IDLSourcesTag struct ResxTag { }; -struct ModuleDefinitionFileTag +struct ModuleDefinitionSourcesTag { }; struct AppManifestTag @@ -236,8 +236,8 @@ struct TagVisitor } else if (!sf->GetLanguage().empty()) { DoAccept::Result>::Do(this->Data, sf); } else if (ext == "def") { - DoAccept::Result>::Do(this->Data, - sf); + DoAccept::Result>::Do( + this->Data, sf); if (this->IsObjLib) { this->BadObjLibFiles.push_back(sf); } @@ -681,6 +681,12 @@ bool cmGeneratorTarget::HasExplicitObjectName(cmSourceFile const* file) const return it != this->ExplicitObjectName.end(); } +void cmGeneratorTarget::GetModuleDefinitionSources( + std::vector& data, const std::string& config) const +{ + IMPLEMENT_VISIT(ModuleDefinitionSources); +} + void cmGeneratorTarget::GetIDLSources(std::vector& data, const std::string& config) const { @@ -1942,8 +1948,7 @@ cmSourceFile const* cmGeneratorTarget::GetModuleDefinitionFile( const std::string& config) const { std::vector data; - IMPLEMENT_VISIT_IMPL(ModuleDefinitionFile, - COMMA std::vector) + this->GetModuleDefinitionSources(data, config); if (!data.empty()) { return data.front(); } diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index e72e0a6..ea36e16 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -77,6 +77,8 @@ public: bool HasExplicitObjectName(cmSourceFile const* file) const; void AddExplicitObjectName(cmSourceFile const* sf); + void GetModuleDefinitionSources(std::vector&, + const std::string& config) const; void GetResxSources(std::vector&, const std::string& config) const; void GetIDLSources(std::vector&, diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index fbf7447..a5b1edf 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1841,10 +1841,9 @@ void cmVisualStudio10TargetGenerator::WriteAllSources() (*this->BuildFileStream) << cmVS10EscapeXML(obj) << "\" />\n"; } - if (cmSourceFile const* defsrc = - this->GeneratorTarget->GetModuleDefinitionFile("")) { - this->WriteSource("None", defsrc); - } + std::vector defSources; + this->GeneratorTarget->GetModuleDefinitionSources(defSources, ""); + this->WriteSources("None", defSources); if (this->IsMissingFiles) { this->WriteMissingFiles(); ----------------------------------------------------------------------- Summary of changes: Source/cmCommonTargetGenerator.cxx | 15 ++--- Source/cmCommonTargetGenerator.h | 3 - Source/cmGeneratorTarget.cxx | 56 +++++++++++++---- Source/cmGeneratorTarget.h | 16 ++++- Source/cmGlobalVisualStudioGenerator.cxx | 12 ++-- Source/cmLocalVisualStudio7Generator.cxx | 39 +++++------- Source/cmLocalVisualStudio7Generator.h | 1 - Source/cmMakefileExecutableTargetGenerator.cxx | 5 +- Source/cmMakefileLibraryTargetGenerator.cxx | 5 +- Source/cmMakefileTargetGenerator.cxx | 78 +++++++++++------------- Source/cmMakefileTargetGenerator.h | 3 +- Source/cmNinjaNormalTargetGenerator.cxx | 61 +++++++----------- Source/cmNinjaTargetGenerator.cxx | 7 ++- Source/cmVisualStudio10TargetGenerator.cxx | 45 +++++--------- 14 files changed, 165 insertions(+), 181 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 08:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 08:35:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-430-gce6dd58 Message-ID: <20170310133503.7509EFA261@public.kitware.com> 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 300bb0623b398f55727eaeae256d0ef1ac67fdbe (commit) discards c58f8d0e721cab3c4973308ec303454eb5e765b6 (commit) discards c484e1de691ef9626ca3779aac21da3c1b83b5d5 (commit) discards bd0df62be9277cc23c006811d9c649cf9b7d5f3a (commit) discards 49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 (commit) discards 6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 (commit) discards 4645f6128114a896402a0e6a6770ac1607c4bb54 (commit) discards ac1fb1575466c2f09f68f5b24da611a23f984dd8 (commit) discards 65ebb6301f040aee231e4d51cab9d1a8f2288d70 (commit) discards 87128b1cb62375719009bd1c55421849777edd2d (commit) discards 0c90892fc84455b5182fa5f2a81a6d38555edb3e (commit) discards f912d40db1a5f7aee94ff2ce2434be2215abaf6c (commit) discards 7f0b6d32b5c45139bebe411500de64437a5f5b0c (commit) discards d1571e3df8782e67073a654cd3881aea11d58fa6 (commit) discards 93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 (commit) discards f2f6fcf621e09af9c2a8e01451b52e039c17e815 (commit) discards e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 (commit) discards c5b7598ef7410727b81738c891ca1fa50bdca87a (commit) discards 99ce2751a470df3e0ea61a303917ce5816c3519f (commit) discards 9b231290d639fb206707a3a0e6342f3d7458f5ae (commit) discards 097de72be2cbd43fb165f1995a1ea97bd45369b4 (commit) discards b9ea0713e8f660fa94d46c44c40327b8665054fe (commit) discards cca12f281673e60c1b0179416c5a12f2a7eca82b (commit) via ce6dd589812287748de2f20773e14ce419c280db (commit) via 0e0e77e513f121a0a3262f18632cb60560630cd0 (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 (300bb0623b398f55727eaeae256d0ef1ac67fdbe) \ N -- N -- N (ce6dd589812287748de2f20773e14ce419c280db) 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=ce6dd589812287748de2f20773e14ce419c280db commit ce6dd589812287748de2f20773e14ce419c280db Merge: 0e0e77e f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 08:28:42 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0e0e77e513f121a0a3262f18632cb60560630cd0 commit 0e0e77e513f121a0a3262f18632cb60560630cd0 Merge: 6d88659 b9d3682 Author: Brad King AuthorDate: Thu Mar 9 16:17:32 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 08:28:42 2017 -0500 Stage topic 'pr.gcc_ar' Topic-id: 22874 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/550 ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 1 - Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 - Modules/CMakeDetermineCUDACompiler.cmake | 51 ++--- Modules/CMakeDetermineCompilerId.cmake | 20 -- Modules/CompilerId/VS-10.vcxproj.in | 12 +- Source/cmGlobalVisualStudio10Generator.cxx | 232 +------------------- Source/cmGlobalVisualStudio10Generator.h | 16 -- Source/cmVS10CudaFlagTable.h | 51 ----- Source/cmVS10CudaHostFlagTable.h | 35 --- Source/cmVisualStudio10TargetGenerator.cxx | 150 +------------ Source/cmVisualStudio10TargetGenerator.h | 5 - Source/cmVisualStudioGeneratorOptions.cxx | 127 +---------- Source/cmVisualStudioGeneratorOptions.h | 22 -- Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 - Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 - .../TestToolsetCudaBoth-stdout.txt | 2 - .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 - .../TestToolsetCudaOnly-stdout.txt | 2 - .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 - 20 files changed, 34 insertions(+), 726 deletions(-) delete mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst delete mode 100644 Source/cmVS10CudaFlagTable.h delete mode 100644 Source/cmVS10CudaHostFlagTable.h delete mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu delete mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt delete mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake delete mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt delete mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 08:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 08:45:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-426-g29ec8d6 Message-ID: <20170310134503.177FBFA3FF@public.kitware.com> 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 29ec8d65f2815bbe4b47c59c5483a9934b92898b (commit) via 6b586e2c13b36a5847671fad7ea5d04dde0ab1a9 (commit) via ae0f7dfa954e97d8b62cf83f0063e37171b457f8 (commit) via b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d (commit) from 7bd58bd67d204a73e40090ebe9a31b368cd73fb0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 2 ++ Help/release/dev/gcc_archiving_tools.rst | 8 ++++++++ Help/variable/CMAKE_GCC_AR.rst | 7 +++++++ Help/variable/CMAKE_GCC_RANLIB.rst | 7 +++++++ Modules/CMakeASMCompiler.cmake.in | 2 ++ Modules/CMakeCCompiler.cmake.in | 2 ++ Modules/CMakeCXXCompiler.cmake.in | 2 ++ Modules/CMakeDetermineCCompiler.cmake | 4 ++++ Modules/CMakeDetermineCXXCompiler.cmake | 4 ++++ Modules/CMakeDetermineFortranCompiler.cmake | 3 +++ Modules/CMakeFortranCompiler.cmake.in | 2 ++ Modules/Compiler/GNU-FindBinUtils.cmake | 27 +++++++++++++++++++++++++++ Tests/CPackComponents/CMakeLists.txt | 2 +- 13 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/gcc_archiving_tools.rst create mode 100644 Help/variable/CMAKE_GCC_AR.rst create mode 100644 Help/variable/CMAKE_GCC_RANLIB.rst create mode 100644 Modules/Compiler/GNU-FindBinUtils.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 08:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 08:45:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-430-gc443d5c Message-ID: <20170310134503.333CAFA411@public.kitware.com> 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 ce6dd589812287748de2f20773e14ce419c280db (commit) discards 0e0e77e513f121a0a3262f18632cb60560630cd0 (commit) discards 6d886597e4975e20a34015aeaca4bad2d1f56b78 (commit) via c443d5cd2d24fb6fc0736b52bf87cd651b0e62af (commit) via 29ec8d65f2815bbe4b47c59c5483a9934b92898b (commit) via 6b586e2c13b36a5847671fad7ea5d04dde0ab1a9 (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 (ce6dd589812287748de2f20773e14ce419c280db) \ N -- N -- N (c443d5cd2d24fb6fc0736b52bf87cd651b0e62af) 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=c443d5cd2d24fb6fc0736b52bf87cd651b0e62af commit c443d5cd2d24fb6fc0736b52bf87cd651b0e62af Merge: 29ec8d6 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 08:41:08 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 10:25:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 10:25:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-451-g77c9850 Message-ID: <20170310152507.28318FA702@public.kitware.com> 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 77c9850a7a82d5cf98e986625bf49cfeec0f63b6 (commit) via 65481a60a06b4238d342f64b5fed52e252ee191b (commit) via 8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 (commit) via 6ca4f2229234ab7543597ca19bda09c51297eee6 (commit) via 94255511a6d59b14159544e2489905c62dab9fca (commit) via 253594d0aec0cbe34694cac59ef1a8e42a532118 (commit) via 4def02a3852eb211e26951819646f8cd8ee6c00c (commit) via 29f07b08671ea8a8cf2b32c6b740a2ecaa58168c (commit) via b966f489c1b35cbc897720f1f9b68bd9b69175c7 (commit) via b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c (commit) via 041ebda25bef6c142ac80135b0b59d88acbc0f1f (commit) via 13433b135759edaa65bd1cb31c3b124c244866d7 (commit) via 82521e359f9afbb1644d1b8eae58f27a51407df3 (commit) via 80e982d7ad571ce308708d36a531df7a91ffe0f8 (commit) via f7bb40c92dceedd65965c4c475b5395239e630ea (commit) via a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a (commit) via 895b89046601e61f6fb76bf17c5306ea102b9bf6 (commit) via a650dbb280859bdbadb9a7bba5636955190ec18a (commit) via 62b308515abe01fbe03ce0e1c7fee4879ca665b1 (commit) via 5164e9a6510137eaac1c7b736a6b24fe02ce17a9 (commit) via 83bf980c9601c2e5d6a6247867606539d8a14528 (commit) from c443d5cd2d24fb6fc0736b52bf87cd651b0e62af (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=77c9850a7a82d5cf98e986625bf49cfeec0f63b6 commit 77c9850a7a82d5cf98e986625bf49cfeec0f63b6 Merge: c443d5c 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 10:22:51 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=65481a60a06b4238d342f64b5fed52e252ee191b commit 65481a60a06b4238d342f64b5fed52e252ee191b Author: Brad King AuthorDate: Tue Mar 7 14:27:36 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:58 2017 -0500 CUDA: Work around VS limitation in CudaOnly.WithDefs test CUDA 8.0 MSBuild rules do not pass `-x cu` to nvcc and so cannot support a custom file extension. Fix our test for this to use a `.cu` extension instead. diff --git a/Tests/CudaOnly/WithDefs/CMakeLists.txt b/Tests/CudaOnly/WithDefs/CMakeLists.txt index 2646d29..38f2a44 100644 --- a/Tests/CudaOnly/WithDefs/CMakeLists.txt +++ b/Tests/CudaOnly/WithDefs/CMakeLists.txt @@ -16,8 +16,15 @@ set(release_compile_defs DEFREL) #build a executable that needs to be passed a complex define through add_defintions #this verifies we can pass things such as '_','(' to nvcc add_definitions("-DPACKED_DEFINE=__attribute__((packed))") -set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA) -add_executable(CudaOnlyWithDefs main.notcu) + +if(CMAKE_GENERATOR MATCHES "Visual Studio") + # CUDA MSBuild rules do not pass '-x cu' to nvcc + set(main main_for_vs.cu) +else() + set(main main.notcu) + set_source_files_properties(main.notcu PROPERTIES LANGUAGE CUDA) +endif() +add_executable(CudaOnlyWithDefs ${main}) target_compile_options(CudaOnlyWithDefs PRIVATE diff --git a/Tests/CudaOnly/WithDefs/main_for_vs.cu b/Tests/CudaOnly/WithDefs/main_for_vs.cu new file mode 100644 index 0000000..56078e7 --- /dev/null +++ b/Tests/CudaOnly/WithDefs/main_for_vs.cu @@ -0,0 +1 @@ +#include "main.notcu" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 commit 8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 Author: Brad King AuthorDate: Tue Mar 7 16:25:09 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:57 2017 -0500 VS: Add more CUDA flag table entries diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index d8c27d7..da19d64 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -36,5 +36,16 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "cmake-temp-arch", "-gpu-architecture", "", "", cmVS7FlagTable::UserFollowing }, + // Other flags. + + { "FastMath", "use_fast_math", "", "true", 0 }, + { "FastMath", "-use_fast_math", "", "true", 0 }, + + { "GPUDebugInfo", "G", "", "true", 0 }, + { "GPUDebugInfo", "-device-debug", "", "true", 0 }, + + { "HostDebugInfo", "g", "", "true", 0 }, + { "HostDebugInfo", "-debug", "", "true", 0 }, + { 0, 0, 0, 0, 0 } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ca4f2229234ab7543597ca19bda09c51297eee6 commit 6ca4f2229234ab7543597ca19bda09c51297eee6 Author: Brad King AuthorDate: Tue Mar 7 16:23:57 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:57 2017 -0500 VS: Add support for the CUDA_SEPARABLE_COMPILATION property diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 5ffa55c..fc59660 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2470,6 +2470,10 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( cudaOptions.Parse(defineFlags.c_str()); cudaOptions.ParseFinish(); + if (this->GeneratorTarget->GetPropertyAsBool("CUDA_SEPARABLE_COMPILATION")) { + cudaOptions.AddFlag("GenerateRelocatableDeviceCode", "true"); + } + // Convert the host compiler options to the toolset's abstractions // using a secondary flag table. cudaOptions.ClearTables(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=94255511a6d59b14159544e2489905c62dab9fca commit 94255511a6d59b14159544e2489905c62dab9fca Author: Brad King AuthorDate: Tue Mar 7 16:21:29 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:57 2017 -0500 VS: Select CUDA code generation architectures Parse the `-gencode=`, `-arch`, and `-code` flags and generate a `CodeGeneration` field in the project file. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 268553d..d8c27d7 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -14,5 +14,27 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "CudaRuntime", "cudart", "CUDA runtime library", "", cmVS7FlagTable::UserFollowing }, + // Capture arch/code arguments into temporaries for post-processing. + { "cmake-temp-gencode", "gencode=", "", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "gencode", "", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "-generate-code=", "", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable }, + { "cmake-temp-gencode", "-generate-code", "", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SemicolonAppendable }, + + { "cmake-temp-code", "code=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-code", "code", "", "", cmVS7FlagTable::UserFollowing }, + { "cmake-temp-code", "-gpu-code=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-code", "-gpu-code", "", "", cmVS7FlagTable::UserFollowing }, + + { "cmake-temp-arch", "arch=", "", "", cmVS7FlagTable::UserValue }, + { "cmake-temp-arch", "arch", "", "", cmVS7FlagTable::UserFollowing }, + { "cmake-temp-arch", "-gpu-architecture=", "", "", + cmVS7FlagTable::UserValue }, + { "cmake-temp-arch", "-gpu-architecture", "", "", + cmVS7FlagTable::UserFollowing }, + { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 8de9fe1..5ffa55c 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2480,6 +2480,8 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( // did not parse and hope it works. cudaOptions.RemoveFlag("AdditionalCompilerOptions"); + cudaOptions.FixCudaCodeGeneration(); + std::vector targetDefines; this->GeneratorTarget->GetCompileDefinitions(targetDefines, configName.c_str(), "CUDA"); diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index c79dc11..1ca6b9c 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -208,6 +208,57 @@ cmVisualStudioGeneratorOptions::GetCudaRuntime() const return CudaRuntimeStatic; } +void cmVisualStudioGeneratorOptions::FixCudaCodeGeneration() +{ + // Extract temporary values stored by our flag table. + FlagValue arch = this->TakeFlag("cmake-temp-arch"); + FlagValue code = this->TakeFlag("cmake-temp-code"); + FlagValue gencode = this->TakeFlag("cmake-temp-gencode"); + + // No -code allowed without -arch. + if (arch.empty()) { + code.clear(); + } + + if (arch.empty() && gencode.empty()) { + return; + } + + // Create a CodeGeneration field with [arch],[code] syntax in each entry. + // CUDA will convert it to `-gencode=arch=[arch],code="[code],[arch]"`. + FlagValue& result = this->FlagMap["CodeGeneration"]; + + // First entries for the -arch= [-code=,...] pair. + if (!arch.empty()) { + std::string arch_name = arch[0]; + std::vector codes; + if (!code.empty()) { + codes = cmSystemTools::tokenize(code[0], ","); + } + if (codes.empty()) { + codes.push_back(arch_name); + // nvcc -arch= has a special case that allows a real + // architecture to be specified instead of a virtual arch. + // It translates to -arch= -code=. + cmSystemTools::ReplaceString(arch_name, "sm_", "compute_"); + } + for (std::vector::iterator ci = codes.begin(); + ci != codes.end(); ++ci) { + std::string entry = arch_name + "," + *ci; + result.push_back(entry); + } + } + + // Now add entries for the -gencode=, pairs. + for (std::vector::iterator ei = gencode.begin(); + ei != gencode.end(); ++ei) { + std::string entry = *ei; + cmSystemTools::ReplaceString(entry, "arch=", ""); + cmSystemTools::ReplaceString(entry, "code=", ""); + result.push_back(entry); + } +} + void cmVisualStudioGeneratorOptions::Parse(const char* flags) { // Parse the input string as a windows command line since the string diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 6722503..52689e0 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -75,6 +75,8 @@ public: }; CudaRuntime GetCudaRuntime() const; + void FixCudaCodeGeneration(); + bool IsDebug() const; bool IsWinRt() const; bool IsManaged() const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=253594d0aec0cbe34694cac59ef1a8e42a532118 commit 253594d0aec0cbe34694cac59ef1a8e42a532118 Author: Brad King AuthorDate: Tue Mar 7 16:19:22 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:57 2017 -0500 VS: Select the CUDA runtime library Parse the `-cudart=` option and add a corresponding `CudaRuntime` field to the generated project file. Also add a matching `.lib` to the list of libraries linked. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 0a93de8..268553d 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -5,5 +5,14 @@ static cmVS7FlagTable cmVS10CudaFlagTable[] = { { "AdditionalCompilerOptions", "Xcompiler", "Host compiler options", "", cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SpaceAppendable }, + // Select the CUDA runtime library. + { "CudaRuntime", "cudart=none", "No CUDA runtime library", "None", 0 }, + { "CudaRuntime", "cudart=shared", "Shared/dynamic CUDA runtime library", + "Shared", 0 }, + { "CudaRuntime", "cudart=static", "Static CUDA runtime library", "Static", + 0 }, + { "CudaRuntime", "cudart", "CUDA runtime library", "", + cmVS7FlagTable::UserFollowing }, + { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7d66fcb..8de9fe1 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2855,8 +2855,10 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( this->LocalGenerator, Options::Linker, gg->GetLinkFlagTable(), 0, this)); Options& linkOptions = *pOptions; - const std::string& linkLanguage = - this->GeneratorTarget->GetLinkerLanguage(config.c_str()); + cmGeneratorTarget::LinkClosure const* linkClosure = + this->GeneratorTarget->GetLinkClosure(config); + + const std::string& linkLanguage = linkClosure->LinkerLanguage; if (linkLanguage.empty()) { cmSystemTools::Error( "CMake can not determine linker language for target: ", @@ -2911,6 +2913,19 @@ bool cmVisualStudio10TargetGenerator::ComputeLinkOptions( std::vector libVec; std::vector vsTargetVec; this->AddLibraries(cli, libVec, vsTargetVec); + if (std::find(linkClosure->Languages.begin(), linkClosure->Languages.end(), + "CUDA") != linkClosure->Languages.end()) { + switch (this->CudaOptions[config]->GetCudaRuntime()) { + case cmVisualStudioGeneratorOptions::CudaRuntimeStatic: + libVec.push_back("cudart_static.lib"); + break; + case cmVisualStudioGeneratorOptions::CudaRuntimeShared: + libVec.push_back("cudart.lib"); + break; + case cmVisualStudioGeneratorOptions::CudaRuntimeNone: + break; + } + } std::string standardLibsVar = "CMAKE_"; standardLibsVar += linkLanguage; standardLibsVar += "_STANDARD_LIBRARIES"; diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 125d2c4..c79dc11 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -187,6 +187,27 @@ bool cmVisualStudioGeneratorOptions::UsingSBCS() const return false; } +cmVisualStudioGeneratorOptions::CudaRuntime +cmVisualStudioGeneratorOptions::GetCudaRuntime() const +{ + std::map::const_iterator i = + this->FlagMap.find("CudaRuntime"); + if (i != this->FlagMap.end() && i->second.size() == 1) { + std::string const& cudaRuntime = i->second[0]; + if (cudaRuntime == "Static") { + return CudaRuntimeStatic; + } + if (cudaRuntime == "Shared") { + return CudaRuntimeShared; + } + if (cudaRuntime == "None") { + return CudaRuntimeNone; + } + } + // nvcc default is static + return CudaRuntimeStatic; +} + void cmVisualStudioGeneratorOptions::Parse(const char* flags) { // Parse the input string as a windows command line since the string @@ -220,6 +241,21 @@ void cmVisualStudioGeneratorOptions::ParseFinish() rl += this->FortranRuntimeDLL ? "DLL" : ""; this->FlagMap["RuntimeLibrary"] = rl; } + + if (this->CurrentTool == CudaCompiler) { + std::map::iterator i = + this->FlagMap.find("CudaRuntime"); + if (i != this->FlagMap.end() && i->second.size() == 1) { + std::string& cudaRuntime = i->second[0]; + if (cudaRuntime == "static") { + cudaRuntime = "Static"; + } else if (cudaRuntime == "shared") { + cudaRuntime = "Shared"; + } else if (cudaRuntime == "none") { + cudaRuntime = "None"; + } + } + } } void cmVisualStudioGeneratorOptions::PrependInheritedString( diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index e19d2dd..6722503 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -67,6 +67,14 @@ public: bool UsingUnicode() const; bool UsingSBCS() const; + enum CudaRuntime + { + CudaRuntimeStatic, + CudaRuntimeShared, + CudaRuntimeNone + }; + CudaRuntime GetCudaRuntime() const; + bool IsDebug() const; bool IsWinRt() const; bool IsManaged() const; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4def02a3852eb211e26951819646f8cd8ee6c00c commit 4def02a3852eb211e26951819646f8cd8ee6c00c Author: Brad King AuthorDate: Tue Mar 7 16:12:27 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:56 2017 -0500 VS: Place CUDA host compiler options in proper project file fields The CUDA Toolkit's VS integration provides abstractions for host compiler options for `nvcc` to pass through `-Xcompiler` to the host MSVC. Populate our secondary flag table and use it to remove flags from the `AdditionalCompilerOptions` in favor of their abstractions. Unfortunately a bug in the CUDA 8.0 VS integration prevents us from passing anything in `AdditionalCompilerOptions` reliably. After taking out the flags that have dedicated abstractions, drop the rest. diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h index 4df474e..0a93de8 100644 --- a/Source/cmVS10CudaFlagTable.h +++ b/Source/cmVS10CudaFlagTable.h @@ -1 +1,9 @@ -static cmVS7FlagTable cmVS10CudaFlagTable[] = { { 0, 0, 0, 0, 0 } }; +static cmVS7FlagTable cmVS10CudaFlagTable[] = { + // Collect options meant for the host compiler. + { "AdditionalCompilerOptions", "Xcompiler=", "Host compiler options", "", + cmVS7FlagTable::UserValue | cmVS7FlagTable::SpaceAppendable }, + { "AdditionalCompilerOptions", "Xcompiler", "Host compiler options", "", + cmVS7FlagTable::UserFollowing | cmVS7FlagTable::SpaceAppendable }, + + { 0, 0, 0, 0, 0 } +}; diff --git a/Source/cmVS10CudaHostFlagTable.h b/Source/cmVS10CudaHostFlagTable.h index 5ad05f1..5b61066 100644 --- a/Source/cmVS10CudaHostFlagTable.h +++ b/Source/cmVS10CudaHostFlagTable.h @@ -1 +1,35 @@ -static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { { 0, 0, 0, 0, 0 } }; +static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { + //{"Optimization", "", "", "InheritFromHost", 0}, + { "Optimization", "Od", "Disabled", "Od", 0 }, + { "Optimization", "O1", "Minimize Size", "O1", 0 }, + { "Optimization", "O2", "Maximize Speed", "O2", 0 }, + { "Optimization", "Ox", "Full Optimization", "O3", 0 }, + + //{"Runtime", "", "", "InheritFromHost", 0}, + { "Runtime", "MT", "Multi-Threaded", "MT", 0 }, + { "Runtime", "MTd", "Multi-Threaded Debug", "MTd", 0 }, + { "Runtime", "MD", "Multi-Threaded DLL", "MD", 0 }, + { "Runtime", "MDd", "Multi-threaded Debug DLL", "MDd", 0 }, + { "Runtime", "ML", "Single-Threaded", "ML", 0 }, + { "Runtime", "MLd", "Single-Threaded Debug", "MLd", 0 }, + + //{"RuntimeChecks", "", "", "InheritFromHost", 0}, + //{"RuntimeChecks", "", "Default", "Default", 0}, + { "RuntimeChecks", "RTCs", "Stack Frames", "RTCs", 0 }, + { "RuntimeChecks", "RTCu", "Uninitialized Variables", "RTCu", 0 }, + { "RuntimeChecks", "RTC1", "Both", "RTC1", 0 }, + + //{"TypeInfo", "", "", "InheritFromHost", 0}, + { "TypeInfo", "GR", "Yes", "true", 0 }, + { "TypeInfo", "GR-", "No", "false", 0 }, + + //{"Warning", "", "", "InheritFromHost", 0}, + { "Warning", "W0", "Off: Turn Off All Warnings", "W0", 0 }, + { "Warning", "W1", "Level 1", "W1", 0 }, + { "Warning", "W2", "Level 2", "W2", 0 }, + { "Warning", "W3", "Level 3", "W3", 0 }, + { "Warning", "W4", "Level 4", "W4", 0 }, + { "Warning", "Wall", "Enable All Warnings", "Wall", 0 }, + + { 0, 0, 0, 0, 0 } +}; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index ec39c8f..7d66fcb 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2470,6 +2470,16 @@ bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( cudaOptions.Parse(defineFlags.c_str()); cudaOptions.ParseFinish(); + // Convert the host compiler options to the toolset's abstractions + // using a secondary flag table. + cudaOptions.ClearTables(); + cudaOptions.AddTable(gg->GetCudaHostFlagTable()); + cudaOptions.Reparse("AdditionalCompilerOptions"); + + // `CUDA 8.0.targets` places these before nvcc! Just drop whatever + // did not parse and hope it works. + cudaOptions.RemoveFlag("AdditionalCompilerOptions"); + std::vector targetDefines; this->GeneratorTarget->GetCompileDefinitions(targetDefines, configName.c_str(), "CUDA"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=29f07b08671ea8a8cf2b32c6b740a2ecaa58168c commit 29f07b08671ea8a8cf2b32c6b740a2ecaa58168c Author: Brad King AuthorDate: Tue Mar 7 16:08:45 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:56 2017 -0500 VS: Do not pass CUDA compile options to C compiler diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index c4bcd41..ec39c8f 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2235,8 +2235,10 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( if (linkLanguage == "CXX") { clOptions.AddFlag("CompileAs", "CompileAsCpp"); } - this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget, - linkLanguage, configName.c_str()); + if (linkLanguage != "CUDA") { + this->LocalGenerator->AddCompileOptions(flags, this->GeneratorTarget, + linkLanguage, configName.c_str()); + } // Get preprocessor definitions for this directory. std::string defineFlags = https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b966f489c1b35cbc897720f1f9b68bd9b69175c7 commit b966f489c1b35cbc897720f1f9b68bd9b69175c7 Author: Brad King AuthorDate: Tue Mar 7 16:07:12 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:56 2017 -0500 VS: Do not use absolute paths to CUDA sources The CUDA Toolkit's VS integration does not properly compute the intermediate files directory location when the path to the source file is absolute. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 613c825..c4bcd41 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1717,8 +1717,10 @@ void cmVisualStudio10TargetGenerator::WriteSource(std::string const& tool, // // and fail if this exceeds the maximum allowed path length. Our path // conversion uses full paths when possible to allow deeper trees. - bool forceRelative = false; - std::string sourceFile = this->ConvertPath(sf->GetFullPath(), false); + // However, CUDA 8.0 msbuild rules fail on absolute paths so for CUDA + // we must use relative paths. + bool forceRelative = sf->GetLanguage() == "CUDA"; + std::string sourceFile = this->ConvertPath(sf->GetFullPath(), forceRelative); if (this->LocalGenerator->GetVersion() == cmGlobalVisualStudioGenerator::VS10 && cmSystemTools::FileIsFullPath(sourceFile.c_str())) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c commit b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c Author: Brad King AuthorDate: Tue Mar 7 15:59:33 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:56 2017 -0500 VS: Add basic infrastructure for CUDA generation Generate the `CudaCompile` elements in `.vcxproj` files. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index fbf7447..613c825 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -112,6 +112,10 @@ cmVisualStudio10TargetGenerator::~cmVisualStudio10TargetGenerator() i != this->LinkOptions.end(); ++i) { delete i->second; } + for (OptionsMap::iterator i = this->CudaOptions.begin(); + i != this->CudaOptions.end(); ++i) { + delete i->second; + } if (!this->BuildFileStream) { return; } @@ -206,6 +210,9 @@ void cmVisualStudio10TargetGenerator::Generate() if (!this->ComputeRcOptions()) { return; } + if (!this->ComputeCudaOptions()) { + return; + } if (!this->ComputeMasmOptions()) { return; } @@ -454,6 +461,14 @@ void cmVisualStudio10TargetGenerator::Generate() this->WriteString("\n", 1); } this->WriteString("\n", 1); + if (this->GlobalGenerator->IsCudaEnabled()) { + this->WriteString("BuildFileStream) + << cmVS10EscapeXML(this->GlobalGenerator->GetPlatformToolsetCudaString()) + << ".props\" />\n"; + } if (this->GlobalGenerator->IsMasmEnabled()) { this->WriteString("\n", @@ -524,6 +539,14 @@ void cmVisualStudio10TargetGenerator::Generate() this->WriteTargetSpecificReferences(); this->WriteString("\n", 1); this->WriteTargetsFileReferences(); + if (this->GlobalGenerator->IsCudaEnabled()) { + this->WriteString("BuildFileStream) + << cmVS10EscapeXML(this->GlobalGenerator->GetPlatformToolsetCudaString()) + << ".targets\" />\n"; + } if (this->GlobalGenerator->IsMasmEnabled()) { this->WriteString("\n", @@ -1772,6 +1795,8 @@ void cmVisualStudio10TargetGenerator::WriteAllSources() tool = "ResourceCompile"; } else if (lang == "CSharp") { tool = "Compile"; + } else if (lang == "CUDA" && this->GlobalGenerator->IsCudaEnabled()) { + tool = "CudaCompile"; } if (!tool.empty()) { @@ -2401,6 +2426,83 @@ void cmVisualStudio10TargetGenerator::WriteRCOptions( this->WriteString("\n", 2); } +bool cmVisualStudio10TargetGenerator::ComputeCudaOptions() +{ + if (!this->GlobalGenerator->IsCudaEnabled()) { + return true; + } + for (std::vector::const_iterator i = + this->Configurations.begin(); + i != this->Configurations.end(); ++i) { + if (!this->ComputeCudaOptions(*i)) { + return false; + } + } + return true; +} + +bool cmVisualStudio10TargetGenerator::ComputeCudaOptions( + std::string const& configName) +{ + cmGlobalVisualStudio10Generator* gg = + static_cast(this->GlobalGenerator); + CM_AUTO_PTR pOptions(new Options( + this->LocalGenerator, Options::CudaCompiler, gg->GetCudaFlagTable())); + Options& cudaOptions = *pOptions; + + // Get compile flags for CUDA in this directory. + std::string CONFIG = cmSystemTools::UpperCase(configName); + std::string configFlagsVar = std::string("CMAKE_CUDA_FLAGS_") + CONFIG; + std::string flags = + std::string(this->Makefile->GetSafeDefinition("CMAKE_CUDA_FLAGS")) + + std::string(" ") + + std::string(this->Makefile->GetSafeDefinition(configFlagsVar)); + + // Get preprocessor definitions for this directory. + std::string defineFlags = + this->GeneratorTarget->Target->GetMakefile()->GetDefineFlags(); + + cudaOptions.Parse(flags.c_str()); + cudaOptions.Parse(defineFlags.c_str()); + cudaOptions.ParseFinish(); + + std::vector targetDefines; + this->GeneratorTarget->GetCompileDefinitions(targetDefines, + configName.c_str(), "CUDA"); + cudaOptions.AddDefines(targetDefines); + + // Add a definition for the configuration name. + std::string configDefine = "CMAKE_INTDIR=\""; + configDefine += configName; + configDefine += "\""; + cudaOptions.AddDefine(configDefine); + if (const char* exportMacro = this->GeneratorTarget->GetExportMacro()) { + cudaOptions.AddDefine(exportMacro); + } + + this->CudaOptions[configName] = pOptions.release(); + return true; +} + +void cmVisualStudio10TargetGenerator::WriteCudaOptions( + std::string const& configName, std::vector const& includes) +{ + if (!this->MSTools || !this->GlobalGenerator->IsCudaEnabled()) { + return; + } + this->WriteString("\n", 2); + + Options& cudaOptions = *(this->CudaOptions[configName]); + cudaOptions.AppendFlag("Include", includes); + cudaOptions.AppendFlag("Include", "%(Include)"); + cudaOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ", + "\n", "CUDA"); + cudaOptions.PrependInheritedString("AdditionalOptions"); + cudaOptions.OutputFlagMap(*this->BuildFileStream, " "); + + this->WriteString("\n", 2); +} + bool cmVisualStudio10TargetGenerator::ComputeMasmOptions() { if (!this->GlobalGenerator->IsMasmEnabled()) { @@ -3142,6 +3244,7 @@ void cmVisualStudio10TargetGenerator::WriteItemDefinitionGroups() this->WriteClOptions(*i, includes); // output rc compile flags this->WriteRCOptions(*i, includes); + this->WriteCudaOptions(*i, includes); this->WriteMasmOptions(*i, includes); this->WriteNasmOptions(*i, includes); } diff --git a/Source/cmVisualStudio10TargetGenerator.h b/Source/cmVisualStudio10TargetGenerator.h index 0ebb4e4..52d5550 100644 --- a/Source/cmVisualStudio10TargetGenerator.h +++ b/Source/cmVisualStudio10TargetGenerator.h @@ -98,6 +98,10 @@ private: bool ComputeRcOptions(std::string const& config); void WriteRCOptions(std::string const& config, std::vector const& includes); + bool ComputeCudaOptions(); + bool ComputeCudaOptions(std::string const& config); + void WriteCudaOptions(std::string const& config, + std::vector const& includes); bool ComputeMasmOptions(); bool ComputeMasmOptions(std::string const& config); void WriteMasmOptions(std::string const& config, @@ -150,6 +154,7 @@ private: typedef std::map OptionsMap; OptionsMap ClOptions; OptionsMap RcOptions; + OptionsMap CudaOptions; OptionsMap MasmOptions; OptionsMap NasmOptions; OptionsMap LinkOptions; diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 3007f14..125d2c4 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -299,6 +299,9 @@ void cmVisualStudioGeneratorOptions::OutputPreprocessorDefinitions( return; } const char* tag = "PreprocessorDefinitions"; + if (lang == "CUDA") { + tag = "Defines"; + } if (this->Version >= cmGlobalVisualStudioGenerator::VS10) { // if there are configuration specific flags, then // use the configuration specific tag for PreprocessorDefinitions diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index e79c977..e19d2dd 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -26,6 +26,7 @@ public: { Compiler, ResourceCompiler, + CudaCompiler, MasmCompiler, NasmCompiler, Linker, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=041ebda25bef6c142ac80135b0b59d88acbc0f1f commit 041ebda25bef6c142ac80135b0b59d88acbc0f1f Author: Brad King AuthorDate: Tue Mar 7 15:47:50 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:55 2017 -0500 VS: Add placeholder CUDA flag tables The CUDA Toolkit's VS integration defines abstractions for both options to `nvcc` and options to pass through `-Xcompiler` to the host MSVC. We need a separate flag table to parse each set of flags into the corresponding abstractions. Add empty placeholders for these tables. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 27bd352..ca98e6c 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -10,6 +10,8 @@ #include "cmSourceFile.h" #include "cmVS10CLFlagTable.h" #include "cmVS10CSharpFlagTable.h" +#include "cmVS10CudaFlagTable.h" +#include "cmVS10CudaHostFlagTable.h" #include "cmVS10LibFlagTable.h" #include "cmVS10LinkFlagTable.h" #include "cmVS10MASMFlagTable.h" @@ -122,6 +124,8 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( this->DefaultCSharpFlagTable = cmVS10CSharpFlagTable; this->DefaultLibFlagTable = cmVS10LibFlagTable; this->DefaultLinkFlagTable = cmVS10LinkFlagTable; + this->DefaultCudaFlagTable = cmVS10CudaFlagTable; + this->DefaultCudaHostFlagTable = cmVS10CudaHostFlagTable; this->DefaultMasmFlagTable = cmVS10MASMFlagTable; this->DefaultNasmFlagTable = cmVS10NASMFlagTable; this->DefaultRcFlagTable = cmVS10RCFlagTable; @@ -983,6 +987,17 @@ cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetLinkFlagTable() const return (table != CM_NULLPTR) ? table : this->DefaultLinkFlagTable; } +cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetCudaFlagTable() const +{ + return this->DefaultCudaFlagTable; +} + +cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetCudaHostFlagTable() + const +{ + return this->DefaultCudaHostFlagTable; +} + cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetMasmFlagTable() const { cmIDEFlagTable const* table = this->ToolsetOptions.GetMasmFlagTable( diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index fdeb381..20f992a 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -100,6 +100,8 @@ public: cmIDEFlagTable const* GetRcFlagTable() const; cmIDEFlagTable const* GetLibFlagTable() const; cmIDEFlagTable const* GetLinkFlagTable() const; + cmIDEFlagTable const* GetCudaFlagTable() const; + cmIDEFlagTable const* GetCudaHostFlagTable() const; cmIDEFlagTable const* GetMasmFlagTable() const; cmIDEFlagTable const* GetNasmFlagTable() const; @@ -134,6 +136,8 @@ protected: cmIDEFlagTable const* DefaultCSharpFlagTable; cmIDEFlagTable const* DefaultLibFlagTable; cmIDEFlagTable const* DefaultLinkFlagTable; + cmIDEFlagTable const* DefaultCudaFlagTable; + cmIDEFlagTable const* DefaultCudaHostFlagTable; cmIDEFlagTable const* DefaultMasmFlagTable; cmIDEFlagTable const* DefaultNasmFlagTable; cmIDEFlagTable const* DefaultRcFlagTable; diff --git a/Source/cmVS10CudaFlagTable.h b/Source/cmVS10CudaFlagTable.h new file mode 100644 index 0000000..4df474e --- /dev/null +++ b/Source/cmVS10CudaFlagTable.h @@ -0,0 +1 @@ +static cmVS7FlagTable cmVS10CudaFlagTable[] = { { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVS10CudaHostFlagTable.h b/Source/cmVS10CudaHostFlagTable.h new file mode 100644 index 0000000..5ad05f1 --- /dev/null +++ b/Source/cmVS10CudaHostFlagTable.h @@ -0,0 +1 @@ +static cmVS7FlagTable cmVS10CudaHostFlagTable[] = { { 0, 0, 0, 0, 0 } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=13433b135759edaa65bd1cb31c3b124c244866d7 commit 13433b135759edaa65bd1cb31c3b124c244866d7 Author: Brad King AuthorDate: Tue Mar 7 15:44:43 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:55 2017 -0500 VS: Record in global generator whether CUDA is enabled diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 2cea693..27bd352 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -103,6 +103,7 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\10.0\\Setup\\VC;" "ProductDir", vc10Express, cmSystemTools::KeyWOW64_32); + this->CudaEnabled = false; this->SystemIsWindowsCE = false; this->SystemIsWindowsPhone = false; this->SystemIsWindowsStore = false; @@ -459,6 +460,9 @@ void cmGlobalVisualStudio10Generator::EnableLanguage( if (*it == "ASM_NASM") { this->NasmEnabled = true; } + if (*it == "CUDA") { + this->CudaEnabled = true; + } } this->AddPlatformDefinitions(mf); cmGlobalVisualStudio8Generator::EnableLanguage(lang, mf, optional); diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 581ad11..fdeb381 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -42,6 +42,8 @@ public: cmMakefile*, bool optional); virtual void WriteSLNHeader(std::ostream& fout); + bool IsCudaEnabled() const { return this->CudaEnabled; } + /** Generating for Nsight Tegra VS plugin? */ bool IsNsightTegra() const; std::string GetNsightTegraVersion() const; @@ -168,6 +170,8 @@ private: std::string VCTargetsPath; bool FindVCTargetsPath(cmMakefile* mf); + bool CudaEnabled; + // We do not use the reload macros for VS >= 10. virtual std::string GetUserMacrosDirectory() { return ""; } }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=82521e359f9afbb1644d1b8eae58f27a51407df3 commit 82521e359f9afbb1644d1b8eae58f27a51407df3 Author: Brad King AuthorDate: Tue Mar 7 14:32:35 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:55 2017 -0500 VS: Add support for determining CUDA compiler id Teach `CMakeDetermineCompilerId` how to generate a vcxproj file using the `CMAKE_VS_PLATFORM_TOOLSET_CUDA`. diff --git a/Modules/CMakeDetermineCUDACompiler.cmake b/Modules/CMakeDetermineCUDACompiler.cmake index 375e230..55a6f0c 100644 --- a/Modules/CMakeDetermineCUDACompiler.cmake +++ b/Modules/CMakeDetermineCUDACompiler.cmake @@ -5,36 +5,40 @@ include(${CMAKE_ROOT}/Modules/CMakeDetermineCompiler.cmake) include(${CMAKE_ROOT}/Modules//CMakeParseImplicitLinkInfo.cmake) if( NOT ( ("${CMAKE_GENERATOR}" MATCHES "Make") OR - ("${CMAKE_GENERATOR}" MATCHES "Ninja") ) ) + ("${CMAKE_GENERATOR}" MATCHES "Ninja") OR + ("${CMAKE_GENERATOR}" MATCHES "Visual Studio (1|[7-9][0-9])") ) ) message(FATAL_ERROR "CUDA language not currently supported by \"${CMAKE_GENERATOR}\" generator") endif() -if(NOT CMAKE_CUDA_COMPILER) - set(CMAKE_CUDA_COMPILER_INIT NOTFOUND) - - # prefer the environment variable CUDACXX - if(NOT $ENV{CUDACXX} STREQUAL "") - get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT) - if(CMAKE_CUDA_FLAGS_ENV_INIT) - set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler") - endif() - if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT}) - message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}") +if(${CMAKE_GENERATOR} MATCHES "Visual Studio") +else() + if(NOT CMAKE_CUDA_COMPILER) + set(CMAKE_CUDA_COMPILER_INIT NOTFOUND) + + # prefer the environment variable CUDACXX + if(NOT $ENV{CUDACXX} STREQUAL "") + get_filename_component(CMAKE_CUDA_COMPILER_INIT $ENV{CUDACXX} PROGRAM PROGRAM_ARGS CMAKE_CUDA_FLAGS_ENV_INIT) + if(CMAKE_CUDA_FLAGS_ENV_INIT) + set(CMAKE_CUDA_COMPILER_ARG1 "${CMAKE_CUDA_FLAGS_ENV_INIT}" CACHE STRING "First argument to CXX compiler") + endif() + if(NOT EXISTS ${CMAKE_CUDA_COMPILER_INIT}) + message(FATAL_ERROR "Could not find compiler set in environment variable CUDACXX:\n$ENV{CUDACXX}.\n${CMAKE_CUDA_COMPILER_INIT}") + endif() endif() + + # finally list compilers to try + if(NOT CMAKE_CUDA_COMPILER_INIT) + set(CMAKE_CUDA_COMPILER_LIST nvcc) endif() - # finally list compilers to try - if(NOT CMAKE_CUDA_COMPILER_INIT) - set(CMAKE_CUDA_COMPILER_LIST nvcc) + _cmake_find_compiler(CUDA) + else() + _cmake_find_compiler_path(CUDA) endif() - _cmake_find_compiler(CUDA) -else() - _cmake_find_compiler_path(CUDA) + mark_as_advanced(CMAKE_CUDA_COMPILER) endif() -mark_as_advanced(CMAKE_CUDA_COMPILER) - #Allow the user to specify a host compiler set(CMAKE_CUDA_HOST_COMPILER "" CACHE FILEPATH "Host compiler to be used by nvcc") if(NOT $ENV{CUDAHOSTCXX} STREQUAL "") @@ -75,7 +79,12 @@ if(MSVC_CUDA_ARCHITECTURE_ID) "set(MSVC_CUDA_ARCHITECTURE_ID ${MSVC_CUDA_ARCHITECTURE_ID})") endif() -if(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA) +if(${CMAKE_GENERATOR} MATCHES "Visual Studio") + set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_LINKER}") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES "") + set(CMAKE_CUDA_HOST_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +elseif(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA) set(_nvcc_log "") string(REPLACE "\r" "" _nvcc_output_orig "${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}") if(_nvcc_output_orig MATCHES "#\\\$ +LIBRARIES= *([^\n]*)\n") diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 5d85186..6fce8e2 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -241,6 +241,20 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_Import_targets "") set(id_ItemDefinitionGroup_entry "") set(id_Link_AdditionalDependencies "") + if(lang STREQUAL CUDA) + if(NOT CMAKE_VS_PLATFORM_TOOLSET_CUDA) + message(FATAL_ERROR "No CUDA toolset found.") + endif() + set(cuda_tools "CUDA ${CMAKE_VS_PLATFORM_TOOLSET_CUDA}") + set(id_compile "CudaCompile") + set(id_PostBuildEvent_Command [[echo CMAKE_CUDA_COMPILER=$(CudaToolkitBinDir)\nvcc.exe]]) + string(CONCAT id_Import_props [[]]) + string(CONCAT id_Import_targets [[]]) + if(CMAKE_VS_PLATFORM_NAME STREQUAL x64) + set(id_ItemDefinitionGroup_entry "64") + endif() + set(id_Link_AdditionalDependencies "cudart.lib") + endif() configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=80e982d7ad571ce308708d36a531df7a91ffe0f8 commit 80e982d7ad571ce308708d36a531df7a91ffe0f8 Author: Brad King AuthorDate: Tue Mar 7 15:16:17 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:55 2017 -0500 VS: Add method to take a value out of the option parser flag map Remove a flag from the map and return its value. diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 1d20d44..3007f14 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -274,6 +274,18 @@ void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) this->AppendFlagString(this->UnknownFlagField, opts); } +cmIDEOptions::FlagValue cmVisualStudioGeneratorOptions::TakeFlag( + std::string const& key) +{ + FlagValue value; + std::map::iterator i = this->FlagMap.find(key); + if (i != this->FlagMap.end()) { + value = i->second; + this->FlagMap.erase(i); + } + return value; +} + void cmVisualStudioGeneratorOptions::SetConfiguration(const char* config) { this->Configuration = config; diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 700b877..e79c977 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -91,6 +91,8 @@ private: std::string UnknownFlagField; virtual void StoreUnknownFlag(const char* flag); + + FlagValue TakeFlag(std::string const& key); }; #endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f7bb40c92dceedd65965c4c475b5395239e630ea commit f7bb40c92dceedd65965c4c475b5395239e630ea Author: Brad King AuthorDate: Tue Mar 7 15:10:30 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:54 2017 -0500 VS: Add method to re-parse specific option parser fields This will allow a client to parse flags, replace the flag tables, and then re-parse a field in which flags for a secondary tool were collected. diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index 3f9ef94..1d20d44 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -43,6 +43,8 @@ cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( this->FortranRuntimeDebug = false; this->FortranRuntimeDLL = false; this->FortranRuntimeMT = false; + + this->UnknownFlagField = "AdditionalOptions"; } cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( @@ -67,6 +69,8 @@ cmVisualStudioGeneratorOptions::cmVisualStudioGeneratorOptions( this->FortranRuntimeDebug = false; this->FortranRuntimeDLL = false; this->FortranRuntimeMT = false; + + this->UnknownFlagField = "AdditionalOptions"; } void cmVisualStudioGeneratorOptions::AddTable(cmVS7FlagTable const* table) @@ -229,6 +233,18 @@ void cmVisualStudioGeneratorOptions::PrependInheritedString( value = "%(" + key + ") " + value; } +void cmVisualStudioGeneratorOptions::Reparse(std::string const& key) +{ + std::map::iterator i = this->FlagMap.find(key); + if (i == this->FlagMap.end() || i->second.size() != 1) { + return; + } + std::string const original = i->second[0]; + i->second[0] = ""; + this->UnknownFlagField = key; + this->Parse(original.c_str()); +} + void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) { // Look for Intel Fortran flags that do not map well in the flag table. @@ -255,7 +271,7 @@ void cmVisualStudioGeneratorOptions::StoreUnknownFlag(const char* flag) std::string const opts = cmOutputConverter::EscapeWindowsShellArgument( flag, cmOutputConverter::Shell_Flag_AllowMakeVariables | cmOutputConverter::Shell_Flag_VSIDE); - this->AppendFlagString("AdditionalOptions", opts); + this->AppendFlagString(this->UnknownFlagField, opts); } void cmVisualStudioGeneratorOptions::SetConfiguration(const char* config) diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index f6cc7ec..700b877 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -52,6 +52,10 @@ public: void PrependInheritedString(std::string const& key); + // Parse the content of the given flag table entry again to extract + // known flags and leave the rest in the original entry. + void Reparse(std::string const& key); + // Fix the ExceptionHandling option to default to off. void FixExceptionHandlingDefault(); @@ -84,6 +88,8 @@ private: bool FortranRuntimeDLL; bool FortranRuntimeMT; + std::string UnknownFlagField; + virtual void StoreUnknownFlag(const char* flag); }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a commit a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a Author: Brad King AuthorDate: Wed Feb 15 09:40:07 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:54 2017 -0500 VS: Add method to clear flag tables of option parser diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index dfe5ce6..3f9ef94 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -81,6 +81,13 @@ void cmVisualStudioGeneratorOptions::AddTable(cmVS7FlagTable const* table) } } +void cmVisualStudioGeneratorOptions::ClearTables() +{ + for (int i = 0; i < FlagTableCount; ++i) { + this->FlagTable[i] = CM_NULLPTR; + } +} + void cmVisualStudioGeneratorOptions::FixExceptionHandlingDefault() { // Exception handling is on by default because the platform file has diff --git a/Source/cmVisualStudioGeneratorOptions.h b/Source/cmVisualStudioGeneratorOptions.h index 8c49470..f6cc7ec 100644 --- a/Source/cmVisualStudioGeneratorOptions.h +++ b/Source/cmVisualStudioGeneratorOptions.h @@ -43,6 +43,9 @@ public: // Add a table of flags. void AddTable(cmVS7FlagTable const* table); + // Clear the flag tables. + void ClearTables(); + // Store options from command line flags. void Parse(const char* flags); void ParseFinish(); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=895b89046601e61f6fb76bf17c5306ea102b9bf6 commit 895b89046601e61f6fb76bf17c5306ea102b9bf6 Author: Brad King AuthorDate: Mon Jan 16 15:24:24 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:54 2017 -0500 VS: Add more placeholders to compiler id detection project file template diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 7dcd981..5d85186 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -237,6 +237,10 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_src "${src}") set(id_compile "ClCompile") set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i") + set(id_Import_props "") + set(id_Import_targets "") + set(id_ItemDefinitionGroup_entry "") + set(id_Link_AdditionalDependencies "") configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") diff --git a/Modules/CompilerId/VS-10.vcxproj.in b/Modules/CompilerId/VS-10.vcxproj.in index a900482..6b9b361 100644 --- a/Modules/CompilerId/VS-10.vcxproj.in +++ b/Modules/CompilerId/VS-10.vcxproj.in @@ -25,6 +25,9 @@ MultiByte + + @id_Import_props@ + <_ProjectFileVersion>10.0.30319.1 .\ @@ -44,9 +47,11 @@ + @id_ItemDefinitionGroup_entry@ false Console + @id_Link_AdditionalDependencies@ @id_PostBuildEvent_Command@ @@ -56,4 +61,7 @@ <@id_compile@ Include="@id_src@" /> + + @id_Import_targets@ + https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a650dbb280859bdbadb9a7bba5636955190ec18a commit a650dbb280859bdbadb9a7bba5636955190ec18a Author: Brad King AuthorDate: Mon Jan 16 15:21:23 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:54 2017 -0500 VS: Refactor compiler id detection project file template Make the `ClCompile` element name and `PostBuildEvent/Command` value configurable. Move the current content into default values for the corresponding variables. diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index ae485bf..7dcd981 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -235,6 +235,8 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} endif() set(id_dir ${CMAKE_${lang}_COMPILER_ID_DIR}) set(id_src "${src}") + set(id_compile "ClCompile") + set(id_PostBuildEvent_Command "for %%i in (${id_cl}) do %40echo CMAKE_${lang}_COMPILER=%%~$PATH:i") configure_file(${CMAKE_ROOT}/Modules/CompilerId/VS-${v}.${ext}.in ${id_dir}/CompilerId${lang}.${ext} @ONLY) if(CMAKE_VS_MSBUILD_COMMAND AND NOT lang STREQUAL "Fortran") diff --git a/Modules/CompilerId/VS-10.vcxproj.in b/Modules/CompilerId/VS-10.vcxproj.in index 50be9cb..a900482 100644 --- a/Modules/CompilerId/VS-10.vcxproj.in +++ b/Modules/CompilerId/VS-10.vcxproj.in @@ -49,11 +49,11 @@ Console - for %%i in (@id_cl@) do %40echo CMAKE_ at id_lang@_COMPILER=%%~$PATH:i + @id_PostBuildEvent_Command@ - + <@id_compile@ Include="@id_src@" /> https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62b308515abe01fbe03ce0e1c7fee4879ca665b1 commit 62b308515abe01fbe03ce0e1c7fee4879ca665b1 Author: Brad King AuthorDate: Wed Feb 8 16:25:03 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:53 2017 -0500 VS: Select highest available CUDA toolset by default If `CMAKE_GENERATOR_TOOLSET` does not have a `cuda=...` field then find available CUDA toolsets and choose the highest version. diff --git a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst index cc18a20..1604a76 100644 --- a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst +++ b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst @@ -6,5 +6,7 @@ NVIDIA CUDA Toolkit version whose Visual Studio toolset to use. The :ref:`Visual Studio Generators` for VS 2010 and above support using a CUDA toolset provided by a CUDA Toolkit. The toolset version number may be specified by a field in :variable:`CMAKE_GENERATOR_TOOLSET` of -the form ``cuda=8.0``. CMake provides the selected CUDA toolset version -in this variable. The value may be empty if no version was specified. +the form ``cuda=8.0``. If none is specified CMake will choose a default +version. CMake provides the selected CUDA toolset version in this variable. +The value may be empty if no CUDA Toolkit with Visual Studio integration +is installed. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 55babda..2cea693 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -22,8 +22,11 @@ #include "cmake.h" #include +#include #include +#include + static const char vs10generatorName[] = "Visual Studio 10 2010"; // Map generator name without year to name with year. @@ -160,6 +163,13 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorPlatform( return true; } +static void cmCudaToolVersion(std::string& s) +{ + // "CUDA x.y.props" => "x.y" + s = s.substr(5); + s = s.substr(0, s.size() - 6); +} + bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( std::string const& ts, cmMakefile* mf) { @@ -180,6 +190,23 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( return false; } + if (this->GeneratorToolsetCuda.empty()) { + // Find the highest available version of the CUDA tools. + std::vector cudaTools; + std::string const bcDir = this->VCTargetsPath + "/BuildCustomizations"; + cmsys::Glob gl; + gl.SetRelative(bcDir.c_str()); + if (gl.FindFiles(bcDir + "/CUDA *.props")) { + cudaTools = gl.GetFiles(); + } + if (!cudaTools.empty()) { + std::for_each(cudaTools.begin(), cudaTools.end(), cmCudaToolVersion); + std::sort(cudaTools.begin(), cudaTools.end(), + cmSystemTools::VersionCompareGreater); + this->GeneratorToolsetCuda = cudaTools.at(0); + } + } + if (const char* toolset = this->GetPlatformToolset()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5164e9a6510137eaac1c7b736a6b24fe02ce17a9 commit 5164e9a6510137eaac1c7b736a6b24fe02ce17a9 Author: Brad King AuthorDate: Wed Feb 8 16:05:08 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:53 2017 -0500 VS: Provide an option to specify CUDA toolset version The NVIDIA CUDA Toolkit provides MSBuild toolset files for integration with Visual Studio. Multiple versions may be installed so we need a way to tell our VS generators which CUDA toolset to use. Extend the `CMAKE_GENERATOR_TOOLSET` specification to provide a `cuda=...` field specifying the version number. diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 3ec0c19..45829bc 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -82,6 +82,7 @@ Variables that Provide Information /variable/CMAKE_VS_NsightTegra_VERSION /variable/CMAKE_VS_PLATFORM_NAME /variable/CMAKE_VS_PLATFORM_TOOLSET + /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION /variable/CMAKE_XCODE_PLATFORM_TOOLSET diff --git a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst new file mode 100644 index 0000000..cc18a20 --- /dev/null +++ b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst @@ -0,0 +1,10 @@ +CMAKE_VS_PLATFORM_TOOLSET_CUDA +------------------------------ + +NVIDIA CUDA Toolkit version whose Visual Studio toolset to use. + +The :ref:`Visual Studio Generators` for VS 2010 and above support using +a CUDA toolset provided by a CUDA Toolkit. The toolset version number +may be specified by a field in :variable:`CMAKE_GENERATOR_TOOLSET` of +the form ``cuda=8.0``. CMake provides the selected CUDA toolset version +in this variable. The value may be empty if no version was specified. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 7f34e93..55babda 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -186,6 +186,9 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( if (const char* hostArch = this->GetPlatformToolsetHostArchitecture()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE", hostArch); } + if (const char* cuda = this->GetPlatformToolsetCuda()) { + mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET_CUDA", cuda); + } return true; } @@ -261,8 +264,10 @@ bool cmGlobalVisualStudio10Generator::ParseGeneratorToolset( bool cmGlobalVisualStudio10Generator::ProcessGeneratorToolsetField( std::string const& key, std::string const& value) { - static_cast(key); - static_cast(value); + if (key == "cuda") { + this->GeneratorToolsetCuda = value; + return true; + } return false; } @@ -463,6 +468,20 @@ cmGlobalVisualStudio10Generator::GetPlatformToolsetHostArchitecture() const return CM_NULLPTR; } +const char* cmGlobalVisualStudio10Generator::GetPlatformToolsetCuda() const +{ + if (!this->GeneratorToolsetCuda.empty()) { + return this->GeneratorToolsetCuda.c_str(); + } + return CM_NULLPTR; +} + +std::string const& +cmGlobalVisualStudio10Generator::GetPlatformToolsetCudaString() const +{ + return this->GeneratorToolsetCuda; +} + bool cmGlobalVisualStudio10Generator::FindMakeProgram(cmMakefile* mf) { if (!this->cmGlobalVisualStudio8Generator::FindMakeProgram(mf)) { diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 149dcba..581ad11 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -53,6 +53,10 @@ public: /** The toolset host architecture name (e.g. x64 for 64-bit host tools). */ const char* GetPlatformToolsetHostArchitecture() const; + /** The cuda toolset version. */ + const char* GetPlatformToolsetCuda() const; + std::string const& GetPlatformToolsetCudaString() const; + /** Return the CMAKE_SYSTEM_NAME. */ std::string const& GetSystemName() const { return this->SystemName; } @@ -118,6 +122,7 @@ protected: std::string GeneratorToolset; std::string GeneratorToolsetHostArchitecture; + std::string GeneratorToolsetCuda; std::string DefaultPlatformToolset; std::string WindowsTargetPlatformVersion; std::string SystemName; diff --git a/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake index 44c67a2..f6449f2 100644 --- a/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake @@ -6,6 +6,12 @@ run_cmake(NoToolset) if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[01245]") set(RunCMake_GENERATOR_TOOLSET "Test Toolset") run_cmake(TestToolset) + set(RunCMake_GENERATOR_TOOLSET "Test Toolset,cuda=Test Cuda") + run_cmake(TestToolsetCudaBoth) + set(RunCMake_GENERATOR_TOOLSET ",cuda=Test Cuda") + run_cmake(TestToolsetCudaOnly) + set(RunCMake_GENERATOR_TOOLSET "cuda=Test Cuda") + run_cmake(TestToolsetCudaOnly) if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[245]") set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64") run_cmake(TestToolsetHostArchBoth) diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt new file mode 100644 index 0000000..90503e2 --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt @@ -0,0 +1,2 @@ +-- CMAKE_VS_PLATFORM_TOOLSET='Test Toolset' +-- CMAKE_VS_PLATFORM_TOOLSET_CUDA='Test Cuda' diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake new file mode 100644 index 0000000..befa0af --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake @@ -0,0 +1,2 @@ +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET='${CMAKE_VS_PLATFORM_TOOLSET}'") +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET_CUDA='${CMAKE_VS_PLATFORM_TOOLSET_CUDA}'") diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt new file mode 100644 index 0000000..94e1e43 --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt @@ -0,0 +1,2 @@ +-- CMAKE_VS_PLATFORM_TOOLSET='(v[0-9]+|Windows7.1SDK)' +-- CMAKE_VS_PLATFORM_TOOLSET_CUDA='Test Cuda' diff --git a/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake new file mode 100644 index 0000000..befa0af --- /dev/null +++ b/Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake @@ -0,0 +1,2 @@ +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET='${CMAKE_VS_PLATFORM_TOOLSET}'") +message(STATUS "CMAKE_VS_PLATFORM_TOOLSET_CUDA='${CMAKE_VS_PLATFORM_TOOLSET_CUDA}'") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=83bf980c9601c2e5d6a6247867606539d8a14528 commit 83bf980c9601c2e5d6a6247867606539d8a14528 Author: Brad King AuthorDate: Wed Feb 8 16:28:39 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 10:19:52 2017 -0500 VS: Find the MSBuild value for VCTargetsPath Run MSBuild on a simple `.vcxproj` file to extract the location of the toolset definitions. This will later be useful for looking at available BuildCustomizations. diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index b1285ac..7f34e93 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -15,10 +15,15 @@ #include "cmVS10MASMFlagTable.h" #include "cmVS10NASMFlagTable.h" #include "cmVS10RCFlagTable.h" +#include "cmVersion.h" #include "cmVisualStudioSlnData.h" #include "cmVisualStudioSlnParser.h" +#include "cmXMLWriter.h" #include "cmake.h" +#include +#include + static const char vs10generatorName[] = "Visual Studio 10 2010"; // Map generator name without year to name with year. @@ -170,6 +175,11 @@ bool cmGlobalVisualStudio10Generator::SetGeneratorToolset( if (!this->ParseGeneratorToolset(ts, mf)) { return false; } + + if (!this->FindVCTargetsPath(mf)) { + return false; + } + if (const char* toolset = this->GetPlatformToolset()) { mf->AddDefinition("CMAKE_VS_PLATFORM_TOOLSET", toolset); } @@ -507,6 +517,208 @@ std::string cmGlobalVisualStudio10Generator::FindDevEnvCommand() return this->cmGlobalVisualStudio71Generator::FindDevEnvCommand(); } +bool cmGlobalVisualStudio10Generator::FindVCTargetsPath(cmMakefile* mf) +{ + // Skip this in special cases within our own test suite. + if (this->GetPlatformName() == "Test Platform" || + this->GetPlatformToolsetString() == "Test Toolset") { + return true; + } + + std::string wd; + if (!this->ConfiguredFilesPath.empty()) { + // In a try-compile we are given the outer CMakeFiles directory. + wd = this->ConfiguredFilesPath; + } else { + wd = this->GetCMakeInstance()->GetHomeOutputDirectory(); + wd += cmake::GetCMakeFilesDirectory(); + } + wd += "/"; + wd += cmVersion::GetCMakeVersion(); + + // We record the result persistently in a file. + std::string const txt = wd + "/VCTargetsPath.txt"; + + // If we have a recorded result, use it. + { + cmsys::ifstream fin(txt.c_str()); + if (fin && cmSystemTools::GetLineFromStream(fin, this->VCTargetsPath) && + cmSystemTools::FileIsDirectory(this->VCTargetsPath)) { + cmSystemTools::ConvertToUnixSlashes(this->VCTargetsPath); + return true; + } + } + + // Prepare the work directory. + if (!cmSystemTools::MakeDirectory(wd)) { + std::string e = "Failed to make directory:\n " + wd; + mf->IssueMessage(cmake::FATAL_ERROR, e.c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + + // Generate a project file for MSBuild to tell us the VCTargetsPath value. + std::string const vcxproj = "VCTargetsPath.vcxproj"; + { + std::string const vcxprojAbs = wd + "/" + vcxproj; + cmsys::ofstream fout(vcxprojAbs.c_str()); + cmXMLWriter xw(fout); + + /* clang-format off */ + xw.StartDocument(); + xw.StartElement("Project"); + xw.Attribute("DefaultTargets", "Build"); + xw.Attribute("ToolsVersion", "4.0"); + xw.Attribute("xmlns", + "http://schemas.microsoft.com/developer/msbuild/2003"); + if (this->IsNsightTegra()) { + xw.StartElement("PropertyGroup"); + xw.Attribute("Label", "NsightTegraProject"); + xw.StartElement("NsightTegraProjectRevisionNumber"); + xw.Content("6"); + xw.EndElement(); // NsightTegraProjectRevisionNumber + xw.EndElement(); // PropertyGroup + } + xw.StartElement("ItemGroup"); + xw.Attribute("Label", "ProjectConfigurations"); + xw.StartElement("ProjectConfiguration"); + xw.Attribute("Include", "Debug|" + this->GetPlatformName()); + xw.StartElement("Configuration"); + xw.Content("Debug"); + xw.EndElement(); // Configuration + xw.StartElement("Platform"); + xw.Content(this->GetPlatformName()); + xw.EndElement(); // Platform + xw.EndElement(); // ProjectConfiguration + xw.EndElement(); // ItemGroup + xw.StartElement("PropertyGroup"); + xw.Attribute("Label", "Globals"); + xw.StartElement("ProjectGUID"); + xw.Content("{F3FC6D86-508D-3FB1-96D2-995F08B142EC}"); + xw.EndElement(); // ProjectGUID + xw.StartElement("Keyword"); + xw.Content("Win32Proj"); + xw.EndElement(); // Keyword + xw.StartElement("Platform"); + xw.Content(this->GetPlatformName()); + xw.EndElement(); // Platform + if (this->GetSystemName() == "WindowsPhone") { + xw.StartElement("ApplicationType"); + xw.Content("Windows Phone"); + xw.EndElement(); // ApplicationType + xw.StartElement("ApplicationTypeRevision"); + xw.Content(this->GetSystemVersion()); + xw.EndElement(); // ApplicationTypeRevision + } else if (this->GetSystemName() == "WindowsStore") { + xw.StartElement("ApplicationType"); + xw.Content("Windows Store"); + xw.EndElement(); // ApplicationType + xw.StartElement("ApplicationTypeRevision"); + xw.Content(this->GetSystemVersion()); + xw.EndElement(); // ApplicationTypeRevision + } + if (!this->WindowsTargetPlatformVersion.empty()) { + xw.StartElement("WindowsTargetPlatformVersion"); + xw.Content(this->WindowsTargetPlatformVersion); + xw.EndElement(); // WindowsTargetPlatformVersion + } + if (this->GetPlatformName() == "ARM") { + xw.StartElement("WindowsSDKDesktopARMSupport"); + xw.Content("true"); + xw.EndElement(); // WindowsSDKDesktopARMSupport + } + xw.EndElement(); // PropertyGroup + xw.StartElement("Import"); + xw.Attribute("Project", + "$(VCTargetsPath)\\Microsoft.Cpp.Default.props"); + xw.EndElement(); // Import + if (!this->GeneratorToolsetHostArchitecture.empty()) { + xw.StartElement("PropertyGroup"); + xw.StartElement("PreferredToolArchitecture"); + xw.Content(this->GeneratorToolsetHostArchitecture); + xw.EndElement(); // PreferredToolArchitecture + xw.EndElement(); // PropertyGroup + } + xw.StartElement("PropertyGroup"); + xw.Attribute("Label", "Configuration"); + xw.StartElement("ConfigurationType"); + if (this->IsNsightTegra()) { + // Tegra-Android platform does not understand "Utility". + xw.Content("StaticLibrary"); + } else { + xw.Content("Utility"); + } + xw.EndElement(); // ConfigurationType + xw.StartElement("CharacterSet"); + xw.Content("MultiByte"); + xw.EndElement(); // CharacterSet + if (this->IsNsightTegra()) { + xw.StartElement("NdkToolchainVersion"); + xw.Content(this->GetPlatformToolsetString()); + xw.EndElement(); // NdkToolchainVersion + } else { + xw.StartElement("PlatformToolset"); + xw.Content(this->GetPlatformToolsetString()); + xw.EndElement(); // PlatformToolset + } + xw.EndElement(); // PropertyGroup + xw.StartElement("Import"); + xw.Attribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props"); + xw.EndElement(); // Import + xw.StartElement("ItemDefinitionGroup"); + xw.StartElement("PostBuildEvent"); + xw.StartElement("Command"); + xw.Content("echo VCTargetsPath=$(VCTargetsPath)"); + xw.EndElement(); // Command + xw.EndElement(); // PostBuildEvent + xw.EndElement(); // ItemDefinitionGroup + xw.StartElement("Import"); + xw.Attribute("Project", + "$(VCTargetsPath)\\Microsoft.Cpp.targets"); + xw.EndElement(); // Import + xw.EndElement(); // Project + xw.EndDocument(); + /* clang-format on */ + } + + std::vector cmd; + cmd.push_back(this->GetMSBuildCommand()); + cmd.push_back(vcxproj); + cmd.push_back(std::string("/p:VisualStudioVersion=") + + this->GetIDEVersion()); + std::string out; + int ret = 0; + cmsys::RegularExpression regex("\n *VCTargetsPath=([^%\r\n]+)[\r\n]"); + if (!cmSystemTools::RunSingleCommand(cmd, &out, &out, &ret, wd.c_str(), + cmSystemTools::OUTPUT_NONE) || + ret != 0 || !regex.find(out)) { + cmSystemTools::ReplaceString(out, "\n", "\n "); + std::ostringstream e; + /* clang-format off */ + e << + "Failed to run MSBuild command:\n" + " " << cmd[0] << "\n" + "to get the value of VCTargetsPath:\n" + " " << out << "\n" + ; + /* clang-format on */ + if (ret != 0) { + e << "Exit code: " << ret << "\n"; + } + mf->IssueMessage(cmake::FATAL_ERROR, e.str().c_str()); + cmSystemTools::SetFatalErrorOccured(); + return false; + } + this->VCTargetsPath = regex.match(1); + cmSystemTools::ConvertToUnixSlashes(this->VCTargetsPath); + + { + cmsys::ofstream fout(txt.c_str()); + fout << this->VCTargetsPath << "\n"; + } + return true; +} + void cmGlobalVisualStudio10Generator::GenerateBuildCommand( std::vector& makeCommand, const std::string& makeProgram, const std::string& projectName, const std::string& projectDir, diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index c5e4bcd..149dcba 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -160,6 +160,9 @@ private: bool ParseGeneratorToolset(std::string const& ts, cmMakefile* mf); + std::string VCTargetsPath; + bool FindVCTargetsPath(cmMakefile* mf); + // We do not use the reload macros for VS >= 10. virtual std::string GetUserMacrosDirectory() { return ""; } }; ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 + Modules/CMakeDetermineCUDACompiler.cmake | 51 ++-- Modules/CMakeDetermineCompilerId.cmake | 20 ++ Modules/CompilerId/VS-10.vcxproj.in | 12 +- Source/cmGlobalVisualStudio10Generator.cxx | 281 +++++++++++++++++++- Source/cmGlobalVisualStudio10Generator.h | 16 ++ Source/cmVS10CudaFlagTable.h | 51 ++++ Source/cmVS10CudaHostFlagTable.h | 35 +++ Source/cmVisualStudio10TargetGenerator.cxx | 150 ++++++++++- Source/cmVisualStudio10TargetGenerator.h | 5 + Source/cmVisualStudioGeneratorOptions.cxx | 127 ++++++++- Source/cmVisualStudioGeneratorOptions.h | 22 ++ Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 + Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 + .../TestToolsetCudaBoth-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 + .../TestToolsetCudaOnly-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 + 20 files changed, 775 insertions(+), 34 deletions(-) create mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst create mode 100644 Source/cmVS10CudaFlagTable.h create mode 100644 Source/cmVS10CudaHostFlagTable.h create mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 11:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 11:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-428-g0b24381 Message-ID: <20170310160503.D6229FA411@public.kitware.com> 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 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (commit) via 8fc934de0e9667a83712ab7b460d63c309b86571 (commit) from 29ec8d65f2815bbe4b47c59c5483a9934b92898b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/GNU-FindBinUtils.cmake | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 11:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 11:05:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-453-g9af050a Message-ID: <20170310160504.069D0FA41A@public.kitware.com> 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 77c9850a7a82d5cf98e986625bf49cfeec0f63b6 (commit) discards c443d5cd2d24fb6fc0736b52bf87cd651b0e62af (commit) via 9af050a850fa9e5d8c0ea2bc91b2120511905f7f (commit) via 7940ac07a5155319594ee6d7f99ffcb5e248b136 (commit) via 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (commit) via 8fc934de0e9667a83712ab7b460d63c309b86571 (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 (77c9850a7a82d5cf98e986625bf49cfeec0f63b6) \ N -- N -- N (9af050a850fa9e5d8c0ea2bc91b2120511905f7f) 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=9af050a850fa9e5d8c0ea2bc91b2120511905f7f commit 9af050a850fa9e5d8c0ea2bc91b2120511905f7f Merge: 7940ac0 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 11:01:15 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7940ac07a5155319594ee6d7f99ffcb5e248b136 commit 7940ac07a5155319594ee6d7f99ffcb5e248b136 Merge: 0b24381 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 11:01:14 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/GNU-FindBinUtils.cmake | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 11:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 11:45:02 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-457-g227852f Message-ID: <20170310164502.F04F0F9C16@public.kitware.com> 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 227852fc9b275aefa80689a92f77ea2e89a65274 (commit) via 10fcef02752ad46b53dd22025420048a0278322d (commit) via ac0786cb9ae40f73323b448e405b053a83770de0 (commit) via a52faa1fcb7b54026ecfbef573d05568846e1aba (commit) from 9af050a850fa9e5d8c0ea2bc91b2120511905f7f (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=227852fc9b275aefa80689a92f77ea2e89a65274 commit 227852fc9b275aefa80689a92f77ea2e89a65274 Merge: 9af050a 10fcef0 Author: Brad King AuthorDate: Fri Mar 10 16:39:42 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 11:39:46 2017 -0500 Stage topic 'bundle_verify_unix' Topic-id: 22875 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/551 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=10fcef02752ad46b53dd22025420048a0278322d commit 10fcef02752ad46b53dd22025420048a0278322d Author: Florian Apolloner AuthorDate: Sun Mar 5 00:05:06 2017 +0100 Commit: Brad King CommitDate: Fri Mar 10 10:59:16 2017 -0500 BundleUtilities: Fix bundle verification on Unix by considering rpaths. diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 1ec06f1..121a8f0 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -1008,7 +1008,8 @@ function(verify_bundle_prerequisites bundle result_var info_var) endif() if(NOT ignoreFile) - get_prerequisites("${f}" prereqs 1 1 "${exepath}" "") + get_item_rpaths(${f} _main_exe_rpaths) + get_prerequisites("${f}" prereqs 1 1 "${exepath}" "${_main_exe_rpaths}") # On the Mac, # "embedded" and "system" prerequisites are fine... anything else means https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac0786cb9ae40f73323b448e405b053a83770de0 commit ac0786cb9ae40f73323b448e405b053a83770de0 Author: Florian Apolloner AuthorDate: Sun Mar 5 00:05:06 2017 +0100 Commit: Brad King CommitDate: Fri Mar 10 10:59:07 2017 -0500 BundleUtilities: Teach `get_item_rpaths` to parse ELF binaries diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index 5d6f402..1ec06f1 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -432,6 +432,16 @@ function(get_item_rpaths item rpaths_var) endif() endif() + if(UNIX AND NOT APPLE) + file(READ_ELF ${item} RPATH rpath_var RUNPATH runpath_var CAPTURE_ERROR error_var) + get_filename_component(item_dir ${item} DIRECTORY) + foreach(rpath ${rpath_var} ${runpath_var}) + # Substitute $ORIGIN with the exepath and add to the found rpaths + string(REPLACE "$ORIGIN" "${item_dir}" rpath "${rpath}") + gp_append_unique(${rpaths_var} "${rpath}") + endforeach() + endif() + set(${rpaths_var} ${${rpaths_var}} PARENT_SCOPE) endfunction() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a52faa1fcb7b54026ecfbef573d05568846e1aba commit a52faa1fcb7b54026ecfbef573d05568846e1aba Author: Florian Apolloner AuthorDate: Mon Mar 6 21:16:42 2017 +0100 Commit: Brad King CommitDate: Fri Mar 10 10:54:53 2017 -0500 file: Add READ_ELF command to parse ELF binaries Leave it undocumented for now because we intend to use it internally and it cannot be made available everywhere. diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 91cecb3..957b4cb 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -42,6 +42,10 @@ #include "cmFileLockResult.h" #endif +#if defined(CMAKE_USE_ELF_PARSER) +#include "cmELF.h" +#endif + class cmSystemToolsFileTime; // Table of permissions flags. @@ -166,6 +170,9 @@ bool cmFileCommand::InitialPass(std::vector const& args, if (subCommand == "RPATH_REMOVE") { return this->HandleRPathRemoveCommand(args); } + if (subCommand == "READ_ELF") { + return this->HandleReadElfCommand(args); + } if (subCommand == "RELATIVE_PATH") { return this->HandleRelativePathCommand(args); } @@ -2177,6 +2184,68 @@ bool cmFileCommand::HandleRPathCheckCommand( return true; } +bool cmFileCommand::HandleReadElfCommand(std::vector const& args) +{ + if (args.size() < 4) { + this->SetError("READ_ELF must be called with at least three additional " + "arguments."); + return false; + } + + cmCommandArgumentsHelper argHelper; + cmCommandArgumentGroup group; + + cmCAString readArg(&argHelper, "READ_ELF"); + cmCAString fileNameArg(&argHelper, CM_NULLPTR); + + cmCAString rpathArg(&argHelper, "RPATH", &group); + cmCAString runpathArg(&argHelper, "RUNPATH", &group); + cmCAString errorArg(&argHelper, "CAPTURE_ERROR", &group); + + readArg.Follows(CM_NULLPTR); + fileNameArg.Follows(&readArg); + group.Follows(&fileNameArg); + argHelper.Parse(&args, CM_NULLPTR); + + if (!cmSystemTools::FileExists(fileNameArg.GetString(), true)) { + std::ostringstream e; + e << "READ_ELF given FILE \"" << fileNameArg.GetString() + << "\" that does not exist."; + this->SetError(e.str()); + return false; + } + +#if defined(CMAKE_USE_ELF_PARSER) + cmELF elf(fileNameArg.GetCString()); + + if (!rpathArg.GetString().empty()) { + if (cmELF::StringEntry const* se_rpath = elf.GetRPath()) { + std::string rpath(se_rpath->Value); + std::replace(rpath.begin(), rpath.end(), ':', ';'); + this->Makefile->AddDefinition(rpathArg.GetString(), rpath.c_str()); + } + } + if (!runpathArg.GetString().empty()) { + if (cmELF::StringEntry const* se_runpath = elf.GetRunPath()) { + std::string runpath(se_runpath->Value); + std::replace(runpath.begin(), runpath.end(), ':', ';'); + this->Makefile->AddDefinition(runpathArg.GetString(), runpath.c_str()); + } + } + + return true; +#else + std::string error = "ELF parser not available on this platform."; + if (errorArg.GetString().empty()) { + this->SetError(error); + return false; + } else { + this->Makefile->AddDefinition(errorArg.GetString(), error.c_str()); + return true; + } +#endif +} + bool cmFileCommand::HandleInstallCommand(std::vector const& args) { cmFileInstaller installer(this); diff --git a/Source/cmFileCommand.h b/Source/cmFileCommand.h index 319864c..2d82a23 100644 --- a/Source/cmFileCommand.h +++ b/Source/cmFileCommand.h @@ -53,6 +53,7 @@ protected: bool HandleRelativePathCommand(std::vector const& args); bool HandleCMakePathCommand(std::vector const& args, bool nativePath); + bool HandleReadElfCommand(std::vector const& args); bool HandleRPathChangeCommand(std::vector const& args); bool HandleRPathCheckCommand(std::vector const& args); bool HandleRPathRemoveCommand(std::vector const& args); diff --git a/Tests/RunCMake/file/READ_ELF-result.txt b/Tests/RunCMake/file/READ_ELF-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/file/READ_ELF-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/file/READ_ELF-stderr.txt b/Tests/RunCMake/file/READ_ELF-stderr.txt new file mode 100644 index 0000000..7b32804 --- /dev/null +++ b/Tests/RunCMake/file/READ_ELF-stderr.txt @@ -0,0 +1,2 @@ +.*file READ_ELF must be called with at least three additional arguments\. +.*file READ_ELF given FILE "XXX" that does not exist\. diff --git a/Tests/RunCMake/file/READ_ELF.cmake b/Tests/RunCMake/file/READ_ELF.cmake new file mode 100644 index 0000000..cd02c9b --- /dev/null +++ b/Tests/RunCMake/file/READ_ELF.cmake @@ -0,0 +1,2 @@ +file(READ_ELF XXX) +file(READ_ELF XXX RPATH YYY) diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake index 7497544..3f3c0da 100644 --- a/Tests/RunCMake/file/RunCMakeTest.cmake +++ b/Tests/RunCMake/file/RunCMakeTest.cmake @@ -25,6 +25,7 @@ run_cmake(LOCK-error-no-timeout) run_cmake(LOCK-error-timeout) run_cmake(LOCK-error-unknown-option) run_cmake(LOCK-lowercase) +run_cmake(READ_ELF) run_cmake(GLOB) run_cmake(GLOB_RECURSE) # test is valid both for GLOB and GLOB_RECURSE ----------------------------------------------------------------------- Summary of changes: Modules/BundleUtilities.cmake | 13 +++- Source/cmFileCommand.cxx | 69 ++++++++++++++++++++ Source/cmFileCommand.h | 1 + .../READ_ELF-result.txt} | 0 Tests/RunCMake/file/READ_ELF-stderr.txt | 2 + Tests/RunCMake/file/READ_ELF.cmake | 2 + Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 7 files changed, 87 insertions(+), 1 deletion(-) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => file/READ_ELF-result.txt} (100%) create mode 100644 Tests/RunCMake/file/READ_ELF-stderr.txt create mode 100644 Tests/RunCMake/file/READ_ELF.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 16:15:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 16:15:04 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-459-g774841f Message-ID: <20170310211504.46816F9503@public.kitware.com> 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 774841f7ddc9309f74d8becc32fac43beaf1fc3c (commit) via c4d481e5b8558ac00e637b36312685762a82bb23 (commit) from 227852fc9b275aefa80689a92f77ea2e89a65274 (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=774841f7ddc9309f74d8becc32fac43beaf1fc3c commit 774841f7ddc9309f74d8becc32fac43beaf1fc3c Merge: 227852f c4d481e Author: Brad King AuthorDate: Fri Mar 10 21:12:45 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 16:12:49 2017 -0500 Stage topic 'FindGit-avoid-vs-2017-git' Topic-id: 23001 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/575 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c4d481e5b8558ac00e637b36312685762a82bb23 commit c4d481e5b8558ac00e637b36312685762a82bb23 Author: Brad King AuthorDate: Fri Mar 10 16:00:34 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 16:09:31 2017 -0500 FindGit: Avoid finding VS 2017 non-general Git installation At a VS 2017 command prompt the `PATH` contains a directory that happens to have a `Git/cmd/git.exe` inside it. However, this executable is not meant for general use. Revise our use of `Git/` path suffixes to be more specific to its original purpose of searching in the typical `c:/Program Files*/Git/` installation directories. Avoid using the suffixes on `PATH` entries. Fixes: #16706 diff --git a/Modules/FindGit.cmake b/Modules/FindGit.cmake index b830c08..fae31eb 100644 --- a/Modules/FindGit.cmake +++ b/Modules/FindGit.cmake @@ -43,12 +43,26 @@ if(CMAKE_HOST_WIN32) endif() endif() +# First search the PATH and specific locations. find_program(GIT_EXECUTABLE NAMES ${git_names} PATHS ${github_path} ${_git_sourcetree_path} - PATH_SUFFIXES Git/cmd Git/bin DOC "Git command line client" ) + +if(CMAKE_HOST_WIN32) + # Now look for installations in Git/ directories under typical installation + # prefixes on Windows. Exclude PATH from this search because VS 2017's + # command prompt happens to have a PATH entry with a Git/ subdirectory + # containing a minimal git not meant for general use. + find_program(GIT_EXECUTABLE + NAMES ${git_names} + PATH_SUFFIXES Git/cmd Git/bin + NO_SYSTEM_ENVIRONMENT_PATH + DOC "Git command line client" + ) +endif() + mark_as_advanced(GIT_EXECUTABLE) unset(git_names) ----------------------------------------------------------------------- Summary of changes: Modules/FindGit.cmake | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 16:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 16:35:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-462-ge5e35d9 Message-ID: <20170310213503.18777FA78C@public.kitware.com> 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 e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 (commit) via 83be64d99c5a545f17d1a19da6159ac853942843 (commit) via 8ba8b5537cdee251d412c331267822badc8fafdc (commit) from 774841f7ddc9309f74d8becc32fac43beaf1fc3c (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=e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 commit e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 Merge: 774841f 83be64d Author: Brad King AuthorDate: Fri Mar 10 21:26:39 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 10 16:27:26 2017 -0500 Stage topic 'update-kwsys' Topic-id: 23004 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/576 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=83be64d99c5a545f17d1a19da6159ac853942843 commit 83be64d99c5a545f17d1a19da6159ac853942843 Merge: 0b24381 8ba8b55 Author: Brad King AuthorDate: Fri Mar 10 16:24:53 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 16:24:53 2017 -0500 Merge branch 'upstream-KWSys' into update-kwsys * upstream-KWSys: KWSys 2017-03-07 (5da8cfe0) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8ba8b5537cdee251d412c331267822badc8fafdc commit 8ba8b5537cdee251d412c331267822badc8fafdc Author: KWSys Upstream AuthorDate: Tue Mar 7 13:33:51 2017 -0500 Commit: Brad King CommitDate: Fri Mar 10 16:24:52 2017 -0500 KWSys 2017-03-07 (5da8cfe0) Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit 5da8cfe0544f95697808b0b46ed3183621902f0b (master). Upstream Shortlog ----------------- Ben Boeckel (1): c5529406 SystemTools: use std::string::empty Robert Maynard (1): 27e64d34 SystemInformation: Teach Is64Bits to check host architecture at runtime diff --git a/SystemInformation.cxx b/SystemInformation.cxx index 86f7552..93312e9 100644 --- a/SystemInformation.cxx +++ b/SystemInformation.cxx @@ -539,6 +539,7 @@ protected: std::string OSRelease; std::string OSVersion; std::string OSPlatform; + bool OSIs64Bit; }; SystemInformation::SystemInformation() @@ -1499,6 +1500,7 @@ SystemInformationImplementation::SystemInformationImplementation() this->OSRelease = ""; this->OSVersion = ""; this->OSPlatform = ""; + this->OSIs64Bit = (sizeof(void*) == 8); } SystemInformationImplementation::~SystemInformationImplementation() @@ -5320,10 +5322,20 @@ bool SystemInformationImplementation::QueryOSInformation() this->Hostname = name; const char* arch = getenv("PROCESSOR_ARCHITECTURE"); + const char* wow64 = getenv("PROCESSOR_ARCHITEW6432"); if (arch) { this->OSPlatform = arch; } + if (wow64) { + // the PROCESSOR_ARCHITEW6432 is only defined when running 32bit programs + // on 64bit OS + this->OSIs64Bit = true; + } else if (arch) { + // all values other than x86 map to 64bit architectures + this->OSIs64Bit = (strncmp(arch, "x86", 3) != 0); + } + #else struct utsname unameInfo; @@ -5334,6 +5346,12 @@ bool SystemInformationImplementation::QueryOSInformation() this->OSRelease = unameInfo.release; this->OSVersion = unameInfo.version; this->OSPlatform = unameInfo.machine; + + // This is still insufficient to capture 64bit architecture such + // powerpc and possible mips and sparc + if (this->OSPlatform.find_first_of("64") != std::string::npos) { + this->OSIs64Bit = true; + } } #ifdef __APPLE__ @@ -5387,6 +5405,6 @@ void SystemInformationImplementation::TrimNewline(std::string& output) /** Return true if the machine is 64 bits */ bool SystemInformationImplementation::Is64Bits() { - return (sizeof(void*) == 8); + return this->OSIs64Bit; } } diff --git a/SystemInformation.hxx.in b/SystemInformation.hxx.in index cc09393..54e7fc1 100644 --- a/SystemInformation.hxx.in +++ b/SystemInformation.hxx.in @@ -65,6 +65,7 @@ public: // on this system. std::string GetOSDescription(); + // returns if the operating system is 64bit or not. bool Is64Bits(); unsigned int GetNumberOfLogicalCPU(); diff --git a/SystemTools.cxx b/SystemTools.cxx index 8c82ec1..65b7b26 100644 --- a/SystemTools.cxx +++ b/SystemTools.cxx @@ -3331,7 +3331,7 @@ std::string SystemTools::CollapseFullPath(const std::string& in_path, SystemTools::SplitPath(in_path, path_components); // If the input path is relative, start with a base path. - if (path_components[0].length() == 0) { + if (path_components[0].empty()) { std::vector base_components; if (in_base) { // Use the given base path. diff --git a/testSystemInformation.cxx b/testSystemInformation.cxx index 86a1e1e..3a9217f 100644 --- a/testSystemInformation.cxx +++ b/testSystemInformation.cxx @@ -52,6 +52,7 @@ int testSystemInformation(int, char* []) printMethod(info, GetOSRelease); printMethod(info, GetOSVersion); printMethod(info, GetOSPlatform); + printMethod(info, Is64Bits); printMethod(info, GetVendorString); printMethod(info, GetVendorID); printMethod(info, GetTypeID); @@ -63,7 +64,6 @@ int testSystemInformation(int, char* []) printMethod2(info, GetProcessorCacheSize, "KB"); printMethod(info, GetLogicalProcessorsPerPhysical); printMethod2(info, GetProcessorClockFrequency, "MHz"); - printMethod(info, Is64Bits); printMethod(info, GetNumberOfLogicalCPU); printMethod(info, GetNumberOfPhysicalCPU); printMethod(info, DoesCPUSupportCPUID); ----------------------------------------------------------------------- Summary of changes: Source/kwsys/SystemInformation.cxx | 20 +++++++++++++++++++- Source/kwsys/SystemInformation.hxx.in | 1 + Source/kwsys/SystemTools.cxx | 2 +- Source/kwsys/testSystemInformation.cxx | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 20:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 20:05:08 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-462-ge5e35d9 Message-ID: <20170311010509.21B4FFA7A8@public.kitware.com> 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, nightly has been updated discards 23c5ecceccdacbc4d5254eefe643b78e67266d24 (commit) discards 000ce19e71da3250268d61fe4856b339aa13b058 (commit) discards 73cd0b5ada01f032bc53648628b09b6278a54306 (commit) discards bd0df62be9277cc23c006811d9c649cf9b7d5f3a (commit) discards 49c2f9f4a50bdab1b321a960aaa1de0aec30aee3 (commit) discards 6f8957cb4a024b1641ff348fe9ccbf58460e3fb2 (commit) discards 4645f6128114a896402a0e6a6770ac1607c4bb54 (commit) discards ac1fb1575466c2f09f68f5b24da611a23f984dd8 (commit) discards 65ebb6301f040aee231e4d51cab9d1a8f2288d70 (commit) discards 87128b1cb62375719009bd1c55421849777edd2d (commit) discards 0c90892fc84455b5182fa5f2a81a6d38555edb3e (commit) discards f912d40db1a5f7aee94ff2ce2434be2215abaf6c (commit) discards 7f0b6d32b5c45139bebe411500de64437a5f5b0c (commit) discards d1571e3df8782e67073a654cd3881aea11d58fa6 (commit) discards 93d6cbc2c5563f232cbb13d39ebd953e0b9908a0 (commit) discards f2f6fcf621e09af9c2a8e01451b52e039c17e815 (commit) discards e0fe19b880011a1cd5a2f1a0207cd0461cb0fdb9 (commit) discards c5b7598ef7410727b81738c891ca1fa50bdca87a (commit) discards 99ce2751a470df3e0ea61a303917ce5816c3519f (commit) discards 9b231290d639fb206707a3a0e6342f3d7458f5ae (commit) discards 097de72be2cbd43fb165f1995a1ea97bd45369b4 (commit) discards b9ea0713e8f660fa94d46c44c40327b8665054fe (commit) discards cca12f281673e60c1b0179416c5a12f2a7eca82b (commit) via e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 (commit) via 83be64d99c5a545f17d1a19da6159ac853942843 (commit) via 8ba8b5537cdee251d412c331267822badc8fafdc (commit) via 774841f7ddc9309f74d8becc32fac43beaf1fc3c (commit) via c4d481e5b8558ac00e637b36312685762a82bb23 (commit) via 227852fc9b275aefa80689a92f77ea2e89a65274 (commit) via 9af050a850fa9e5d8c0ea2bc91b2120511905f7f (commit) via 7940ac07a5155319594ee6d7f99ffcb5e248b136 (commit) via 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (commit) via 10fcef02752ad46b53dd22025420048a0278322d (commit) via ac0786cb9ae40f73323b448e405b053a83770de0 (commit) via a52faa1fcb7b54026ecfbef573d05568846e1aba (commit) via 8fc934de0e9667a83712ab7b460d63c309b86571 (commit) via 65481a60a06b4238d342f64b5fed52e252ee191b (commit) via 8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 (commit) via 6ca4f2229234ab7543597ca19bda09c51297eee6 (commit) via 94255511a6d59b14159544e2489905c62dab9fca (commit) via 253594d0aec0cbe34694cac59ef1a8e42a532118 (commit) via 4def02a3852eb211e26951819646f8cd8ee6c00c (commit) via 29f07b08671ea8a8cf2b32c6b740a2ecaa58168c (commit) via b966f489c1b35cbc897720f1f9b68bd9b69175c7 (commit) via b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c (commit) via 041ebda25bef6c142ac80135b0b59d88acbc0f1f (commit) via 13433b135759edaa65bd1cb31c3b124c244866d7 (commit) via 82521e359f9afbb1644d1b8eae58f27a51407df3 (commit) via 80e982d7ad571ce308708d36a531df7a91ffe0f8 (commit) via f7bb40c92dceedd65965c4c475b5395239e630ea (commit) via a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a (commit) via 895b89046601e61f6fb76bf17c5306ea102b9bf6 (commit) via a650dbb280859bdbadb9a7bba5636955190ec18a (commit) via 62b308515abe01fbe03ce0e1c7fee4879ca665b1 (commit) via 5164e9a6510137eaac1c7b736a6b24fe02ce17a9 (commit) via 83bf980c9601c2e5d6a6247867606539d8a14528 (commit) via 29ec8d65f2815bbe4b47c59c5483a9934b92898b (commit) via 6b586e2c13b36a5847671fad7ea5d04dde0ab1a9 (commit) via 7bd58bd67d204a73e40090ebe9a31b368cd73fb0 (commit) via f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 (commit) via 25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf (commit) via 1e0a9ac45d51e0076222026b9c44604b287a6eae (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 (23c5ecceccdacbc4d5254eefe643b78e67266d24) \ N -- N -- N (e5e35d980b970af7d12f6d9d3f00a22c3b2192d2) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/BundleUtilities.cmake | 13 +++- Modules/Compiler/GNU-FindBinUtils.cmake | 4 +- Modules/FindGit.cmake | 16 +++- Source/CMakeVersion.cmake | 2 +- Source/cmCommonTargetGenerator.cxx | 15 +--- Source/cmCommonTargetGenerator.h | 3 - Source/cmFileCommand.cxx | 69 +++++++++++++++++ Source/cmFileCommand.h | 1 + Source/cmGeneratorTarget.cxx | 56 +++++++++++--- Source/cmGeneratorTarget.h | 16 +++- Source/cmGlobalVisualStudio10Generator.cxx | 75 +++++++++++++++---- Source/cmGlobalVisualStudioGenerator.cxx | 12 ++- Source/cmLocalVisualStudio7Generator.cxx | 39 ++++------ Source/cmLocalVisualStudio7Generator.h | 1 - Source/cmMakefileExecutableTargetGenerator.cxx | 5 +- Source/cmMakefileLibraryTargetGenerator.cxx | 5 +- Source/cmMakefileTargetGenerator.cxx | 78 +++++++++----------- Source/cmMakefileTargetGenerator.h | 3 +- Source/cmNinjaNormalTargetGenerator.cxx | 61 ++++++--------- Source/cmNinjaTargetGenerator.cxx | 7 +- Source/cmVisualStudio10TargetGenerator.cxx | 45 ++++------- Source/kwsys/SystemInformation.cxx | 20 ++++- Source/kwsys/SystemInformation.hxx.in | 1 + Source/kwsys/SystemTools.cxx | 2 +- Source/kwsys/testSystemInformation.cxx | 2 +- .../TestToolsetCudaOnly-stdout.txt | 2 +- .../READ_ELF-result.txt} | 0 Tests/RunCMake/file/READ_ELF-stderr.txt | 2 + Tests/RunCMake/file/READ_ELF.cmake | 2 + Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 30 files changed, 354 insertions(+), 204 deletions(-) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => file/READ_ELF-result.txt} (100%) create mode 100644 Tests/RunCMake/file/READ_ELF-stderr.txt create mode 100644 Tests/RunCMake/file/READ_ELF.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 10 20:05:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 10 Mar 2017 20:05:09 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-428-g0b24381 Message-ID: <20170311010510.12B2AFA7B3@public.kitware.com> 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, nightly-master has been updated via 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (commit) via 8fc934de0e9667a83712ab7b460d63c309b86571 (commit) via 29ec8d65f2815bbe4b47c59c5483a9934b92898b (commit) via 6b586e2c13b36a5847671fad7ea5d04dde0ab1a9 (commit) via 7bd58bd67d204a73e40090ebe9a31b368cd73fb0 (commit) via ae0f7dfa954e97d8b62cf83f0063e37171b457f8 (commit) via b9d36826c5676bf3d0bb55fb47c6ce62f4f3470d (commit) from 21499ee0a3b4ba0f69e9b37ad18d248cc4b71041 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-variables.7.rst | 2 ++ Help/release/dev/gcc_archiving_tools.rst | 8 ++++++++ Help/variable/CMAKE_GCC_AR.rst | 7 +++++++ Help/variable/CMAKE_GCC_RANLIB.rst | 7 +++++++ Modules/CMakeASMCompiler.cmake.in | 2 ++ Modules/CMakeCCompiler.cmake.in | 2 ++ Modules/CMakeCXXCompiler.cmake.in | 2 ++ Modules/CMakeDetermineCCompiler.cmake | 4 ++++ Modules/CMakeDetermineCXXCompiler.cmake | 4 ++++ Modules/CMakeDetermineFortranCompiler.cmake | 3 +++ Modules/CMakeFortranCompiler.cmake.in | 2 ++ Modules/Compiler/GNU-FindBinUtils.cmake | 25 +++++++++++++++++++++++++ Source/CMakeVersion.cmake | 2 +- Tests/CPackComponents/CMakeLists.txt | 2 +- 14 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/gcc_archiving_tools.rst create mode 100644 Help/variable/CMAKE_GCC_AR.rst create mode 100644 Help/variable/CMAKE_GCC_RANLIB.rst create mode 100644 Modules/Compiler/GNU-FindBinUtils.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 11 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 11 Mar 2017 00:05:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-429-g6a4e189 Message-ID: <20170311050507.63D7BFA72F@public.kitware.com> 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 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (commit) from 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 11 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 11 Mar 2017 00:05:07 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-463-ge78d665 Message-ID: <20170311050507.ABF00FA737@public.kitware.com> 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 e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 (commit) discards 774841f7ddc9309f74d8becc32fac43beaf1fc3c (commit) discards 227852fc9b275aefa80689a92f77ea2e89a65274 (commit) discards 9af050a850fa9e5d8c0ea2bc91b2120511905f7f (commit) discards 7940ac07a5155319594ee6d7f99ffcb5e248b136 (commit) via e78d6650209702544a34686b73784413fccdb2bf (commit) via be5dc545002764555d031395988bcb0a8b6b9437 (commit) via 0782401fd16180b49572a1f55e103fc28b24bdfe (commit) via edd9820cadf2bba592ce0a16f29b217dcde27c74 (commit) via cb2e77db7b17833b30bd3e8f54b900923ffac03c (commit) via 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (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 (e5e35d980b970af7d12f6d9d3f00a22c3b2192d2) \ N -- N -- N (e78d6650209702544a34686b73784413fccdb2bf) 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=e78d6650209702544a34686b73784413fccdb2bf commit e78d6650209702544a34686b73784413fccdb2bf Merge: be5dc54 83be64d Author: Brad King AuthorDate: Fri Mar 10 21:26:39 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 11 00:01:26 2017 -0500 Stage topic 'update-kwsys' Topic-id: 23004 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/576 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=be5dc545002764555d031395988bcb0a8b6b9437 commit be5dc545002764555d031395988bcb0a8b6b9437 Merge: 0782401 c4d481e Author: Brad King AuthorDate: Fri Mar 10 21:12:45 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 11 00:01:26 2017 -0500 Stage topic 'FindGit-avoid-vs-2017-git' Topic-id: 23001 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/575 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0782401fd16180b49572a1f55e103fc28b24bdfe commit 0782401fd16180b49572a1f55e103fc28b24bdfe Merge: edd9820 10fcef0 Author: Brad King AuthorDate: Fri Mar 10 16:39:42 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 11 00:01:26 2017 -0500 Stage topic 'bundle_verify_unix' Topic-id: 22875 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/551 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=edd9820cadf2bba592ce0a16f29b217dcde27c74 commit edd9820cadf2bba592ce0a16f29b217dcde27c74 Merge: cb2e77d 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 11 00:01:26 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cb2e77db7b17833b30bd3e8f54b900923ffac03c commit cb2e77db7b17833b30bd3e8f54b900923ffac03c Merge: 6a4e189 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 11 00:01:25 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 11 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 11 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-463-ge78d665 Message-ID: <20170312010503.86D31FA770@public.kitware.com> 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, nightly has been updated discards e5e35d980b970af7d12f6d9d3f00a22c3b2192d2 (commit) discards 774841f7ddc9309f74d8becc32fac43beaf1fc3c (commit) discards 227852fc9b275aefa80689a92f77ea2e89a65274 (commit) discards 9af050a850fa9e5d8c0ea2bc91b2120511905f7f (commit) discards 7940ac07a5155319594ee6d7f99ffcb5e248b136 (commit) via e78d6650209702544a34686b73784413fccdb2bf (commit) via be5dc545002764555d031395988bcb0a8b6b9437 (commit) via 0782401fd16180b49572a1f55e103fc28b24bdfe (commit) via edd9820cadf2bba592ce0a16f29b217dcde27c74 (commit) via cb2e77db7b17833b30bd3e8f54b900923ffac03c (commit) via 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (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 (e5e35d980b970af7d12f6d9d3f00a22c3b2192d2) \ N -- N -- N (e78d6650209702544a34686b73784413fccdb2bf) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 11 20:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 11 Mar 2017 20:05:03 -0500 (EST) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-429-g6a4e189 Message-ID: <20170312010503.9CAB6FA776@public.kitware.com> 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, nightly-master has been updated via 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (commit) from 0b2438118ad93479de09f0d7a0e9b77859f9a9c3 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 12 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 12 Mar 2017 00:05:05 -0500 (EST) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-430-gce0704e Message-ID: <20170312050508.31AB1FA032@public.kitware.com> 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 ce0704e41958378381ca6fd24591f81df5232191 (commit) from 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 12 00:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 12 Mar 2017 00:05:10 -0500 (EST) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-464-g6931944 Message-ID: <20170312050510.6ECA9FA0B8@public.kitware.com> 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 e78d6650209702544a34686b73784413fccdb2bf (commit) discards be5dc545002764555d031395988bcb0a8b6b9437 (commit) discards 0782401fd16180b49572a1f55e103fc28b24bdfe (commit) discards edd9820cadf2bba592ce0a16f29b217dcde27c74 (commit) discards cb2e77db7b17833b30bd3e8f54b900923ffac03c (commit) via 69319443edbb3044781a467aa8da18cf30e323d3 (commit) via 030f43dd7aeba7d5fdd014c430b79a719180ef0c (commit) via 98cfc654c6a3ecfe3be9eab546b0dd7c94455713 (commit) via 756bf9db41483fe07e7c9cdfe7682b325b18f6ef (commit) via 4b9f971011e635bd35f12a335a37b751f31c4bee (commit) via ce0704e41958378381ca6fd24591f81df5232191 (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 (e78d6650209702544a34686b73784413fccdb2bf) \ N -- N -- N (69319443edbb3044781a467aa8da18cf30e323d3) 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=69319443edbb3044781a467aa8da18cf30e323d3 commit 69319443edbb3044781a467aa8da18cf30e323d3 Merge: 030f43d 83be64d Author: Brad King AuthorDate: Fri Mar 10 21:26:39 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 00:01:32 2017 -0500 Stage topic 'update-kwsys' Topic-id: 23004 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/576 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=030f43dd7aeba7d5fdd014c430b79a719180ef0c commit 030f43dd7aeba7d5fdd014c430b79a719180ef0c Merge: 98cfc65 c4d481e Author: Brad King AuthorDate: Fri Mar 10 21:12:45 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 00:01:32 2017 -0500 Stage topic 'FindGit-avoid-vs-2017-git' Topic-id: 23001 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/575 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=98cfc654c6a3ecfe3be9eab546b0dd7c94455713 commit 98cfc654c6a3ecfe3be9eab546b0dd7c94455713 Merge: 756bf9d 10fcef0 Author: Brad King AuthorDate: Fri Mar 10 16:39:42 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 00:01:32 2017 -0500 Stage topic 'bundle_verify_unix' Topic-id: 22875 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/551 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=756bf9db41483fe07e7c9cdfe7682b325b18f6ef commit 756bf9db41483fe07e7c9cdfe7682b325b18f6ef Merge: 4b9f971 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 00:01:31 2017 -0500 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4b9f971011e635bd35f12a335a37b751f31c4bee commit 4b9f971011e635bd35f12a335a37b751f31c4bee Merge: ce0704e f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 00:01:31 2017 -0500 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 12 17:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 12 Mar 2017 17:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-467-g194307d Message-ID: <20170312212503.7E0C1F9A21@public.kitware.com> 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 194307d651eaa888861635f989e88dc14079c98b (commit) via 3fd9f4ab0595f15588055fef1ad8dd8612945e22 (commit) via cf13e495447662624c3389dc075fe48342f5e593 (commit) from 69319443edbb3044781a467aa8da18cf30e323d3 (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=194307d651eaa888861635f989e88dc14079c98b commit 194307d651eaa888861635f989e88dc14079c98b Merge: 6931944 3fd9f4a Author: Gregor Jasny AuthorDate: Sun Mar 12 21:16:12 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 12 17:16:14 2017 -0400 Stage topic 'xcode-test-schema-generation' Topic-id: 23011 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/577 diff --cc Help/manual/cmake-variables.7.rst index e4ee725,04d9cbd..9d8d596 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@@ -84,9 -84,9 +84,10 @@@ Variables that Provide Informatio /variable/CMAKE_VS_NsightTegra_VERSION /variable/CMAKE_VS_PLATFORM_NAME /variable/CMAKE_VS_PLATFORM_TOOLSET + /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + /variable/CMAKE_XCODE_GENERATE_SCHEME /variable/CMAKE_XCODE_PLATFORM_TOOLSET /variable/PROJECT-NAME_BINARY_DIR /variable/PROJECT-NAME_SOURCE_DIR https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3fd9f4ab0595f15588055fef1ad8dd8612945e22 commit 3fd9f4ab0595f15588055fef1ad8dd8612945e22 Author: Gregor Jasny AuthorDate: Sun Mar 12 21:23:26 2017 +0100 Commit: Gregor Jasny CommitDate: Sun Mar 12 21:27:53 2017 +0100 Xcode: Add test for schema generation Closes: #15441 diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index f51a107..5f4bdc3 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake @@ -187,3 +187,19 @@ if(NOT XCODE_VERSION VERSION_LESS 5) unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_OPTIONS) endif() + +function(XcodeSchemaGeneration) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeSchemaGeneration-build) + set(RunCMake_TEST_NO_CLEAN 1) + set(RunCMake_TEST_OPTIONS "-DCMAKE_XCODE_GENERATE_SCHEME=ON") + + file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") + file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") + + run_cmake(XcodeSchemaGeneration) + run_cmake_command(XcodeSchemaGeneration-build xcodebuild -scheme foo build) +endfunction() + +if(NOT XCODE_VERSION VERSION_LESS 7) + XcodeSchemaGeneration() +endif() diff --git a/Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake b/Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake new file mode 100644 index 0000000..2fe5a9f --- /dev/null +++ b/Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake @@ -0,0 +1,5 @@ +cmake_minimum_required(VERSION 3.7) + +project(XcodeSchemaGeneration CXX) + +add_executable(foo main.cpp) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cf13e495447662624c3389dc075fe48342f5e593 commit cf13e495447662624c3389dc075fe48342f5e593 Author: Gregor Jasny AuthorDate: Fri Feb 24 16:18:35 2017 +0100 Commit: Gregor Jasny CommitDate: Sun Mar 12 21:24:46 2017 +0100 Xcode: Control schema generation via variable Issue: #15441 diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 2157ba5..e07150a 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -46,7 +46,6 @@ Properties of Global Scope /prop_gbl/TARGET_SUPPORTS_SHARED_LIBS /prop_gbl/USE_FOLDERS /prop_gbl/XCODE_EMIT_EFFECTIVE_PLATFORM_NAME - /prop_gbl/XCODE_GENERATE_SCHEME .. _`Directory Properties`: diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 2606ba0..04d9cbd 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -86,6 +86,7 @@ Variables that Provide Information /variable/CMAKE_VS_PLATFORM_TOOLSET /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + /variable/CMAKE_XCODE_GENERATE_SCHEME /variable/CMAKE_XCODE_PLATFORM_TOOLSET /variable/PROJECT-NAME_BINARY_DIR /variable/PROJECT-NAME_SOURCE_DIR diff --git a/Help/release/dev/cmake-xcode-schemes.rst b/Help/release/dev/cmake-xcode-schemes.rst index 27c19d7..81068ae 100644 --- a/Help/release/dev/cmake-xcode-schemes.rst +++ b/Help/release/dev/cmake-xcode-schemes.rst @@ -3,4 +3,4 @@ cmake-xcode-schemes * The :generator:`Xcode` generator got the ability to create schema files. This is still an experimental feature and can be activated by setting the - :prop_gbl:`XCODE_GENERATE_SCHEME` global property to a ``TRUE`` value. + :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable to a ``TRUE`` value. diff --git a/Help/prop_gbl/XCODE_GENERATE_SCHEME.rst b/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst similarity index 82% rename from Help/prop_gbl/XCODE_GENERATE_SCHEME.rst rename to Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst index be8b5b0..c9fcc92 100644 --- a/Help/prop_gbl/XCODE_GENERATE_SCHEME.rst +++ b/Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst @@ -1,5 +1,5 @@ -XCODE_GENERATE_SCHEME ---------------------- +CMAKE_XCODE_GENERATE_SCHEME +--------------------------- If enabled, the Xcode generator will generate schema files. Those are are useful to invoke analyze, archive, build-for-testing and test diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index b023d5c..77f3408 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3341,8 +3341,7 @@ void cmGlobalXCodeGenerator::OutputXCodeProject( // Since the lowest available Xcode version for testing was 7.0, // I'm setting this as a limit then - if (this->GetCMakeInstance()->GetState()->GetGlobalPropertyAsBool( - "XCODE_GENERATE_SCHEME") && + if (root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_SCHEME") && this->XcodeVersion >= 70) { this->OutputXCodeSharedSchemes(xcodeDir); this->OutputXCodeWorkspaceSettings(xcodeDir); ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 - Help/manual/cmake-variables.7.rst | 1 + Help/release/dev/cmake-xcode-schemes.rst | 2 +- .../CMAKE_XCODE_GENERATE_SCHEME.rst} | 4 ++-- Source/cmGlobalXCodeGenerator.cxx | 3 +-- Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 16 ++++++++++++++++ .../RunCMake/XcodeProject/XcodeSchemaGeneration.cmake | 5 +++++ 7 files changed, 26 insertions(+), 6 deletions(-) rename Help/{prop_gbl/XCODE_GENERATE_SCHEME.rst => variable/CMAKE_XCODE_GENERATE_SCHEME.rst} (82%) create mode 100644 Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 12 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 12 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-467-g194307d Message-ID: <20170313010508.E4DE7FA6DA@public.kitware.com> 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, nightly has been updated discards e78d6650209702544a34686b73784413fccdb2bf (commit) discards be5dc545002764555d031395988bcb0a8b6b9437 (commit) discards 0782401fd16180b49572a1f55e103fc28b24bdfe (commit) discards edd9820cadf2bba592ce0a16f29b217dcde27c74 (commit) discards cb2e77db7b17833b30bd3e8f54b900923ffac03c (commit) via 194307d651eaa888861635f989e88dc14079c98b (commit) via 3fd9f4ab0595f15588055fef1ad8dd8612945e22 (commit) via cf13e495447662624c3389dc075fe48342f5e593 (commit) via 69319443edbb3044781a467aa8da18cf30e323d3 (commit) via 030f43dd7aeba7d5fdd014c430b79a719180ef0c (commit) via 98cfc654c6a3ecfe3be9eab546b0dd7c94455713 (commit) via 756bf9db41483fe07e7c9cdfe7682b325b18f6ef (commit) via 4b9f971011e635bd35f12a335a37b751f31c4bee (commit) via ce0704e41958378381ca6fd24591f81df5232191 (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 (e78d6650209702544a34686b73784413fccdb2bf) \ N -- N -- N (194307d651eaa888861635f989e88dc14079c98b) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 - Help/manual/cmake-variables.7.rst | 1 + Help/release/dev/cmake-xcode-schemes.rst | 2 +- .../CMAKE_XCODE_GENERATE_SCHEME.rst} | 4 ++-- Source/CMakeVersion.cmake | 2 +- Source/cmGlobalXCodeGenerator.cxx | 3 +-- Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 16 ++++++++++++++++ .../RunCMake/XcodeProject/XcodeSchemaGeneration.cmake | 5 +++++ 8 files changed, 27 insertions(+), 7 deletions(-) rename Help/{prop_gbl/XCODE_GENERATE_SCHEME.rst => variable/CMAKE_XCODE_GENERATE_SCHEME.rst} (82%) create mode 100644 Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 12 21:05:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 12 Mar 2017 21:05:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-430-gce0704e Message-ID: <20170313010509.4B703FA6D9@public.kitware.com> 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, nightly-master has been updated via ce0704e41958378381ca6fd24591f81df5232191 (commit) from 6a4e189b6814c6b1a103186c611dfe7ecd374fe9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-431-gac59ec7 Message-ID: <20170313040505.07D55FA830@public.kitware.com> 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 ac59ec7dc19fe4bfcab81169d6f597c4852f096e (commit) from ce0704e41958378381ca6fd24591f81df5232191 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-468-g68d2c48 Message-ID: <20170313040505.586BFFA831@public.kitware.com> 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 194307d651eaa888861635f989e88dc14079c98b (commit) discards 69319443edbb3044781a467aa8da18cf30e323d3 (commit) discards 030f43dd7aeba7d5fdd014c430b79a719180ef0c (commit) discards 98cfc654c6a3ecfe3be9eab546b0dd7c94455713 (commit) discards 756bf9db41483fe07e7c9cdfe7682b325b18f6ef (commit) discards 4b9f971011e635bd35f12a335a37b751f31c4bee (commit) via 68d2c48e9dde22d864974ca1594bc163d95bb538 (commit) via 6c930d8bdaf906c8a7662c361de55eac52d08c07 (commit) via 539ba0dd2bc9b28aea51643a94f7c41b3090ab3f (commit) via ef6f016f6ae4419f2a5e736d566aa6873304375d (commit) via 6783271fa0b74c8ac17001037f6bad65e5c0d9cc (commit) via e5cf75e2e21d7016647adf1c997b8d3df509d43d (commit) via ac59ec7dc19fe4bfcab81169d6f597c4852f096e (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 (194307d651eaa888861635f989e88dc14079c98b) \ N -- N -- N (68d2c48e9dde22d864974ca1594bc163d95bb538) 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=68d2c48e9dde22d864974ca1594bc163d95bb538 commit 68d2c48e9dde22d864974ca1594bc163d95bb538 Merge: 6c930d8 3fd9f4a Author: Gregor Jasny AuthorDate: Sun Mar 12 21:16:12 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:28 2017 -0400 Stage topic 'xcode-test-schema-generation' Topic-id: 23011 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/577 diff --cc Help/manual/cmake-variables.7.rst index e4ee725,04d9cbd..9d8d596 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@@ -84,9 -84,9 +84,10 @@@ Variables that Provide Informatio /variable/CMAKE_VS_NsightTegra_VERSION /variable/CMAKE_VS_PLATFORM_NAME /variable/CMAKE_VS_PLATFORM_TOOLSET + /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + /variable/CMAKE_XCODE_GENERATE_SCHEME /variable/CMAKE_XCODE_PLATFORM_TOOLSET /variable/PROJECT-NAME_BINARY_DIR /variable/PROJECT-NAME_SOURCE_DIR https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6c930d8bdaf906c8a7662c361de55eac52d08c07 commit 6c930d8bdaf906c8a7662c361de55eac52d08c07 Merge: 539ba0d 83be64d Author: Brad King AuthorDate: Fri Mar 10 21:26:39 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:28 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23004 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/576 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=539ba0dd2bc9b28aea51643a94f7c41b3090ab3f commit 539ba0dd2bc9b28aea51643a94f7c41b3090ab3f Merge: ef6f016 c4d481e Author: Brad King AuthorDate: Fri Mar 10 21:12:45 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:28 2017 -0400 Stage topic 'FindGit-avoid-vs-2017-git' Topic-id: 23001 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/575 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef6f016f6ae4419f2a5e736d566aa6873304375d commit ef6f016f6ae4419f2a5e736d566aa6873304375d Merge: 6783271 10fcef0 Author: Brad King AuthorDate: Fri Mar 10 16:39:42 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:28 2017 -0400 Stage topic 'bundle_verify_unix' Topic-id: 22875 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/551 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6783271fa0b74c8ac17001037f6bad65e5c0d9cc commit 6783271fa0b74c8ac17001037f6bad65e5c0d9cc Merge: e5cf75e 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:27 2017 -0400 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e5cf75e2e21d7016647adf1c997b8d3df509d43d commit e5cf75e2e21d7016647adf1c997b8d3df509d43d Merge: ac59ec7 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 00:01:27 2017 -0400 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 08:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 08:45:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-436-gabbc0b8 Message-ID: <20170313124503.EA747F3E4B@public.kitware.com> 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 abbc0b839f70354804a222fbb10f96e378927486 (commit) via ff5188481a43f024db0e8ac385eed398be401d90 (commit) via 83be64d99c5a545f17d1a19da6159ac853942843 (commit) via 8ba8b5537cdee251d412c331267822badc8fafdc (commit) via c4d481e5b8558ac00e637b36312685762a82bb23 (commit) from ac59ec7dc19fe4bfcab81169d6f597c4852f096e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindGit.cmake | 16 +++++++++++++++- Source/kwsys/SystemInformation.cxx | 20 +++++++++++++++++++- Source/kwsys/SystemInformation.hxx.in | 1 + Source/kwsys/SystemTools.cxx | 2 +- Source/kwsys/testSystemInformation.cxx | 2 +- 5 files changed, 37 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 08:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 08:45:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-468-g2afc4b6 Message-ID: <20170313124504.2397FF3F9E@public.kitware.com> 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 68d2c48e9dde22d864974ca1594bc163d95bb538 (commit) discards 6c930d8bdaf906c8a7662c361de55eac52d08c07 (commit) discards 539ba0dd2bc9b28aea51643a94f7c41b3090ab3f (commit) discards ef6f016f6ae4419f2a5e736d566aa6873304375d (commit) discards 6783271fa0b74c8ac17001037f6bad65e5c0d9cc (commit) discards e5cf75e2e21d7016647adf1c997b8d3df509d43d (commit) via 2afc4b6d07397353d5652709240ed56107ed6661 (commit) via 1f280023b645750878a9e53aa194883c5438c734 (commit) via 3bce657b44e2a1ea40c9c2e645ad5fe869f61d62 (commit) via 1a140f1325f713bb3406f86308e45a3196ff0129 (commit) via abbc0b839f70354804a222fbb10f96e378927486 (commit) via ff5188481a43f024db0e8ac385eed398be401d90 (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 (68d2c48e9dde22d864974ca1594bc163d95bb538) \ N -- N -- N (2afc4b6d07397353d5652709240ed56107ed6661) 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=2afc4b6d07397353d5652709240ed56107ed6661 commit 2afc4b6d07397353d5652709240ed56107ed6661 Merge: 1f28002 3fd9f4a Author: Gregor Jasny AuthorDate: Sun Mar 12 21:16:12 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 08:42:15 2017 -0400 Stage topic 'xcode-test-schema-generation' Topic-id: 23011 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/577 diff --cc Help/manual/cmake-variables.7.rst index e4ee725,04d9cbd..9d8d596 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@@ -84,9 -84,9 +84,10 @@@ Variables that Provide Informatio /variable/CMAKE_VS_NsightTegra_VERSION /variable/CMAKE_VS_PLATFORM_NAME /variable/CMAKE_VS_PLATFORM_TOOLSET + /variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA /variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE /variable/CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION + /variable/CMAKE_XCODE_GENERATE_SCHEME /variable/CMAKE_XCODE_PLATFORM_TOOLSET /variable/PROJECT-NAME_BINARY_DIR /variable/PROJECT-NAME_SOURCE_DIR https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1f280023b645750878a9e53aa194883c5438c734 commit 1f280023b645750878a9e53aa194883c5438c734 Merge: 3bce657 10fcef0 Author: Brad King AuthorDate: Fri Mar 10 16:39:42 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 08:42:15 2017 -0400 Stage topic 'bundle_verify_unix' Topic-id: 22875 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/551 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3bce657b44e2a1ea40c9c2e645ad5fe869f61d62 commit 3bce657b44e2a1ea40c9c2e645ad5fe869f61d62 Merge: 1a140f1 65481a6 Author: Brad King AuthorDate: Fri Mar 10 15:22:48 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 08:42:15 2017 -0400 Stage topic 'cuda-vs' Topic-id: 22931 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/566 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1a140f1325f713bb3406f86308e45a3196ff0129 commit 1a140f1325f713bb3406f86308e45a3196ff0129 Merge: abbc0b8 f36eaf6 Author: Brad King AuthorDate: Fri Mar 10 13:24:42 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 08:42:14 2017 -0400 Stage topic 'refactor-module-def' Topic-id: 22983 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/570 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 09:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 09:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-473-g053475a Message-ID: <20170313130503.719ECFA09F@public.kitware.com> 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 053475aff71ea75810bbc6841b3473c33b87623e (commit) via 2591e89c14cf3e0e14312c5bfee8397cf31efdd2 (commit) via 3806e186d1ac3efabcbd3237927fc660645fdc26 (commit) via 22908e4be83679deb32cf771df9d7793681814fd (commit) via b46fa35824f2e8716032b3ec3201d0a0ee445f86 (commit) via abfc55a362bd2ad5ea45f7f8f228adf516f389ad (commit) via 3fd9f4ab0595f15588055fef1ad8dd8612945e22 (commit) via cf13e495447662624c3389dc075fe48342f5e593 (commit) via 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (commit) via 7a2de256c49e5ac2d78646dd9f3075f0842902bc (commit) via 10fcef02752ad46b53dd22025420048a0278322d (commit) via ac0786cb9ae40f73323b448e405b053a83770de0 (commit) via a52faa1fcb7b54026ecfbef573d05568846e1aba (commit) via 65481a60a06b4238d342f64b5fed52e252ee191b (commit) via 8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 (commit) via 6ca4f2229234ab7543597ca19bda09c51297eee6 (commit) via 94255511a6d59b14159544e2489905c62dab9fca (commit) via 253594d0aec0cbe34694cac59ef1a8e42a532118 (commit) via 4def02a3852eb211e26951819646f8cd8ee6c00c (commit) via 29f07b08671ea8a8cf2b32c6b740a2ecaa58168c (commit) via b966f489c1b35cbc897720f1f9b68bd9b69175c7 (commit) via b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c (commit) via 041ebda25bef6c142ac80135b0b59d88acbc0f1f (commit) via 13433b135759edaa65bd1cb31c3b124c244866d7 (commit) via 82521e359f9afbb1644d1b8eae58f27a51407df3 (commit) via 80e982d7ad571ce308708d36a531df7a91ffe0f8 (commit) via f7bb40c92dceedd65965c4c475b5395239e630ea (commit) via a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a (commit) via 895b89046601e61f6fb76bf17c5306ea102b9bf6 (commit) via a650dbb280859bdbadb9a7bba5636955190ec18a (commit) via 62b308515abe01fbe03ce0e1c7fee4879ca665b1 (commit) via 5164e9a6510137eaac1c7b736a6b24fe02ce17a9 (commit) via 83bf980c9601c2e5d6a6247867606539d8a14528 (commit) via f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 (commit) via 25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf (commit) via 1e0a9ac45d51e0076222026b9c44604b287a6eae (commit) via 905f139b8822375e752b8c349d71b2c48c32f0a7 (commit) from abbc0b839f70354804a222fbb10f96e378927486 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 - Help/manual/cmake-variables.7.rst | 2 + Help/release/dev/cmake-xcode-schemes.rst | 2 +- Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 + .../CMAKE_XCODE_GENERATE_SCHEME.rst} | 4 +- Modules/BundleUtilities.cmake | 13 +- Modules/CMakeDetermineCUDACompiler.cmake | 51 ++-- Modules/CMakeDetermineCompilerId.cmake | 20 ++ Modules/CompilerId/VS-10.vcxproj.in | 12 +- Source/cmCommonTargetGenerator.cxx | 15 +- Source/cmCommonTargetGenerator.h | 3 - Source/cmFileCommand.cxx | 69 +++++ Source/cmFileCommand.h | 1 + Source/cmGeneratorTarget.cxx | 56 +++- Source/cmGeneratorTarget.h | 16 +- Source/cmGlobalVisualStudio10Generator.cxx | 281 +++++++++++++++++++- Source/cmGlobalVisualStudio10Generator.h | 16 ++ Source/cmGlobalVisualStudioGenerator.cxx | 12 +- Source/cmGlobalXCodeGenerator.cxx | 3 +- Source/cmLocalVisualStudio7Generator.cxx | 39 +-- Source/cmLocalVisualStudio7Generator.h | 1 - Source/cmMakefileExecutableTargetGenerator.cxx | 5 +- Source/cmMakefileLibraryTargetGenerator.cxx | 5 +- Source/cmMakefileTargetGenerator.cxx | 78 +++--- Source/cmMakefileTargetGenerator.h | 3 +- Source/cmNinjaNormalTargetGenerator.cxx | 61 ++--- Source/cmNinjaTargetGenerator.cxx | 7 +- Source/cmVS10CudaFlagTable.h | 51 ++++ Source/cmVS10CudaHostFlagTable.h | 35 +++ Source/cmVisualStudio10TargetGenerator.cxx | 195 +++++++++++--- Source/cmVisualStudio10TargetGenerator.h | 5 + Source/cmVisualStudioGeneratorOptions.cxx | 127 ++++++++- Source/cmVisualStudioGeneratorOptions.h | 22 ++ Tests/CMakeOnly/find_library/CMakeLists.txt | 2 +- Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 + Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 + .../TestToolsetCudaBoth-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 + .../TestToolsetCudaOnly-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 + Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 16 ++ .../XcodeProject/XcodeSchemaGeneration.cmake | 5 + .../READ_ELF-result.txt} | 0 Tests/RunCMake/file/READ_ELF-stderr.txt | 2 + Tests/RunCMake/file/READ_ELF.cmake | 2 + Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 47 files changed, 1054 insertions(+), 223 deletions(-) create mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst rename Help/{prop_gbl/XCODE_GENERATE_SCHEME.rst => variable/CMAKE_XCODE_GENERATE_SCHEME.rst} (82%) create mode 100644 Source/cmVS10CudaFlagTable.h create mode 100644 Source/cmVS10CudaHostFlagTable.h create mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake create mode 100644 Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => file/READ_ELF-result.txt} (100%) create mode 100644 Tests/RunCMake/file/READ_ELF-stderr.txt create mode 100644 Tests/RunCMake/file/READ_ELF.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 09:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 09:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-473-g053475a Message-ID: <20170313130503.8FFF2FA782@public.kitware.com> 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 2afc4b6d07397353d5652709240ed56107ed6661 (commit) discards 1f280023b645750878a9e53aa194883c5438c734 (commit) discards 3bce657b44e2a1ea40c9c2e645ad5fe869f61d62 (commit) discards 1a140f1325f713bb3406f86308e45a3196ff0129 (commit) via 053475aff71ea75810bbc6841b3473c33b87623e (commit) via 2591e89c14cf3e0e14312c5bfee8397cf31efdd2 (commit) via 3806e186d1ac3efabcbd3237927fc660645fdc26 (commit) via 22908e4be83679deb32cf771df9d7793681814fd (commit) via b46fa35824f2e8716032b3ec3201d0a0ee445f86 (commit) via abfc55a362bd2ad5ea45f7f8f228adf516f389ad (commit) via 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (commit) via 7a2de256c49e5ac2d78646dd9f3075f0842902bc (commit) via 905f139b8822375e752b8c349d71b2c48c32f0a7 (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 (2afc4b6d07397353d5652709240ed56107ed6661) \ N -- N -- N (053475aff71ea75810bbc6841b3473c33b87623e) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Tests/CMakeOnly/find_library/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 09:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 09:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-12-g4aca67b Message-ID: <20170313130503.A672AFA7C1@public.kitware.com> 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, release has been updated via 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (commit) via c4d481e5b8558ac00e637b36312685762a82bb23 (commit) via 905f139b8822375e752b8c349d71b2c48c32f0a7 (commit) via 66542b663645ffdde8481c1ad60e11fd14c2ccb6 (commit) from ac66dec5c5eb23f3daf515a50fece9af53fd1d6d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC_VERSION.rst | 3 ++- Modules/FindGit.cmake | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 09:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 09:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-475-g9e226d9 Message-ID: <20170313131502.8D33AF9E50@public.kitware.com> 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 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (commit) via 2a1f3dff6f5d4a77359c2259b7a0662ab345ad95 (commit) from 053475aff71ea75810bbc6841b3473c33b87623e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cuda-vs.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Help/release/dev/cuda-vs.rst hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 09:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 09:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-475-g9e226d9 Message-ID: <20170313131502.BED56F9EAC@public.kitware.com> 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 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (commit) via 2a1f3dff6f5d4a77359c2259b7a0662ab345ad95 (commit) from 053475aff71ea75810bbc6841b3473c33b87623e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cuda-vs.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Help/release/dev/cuda-vs.rst hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 10:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 10:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-477-g10f444a Message-ID: <20170313144502.CC113F3F9E@public.kitware.com> 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 10f444a5c6015a10ef0b520c32ad65097facba2b (commit) via 81b2454757fb2f56c38730f86a100af9f5a1f75b (commit) from 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 10:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 10:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-483-gd44e5c1 Message-ID: <20170313144502.EF9D2F4599@public.kitware.com> 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 d44e5c1758448469acc2d93b334a0526a2ebc80a (commit) via 3df2506fb549d57802ba2c7d99724210970791de (commit) via 60546b4829ecaa34da88c9a0993b38b967d25925 (commit) via 35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 (commit) via 7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 (commit) via c750b28220ebe3cacb087935871c7750758fc225 (commit) via 10f444a5c6015a10ef0b520c32ad65097facba2b (commit) via 81b2454757fb2f56c38730f86a100af9f5a1f75b (commit) from 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (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=d44e5c1758448469acc2d93b334a0526a2ebc80a commit d44e5c1758448469acc2d93b334a0526a2ebc80a Merge: 10f444a 3df2506 Author: Brad King AuthorDate: Mon Mar 13 14:42:03 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 13 10:42:05 2017 -0400 Stage topic 'doc-vs-toolset-options' Topic-id: 23018 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/580 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3df2506fb549d57802ba2c7d99724210970791de commit 3df2506fb549d57802ba2c7d99724210970791de Author: Brad King AuthorDate: Mon Mar 13 10:07:13 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 10:36:58 2017 -0400 Help: Document VS generator toolset specification syntax diff --git a/Help/generator/VS_TOOLSET_HOST_ARCH.txt b/Help/generator/VS_TOOLSET_HOST_ARCH.txt index 58e9223..5d13e77 100644 --- a/Help/generator/VS_TOOLSET_HOST_ARCH.txt +++ b/Help/generator/VS_TOOLSET_HOST_ARCH.txt @@ -2,9 +2,5 @@ For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32-bit (x86) and 64-bit (x64) hosts (independent of the architecture they target). By default Visual Studio chooses the 32-bit variant even on a 64-bit host. One may request use of the -64-bit host tools by adding ``host=x64`` to the toolset specification: - -``host=x64`` - Select the 64-bit variant of the default toolset. -``,host=x64`` - Select the 64-bit variant of the ```` toolset. +64-bit host tools by adding a ``host=x64`` option to the toolset specification. +See the :variable:`CMAKE_GENERATOR_TOOLSET` variable for details. diff --git a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst index 68e4eb1..11c37d7 100644 --- a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst +++ b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst @@ -24,5 +24,27 @@ See native build system documentation for allowed toolset names. Visual Studio Toolset Selection ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -On :ref:`Visual Studio Generators` the selected toolset name +The :ref:`Visual Studio Generators` support toolset specification +using one of these forms: + +* ``toolset`` +* ``toolset[,key=value]*`` +* ``key=value[,key=value]*`` + +The ``toolset`` specifies the toolset name. The selected toolset name is provided in the :variable:`CMAKE_VS_PLATFORM_TOOLSET` variable. + +The ``key=value`` pairs form a comma-separated list of options to +specify generator-specific details of the toolset selection. +Supported pairs are: + +``cuda=`` + Specify the CUDA toolkit version to use. Supported by VS 2010 + and above with the CUDA toolkit VS integration installed. + See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_CUDA` variable. + +``host=x64`` + Request use of the native ``x64`` toolchain on ``x64`` hosts. + Supported by VS 2013 and above. + See the :variable:`CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE` + variable. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=60546b4829ecaa34da88c9a0993b38b967d25925 commit 60546b4829ecaa34da88c9a0993b38b967d25925 Author: Brad King AuthorDate: Mon Mar 13 10:03:30 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 10:36:58 2017 -0400 Help: Cross-reference generator toolset variables diff --git a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst index 6a24197..68e4eb1 100644 --- a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst +++ b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst @@ -20,3 +20,9 @@ Toolset specification is supported only on specific generators: * The :generator:`Xcode` generator for Xcode 3.0 and above See native build system documentation for allowed toolset names. + +Visual Studio Toolset Selection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +On :ref:`Visual Studio Generators` the selected toolset name +is provided in the :variable:`CMAKE_VS_PLATFORM_TOOLSET` variable. diff --git a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst index 144a41d..ed2d3f3 100644 --- a/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst +++ b/Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst @@ -8,3 +8,5 @@ compiler toolchains. CMake may specify a toolset explicitly, such as ``v110`` for VS 11 or ``Windows7.1SDK`` for 64-bit support in VS 10 Express. CMake provides the name of the chosen toolset in this variable. + +See the :variable:`CMAKE_GENERATOR_TOOLSET` variable for details. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 commit 35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 Author: Brad King AuthorDate: Mon Mar 13 10:03:17 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 10:36:58 2017 -0400 Help: Cross-reference generator platform variables diff --git a/Help/variable/CMAKE_GENERATOR_PLATFORM.rst b/Help/variable/CMAKE_GENERATOR_PLATFORM.rst index 161ef20..50412ff 100644 --- a/Help/variable/CMAKE_GENERATOR_PLATFORM.rst +++ b/Help/variable/CMAKE_GENERATOR_PLATFORM.rst @@ -20,3 +20,9 @@ Platform specification is supported only on specific generators: specifies the target architecture. See native build system documentation for allowed platform names. + +Visual Studio Platform Selection +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +On :ref:`Visual Studio Generators` the selected platform name +is provided in the :variable:`CMAKE_VS_PLATFORM_NAME` variable. diff --git a/Help/variable/CMAKE_VS_PLATFORM_NAME.rst b/Help/variable/CMAKE_VS_PLATFORM_NAME.rst index c6f8d41..a532743 100644 --- a/Help/variable/CMAKE_VS_PLATFORM_NAME.rst +++ b/Help/variable/CMAKE_VS_PLATFORM_NAME.rst @@ -5,3 +5,4 @@ Visual Studio target platform name. VS 8 and above allow project files to specify a target platform. CMake provides the name of the chosen platform in this variable. +See the :variable:`CMAKE_GENERATOR_PLATFORM` variable for details. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 commit 7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 Author: Brad King AuthorDate: Mon Mar 13 09:58:42 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 10:36:58 2017 -0400 Help: Move generator toolset support details to variable docs Move the details about support for generator toolset specification to the `CMAKE_GENERATOR_TOOLSET` variable documentation. This is a more suitable place because it is shared by all means to set this variable, not just the `cmake -T` option. diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt index 1dc2a74..e8b87c9 100644 --- a/Help/manual/OPTIONS_BUILD.txt +++ b/Help/manual/OPTIONS_BUILD.txt @@ -48,18 +48,12 @@ build system. Possible generator names are specified in the :manual:`cmake-generators(7)` manual. -``-T `` - Specify toolset name if supported by generator. +``-T `` + Toolset specification for the generator, if supported. - Some CMake generators support a toolset name to be given to the - native build system to choose a compiler. - See the :variable:`CMAKE_GENERATOR_TOOLSET` variable. - This is supported only on specific generators: - - * :ref:`Visual Studio Generators` for VS 2010 and above - * The :generator:`Xcode` generator for Xcode 3.0 and above - - See native build system documentation for allowed toolset names. + Some CMake generators support a toolset specification to tell + the native build system how to choose a compiler. See the + :variable:`CMAKE_GENERATOR_TOOLSET` variable for details. ``-A `` Specify platform name if supported by generator. diff --git a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst index 89abe54..6a24197 100644 --- a/Help/variable/CMAKE_GENERATOR_TOOLSET.rst +++ b/Help/variable/CMAKE_GENERATOR_TOOLSET.rst @@ -1,15 +1,22 @@ CMAKE_GENERATOR_TOOLSET ----------------------- -Native build system toolset name specified by user. +Native build system toolset specification provided by user. -Some CMake generators support a toolset name to be given to the native -build system to choose a compiler. If the user specifies a toolset -name (e.g. via the :manual:`cmake(1)` ``-T`` option) the value will be -available in this variable. +Some CMake generators support a toolset specification to tell the +native build system how to choose a compiler. If the user specifies +a toolset (e.g. via the :manual:`cmake(1)` ``-T`` option) the value +will be available in this variable. The value of this variable should never be modified by project code. A toolchain file specified by the :variable:`CMAKE_TOOLCHAIN_FILE` variable may initialize ``CMAKE_GENERATOR_TOOLSET``. Once a given build tree has been initialized with a particular value for this variable, changing the value has undefined behavior. + +Toolset specification is supported only on specific generators: + +* :ref:`Visual Studio Generators` for VS 2010 and above +* The :generator:`Xcode` generator for Xcode 3.0 and above + +See native build system documentation for allowed toolset names. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c750b28220ebe3cacb087935871c7750758fc225 commit c750b28220ebe3cacb087935871c7750758fc225 Author: Brad King AuthorDate: Mon Mar 13 09:56:45 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 10:36:57 2017 -0400 Help: Move generator platform support details to variable docs Move the details about support for generator platform specification to the `CMAKE_GENERATOR_PLATFORM` variable documentation. This is a more suitable place because it is shared by all means to set this variable, not just the `cmake -A` option. diff --git a/Help/manual/OPTIONS_BUILD.txt b/Help/manual/OPTIONS_BUILD.txt index 9b3f717..1dc2a74 100644 --- a/Help/manual/OPTIONS_BUILD.txt +++ b/Help/manual/OPTIONS_BUILD.txt @@ -66,13 +66,7 @@ Some CMake generators support a platform name to be given to the native build system to choose a compiler or SDK. See the - :variable:`CMAKE_GENERATOR_PLATFORM` variable. - This is supported only on specific generators: - - * For :ref:`Visual Studio Generators` with VS 2005 and above this - specifies the target architecture. - - See native build system documentation for allowed platform names. + :variable:`CMAKE_GENERATOR_PLATFORM` variable for details. ``-Wno-dev`` Suppress developer warnings. diff --git a/Help/variable/CMAKE_GENERATOR_PLATFORM.rst b/Help/variable/CMAKE_GENERATOR_PLATFORM.rst index a5c284a..161ef20 100644 --- a/Help/variable/CMAKE_GENERATOR_PLATFORM.rst +++ b/Help/variable/CMAKE_GENERATOR_PLATFORM.rst @@ -1,7 +1,7 @@ CMAKE_GENERATOR_PLATFORM ------------------------ -Generator-specific target platform name specified by user. +Generator-specific target platform specification provided by user. Some CMake generators support a target platform name to be given to the native build system to choose a compiler toolchain. @@ -13,3 +13,10 @@ A toolchain file specified by the :variable:`CMAKE_TOOLCHAIN_FILE` variable may initialize ``CMAKE_GENERATOR_PLATFORM``. Once a given build tree has been initialized with a particular value for this variable, changing the value has undefined behavior. + +Platform specification is supported only on specific generators: + +* For :ref:`Visual Studio Generators` with VS 2005 and above this + specifies the target architecture. + +See native build system documentation for allowed platform names. ----------------------------------------------------------------------- Summary of changes: Help/generator/VS_TOOLSET_HOST_ARCH.txt | 8 +--- Help/manual/OPTIONS_BUILD.txt | 24 +++-------- Help/variable/CMAKE_GENERATOR_PLATFORM.rst | 15 ++++++- Help/variable/CMAKE_GENERATOR_TOOLSET.rst | 45 +++++++++++++++++--- Help/variable/CMAKE_VS_PLATFORM_NAME.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst | 2 + ...CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst | 2 +- 7 files changed, 66 insertions(+), 31 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 11:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 11:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-485-gccec62c Message-ID: <20170313150503.4D265FA6D8@public.kitware.com> 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 ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (commit) via c0c8450386b08b5c764500dcced767bab0706a01 (commit) via 3df2506fb549d57802ba2c7d99724210970791de (commit) via 60546b4829ecaa34da88c9a0993b38b967d25925 (commit) via 35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 (commit) via 7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 (commit) via c750b28220ebe3cacb087935871c7750758fc225 (commit) via f2d250adf0c1740805480c7df4c6cbf565d2072a (commit) from 10f444a5c6015a10ef0b520c32ad65097facba2b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/generator/VS_TOOLSET_HOST_ARCH.txt | 8 ++--- Help/manual/OPTIONS_BUILD.txt | 24 ++++---------- Help/variable/CMAKE_GENERATOR_PLATFORM.rst | 15 ++++++++- Help/variable/CMAKE_GENERATOR_TOOLSET.rst | 45 ++++++++++++++++++++++++--- Help/variable/CMAKE_VS_PLATFORM_NAME.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst | 2 ++ 6 files changed, 65 insertions(+), 30 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 11:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 11:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-485-gccec62c Message-ID: <20170313150503.6BCF2FA6DA@public.kitware.com> 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 d44e5c1758448469acc2d93b334a0526a2ebc80a (commit) via ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (commit) via c0c8450386b08b5c764500dcced767bab0706a01 (commit) via f2d250adf0c1740805480c7df4c6cbf565d2072a (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 (d44e5c1758448469acc2d93b334a0526a2ebc80a) \ N -- N -- N (ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 11:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 11:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-14-gf2d250a Message-ID: <20170313150503.815ACFA6FB@public.kitware.com> 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, release has been updated via f2d250adf0c1740805480c7df4c6cbf565d2072a (commit) via 81b2454757fb2f56c38730f86a100af9f5a1f75b (commit) from 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-485-gccec62c Message-ID: <20170314010505.520FEFA710@public.kitware.com> 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, nightly has been updated discards 194307d651eaa888861635f989e88dc14079c98b (commit) discards 69319443edbb3044781a467aa8da18cf30e323d3 (commit) discards 030f43dd7aeba7d5fdd014c430b79a719180ef0c (commit) discards 98cfc654c6a3ecfe3be9eab546b0dd7c94455713 (commit) discards 756bf9db41483fe07e7c9cdfe7682b325b18f6ef (commit) discards 4b9f971011e635bd35f12a335a37b751f31c4bee (commit) via ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (commit) via c0c8450386b08b5c764500dcced767bab0706a01 (commit) via 3df2506fb549d57802ba2c7d99724210970791de (commit) via 60546b4829ecaa34da88c9a0993b38b967d25925 (commit) via 35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 (commit) via 7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 (commit) via c750b28220ebe3cacb087935871c7750758fc225 (commit) via 10f444a5c6015a10ef0b520c32ad65097facba2b (commit) via f2d250adf0c1740805480c7df4c6cbf565d2072a (commit) via 81b2454757fb2f56c38730f86a100af9f5a1f75b (commit) via 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (commit) via 2a1f3dff6f5d4a77359c2259b7a0662ab345ad95 (commit) via 053475aff71ea75810bbc6841b3473c33b87623e (commit) via 2591e89c14cf3e0e14312c5bfee8397cf31efdd2 (commit) via 3806e186d1ac3efabcbd3237927fc660645fdc26 (commit) via 22908e4be83679deb32cf771df9d7793681814fd (commit) via b46fa35824f2e8716032b3ec3201d0a0ee445f86 (commit) via abfc55a362bd2ad5ea45f7f8f228adf516f389ad (commit) via abbc0b839f70354804a222fbb10f96e378927486 (commit) via ff5188481a43f024db0e8ac385eed398be401d90 (commit) via ac59ec7dc19fe4bfcab81169d6f597c4852f096e (commit) via 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (commit) via 7a2de256c49e5ac2d78646dd9f3075f0842902bc (commit) via 905f139b8822375e752b8c349d71b2c48c32f0a7 (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 (194307d651eaa888861635f989e88dc14079c98b) \ N -- N -- N (ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/generator/VS_TOOLSET_HOST_ARCH.txt | 8 +--- Help/manual/OPTIONS_BUILD.txt | 24 +++-------- Help/release/dev/cuda-vs.rst | 5 +++ Help/variable/CMAKE_GENERATOR_PLATFORM.rst | 15 ++++++- Help/variable/CMAKE_GENERATOR_TOOLSET.rst | 45 +++++++++++++++++--- Help/variable/CMAKE_VS_PLATFORM_NAME.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst | 2 + ...CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst | 2 +- Source/CMakeVersion.cmake | 2 +- Tests/CMakeOnly/find_library/CMakeLists.txt | 2 +- 10 files changed, 73 insertions(+), 33 deletions(-) create mode 100644 Help/release/dev/cuda-vs.rst hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 13 21:05:15 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 13 Mar 2017 21:05:15 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-485-gccec62c Message-ID: <20170314010520.75482FA830@public.kitware.com> 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, nightly-master has been updated via ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (commit) via c0c8450386b08b5c764500dcced767bab0706a01 (commit) via 3df2506fb549d57802ba2c7d99724210970791de (commit) via 60546b4829ecaa34da88c9a0993b38b967d25925 (commit) via 35c5cddcc51b8e2e6caaebc969ce3d7ae810dee3 (commit) via 7df38939f9cc21d955c2daf5b6dc2cf70bbfca74 (commit) via c750b28220ebe3cacb087935871c7750758fc225 (commit) via 10f444a5c6015a10ef0b520c32ad65097facba2b (commit) via f2d250adf0c1740805480c7df4c6cbf565d2072a (commit) via 81b2454757fb2f56c38730f86a100af9f5a1f75b (commit) via 9e226d96ade46b4b6a53dc88c1d3067919aae9c9 (commit) via 2a1f3dff6f5d4a77359c2259b7a0662ab345ad95 (commit) via 053475aff71ea75810bbc6841b3473c33b87623e (commit) via 2591e89c14cf3e0e14312c5bfee8397cf31efdd2 (commit) via 3806e186d1ac3efabcbd3237927fc660645fdc26 (commit) via 22908e4be83679deb32cf771df9d7793681814fd (commit) via b46fa35824f2e8716032b3ec3201d0a0ee445f86 (commit) via abfc55a362bd2ad5ea45f7f8f228adf516f389ad (commit) via abbc0b839f70354804a222fbb10f96e378927486 (commit) via ff5188481a43f024db0e8ac385eed398be401d90 (commit) via ac59ec7dc19fe4bfcab81169d6f597c4852f096e (commit) via 3fd9f4ab0595f15588055fef1ad8dd8612945e22 (commit) via cf13e495447662624c3389dc075fe48342f5e593 (commit) via 83be64d99c5a545f17d1a19da6159ac853942843 (commit) via 8ba8b5537cdee251d412c331267822badc8fafdc (commit) via 4aca67b0fb03c77b7621399ff6a7a2eae37af4f8 (commit) via c4d481e5b8558ac00e637b36312685762a82bb23 (commit) via 7a2de256c49e5ac2d78646dd9f3075f0842902bc (commit) via 10fcef02752ad46b53dd22025420048a0278322d (commit) via ac0786cb9ae40f73323b448e405b053a83770de0 (commit) via a52faa1fcb7b54026ecfbef573d05568846e1aba (commit) via 65481a60a06b4238d342f64b5fed52e252ee191b (commit) via 8cae24a1d0277fe3fdd0f2fa9e9a76906ad6c016 (commit) via 6ca4f2229234ab7543597ca19bda09c51297eee6 (commit) via 94255511a6d59b14159544e2489905c62dab9fca (commit) via 253594d0aec0cbe34694cac59ef1a8e42a532118 (commit) via 4def02a3852eb211e26951819646f8cd8ee6c00c (commit) via 29f07b08671ea8a8cf2b32c6b740a2ecaa58168c (commit) via b966f489c1b35cbc897720f1f9b68bd9b69175c7 (commit) via b64b4629ea8aa669d652ffb32fe7a7336bd8ea8c (commit) via 041ebda25bef6c142ac80135b0b59d88acbc0f1f (commit) via 13433b135759edaa65bd1cb31c3b124c244866d7 (commit) via 82521e359f9afbb1644d1b8eae58f27a51407df3 (commit) via 80e982d7ad571ce308708d36a531df7a91ffe0f8 (commit) via f7bb40c92dceedd65965c4c475b5395239e630ea (commit) via a05fc93ee6ce563bbc6bb23e4540cd7bc2f4e52a (commit) via 895b89046601e61f6fb76bf17c5306ea102b9bf6 (commit) via a650dbb280859bdbadb9a7bba5636955190ec18a (commit) via 62b308515abe01fbe03ce0e1c7fee4879ca665b1 (commit) via 5164e9a6510137eaac1c7b736a6b24fe02ce17a9 (commit) via 83bf980c9601c2e5d6a6247867606539d8a14528 (commit) via f36eaf6a6eb8a7ef1127ad43e419896be89f0e39 (commit) via 25d261efa7c80ce7d9cbcb8b94d5d4a77cb12aaf (commit) via 1e0a9ac45d51e0076222026b9c44604b287a6eae (commit) via 905f139b8822375e752b8c349d71b2c48c32f0a7 (commit) from ce0704e41958378381ca6fd24591f81df5232191 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/generator/VS_TOOLSET_HOST_ARCH.txt | 8 +- Help/manual/OPTIONS_BUILD.txt | 24 +- Help/manual/cmake-properties.7.rst | 1 - Help/manual/cmake-variables.7.rst | 2 + Help/release/dev/cmake-xcode-schemes.rst | 2 +- Help/release/dev/cuda-vs.rst | 5 + Help/variable/CMAKE_GENERATOR_PLATFORM.rst | 15 +- Help/variable/CMAKE_GENERATOR_TOOLSET.rst | 45 +++- Help/variable/CMAKE_VS_PLATFORM_NAME.rst | 1 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET.rst | 2 + Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst | 12 + ...CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE.rst | 2 +- .../CMAKE_XCODE_GENERATE_SCHEME.rst} | 4 +- Modules/BundleUtilities.cmake | 13 +- Modules/CMakeDetermineCUDACompiler.cmake | 51 ++-- Modules/CMakeDetermineCompilerId.cmake | 20 ++ Modules/CompilerId/VS-10.vcxproj.in | 12 +- Modules/FindGit.cmake | 16 +- Source/CMakeVersion.cmake | 2 +- Source/cmCommonTargetGenerator.cxx | 15 +- Source/cmCommonTargetGenerator.h | 3 - Source/cmFileCommand.cxx | 69 +++++ Source/cmFileCommand.h | 1 + Source/cmGeneratorTarget.cxx | 56 +++- Source/cmGeneratorTarget.h | 16 +- Source/cmGlobalVisualStudio10Generator.cxx | 281 +++++++++++++++++++- Source/cmGlobalVisualStudio10Generator.h | 16 ++ Source/cmGlobalVisualStudioGenerator.cxx | 12 +- Source/cmGlobalXCodeGenerator.cxx | 3 +- Source/cmLocalVisualStudio7Generator.cxx | 39 +-- Source/cmLocalVisualStudio7Generator.h | 1 - Source/cmMakefileExecutableTargetGenerator.cxx | 5 +- Source/cmMakefileLibraryTargetGenerator.cxx | 5 +- Source/cmMakefileTargetGenerator.cxx | 78 +++--- Source/cmMakefileTargetGenerator.h | 3 +- Source/cmNinjaNormalTargetGenerator.cxx | 61 ++--- Source/cmNinjaTargetGenerator.cxx | 7 +- Source/cmVS10CudaFlagTable.h | 51 ++++ Source/cmVS10CudaHostFlagTable.h | 35 +++ Source/cmVisualStudio10TargetGenerator.cxx | 195 +++++++++++--- Source/cmVisualStudio10TargetGenerator.h | 5 + Source/cmVisualStudioGeneratorOptions.cxx | 127 ++++++++- Source/cmVisualStudioGeneratorOptions.h | 22 ++ Source/kwsys/SystemInformation.cxx | 20 +- Source/kwsys/SystemInformation.hxx.in | 1 + Source/kwsys/SystemTools.cxx | 2 +- Source/kwsys/testSystemInformation.cxx | 2 +- Tests/CMakeOnly/find_library/CMakeLists.txt | 2 +- Tests/CudaOnly/WithDefs/CMakeLists.txt | 11 +- Tests/CudaOnly/WithDefs/main_for_vs.cu | 1 + Tests/RunCMake/GeneratorToolset/RunCMakeTest.cmake | 6 + .../TestToolsetCudaBoth-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaBoth.cmake | 2 + .../TestToolsetCudaOnly-stdout.txt | 2 + .../GeneratorToolset/TestToolsetCudaOnly.cmake | 2 + Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 16 ++ .../XcodeProject/XcodeSchemaGeneration.cmake | 5 + .../READ_ELF-result.txt} | 0 Tests/RunCMake/file/READ_ELF-stderr.txt | 2 + Tests/RunCMake/file/READ_ELF.cmake | 2 + Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 61 files changed, 1163 insertions(+), 259 deletions(-) create mode 100644 Help/release/dev/cuda-vs.rst create mode 100644 Help/variable/CMAKE_VS_PLATFORM_TOOLSET_CUDA.rst rename Help/{prop_gbl/XCODE_GENERATE_SCHEME.rst => variable/CMAKE_XCODE_GENERATE_SCHEME.rst} (82%) create mode 100644 Source/cmVS10CudaFlagTable.h create mode 100644 Source/cmVS10CudaHostFlagTable.h create mode 100644 Tests/CudaOnly/WithDefs/main_for_vs.cu create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaBoth.cmake create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly-stdout.txt create mode 100644 Tests/RunCMake/GeneratorToolset/TestToolsetCudaOnly.cmake create mode 100644 Tests/RunCMake/XcodeProject/XcodeSchemaGeneration.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => file/READ_ELF-result.txt} (100%) create mode 100644 Tests/RunCMake/file/READ_ELF-stderr.txt create mode 100644 Tests/RunCMake/file/READ_ELF.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-486-g4d3f120 Message-ID: <20170314040504.22B5AFA59A@public.kitware.com> 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 4d3f120c5fec71b12e8d1cab1e509e2545012475 (commit) from ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-486-g4d3f120 Message-ID: <20170314040504.3B0F2FA5A1@public.kitware.com> 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 4d3f120c5fec71b12e8d1cab1e509e2545012475 (commit) from ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 02:55:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 02:55:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-488-gc553e11 Message-ID: <20170314065504.67EADFA5B6@public.kitware.com> 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 c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d (commit) via 598400a3e7148c75f83e1adf995cd6c1a3857d58 (commit) from 4d3f120c5fec71b12e8d1cab1e509e2545012475 (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=c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d commit c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d Merge: 4d3f120 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 14 02:52:43 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=598400a3e7148c75f83e1adf995cd6c1a3857d58 commit 598400a3e7148c75f83e1adf995cd6c1a3857d58 Author: Domen Vrankar AuthorDate: Mon Mar 13 23:17:24 2017 +0100 Commit: Domen Vrankar CommitDate: Mon Mar 13 23:22:55 2017 +0100 CPack/RPM: handle extra slashes Extra slashes in some locations can cause errors during package generation and can also be present in generated rpm packages causing issues for the package user. Closes #16619 diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index b32feb5..7a7c170 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -958,10 +958,20 @@ function(cpack_rpm_prepare_relocation_paths) foreach(RELOCATION_PATH ${RPM_RELOCATION_PATHS}) if(IS_ABSOLUTE "${RELOCATION_PATH}") set(PREPARED_RELOCATION_PATH "${RELOCATION_PATH}") + elseif(PATH_PREFIX STREQUAL "/") + # don't prefix path with a second slash as "//" is treated as network path + # by get_filename_component() so it remains in path even inside rpm + # package where it may cause problems with relocation + set(PREPARED_RELOCATION_PATH "/${RELOCATION_PATH}") else() set(PREPARED_RELOCATION_PATH "${PATH_PREFIX}/${RELOCATION_PATH}") endif() + # handle cases where path contains extra slashes (e.g. /a//b/ instead of + # /a/b) + get_filename_component(PREPARED_RELOCATION_PATH + "${PREPARED_RELOCATION_PATH}" ABSOLUTE) + if(EXISTS "${WDIR}/${PREPARED_RELOCATION_PATH}") string(APPEND TMP_RPM_PREFIXES "Prefix: ${PREPARED_RELOCATION_PATH}\n") list(APPEND RPM_USED_PACKAGE_PREFIXES "${PREPARED_RELOCATION_PATH}") @@ -2130,6 +2140,11 @@ function(cpack_rpm_generate_package) set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_FILE_NAME}${CPACK_RPM_PACKAGE_COMPONENT_PART_PATH}") endif() + # handle cases where path contains extra slashes (e.g. /a//b/ instead of + # /a/b) + get_filename_component(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX + "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}" ABSOLUTE) + if(CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE AND GENERATE_SPEC_PARTS) file(WRITE "${CPACK_RPM_ROOTDIR}/SPECS/${CPACK_RPM_PACKAGE_COMPONENT}.files" "${CPACK_RPM_INSTALL_FILES}") diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake index 65399db..8ca7126 100644 --- a/Tests/RunCMake/CPack/RunCMakeTest.cmake +++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake @@ -21,6 +21,7 @@ run_cpack_test_subtests(PACKAGE_CHECKSUM "invalid;MD5;SHA1;SHA224;SHA256;SHA384; run_cpack_test(PARTIALLY_RELOCATABLE_WARNING "RPM" false "COMPONENT") run_cpack_test(PER_COMPONENT_FIELDS "RPM;DEB" false "COMPONENT") run_cpack_test_subtests(SINGLE_DEBUGINFO "no_main_component;one_component;one_component_main;no_debuginfo;one_component_no_debuginfo;no_components;valid" "RPM" true "CUSTOM") +run_cpack_test(EXTRA_SLASH_IN_PATH "RPM" true "COMPONENT") run_cpack_source_test(SOURCE_PACKAGE "RPM") run_cpack_test(SUGGESTS "RPM" false "MONOLITHIC") run_cpack_test(USER_FILELIST "RPM" false "MONOLITHIC") diff --git a/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/ExpectedFiles.cmake new file mode 100644 index 0000000..a45b38d --- /dev/null +++ b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/ExpectedFiles.cmake @@ -0,0 +1,16 @@ +set(whitespaces_ "[\t\n\r ]*") + +set(EXPECTED_FILES_COUNT "5") +set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE) + +set(EXPECTED_FILE_1_COMPONENT "applications") +set(EXPECTED_FILE_CONTENT_1_LIST "/foo;/foo/test_prog") +set(EXPECTED_FILE_2 "extra_slash_in_path*-headers.rpm") +set(EXPECTED_FILE_CONTENT_2_LIST "/bar;/bar/CMakeLists.txt") +set(EXPECTED_FILE_3 "extra_slash_in_path*-libs.rpm") +set(EXPECTED_FILE_CONTENT_3_LIST "/bas;/bas/libtest_lib.so") + +set(EXPECTED_FILE_4_COMPONENT "applications-debuginfo") +set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*") +set(EXPECTED_FILE_5_COMPONENT "libs-debuginfo") +set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*") diff --git a/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake new file mode 100644 index 0000000..bfef720 --- /dev/null +++ b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake @@ -0,0 +1,7 @@ +# check that relocation path is /foo and not //foo +getPackageInfo("${FOUND_FILE_1}" "FILE_INFO_") +set(whitespaces_ "[\t\n\r ]*") +if(NOT FILE_INFO_ MATCHES "Relocations${whitespaces_}:${whitespaces_}/${whitespaces_}/foo") + message(FATAL_ERROR "Unexpected relocation path in file '${FOUND_FILE_1}';" + " file info: '${FILE_INFO_}'") +endif() diff --git a/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/test.cmake b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/test.cmake new file mode 100644 index 0000000..4fd1e81 --- /dev/null +++ b/Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/test.cmake @@ -0,0 +1,37 @@ +set(CMAKE_BUILD_WITH_INSTALL_RPATH 1) + +# PGI compiler doesn't add build id to binaries by default +if(CMAKE_CXX_COMPILER_ID STREQUAL "PGI") + string(APPEND CMAKE_EXE_LINKER_FLAGS "-Wl,--build-id") + string(APPEND CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id") +endif() + +set(CMAKE_BUILD_TYPE Debug) + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp" + "int test_lib();\n") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp" + "#include \"test_lib.hpp\"\nint test_lib() {return 0;}\n") +add_library(test_lib SHARED "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp") + +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp" + "#include \"test_lib.hpp\"\nint main() {return test_lib();}\n") +add_executable(test_prog "${CMAKE_CURRENT_BINARY_DIR}/main.cpp") +target_link_libraries(test_prog test_lib) + +install(TARGETS test_prog DESTINATION foo COMPONENT applications) +install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers) +install(TARGETS test_lib DESTINATION bas COMPONENT libs) + +set(CPACK_RPM_APPLICATIONS_FILE_NAME "RPM-DEFAULT") +set(CPACK_RPM_APPLICATIONS_DEBUGINFO_PACKAGE ON) +set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON) + +# extra trailing slash at the end that should be removed +set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/src/") + +# combination should not cause //foo to apper as an relocation path +# should be only /foo (extra slashes cause path comparisons to fail) +set(CPACK_PACKAGING_INSTALL_PREFIX "/") +# extra trailing slash at the end that should be removed +set(CPACK_RPM_RELOCATION_PATHS "foo/") ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 15 +++++++++++++++ Tests/RunCMake/CPack/RunCMakeTest.cmake | 1 + .../ExpectedFiles.cmake | 10 +++++----- .../CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake | 7 +++++++ .../tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake | 9 ++++++++- 5 files changed, 36 insertions(+), 6 deletions(-) copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/ExpectedFiles.cmake (60%) create mode 100644 Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake (74%) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 18:35:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 18:35:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-490-g63a718a Message-ID: <20170314223505.4E7DEFA7C5@public.kitware.com> 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 63a718a5b0780c7e71974a75cd944956b694f280 (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) from c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d (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=63a718a5b0780c7e71974a75cd944956b694f280 commit 63a718a5b0780c7e71974a75cd944956b694f280 Merge: c553e11 4b49c9a Author: Daniel Pfeifer AuthorDate: Tue Mar 14 22:25:55 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 14 18:26:05 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4b49c9a245db870ab2359495083a6839be3ed9df commit 4b49c9a245db870ab2359495083a6839be3ed9df Author: Daniel Pfeifer AuthorDate: Mon Mar 6 17:52:56 2017 +0100 Commit: Daniel Pfeifer CommitDate: Tue Mar 14 22:40:11 2017 +0100 fix include order of windows.h Comments that indicate a special include order is necessary because GetCurrentDirectory might get redefined are outdated. Remove those outdated comments and use the normal ordering of includes. diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx index 8102276..09c01e9 100644 --- a/Source/cmExportCommand.cxx +++ b/Source/cmExportCommand.cxx @@ -279,7 +279,6 @@ bool cmExportCommand::HandlePackage(std::vector const& args) #if defined(_WIN32) && !defined(__CYGWIN__) #include -#undef GetCurrentDirectory void cmExportCommand::ReportRegistryError(std::string const& msg, std::string const& key, long err) { diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 4b29837..fe4cc54 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -1173,7 +1173,6 @@ void cmFindPackageCommand::FillPrefixesSystemRegistry() #if defined(_WIN32) && !defined(__CYGWIN__) #include -#undef GetCurrentDirectory // http://msdn.microsoft.com/en-us/library/aa384253%28v=vs.85%29.aspx #if !defined(KEY_WOW64_32KEY) #define KEY_WOW64_32KEY 0x0200 diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 1f5e624..0d53bf7 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1,12 +1,5 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -#if defined(_WIN32) && !defined(__CYGWIN__) -#include "windows.h" // this must be first to define GetCurrentDirectory -#if defined(_MSC_VER) && _MSC_VER >= 1800 -#define KWSYS_WINDOWS_DEPRECATED_GetVersionEx -#endif -#endif - #include "cmGlobalGenerator.h" #include @@ -19,6 +12,10 @@ #include #include +#if defined(_WIN32) && !defined(__CYGWIN__) +#include +#endif + #include "cmAlgorithms.h" #include "cmCPackPropertiesGenerator.h" #include "cmComputeTargetDepends.h" @@ -51,6 +48,10 @@ #include #endif +#if defined(_MSC_VER) && _MSC_VER >= 1800 +#define KWSYS_WINDOWS_DEPRECATED_GetVersionEx +#endif + const std::string kCMAKE_PLATFORM_INFO_INITIALIZED = "CMAKE_PLATFORM_INFO_INITIALIZED"; diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 65a0bde..e7fb203 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -1,7 +1,5 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -#include "windows.h" // this must be first to define GetCurrentDirectory - #include "cmGlobalVisualStudio7Generator.h" #include "cmGeneratedFileStream.h" @@ -14,6 +12,7 @@ #include #include +#include static cmVS7FlagTable cmVS7ExtraFlagTable[] = { // Precompiled header and related options. Note that the diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index a073426..81d9765 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -5,6 +5,7 @@ #include #include +#include #include "cmAlgorithms.h" #include "cmCallVisualStudioMacro.h" @@ -441,8 +442,6 @@ std::string cmGlobalVisualStudioGenerator::GetStartupProjectName( return this->GetAllTargetName(); } -#include - bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, const std::string& regKeyBase, std::string& nextAvailableSubKeyName) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 8026de9..f8490bf 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -16,6 +16,7 @@ #include "cmGeneratedFileStream.h" #include // for isspace +#include static bool cmLVS7G_IsFAT(const char* dir); @@ -2115,7 +2116,6 @@ std::string cmLocalVisualStudio7Generator::GetTargetDirectory( return dir; } -#include static bool cmLVS7G_IsFAT(const char* dir) { if (dir[0] && dir[1] == ':') { diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index b8e227f..805a9f7 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -1,11 +1,6 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -// include these first, otherwise there will be problems on Windows -// with GetCurrentDirectory() being redefined -#ifdef CMAKE_BUILD_WITH_CMAKE -#include "cmDocumentation.h" -#include "cmDynamicLoader.h" -#endif +#include #include "cmAlgorithms.h" #include "cmDocumentationEntry.h" @@ -17,7 +12,11 @@ #include "cmake.h" #include "cmcmd.h" -#include +#ifdef CMAKE_BUILD_WITH_CMAKE +#include "cmDocumentation.h" +#include "cmDynamicLoader.h" +#endif + #include #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include ----------------------------------------------------------------------- Summary of changes: Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGlobalGenerator.cxx | 15 ++++++++------- Source/cmGlobalVisualStudio7Generator.cxx | 3 +-- Source/cmGlobalVisualStudioGenerator.cxx | 3 +-- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 ++++++------- 7 files changed, 17 insertions(+), 21 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 21:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 21:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-490-g63a718a Message-ID: <20170315010512.E618CFA779@public.kitware.com> 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, nightly has been updated via 63a718a5b0780c7e71974a75cd944956b694f280 (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) via c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d (commit) via 4d3f120c5fec71b12e8d1cab1e509e2545012475 (commit) via 598400a3e7148c75f83e1adf995cd6c1a3857d58 (commit) from ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 15 +++++++++++++++ Source/CMakeVersion.cmake | 2 +- Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGlobalGenerator.cxx | 15 ++++++++------- Source/cmGlobalVisualStudio7Generator.cxx | 3 +-- Source/cmGlobalVisualStudioGenerator.cxx | 3 +-- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 ++++++------- Tests/RunCMake/CPack/RunCMakeTest.cmake | 1 + .../ExpectedFiles.cmake | 10 +++++----- .../CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake | 7 +++++++ .../tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake | 9 ++++++++- 13 files changed, 54 insertions(+), 28 deletions(-) copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/ExpectedFiles.cmake (60%) create mode 100644 Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake (74%) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 14 21:05:13 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 14 Mar 2017 21:05:13 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-486-g4d3f120 Message-ID: <20170315010515.57F6BFA777@public.kitware.com> 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, nightly-master has been updated via 4d3f120c5fec71b12e8d1cab1e509e2545012475 (commit) from ccec62c6aa8ac44aaa9908ca5d72c396c5f068c0 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 15 00:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 15 Mar 2017 00:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-487-gb557f3e Message-ID: <20170315040503.B2845FA9E0@public.kitware.com> 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 b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (commit) from 4d3f120c5fec71b12e8d1cab1e509e2545012475 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 15 00:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 15 Mar 2017 00:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-491-gaf21531 Message-ID: <20170315040503.CE7A3FA9E1@public.kitware.com> 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 63a718a5b0780c7e71974a75cd944956b694f280 (commit) discards c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d (commit) via af21531a8fa644afa2e7da0a27a90f16598597a3 (commit) via 8f5ab42a983169de44fcadc5272e059a512bdf8d (commit) via b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (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 (63a718a5b0780c7e71974a75cd944956b694f280) \ N -- N -- N (af21531a8fa644afa2e7da0a27a90f16598597a3) 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=af21531a8fa644afa2e7da0a27a90f16598597a3 commit af21531a8fa644afa2e7da0a27a90f16598597a3 Merge: 8f5ab42 4b49c9a Author: Daniel Pfeifer AuthorDate: Tue Mar 14 22:25:55 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 15 00:01:21 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8f5ab42a983169de44fcadc5272e059a512bdf8d commit 8f5ab42a983169de44fcadc5272e059a512bdf8d Merge: b557f3e 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 15 00:01:20 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 15 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 15 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-493-g925b214 Message-ID: <20170315131503.35CA5F3B63@public.kitware.com> 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 925b2149727b556f0df6873c1b60dafe466dcf59 (commit) via 16d114e3126fcf06d33e734d074dcd4f5542e074 (commit) from af21531a8fa644afa2e7da0a27a90f16598597a3 (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=925b2149727b556f0df6873c1b60dafe466dcf59 commit 925b2149727b556f0df6873c1b60dafe466dcf59 Merge: af21531 16d114e Author: Ben Boeckel AuthorDate: Wed Mar 15 13:09:45 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 15 09:09:50 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16d114e3126fcf06d33e734d074dcd4f5542e074 commit 16d114e3126fcf06d33e734d074dcd4f5542e074 Author: Ben Boeckel AuthorDate: Mon Jul 11 14:52:05 2016 -0400 Commit: Ben Boeckel CommitDate: Tue Mar 14 12:08:37 2017 -0400 GenerateExportHeader: always fill in _EXPORT macros The `_EXPORT` and `_NO_EXPORT` macros should always be made properly because the `_VISIBILITY_PRESET` properties are controlled independently of this module. One case where this breaks compatibility is where a project was setting `USE_COMPILER_HIDDEN_VISIBILITY=OFF` and then marking a symbol used outside of the library with `_NO_EXPORT` which is a contridiction. diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake index 6d1b4ed..4573c2e 100644 --- a/Modules/GenerateExportHeader.cmake +++ b/Modules/GenerateExportHeader.cmake @@ -215,9 +215,6 @@ macro(_test_compiler_hidden_visibility) check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY) check_cxx_compiler_flag(-fvisibility-inlines-hidden COMPILER_HAS_HIDDEN_INLINE_VISIBILITY) - option(USE_COMPILER_HIDDEN_VISIBILITY - "Use HIDDEN visibility support if available." ON) - mark_as_advanced(USE_COMPILER_HIDDEN_VISIBILITY) endif() endmacro() @@ -267,7 +264,7 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY) if(WIN32 OR CYGWIN) set(DEFINE_EXPORT "__declspec(dllexport)") set(DEFINE_IMPORT "__declspec(dllimport)") - elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) + elseif(COMPILER_HAS_HIDDEN_VISIBILITY) set(DEFINE_EXPORT "__attribute__((visibility(\"default\")))") set(DEFINE_IMPORT "__attribute__((visibility(\"default\")))") set(DEFINE_NO_EXPORT "__attribute__((visibility(\"hidden\")))") @@ -388,6 +385,9 @@ function(add_compiler_export_flags) _test_compiler_hidden_visibility() _test_compiler_has_deprecated() + option(USE_COMPILER_HIDDEN_VISIBILITY + "Use HIDDEN visibility support if available." ON) + mark_as_advanced(USE_COMPILER_HIDDEN_VISIBILITY) if(NOT (USE_COMPILER_HIDDEN_VISIBILITY AND COMPILER_HAS_HIDDEN_VISIBILITY)) # Just return if there are no flags to add. return() diff --git a/Tests/RunCMake/GenerateExportHeader/GEH.cmake b/Tests/RunCMake/GenerateExportHeader/GEH.cmake index cddba29..4d5059d 100644 --- a/Tests/RunCMake/GenerateExportHeader/GEH.cmake +++ b/Tests/RunCMake/GenerateExportHeader/GEH.cmake @@ -110,10 +110,8 @@ if (WIN32 OR CYGWIN) else() set(_platform WinEmpty) endif() -elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) +elseif(COMPILER_HAS_HIDDEN_VISIBILITY) set(_platform UNIX) -elseif(COMPILER_HAS_DEPRECATED) - set(_platform UNIX_DeprecatedOnly) else() set(_platform Empty) endif() diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h deleted file mode 100644 index 808ff01..0000000 --- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef LIBSHARED_EXPORT_H -#define LIBSHARED_EXPORT_H - -#ifdef LIBSHARED_STATIC_DEFINE -# define LIBSHARED_EXPORT -# define LIBSHARED_NO_EXPORT -#else -# ifndef LIBSHARED_EXPORT -# ifdef libshared_EXPORTS - /* We are building this library */ -# define LIBSHARED_EXPORT -# else - /* We are using this library */ -# define LIBSHARED_EXPORT -# endif -# endif - -# ifndef LIBSHARED_NO_EXPORT -# define LIBSHARED_NO_EXPORT -# endif -#endif - -#ifndef LIBSHARED_DEPRECATED -# define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__)) -#endif - -#ifndef LIBSHARED_DEPRECATED_EXPORT -# define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED -#endif - -#ifndef LIBSHARED_DEPRECATED_NO_EXPORT -# define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT LIBSHARED_DEPRECATED -#endif - -#if 0 /* DEFINE_NO_DEPRECATED */ -# ifndef LIBSHARED_NO_DEPRECATED -# define LIBSHARED_NO_DEPRECATED -# endif -#endif - -#endif diff --git a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h b/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h deleted file mode 100644 index 4aaa848..0000000 --- a/Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef LIBSTATIC_EXPORT_H -#define LIBSTATIC_EXPORT_H - -#ifdef LIBSTATIC_STATIC_DEFINE -# define LIBSTATIC_EXPORT -# define LIBSTATIC_NO_EXPORT -#else -# ifndef LIBSTATIC_EXPORT -# ifdef libstatic_EXPORTS - /* We are building this library */ -# define LIBSTATIC_EXPORT -# else - /* We are using this library */ -# define LIBSTATIC_EXPORT -# endif -# endif - -# ifndef LIBSTATIC_NO_EXPORT -# define LIBSTATIC_NO_EXPORT -# endif -#endif - -#ifndef LIBSTATIC_DEPRECATED -# define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__)) -#endif - -#ifndef LIBSTATIC_DEPRECATED_EXPORT -# define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED -#endif - -#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT -# define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT LIBSTATIC_DEPRECATED -#endif - -#if 0 /* DEFINE_NO_DEPRECATED */ -# ifndef LIBSTATIC_NO_DEPRECATED -# define LIBSTATIC_NO_DEPRECATED -# endif -#endif - -#endif ----------------------------------------------------------------------- Summary of changes: Modules/GenerateExportHeader.cmake | 8 ++-- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 4 +- .../UNIX_DeprecatedOnly/libshared_export.h | 42 -------------------- .../UNIX_DeprecatedOnly/libstatic_export.h | 42 -------------------- 4 files changed, 5 insertions(+), 91 deletions(-) delete mode 100644 Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h delete mode 100644 Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 15 21:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 15 Mar 2017 21:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-493-g925b214 Message-ID: <20170316010507.F166CFA719@public.kitware.com> 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, nightly has been updated discards 63a718a5b0780c7e71974a75cd944956b694f280 (commit) discards c553e117d5c0d8111e3f4e75ebf6706a0fa0e04d (commit) via 925b2149727b556f0df6873c1b60dafe466dcf59 (commit) via af21531a8fa644afa2e7da0a27a90f16598597a3 (commit) via 8f5ab42a983169de44fcadc5272e059a512bdf8d (commit) via b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (commit) via 16d114e3126fcf06d33e734d074dcd4f5542e074 (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 (63a718a5b0780c7e71974a75cd944956b694f280) \ N -- N -- N (925b2149727b556f0df6873c1b60dafe466dcf59) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/GenerateExportHeader.cmake | 8 ++-- Source/CMakeVersion.cmake | 2 +- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 4 +- .../UNIX_DeprecatedOnly/libshared_export.h | 42 -------------------- .../UNIX_DeprecatedOnly/libstatic_export.h | 42 -------------------- 5 files changed, 6 insertions(+), 92 deletions(-) delete mode 100644 Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libshared_export.h delete mode 100644 Tests/RunCMake/GenerateExportHeader/reference/UNIX_DeprecatedOnly/libstatic_export.h hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 15 21:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 15 Mar 2017 21:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-487-gb557f3e Message-ID: <20170316010515.CF8A6FA717@public.kitware.com> 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, nightly-master has been updated via b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (commit) from 4d3f120c5fec71b12e8d1cab1e509e2545012475 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 00:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 00:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-488-ge781223 Message-ID: <20170316040508.50964FA774@public.kitware.com> 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 e781223c8887fa2602b40744c67cdc77f972a93b (commit) from b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 00:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 00:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-494-gf1e9873 Message-ID: <20170316040508.69DCFFA775@public.kitware.com> 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 925b2149727b556f0df6873c1b60dafe466dcf59 (commit) discards af21531a8fa644afa2e7da0a27a90f16598597a3 (commit) discards 8f5ab42a983169de44fcadc5272e059a512bdf8d (commit) via f1e9873dc41d23956ae3b01526172e16cb64ed38 (commit) via 62e8eb5fd0c53a5b997c8ab274ad408e85326016 (commit) via 69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 (commit) via e781223c8887fa2602b40744c67cdc77f972a93b (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 (925b2149727b556f0df6873c1b60dafe466dcf59) \ N -- N -- N (f1e9873dc41d23956ae3b01526172e16cb64ed38) 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=f1e9873dc41d23956ae3b01526172e16cb64ed38 commit f1e9873dc41d23956ae3b01526172e16cb64ed38 Merge: 62e8eb5 16d114e Author: Ben Boeckel AuthorDate: Wed Mar 15 13:09:45 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 16 00:01:26 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62e8eb5fd0c53a5b997c8ab274ad408e85326016 commit 62e8eb5fd0c53a5b997c8ab274ad408e85326016 Merge: 69f8e7b 4b49c9a Author: Daniel Pfeifer AuthorDate: Tue Mar 14 22:25:55 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 16 00:01:26 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 commit 69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 Merge: e781223 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 16 00:01:26 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 07:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 07:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-499-ge324186 Message-ID: <20170316110506.1DAB1FA655@public.kitware.com> 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 e3241867579c4841b1f40d598a4e6c87dd80b22b (commit) via 7c14ff1217bdc368b988bdd6d8ee4280349c175b (commit) via 850eb734f558442310521418dc2cd2ee6a161142 (commit) via af1354d6c14097f9ec9dda25460e9228fa592fbc (commit) via 379cf11b3073caeb97727b17db48766624290caa (commit) from f1e9873dc41d23956ae3b01526172e16cb64ed38 (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=e3241867579c4841b1f40d598a4e6c87dd80b22b commit e3241867579c4841b1f40d598a4e6c87dd80b22b Merge: f1e9873 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 16 06:56:22 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7c14ff1217bdc368b988bdd6d8ee4280349c175b commit 7c14ff1217bdc368b988bdd6d8ee4280349c175b Author: Sebastian Holtermann AuthorDate: Wed Mar 15 12:09:03 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 16 11:52:55 2017 +0100 Autogen: Add AUTOGEN_SOURCE_GROUP release notes diff --git a/Help/release/dev/Autogen_source_group b/Help/release/dev/Autogen_source_group new file mode 100644 index 0000000..60faa8c --- /dev/null +++ b/Help/release/dev/Autogen_source_group @@ -0,0 +1,8 @@ +AutoGen source group +-------------------- + +* Global properties :prop_gbl:`AUTOGEN_SOURCE_GROUP`, + :prop_gbl:`AUTOMOC_SOURCE_GROUP` and + :prop_gbl:`AUTORCC_SOURCE_GROUP` were + introduced to allow files generated by :prop_tgt:`AUTOMOC` or + :prop_tgt:`AUTORCC` to be placed in a :command:`source_group`. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=850eb734f558442310521418dc2cd2ee6a161142 commit 850eb734f558442310521418dc2cd2ee6a161142 Author: Sebastian Holtermann AuthorDate: Wed Mar 15 12:01:15 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 16 11:52:55 2017 +0100 Autogen: Add AUTOGEN_SOURCE_GROUP documentation diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index e07150a..9967d00 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -16,8 +16,11 @@ Properties of Global Scope :maxdepth: 1 /prop_gbl/ALLOW_DUPLICATE_CUSTOM_TARGETS + /prop_gbl/AUTOGEN_SOURCE_GROUP /prop_gbl/AUTOGEN_TARGETS_FOLDER + /prop_gbl/AUTOMOC_SOURCE_GROUP /prop_gbl/AUTOMOC_TARGETS_FOLDER + /prop_gbl/AUTORCC_SOURCE_GROUP /prop_gbl/CMAKE_C_KNOWN_FEATURES /prop_gbl/CMAKE_CXX_KNOWN_FEATURES /prop_gbl/DEBUG_CONFIGURATIONS diff --git a/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst b/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst new file mode 100644 index 0000000..d294eb1 --- /dev/null +++ b/Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst @@ -0,0 +1,15 @@ +AUTOGEN_SOURCE_GROUP +-------------------- + +Name of the :command:`source_group` for :prop_tgt:`AUTOMOC` and +:prop_tgt:`AUTORCC` generated files. + +Files generated by :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` are not always +known at configure time and therefore can't be passed to +:command:`source_group`. +:prop_gbl:`AUTOGEN_SOURCE_GROUP` an be used instead to generate or select +a source group for :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` generated files. + +For :prop_tgt:`AUTOMOC` and :prop_tgt:`AUTORCC` specific overrides see +:prop_gbl:`AUTOMOC_SOURCE_GROUP` and :prop_gbl:`AUTORCC_SOURCE_GROUP` +respectively. diff --git a/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst index fae5626..0b747b2 100644 --- a/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst +++ b/Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst @@ -1,8 +1,8 @@ AUTOGEN_TARGETS_FOLDER ---------------------- -Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added automatically by -CMake for targets for which :prop_tgt:`AUTOMOC` is enabled. +Name of :prop_tgt:`FOLDER` for ``*_autogen`` targets that are added +automatically by CMake for targets for which :prop_tgt:`AUTOMOC` is enabled. If not set, CMake uses the :prop_tgt:`FOLDER` property of the parent target as a default value for this property. See also the documentation for the diff --git a/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst b/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst new file mode 100644 index 0000000..2455dc7 --- /dev/null +++ b/Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst @@ -0,0 +1,7 @@ +AUTOMOC_SOURCE_GROUP +-------------------- + +Name of the :command:`source_group` for :prop_tgt:`AUTOMOC` generated files. + +When set this is used instead of :prop_gbl:`AUTOGEN_SOURCE_GROUP` for +files generated by :prop_tgt:`AUTOMOC`. diff --git a/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst b/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst new file mode 100644 index 0000000..65ea95b --- /dev/null +++ b/Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst @@ -0,0 +1,7 @@ +AUTORCC_SOURCE_GROUP +-------------------- + +Name of the :command:`source_group` for :prop_tgt:`AUTORCC` generated files. + +When set this is used instead of :prop_gbl:`AUTOGEN_SOURCE_GROUP` for +files generated by :prop_tgt:`AUTORCC`. diff --git a/Help/prop_tgt/AUTOMOC.rst b/Help/prop_tgt/AUTOMOC.rst index b729c0b..7e10fde 100644 --- a/Help/prop_tgt/AUTOMOC.rst +++ b/Help/prop_tgt/AUTOMOC.rst @@ -57,6 +57,9 @@ See the documentation for this variable for more details. The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the automoc targets together in an IDE, e.g. in MSVS. +The global property :prop_gbl:`AUTOGEN_SOURCE_GROUP` can be used to group +files generated by :prop_tgt:`AUTOMOC` together in an IDE, e.g. in MSVS. + Additional ``moc`` dependency file names can be extracted from source code by using :prop_tgt:`AUTOMOC_DEPEND_FILTERS`. diff --git a/Help/prop_tgt/AUTORCC.rst b/Help/prop_tgt/AUTORCC.rst index 1ad0895..c0f6a26 100644 --- a/Help/prop_tgt/AUTORCC.rst +++ b/Help/prop_tgt/AUTORCC.rst @@ -19,6 +19,9 @@ Additional command line options for rcc can be set via the The global property :prop_gbl:`AUTOGEN_TARGETS_FOLDER` can be used to group the autorcc targets together in an IDE, e.g. in MSVS. +The global property :prop_gbl:`AUTOGEN_SOURCE_GROUP` can be used to group +files generated by :prop_tgt:`AUTORCC` together in an IDE, e.g. in MSVS. + When there are multiple ``.qrc`` files with the same name, CMake will generate unspecified unique names for ``rcc``. Therefore if ``Q_INIT_RESOURCE()`` or ``Q_CLEANUP_RESOURCE()`` need to be used the https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=af1354d6c14097f9ec9dda25460e9228fa592fbc commit af1354d6c14097f9ec9dda25460e9228fa592fbc Author: Sebastian Holtermann AuthorDate: Wed Mar 15 10:50:23 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 16 11:52:20 2017 +0100 Autogen: Add AUTOGEN_SOURCE_GROUP support Closes: #16501 diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 94cc981..6ebc234 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -134,6 +134,61 @@ static void AddDefinitionEscaped(cmMakefile* makefile, const char* key, key, cmOutputConverter::EscapeForCMake(cmJoin(values, ";")).c_str()); } +static bool AddToSourceGroup(cmMakefile* makefile, const std::string& fileName, + cmQtAutoGeneratorCommon::GeneratorType genType) +{ + cmSourceGroup* sourceGroup = CM_NULLPTR; + // Acquire source group + { + const char* groupName = CM_NULLPTR; + // Use generator specific group name + switch (genType) { + case cmQtAutoGeneratorCommon::MOC: + groupName = + makefile->GetState()->GetGlobalProperty("AUTOMOC_SOURCE_GROUP"); + break; + case cmQtAutoGeneratorCommon::RCC: + groupName = + makefile->GetState()->GetGlobalProperty("AUTORCC_SOURCE_GROUP"); + break; + default: + break; + } + // Use default group name on demand + if ((groupName == CM_NULLPTR) || (*groupName == 0)) { + groupName = + makefile->GetState()->GetGlobalProperty("AUTOGEN_SOURCE_GROUP"); + } + // Generate a source group on demand + if ((groupName != CM_NULLPTR) && (*groupName != 0)) { + { + const char* delimiter = + makefile->GetDefinition("SOURCE_GROUP_DELIMITER"); + if (delimiter == CM_NULLPTR) { + delimiter = "\\"; + } + std::vector folders = + cmSystemTools::tokenize(groupName, delimiter); + sourceGroup = makefile->GetSourceGroup(folders); + if (sourceGroup == CM_NULLPTR) { + makefile->AddSourceGroup(folders); + sourceGroup = makefile->GetSourceGroup(folders); + } + } + if (sourceGroup == CM_NULLPTR) { + cmSystemTools::Error( + "Autogen: Could not create or find source group: ", + cmQtAutoGeneratorCommon::Quoted(groupName).c_str()); + return false; + } + } + } + if (sourceGroup != CM_NULLPTR) { + sourceGroup->AddGroupFile(fileName); + } + return true; +} + static void AcquireScanFiles(cmGeneratorTarget const* target, std::vector& mocUicSources, std::vector& mocUicHeaders, @@ -531,11 +586,14 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenSources( { if (target->GetPropertyAsBool("AUTOMOC")) { cmMakefile* makefile = target->Target->GetMakefile(); - const std::string mocCppFile = - GetAutogenTargetBuildDir(target) + "moc_compilation.cpp"; - cmSourceFile* gf = makefile->GetOrCreateSource(mocCppFile, true); - gf->SetProperty("SKIP_AUTOGEN", "On"); + std::string mocCppFile = GetAutogenTargetBuildDir(target); + mocCppFile += "moc_compilation.cpp"; + { + cmSourceFile* gFile = makefile->GetOrCreateSource(mocCppFile, true); + gFile->SetProperty("SKIP_AUTOGEN", "On"); + } target->AddSource(mocCppFile); + AddToSourceGroup(makefile, mocCppFile, cmQtAutoGeneratorCommon::MOC); } } @@ -700,9 +758,12 @@ void cmQtAutoGeneratorInitializer::InitializeAutogenTarget( autogenProvides.push_back(rccOut); // Add rcc output file to origin target sources - cmSourceFile* gf = makefile->GetOrCreateSource(rccOut, true); - gf->SetProperty("SKIP_AUTOGEN", "On"); + { + cmSourceFile* gFile = makefile->GetOrCreateSource(rccOut, true); + gFile->SetProperty("SKIP_AUTOGEN", "On"); + } target->AddSource(rccOut); + AddToSourceGroup(makefile, rccOut, cmQtAutoGeneratorCommon::RCC); } if (PropertyEnabled(sf, "GENERATED")) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=379cf11b3073caeb97727b17db48766624290caa commit 379cf11b3073caeb97727b17db48766624290caa Author: Sebastian Holtermann AuthorDate: Wed Mar 15 10:42:37 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 16 11:52:20 2017 +0100 Autogen: Add generator type enum diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h index ee97b71..b54b6fa 100644 --- a/Source/cmQtAutoGeneratorCommon.h +++ b/Source/cmQtAutoGeneratorCommon.h @@ -16,6 +16,13 @@ class cmQtAutoGeneratorCommon public: static const char* listSep; + enum GeneratorType + { + MOC, + UIC, + RCC + }; + public: /// @brief Returns a the string escaped and enclosed in quotes /// ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 3 ++ Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst | 15 ++++++ Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst | 4 +- Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst | 7 +++ Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst | 7 +++ Help/prop_tgt/AUTOMOC.rst | 3 ++ Help/prop_tgt/AUTORCC.rst | 3 ++ Help/release/dev/Autogen_source_group | 8 ++++ Source/cmQtAutoGeneratorCommon.h | 7 +++ Source/cmQtAutoGeneratorInitializer.cxx | 73 +++++++++++++++++++++++++++--- 10 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst create mode 100644 Help/release/dev/Autogen_source_group hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 11:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 11:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-495-g2b86328 Message-ID: <20170316152504.21C18FA663@public.kitware.com> 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 e3241867579c4841b1f40d598a4e6c87dd80b22b (commit) discards f1e9873dc41d23956ae3b01526172e16cb64ed38 (commit) discards 62e8eb5fd0c53a5b997c8ab274ad408e85326016 (commit) discards 4b49c9a245db870ab2359495083a6839be3ed9df (commit) discards 16d114e3126fcf06d33e734d074dcd4f5542e074 (commit) via 2b86328aee7ecda22c0f785a5b39a507b5b2d69e (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 (e3241867579c4841b1f40d598a4e6c87dd80b22b) \ N -- N -- N (2b86328aee7ecda22c0f785a5b39a507b5b2d69e) 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=2b86328aee7ecda22c0f785a5b39a507b5b2d69e commit 2b86328aee7ecda22c0f785a5b39a507b5b2d69e Merge: 69f8e7b 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 16 11:17:27 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 ----------------------------------------------------------------------- Summary of changes: Modules/GenerateExportHeader.cmake | 8 ++++---- Source/cmExportCommand.cxx | 1 + Source/cmFindPackageCommand.cxx | 1 + Source/cmGlobalGenerator.cxx | 15 +++++++-------- Source/cmGlobalVisualStudio7Generator.cxx | 3 ++- Source/cmGlobalVisualStudioGenerator.cxx | 3 ++- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 +++++++------ Tests/RunCMake/GenerateExportHeader/GEH.cmake | 4 +++- .../{Empty => UNIX_DeprecatedOnly}/libshared_export.h | 2 +- .../{MinGW => UNIX_DeprecatedOnly}/libstatic_export.h | 0 11 files changed, 29 insertions(+), 23 deletions(-) copy Tests/RunCMake/GenerateExportHeader/reference/{Empty => UNIX_DeprecatedOnly}/libshared_export.h (93%) copy Tests/RunCMake/GenerateExportHeader/reference/{MinGW => UNIX_DeprecatedOnly}/libstatic_export.h (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-488-ge781223 Message-ID: <20170317010507.CE75BFA7C5@public.kitware.com> 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, nightly-master has been updated via e781223c8887fa2602b40744c67cdc77f972a93b (commit) from b557f3e106274cfb4a08a48d2dd3b6d4f3f67bb7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 16 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 16 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-495-g2b86328 Message-ID: <20170317010507.A2E6DFA7C6@public.kitware.com> 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, nightly has been updated discards 925b2149727b556f0df6873c1b60dafe466dcf59 (commit) discards af21531a8fa644afa2e7da0a27a90f16598597a3 (commit) discards 8f5ab42a983169de44fcadc5272e059a512bdf8d (commit) discards 4b49c9a245db870ab2359495083a6839be3ed9df (commit) discards 16d114e3126fcf06d33e734d074dcd4f5542e074 (commit) via 2b86328aee7ecda22c0f785a5b39a507b5b2d69e (commit) via 7c14ff1217bdc368b988bdd6d8ee4280349c175b (commit) via 850eb734f558442310521418dc2cd2ee6a161142 (commit) via af1354d6c14097f9ec9dda25460e9228fa592fbc (commit) via 379cf11b3073caeb97727b17db48766624290caa (commit) via 69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 (commit) via e781223c8887fa2602b40744c67cdc77f972a93b (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 (925b2149727b556f0df6873c1b60dafe466dcf59) \ N -- N -- N (2b86328aee7ecda22c0f785a5b39a507b5b2d69e) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 3 + Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst | 15 ++++ Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst | 4 +- Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst | 7 ++ Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst | 7 ++ Help/prop_tgt/AUTOMOC.rst | 3 + Help/prop_tgt/AUTORCC.rst | 3 + Help/release/dev/Autogen_source_group | 8 +++ Modules/GenerateExportHeader.cmake | 8 +-- Source/CMakeVersion.cmake | 2 +- Source/cmExportCommand.cxx | 1 + Source/cmFindPackageCommand.cxx | 1 + Source/cmGlobalGenerator.cxx | 15 ++-- Source/cmGlobalVisualStudio7Generator.cxx | 3 +- Source/cmGlobalVisualStudioGenerator.cxx | 3 +- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmQtAutoGeneratorCommon.h | 7 ++ Source/cmQtAutoGeneratorInitializer.cxx | 73 ++++++++++++++++++-- Source/cmakemain.cxx | 13 ++-- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 4 +- .../libshared_export.h | 2 +- .../libstatic_export.h | 0 22 files changed, 152 insertions(+), 32 deletions(-) create mode 100644 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst create mode 100644 Help/release/dev/Autogen_source_group copy Tests/RunCMake/GenerateExportHeader/reference/{Empty => UNIX_DeprecatedOnly}/libshared_export.h (93%) copy Tests/RunCMake/GenerateExportHeader/reference/{MinGW => UNIX_DeprecatedOnly}/libstatic_export.h (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 00:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-489-g45851e8 Message-ID: <20170317040507.934C8FA8D8@public.kitware.com> 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 45851e850041d891fad3e45e22393f24e6aa12a9 (commit) from e781223c8887fa2602b40744c67cdc77f972a93b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 00:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-496-g9be4718 Message-ID: <20170317040509.13A39FA8DA@public.kitware.com> 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 2b86328aee7ecda22c0f785a5b39a507b5b2d69e (commit) discards 69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 (commit) via 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 (commit) via 68af5c53530ab356f86237c6d12928f36e1396c9 (commit) via 45851e850041d891fad3e45e22393f24e6aa12a9 (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 (2b86328aee7ecda22c0f785a5b39a507b5b2d69e) \ N -- N -- N (9be47180bdc5d7a885bfd9c311f8651ca5c64eb5) 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=9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 commit 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 Merge: 68af5c5 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 17 00:01:24 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=68af5c53530ab356f86237c6d12928f36e1396c9 commit 68af5c53530ab356f86237c6d12928f36e1396c9 Merge: 45851e8 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 17 00:01:24 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 09:16:35 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 09:16:35 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-500-g8a6a1f4 Message-ID: <20170317131719.B150AF59DA@public.kitware.com> 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 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 (commit) via 0b668e52a91b7f03f312c691e5b1c54a371d0316 (commit) via 2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 (commit) via 7eb1f5b7aca1500e68a8be7ba158ed616a8595df (commit) from 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 (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=8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 commit 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 Merge: 9be4718 0b668e5 Author: Chuck Atkins AuthorDate: Fri Mar 17 13:11:19 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 17 09:14:25 2017 -0400 Stage topic 'move-platform-specific-paths' Topic-id: 23087 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/589 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0b668e52a91b7f03f312c691e5b1c54a371d0316 commit 0b668e52a91b7f03f312c691e5b1c54a371d0316 Author: Chuck Atkins AuthorDate: Thu Mar 16 06:04:29 2017 -0400 Commit: Chuck Atkins CommitDate: Thu Mar 16 06:04:29 2017 -0400 Cygwin: Move Cygwin-specific paths to the cygwin platform diff --git a/Modules/Platform/CYGWIN.cmake b/Modules/Platform/CYGWIN.cmake index 22816e7..9b897bd 100644 --- a/Modules/Platform/CYGWIN.cmake +++ b/Modules/Platform/CYGWIN.cmake @@ -62,3 +62,13 @@ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") set(CMAKE_SHARED_LIBRARY_NAME_WITH_VERSION 1) include(Platform/UnixPaths) + +# Windows API on Cygwin +list(APPEND CMAKE_SYSTEM_INCLUDE_PATH + /usr/include/w32api + ) + +# Windows API on Cygwin +list(APPEND CMAKE_SYSTEM_LIBRARY_PATH + /usr/lib/w32api + ) diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index 48bbd40..89f7d87 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -50,17 +50,11 @@ list(APPEND CMAKE_SYSTEM_PREFIX_PATH # List common include file locations not under the common prefixes. list(APPEND CMAKE_SYSTEM_INCLUDE_PATH - # Windows API on Cygwin - /usr/include/w32api - # X11 /usr/include/X11 ) list(APPEND CMAKE_SYSTEM_LIBRARY_PATH - # Windows API on Cygwin - /usr/lib/w32api - # X11 /usr/lib/X11 ) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 commit 2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 Author: Chuck Atkins AuthorDate: Thu Mar 16 06:00:19 2017 -0400 Commit: Chuck Atkins CommitDate: Thu Mar 16 06:00:49 2017 -0400 SunOS: Move solaris-specific paths to the solaris platform diff --git a/Modules/Platform/SunOS.cmake b/Modules/Platform/SunOS.cmake index 58398c0..e19e89a 100644 --- a/Modules/Platform/SunOS.cmake +++ b/Modules/Platform/SunOS.cmake @@ -9,6 +9,11 @@ endif() include(Platform/UnixPaths) +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + /opt/csw + /opt/openwin + ) + # The Sun linker needs to find transitive shared library dependencies # in the -L path. set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1) diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index 11b28f8..48bbd40 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -45,9 +45,7 @@ endif() list(APPEND CMAKE_SYSTEM_PREFIX_PATH /usr/X11R6 /usr/pkg - /opt/csw /opt - /opt/openwin ) # List common include file locations not under the common prefixes. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7eb1f5b7aca1500e68a8be7ba158ed616a8595df commit 7eb1f5b7aca1500e68a8be7ba158ed616a8595df Author: Chuck Atkins AuthorDate: Thu Mar 16 05:57:58 2017 -0400 Commit: Chuck Atkins CommitDate: Thu Mar 16 05:57:58 2017 -0400 Unix: Consolidate path components into prefixes diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake index b216d03..11b28f8 100644 --- a/Modules/Platform/UnixPaths.cmake +++ b/Modules/Platform/UnixPaths.cmake @@ -41,18 +41,22 @@ if (NOT CMAKE_FIND_NO_INSTALL_PREFIX) endif() endif() +# Non "standard" but common install prefixes +list(APPEND CMAKE_SYSTEM_PREFIX_PATH + /usr/X11R6 + /usr/pkg + /opt/csw + /opt + /opt/openwin + ) + # List common include file locations not under the common prefixes. list(APPEND CMAKE_SYSTEM_INCLUDE_PATH # Windows API on Cygwin /usr/include/w32api # X11 - /usr/X11R6/include /usr/include/X11 - - # Other - /usr/pkg/include - /opt/csw/include /opt/include - /usr/openwin/include + /usr/include/X11 ) list(APPEND CMAKE_SYSTEM_LIBRARY_PATH @@ -60,16 +64,7 @@ list(APPEND CMAKE_SYSTEM_LIBRARY_PATH /usr/lib/w32api # X11 - /usr/X11R6/lib /usr/lib/X11 - - # Other - /usr/pkg/lib - /opt/csw/lib /opt/lib - /usr/openwin/lib - ) - -list(APPEND CMAKE_SYSTEM_PROGRAM_PATH - /usr/pkg/bin + /usr/lib/X11 ) list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ----------------------------------------------------------------------- Summary of changes: Modules/Platform/CYGWIN.cmake | 10 ++++++++++ Modules/Platform/SunOS.cmake | 5 +++++ Modules/Platform/UnixPaths.cmake | 31 +++++++++---------------------- 3 files changed, 24 insertions(+), 22 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 10:35:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 10:35:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-502-gcca0fbc Message-ID: <20170317143505.E0ED5FA741@public.kitware.com> 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 cca0fbc067eb2bdfb74dd87a714562db5f236940 (commit) via 9eb05b48cd8e19988e5a579996598802e2bacdea (commit) from 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 (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=cca0fbc067eb2bdfb74dd87a714562db5f236940 commit cca0fbc067eb2bdfb74dd87a714562db5f236940 Merge: 8a6a1f4 9eb05b4 Author: Ben Boeckel AuthorDate: Fri Mar 17 14:30:50 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 17 10:30:54 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9eb05b48cd8e19988e5a579996598802e2bacdea commit 9eb05b48cd8e19988e5a579996598802e2bacdea Author: Ben Boeckel AuthorDate: Mon Jul 11 14:52:05 2016 -0400 Commit: Ben Boeckel CommitDate: Thu Mar 16 15:11:03 2017 -0400 GenerateExportHeader: always fill in _EXPORT macros The `_EXPORT` and `_NO_EXPORT` macros should always be made properly because the `_VISIBILITY_PRESET` properties are controlled independently of this module. One case where this breaks compatibility is where a project was setting `USE_COMPILER_HIDDEN_VISIBILITY=OFF` and then marking a symbol used outside of the library with `_NO_EXPORT` which is a contridiction. diff --git a/Modules/GenerateExportHeader.cmake b/Modules/GenerateExportHeader.cmake index 6d1b4ed..4573c2e 100644 --- a/Modules/GenerateExportHeader.cmake +++ b/Modules/GenerateExportHeader.cmake @@ -215,9 +215,6 @@ macro(_test_compiler_hidden_visibility) check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY) check_cxx_compiler_flag(-fvisibility-inlines-hidden COMPILER_HAS_HIDDEN_INLINE_VISIBILITY) - option(USE_COMPILER_HIDDEN_VISIBILITY - "Use HIDDEN visibility support if available." ON) - mark_as_advanced(USE_COMPILER_HIDDEN_VISIBILITY) endif() endmacro() @@ -267,7 +264,7 @@ macro(_DO_SET_MACRO_VALUES TARGET_LIBRARY) if(WIN32 OR CYGWIN) set(DEFINE_EXPORT "__declspec(dllexport)") set(DEFINE_IMPORT "__declspec(dllimport)") - elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) + elseif(COMPILER_HAS_HIDDEN_VISIBILITY) set(DEFINE_EXPORT "__attribute__((visibility(\"default\")))") set(DEFINE_IMPORT "__attribute__((visibility(\"default\")))") set(DEFINE_NO_EXPORT "__attribute__((visibility(\"hidden\")))") @@ -388,6 +385,9 @@ function(add_compiler_export_flags) _test_compiler_hidden_visibility() _test_compiler_has_deprecated() + option(USE_COMPILER_HIDDEN_VISIBILITY + "Use HIDDEN visibility support if available." ON) + mark_as_advanced(USE_COMPILER_HIDDEN_VISIBILITY) if(NOT (USE_COMPILER_HIDDEN_VISIBILITY AND COMPILER_HAS_HIDDEN_VISIBILITY)) # Just return if there are no flags to add. return() diff --git a/Tests/RunCMake/GenerateExportHeader/GEH.cmake b/Tests/RunCMake/GenerateExportHeader/GEH.cmake index cddba29..e0677a7 100644 --- a/Tests/RunCMake/GenerateExportHeader/GEH.cmake +++ b/Tests/RunCMake/GenerateExportHeader/GEH.cmake @@ -110,7 +110,7 @@ if (WIN32 OR CYGWIN) else() set(_platform WinEmpty) endif() -elseif(COMPILER_HAS_HIDDEN_VISIBILITY AND USE_COMPILER_HIDDEN_VISIBILITY) +elseif(COMPILER_HAS_HIDDEN_VISIBILITY) set(_platform UNIX) elseif(COMPILER_HAS_DEPRECATED) set(_platform UNIX_DeprecatedOnly) ----------------------------------------------------------------------- Summary of changes: Modules/GenerateExportHeader.cmake | 8 ++++---- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-502-gcca0fbc Message-ID: <20170318010510.DFDA1FA785@public.kitware.com> 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, nightly has been updated discards 2b86328aee7ecda22c0f785a5b39a507b5b2d69e (commit) discards 69f8e7bf82d93eff2610ab8dc14d22dd8f77b2c4 (commit) via cca0fbc067eb2bdfb74dd87a714562db5f236940 (commit) via 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 (commit) via 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 (commit) via 68af5c53530ab356f86237c6d12928f36e1396c9 (commit) via 45851e850041d891fad3e45e22393f24e6aa12a9 (commit) via 9eb05b48cd8e19988e5a579996598802e2bacdea (commit) via 0b668e52a91b7f03f312c691e5b1c54a371d0316 (commit) via 2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 (commit) via 7eb1f5b7aca1500e68a8be7ba158ed616a8595df (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 (2b86328aee7ecda22c0f785a5b39a507b5b2d69e) \ N -- N -- N (cca0fbc067eb2bdfb74dd87a714562db5f236940) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/GenerateExportHeader.cmake | 8 +++---- Modules/Platform/CYGWIN.cmake | 10 ++++++++ Modules/Platform/SunOS.cmake | 5 ++++ Modules/Platform/UnixPaths.cmake | 31 +++++++------------------ Source/CMakeVersion.cmake | 2 +- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 2 +- 6 files changed, 30 insertions(+), 28 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 17 21:05:11 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 17 Mar 2017 21:05:11 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-489-g45851e8 Message-ID: <20170318010525.77781FA783@public.kitware.com> 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, nightly-master has been updated via 45851e850041d891fad3e45e22393f24e6aa12a9 (commit) from e781223c8887fa2602b40744c67cdc77f972a93b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 18 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 18 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-490-g14f0378 Message-ID: <20170318040504.B0FBBFA7FB@public.kitware.com> 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 14f0378e103fd24915712cb94c98265ad18c8736 (commit) from 45851e850041d891fad3e45e22393f24e6aa12a9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 18 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 18 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-503-g5f19633 Message-ID: <20170318040505.06681FA7FC@public.kitware.com> 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 cca0fbc067eb2bdfb74dd87a714562db5f236940 (commit) discards 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 (commit) discards 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 (commit) discards 68af5c53530ab356f86237c6d12928f36e1396c9 (commit) via 5f196337f169ebb86d98ed233e8ed75efad1dc16 (commit) via f1568956177b4043f1412396afd7ee35cb6ef5a2 (commit) via 2e17ce4c97c46970a3e53761890fad25370a7189 (commit) via 1374b49914e4dafbf40692db0fa611c82cdba71d (commit) via 14f0378e103fd24915712cb94c98265ad18c8736 (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 (cca0fbc067eb2bdfb74dd87a714562db5f236940) \ N -- N -- N (5f196337f169ebb86d98ed233e8ed75efad1dc16) 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=5f196337f169ebb86d98ed233e8ed75efad1dc16 commit 5f196337f169ebb86d98ed233e8ed75efad1dc16 Merge: f156895 9eb05b4 Author: Ben Boeckel AuthorDate: Fri Mar 17 14:30:50 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 18 00:01:15 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f1568956177b4043f1412396afd7ee35cb6ef5a2 commit f1568956177b4043f1412396afd7ee35cb6ef5a2 Merge: 2e17ce4 0b668e5 Author: Chuck Atkins AuthorDate: Fri Mar 17 13:11:19 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 18 00:01:15 2017 -0400 Stage topic 'move-platform-specific-paths' Topic-id: 23087 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/589 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e17ce4c97c46970a3e53761890fad25370a7189 commit 2e17ce4c97c46970a3e53761890fad25370a7189 Merge: 1374b49 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 18 00:01:15 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1374b49914e4dafbf40692db0fa611c82cdba71d commit 1374b49914e4dafbf40692db0fa611c82cdba71d Merge: 14f0378 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 18 00:01:14 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 18 21:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 18 Mar 2017 21:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-503-g5f19633 Message-ID: <20170319010508.88D84FA6E1@public.kitware.com> 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, nightly has been updated discards cca0fbc067eb2bdfb74dd87a714562db5f236940 (commit) discards 8a6a1f4984644e1eb20d9bdc866e9ae8c1c7e375 (commit) discards 9be47180bdc5d7a885bfd9c311f8651ca5c64eb5 (commit) discards 68af5c53530ab356f86237c6d12928f36e1396c9 (commit) via 5f196337f169ebb86d98ed233e8ed75efad1dc16 (commit) via f1568956177b4043f1412396afd7ee35cb6ef5a2 (commit) via 2e17ce4c97c46970a3e53761890fad25370a7189 (commit) via 1374b49914e4dafbf40692db0fa611c82cdba71d (commit) via 14f0378e103fd24915712cb94c98265ad18c8736 (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 (cca0fbc067eb2bdfb74dd87a714562db5f236940) \ N -- N -- N (5f196337f169ebb86d98ed233e8ed75efad1dc16) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 18 21:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 18 Mar 2017 21:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-490-g14f0378 Message-ID: <20170319010508.C6756FA6E3@public.kitware.com> 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, nightly-master has been updated via 14f0378e103fd24915712cb94c98265ad18c8736 (commit) from 45851e850041d891fad3e45e22393f24e6aa12a9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 19 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 19 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-491-gbaba0a4 Message-ID: <20170319040505.16008FA3AB@public.kitware.com> 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 baba0a435a9f715c3f3e399b8284f25e558a5bad (commit) from 14f0378e103fd24915712cb94c98265ad18c8736 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 19 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 19 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-504-gb7d2d37 Message-ID: <20170319040505.7C7FFFA3AF@public.kitware.com> 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 5f196337f169ebb86d98ed233e8ed75efad1dc16 (commit) discards f1568956177b4043f1412396afd7ee35cb6ef5a2 (commit) discards 2e17ce4c97c46970a3e53761890fad25370a7189 (commit) discards 1374b49914e4dafbf40692db0fa611c82cdba71d (commit) via b7d2d374017f940a7f66611d027ff2175c2c91a5 (commit) via 6a839be65977e295f58030b58b6f942473400f56 (commit) via ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 (commit) via 038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c (commit) via baba0a435a9f715c3f3e399b8284f25e558a5bad (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 (5f196337f169ebb86d98ed233e8ed75efad1dc16) \ N -- N -- N (b7d2d374017f940a7f66611d027ff2175c2c91a5) 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=b7d2d374017f940a7f66611d027ff2175c2c91a5 commit b7d2d374017f940a7f66611d027ff2175c2c91a5 Merge: 6a839be 9eb05b4 Author: Ben Boeckel AuthorDate: Fri Mar 17 14:30:50 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 19 00:01:28 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6a839be65977e295f58030b58b6f942473400f56 commit 6a839be65977e295f58030b58b6f942473400f56 Merge: ec8e62f 0b668e5 Author: Chuck Atkins AuthorDate: Fri Mar 17 13:11:19 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 19 00:01:28 2017 -0400 Stage topic 'move-platform-specific-paths' Topic-id: 23087 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/589 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 commit ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 Merge: 038bd5e 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 19 00:01:28 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c commit 038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c Merge: baba0a4 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 19 00:01:27 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 19 21:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 19 Mar 2017 21:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-504-gb7d2d37 Message-ID: <20170320010506.EBAB4FA70F@public.kitware.com> 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, nightly has been updated discards 5f196337f169ebb86d98ed233e8ed75efad1dc16 (commit) discards f1568956177b4043f1412396afd7ee35cb6ef5a2 (commit) discards 2e17ce4c97c46970a3e53761890fad25370a7189 (commit) discards 1374b49914e4dafbf40692db0fa611c82cdba71d (commit) via b7d2d374017f940a7f66611d027ff2175c2c91a5 (commit) via 6a839be65977e295f58030b58b6f942473400f56 (commit) via ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 (commit) via 038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c (commit) via baba0a435a9f715c3f3e399b8284f25e558a5bad (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 (5f196337f169ebb86d98ed233e8ed75efad1dc16) \ N -- N -- N (b7d2d374017f940a7f66611d027ff2175c2c91a5) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 19 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 19 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-491-gbaba0a4 Message-ID: <20170320010511.5464FFA70B@public.kitware.com> 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, nightly-master has been updated via baba0a435a9f715c3f3e399b8284f25e558a5bad (commit) from 14f0378e103fd24915712cb94c98265ad18c8736 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-492-ga5931b6 Message-ID: <20170320040504.34BA5F9E3F@public.kitware.com> 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 a5931b61e9dc8d8c6324f50837ef16aa1683ba0a (commit) from baba0a435a9f715c3f3e399b8284f25e558a5bad (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-505-g189e475 Message-ID: <20170320040504.C507DF9E46@public.kitware.com> 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 b7d2d374017f940a7f66611d027ff2175c2c91a5 (commit) discards 6a839be65977e295f58030b58b6f942473400f56 (commit) discards ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 (commit) discards 038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c (commit) via 189e4758721508736bb6cf753c9bd0fd4ac315cd (commit) via 977c7303c0426457948cb193f0dae8f08a39ac93 (commit) via 61f9151b0270bc20f4a6925a929e220bd8f06a65 (commit) via f3eed6a0a5f4199e8c2a6bc00353b58a1406da92 (commit) via a5931b61e9dc8d8c6324f50837ef16aa1683ba0a (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 (b7d2d374017f940a7f66611d027ff2175c2c91a5) \ N -- N -- N (189e4758721508736bb6cf753c9bd0fd4ac315cd) 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=189e4758721508736bb6cf753c9bd0fd4ac315cd commit 189e4758721508736bb6cf753c9bd0fd4ac315cd Merge: 977c730 9eb05b4 Author: Ben Boeckel AuthorDate: Fri Mar 17 14:30:50 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 00:01:17 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=977c7303c0426457948cb193f0dae8f08a39ac93 commit 977c7303c0426457948cb193f0dae8f08a39ac93 Merge: 61f9151 0b668e5 Author: Chuck Atkins AuthorDate: Fri Mar 17 13:11:19 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 00:01:17 2017 -0400 Stage topic 'move-platform-specific-paths' Topic-id: 23087 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/589 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=61f9151b0270bc20f4a6925a929e220bd8f06a65 commit 61f9151b0270bc20f4a6925a929e220bd8f06a65 Merge: f3eed6a 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 00:01:16 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f3eed6a0a5f4199e8c2a6bc00353b58a1406da92 commit f3eed6a0a5f4199e8c2a6bc00353b58a1406da92 Merge: a5931b6 598400a Author: do-m-en AuthorDate: Tue Mar 14 06:52:24 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 00:01:16 2017 -0400 Stage topic 'cpack-rpm-extra-slash-in-path' Topic-id: 23038 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/583 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 11:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 11:45:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-494-ge22dbdb Message-ID: <20170320154504.6C842B105F@public.kitware.com> 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 e22dbdb7df8b50b2e274e0bf3519edb81f99f2d1 (commit) via 598400a3e7148c75f83e1adf995cd6c1a3857d58 (commit) from a5931b61e9dc8d8c6324f50837ef16aa1683ba0a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 15 +++++++++++++++ Tests/RunCMake/CPack/RunCMakeTest.cmake | 1 + .../ExpectedFiles.cmake | 10 +++++----- .../CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake | 7 +++++++ .../tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake | 9 ++++++++- 5 files changed, 36 insertions(+), 6 deletions(-) copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/ExpectedFiles.cmake (60%) create mode 100644 Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake (74%) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 11:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 11:45:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-505-ge73c111 Message-ID: <20170320154504.BAF89B1075@public.kitware.com> 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 189e4758721508736bb6cf753c9bd0fd4ac315cd (commit) discards 977c7303c0426457948cb193f0dae8f08a39ac93 (commit) discards 61f9151b0270bc20f4a6925a929e220bd8f06a65 (commit) discards f3eed6a0a5f4199e8c2a6bc00353b58a1406da92 (commit) via e73c111a7d4a229da1bff81ba3f58509112392a8 (commit) via b4e8cb1ee309cd11df97c8f56884f889c1bdeaab (commit) via f18741aebb0a5f15927e5f8f449d4e4d53f4ef47 (commit) via e22dbdb7df8b50b2e274e0bf3519edb81f99f2d1 (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 (189e4758721508736bb6cf753c9bd0fd4ac315cd) \ N -- N -- N (e73c111a7d4a229da1bff81ba3f58509112392a8) 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=e73c111a7d4a229da1bff81ba3f58509112392a8 commit e73c111a7d4a229da1bff81ba3f58509112392a8 Merge: b4e8cb1 9eb05b4 Author: Ben Boeckel AuthorDate: Fri Mar 17 14:30:50 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 11:38:57 2017 -0400 Stage topic 'geh-visibility-flag' Topic-id: 17427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/36 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b4e8cb1ee309cd11df97c8f56884f889c1bdeaab commit b4e8cb1ee309cd11df97c8f56884f889c1bdeaab Merge: f18741a 0b668e5 Author: Chuck Atkins AuthorDate: Fri Mar 17 13:11:19 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 11:38:57 2017 -0400 Stage topic 'move-platform-specific-paths' Topic-id: 23087 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/589 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f18741aebb0a5f15927e5f8f449d4e4d53f4ef47 commit f18741aebb0a5f15927e5f8f449d4e4d53f4ef47 Merge: e22dbdb 7c14ff1 Author: Sebastian Holtermann AuthorDate: Thu Mar 16 10:56:17 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 11:38:57 2017 -0400 Stage topic 'autogen_source_group' Topic-id: 23067 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/586 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 11:55:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 11:55:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-505-g09f85c9 Message-ID: <20170320155505.136DBF9C18@public.kitware.com> 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 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (commit) via 01bdc2cc43def6797e40037859cb72981c7342b8 (commit) via e145cfe2e9d4afac060754097dee0b9439d470d7 (commit) via f89678f60948241355959fedc2d6239db1bedcd6 (commit) via 9eb05b48cd8e19988e5a579996598802e2bacdea (commit) via 850eb734f558442310521418dc2cd2ee6a161142 (commit) via af1354d6c14097f9ec9dda25460e9228fa592fbc (commit) via 379cf11b3073caeb97727b17db48766624290caa (commit) via 0b668e52a91b7f03f312c691e5b1c54a371d0316 (commit) via 2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 (commit) via 7eb1f5b7aca1500e68a8be7ba158ed616a8595df (commit) from e22dbdb7df8b50b2e274e0bf3519edb81f99f2d1 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 3 + Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst | 15 +++++ Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst | 4 +- Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst | 7 +++ Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst | 7 +++ Help/prop_tgt/AUTOMOC.rst | 3 + Help/prop_tgt/AUTORCC.rst | 3 + Help/release/dev/Autogen_source_group.rst | 8 +++ Modules/GenerateExportHeader.cmake | 8 +-- Modules/Platform/CYGWIN.cmake | 10 ++++ Modules/Platform/SunOS.cmake | 5 ++ Modules/Platform/UnixPaths.cmake | 31 +++-------- Source/cmQtAutoGeneratorCommon.h | 7 +++ Source/cmQtAutoGeneratorInitializer.cxx | 73 +++++++++++++++++++++++-- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 2 +- 15 files changed, 151 insertions(+), 35 deletions(-) create mode 100644 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst create mode 100644 Help/release/dev/Autogen_source_group.rst hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 11:55:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 11:55:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-505-g09f85c9 Message-ID: <20170320155505.5C295F9BC9@public.kitware.com> 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 e73c111a7d4a229da1bff81ba3f58509112392a8 (commit) discards b4e8cb1ee309cd11df97c8f56884f889c1bdeaab (commit) discards f18741aebb0a5f15927e5f8f449d4e4d53f4ef47 (commit) discards 7c14ff1217bdc368b988bdd6d8ee4280349c175b (commit) via 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (commit) via 01bdc2cc43def6797e40037859cb72981c7342b8 (commit) via e145cfe2e9d4afac060754097dee0b9439d470d7 (commit) via f89678f60948241355959fedc2d6239db1bedcd6 (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 (e73c111a7d4a229da1bff81ba3f58509112392a8) \ N -- N -- N (09f85c98c0f52a8f58cde0ffc3949316e4c874a2) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/release/dev/{Autogen_source_group => Autogen_source_group.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Help/release/dev/{Autogen_source_group => Autogen_source_group.rst} (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 14:35:11 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 14:35:11 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-507-g3be5896 Message-ID: <20170320183512.CD775FA58E@public.kitware.com> 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 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (commit) via 04a11f16ba2c83c118e1efe86f9994765353b3ff (commit) from 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CSharpUtilities.cmake | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 14:35:13 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 14:35:13 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-513-g193ea34 Message-ID: <20170320183513.48704FA594@public.kitware.com> 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 193ea34cfd698147f6c88dd145b31a46fd9e3042 (commit) via 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (commit) via 04a11f16ba2c83c118e1efe86f9994765353b3ff (commit) via 063b339b6ff5eef34919f4deec8bd2d94041d75e (commit) via 9f4f53071aa048b3bb4f03b772de079d3dff9dab (commit) via c97e0650ee2f477add5a725d30019f386235746f (commit) via de7dd7a9113d55c8acb0614cd9ec213581391fd9 (commit) via 4f90e7931487195b5d540fbaa5dad1c90b26cee1 (commit) from 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (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=193ea34cfd698147f6c88dd145b31a46fd9e3042 commit 193ea34cfd698147f6c88dd145b31a46fd9e3042 Merge: 3be5896 063b339 Author: Brad King AuthorDate: Mon Mar 20 18:32:06 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 14:32:19 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=063b339b6ff5eef34919f4deec8bd2d94041d75e commit 063b339b6ff5eef34919f4deec8bd2d94041d75e Author: Brad King AuthorDate: Mon Mar 13 11:54:30 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 14:30:41 2017 -0400 Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def` files The `WINDOWS_EXPORT_ALL_SYMBOLS` target property exports all symbols found in object files explicitly given to the linker. However, the linker may also find additional symbols in dependencies and copy them into the linked binary (e.g. from `msvcrt.lib`). Provide a way to export an explicit list of such symbols by adding a `.def` file as a source file. Fixes: #16473 diff --git a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst index 06c3e6d..86711bf 100644 --- a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst +++ b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst @@ -14,6 +14,13 @@ be automatically exported and imported by callers. This simplifies porting projects to Windows by reducing the need for explicit ``dllexport`` markup, even in ``C++`` classes. +When this property is enabled, zero or more ``.def`` files may also be +specified as source files of the target. The exports named by these files +will be merged with those detected from the object files to generate a +single module definition file to be passed to the linker. This can be +used to export symbols from a ``.dll`` that are not in any of its object +files but are added by the linker from dependencies (e.g. ``msvcrt.lib``). + This property is initialized by the value of the :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` variable if it is set when a target is created. diff --git a/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst b/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst new file mode 100644 index 0000000..dfa9ef1 --- /dev/null +++ b/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst @@ -0,0 +1,8 @@ +module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS +----------------------------------------- + +* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property may now + be used in combination with explicit ``.def`` files in order to + export all symbols from the object files within a target plus + an explicit list of symbols that the linker finds in dependencies + (e.g. ``msvcrt.lib``). diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 29698cf..e27424f 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1973,15 +1973,16 @@ cmGeneratorTarget::GetModuleDefinitionInfo(std::string const& config) const void cmGeneratorTarget::ComputeModuleDefinitionInfo( std::string const& config, ModuleDefinitionInfo& info) const { - std::vector sources; - this->GetModuleDefinitionSources(sources, config); + this->GetModuleDefinitionSources(info.Sources, config); info.WindowsExportAllSymbols = this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS") && this->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS"); - if (info.WindowsExportAllSymbols) { + info.DefFileGenerated = + info.WindowsExportAllSymbols || info.Sources.size() > 1; + if (info.DefFileGenerated) { info.DefFile = this->ObjectDirectory /* has slash */ + "exports.def"; - } else if (!sources.empty()) { - info.DefFile = sources.front()->GetFullPath(); + } else if (!info.Sources.empty()) { + info.DefFile = info.Sources.front()->GetFullPath(); } } diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 92285f3..68d6ef8 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -238,7 +238,9 @@ public: struct ModuleDefinitionInfo { std::string DefFile; + bool DefFileGenerated; bool WindowsExportAllSymbols; + std::vector Sources; }; ModuleDefinitionInfo const* GetModuleDefinitionInfo( std::string const& config) const; diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 4e7d92a..d052f03 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -816,7 +816,7 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( { cmGeneratorTarget::ModuleDefinitionInfo const* mdi = gt->GetModuleDefinitionInfo(configName); - if (!mdi || !mdi->WindowsExportAllSymbols) { + if (!mdi || !mdi->DefFileGenerated) { return; } @@ -851,37 +851,47 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( cmSystemTools::Error("could not open ", objs_file.c_str()); return; } - std::vector objs; - for (std::vector::const_iterator it = - objectSources.begin(); - it != objectSources.end(); ++it) { - // Find the object file name corresponding to this source file. - std::map::const_iterator map_it = - mapping.find(*it); - // It must exist because we populated the mapping just above. - assert(!map_it->second.empty()); - std::string objFile = obj_dir + map_it->second; - objs.push_back(objFile); - } - std::vector externalObjectSources; - gt->GetExternalObjects(externalObjectSources, configName); - for (std::vector::const_iterator it = - externalObjectSources.begin(); - it != externalObjectSources.end(); ++it) { - objs.push_back((*it)->GetFullPath()); - } - gt->UseObjectLibraries(objs, configName); - for (std::vector::iterator it = objs.begin(); it != objs.end(); - ++it) { - std::string objFile = *it; - // replace $(ConfigurationName) in the object names - cmSystemTools::ReplaceString(objFile, this->GetCMakeCFGIntDir(), - configName.c_str()); - if (cmHasLiteralSuffix(objFile, ".obj")) { - fout << objFile << "\n"; + if (mdi->WindowsExportAllSymbols) { + std::vector objs; + for (std::vector::const_iterator it = + objectSources.begin(); + it != objectSources.end(); ++it) { + // Find the object file name corresponding to this source file. + std::map::const_iterator map_it = + mapping.find(*it); + // It must exist because we populated the mapping just above. + assert(!map_it->second.empty()); + std::string objFile = obj_dir + map_it->second; + objs.push_back(objFile); + } + std::vector externalObjectSources; + gt->GetExternalObjects(externalObjectSources, configName); + for (std::vector::const_iterator it = + externalObjectSources.begin(); + it != externalObjectSources.end(); ++it) { + objs.push_back((*it)->GetFullPath()); + } + + gt->UseObjectLibraries(objs, configName); + for (std::vector::iterator it = objs.begin(); + it != objs.end(); ++it) { + std::string objFile = *it; + // replace $(ConfigurationName) in the object names + cmSystemTools::ReplaceString(objFile, this->GetCMakeCFGIntDir(), + configName.c_str()); + if (cmHasLiteralSuffix(objFile, ".obj")) { + fout << objFile << "\n"; + } } } + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; + } + cmCustomCommandLines commandLines; commandLines.push_back(cmdl); cmCustomCommand command(gt->Target->GetMakefile(), outputs, empty, empty, diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 8026de9..06cca2a 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1818,7 +1818,7 @@ void cmLocalVisualStudio7Generator::OutputTargetRules( bool addedPrelink = false; cmGeneratorTarget::ModuleDefinitionInfo const* mdi = target->GetModuleDefinitionInfo(configName); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { addedPrelink = true; std::vector commands = target->GetPreLinkCommands(); cmGlobalVisualStudioGenerator* gg = diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 1fa8702..ed38024 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1414,10 +1414,14 @@ void cmMakefileTargetGenerator::AppendLinkDepends( this->AppendTargetDepends(depends); // Add a dependency on the link definitions file, if any. - cmGeneratorTarget::ModuleDefinitionInfo const* mdi = - this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { - depends.push_back(mdi->DefFile); + if (cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo( + this->GetConfigName())) { + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + depends.push_back((*i)->GetFullPath()); + } } // Add a dependency on user-specified manifest files, if any. @@ -1724,7 +1728,7 @@ void cmMakefileTargetGenerator::GenDefFile( { cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (!mdi || !mdi->WindowsExportAllSymbols) { + if (!mdi || !mdi->DefFileGenerated) { return; } std::string cmd = cmSystemTools::GetCMakeCommand(); @@ -1744,15 +1748,24 @@ void cmMakefileTargetGenerator::GenDefFile( real_link_commands.insert(real_link_commands.begin(), cmd); // create a list of obj files for the -E __create_def to read cmGeneratedFileStream fout(objlist_file.c_str()); - for (std::vector::const_iterator i = this->Objects.begin(); - i != this->Objects.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { + + if (mdi->WindowsExportAllSymbols) { + for (std::vector::const_iterator i = this->Objects.begin(); + i != this->Objects.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { + fout << *i << "\n"; + } + } + for (std::vector::const_iterator i = + this->ExternalObjects.begin(); + i != this->ExternalObjects.end(); ++i) { fout << *i << "\n"; } } - for (std::vector::const_iterator i = - this->ExternalObjects.begin(); - i != this->ExternalObjects.end(); ++i) { - fout << *i << "\n"; + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; } } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 300618f..cd1407d 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -978,7 +978,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() // maybe create .def file from list of objects cmGeneratorTarget::ModuleDefinitionInfo const* mdi = gt.GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { std::string cmakeCommand = this->GetLocalGenerator()->ConvertToOutputFormat( cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL); @@ -987,18 +987,28 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() cmd += this->GetLocalGenerator()->ConvertToOutputFormat( mdi->DefFile, cmOutputConverter::SHELL); cmd += " "; - cmNinjaDeps objs = this->GetObjects(); std::string obj_list_file = mdi->DefFile + ".objs"; cmd += this->GetLocalGenerator()->ConvertToOutputFormat( obj_list_file, cmOutputConverter::SHELL); preLinkCmdLines.push_back(cmd); + // create a list of obj files for the -E __create_def to read cmGeneratedFileStream fout(obj_list_file.c_str()); - for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { - fout << *i << "\n"; + + if (mdi->WindowsExportAllSymbols) { + cmNinjaDeps objs = this->GetObjects(); + for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { + fout << *i << "\n"; + } } } + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; + } } // If we have any PRE_LINK commands, we need to go back to CMAKE_BINARY_DIR // for diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 917383d..5866950 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -212,10 +212,14 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath()); // Add a dependency on the link definitions file, if any. - cmGeneratorTarget::ModuleDefinitionInfo const* mdi = - this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { - result.push_back(this->ConvertToNinjaPath(mdi->DefFile)); + if (cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo( + this->GetConfigName())) { + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + result.push_back(this->ConvertToNinjaPath((*i)->GetFullPath())); + } } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 4aea6f8..68f4e1d 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3162,7 +3162,7 @@ void cmVisualStudio10TargetGenerator::WriteEvents( bool addedPrelink = false; cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(configName); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { addedPrelink = true; std::vector commands = this->GeneratorTarget->GetPreLinkCommands(); diff --git a/Tests/ModuleDefinition/CMakeLists.txt b/Tests/ModuleDefinition/CMakeLists.txt index bfbb343..e49ebea 100644 --- a/Tests/ModuleDefinition/CMakeLists.txt +++ b/Tests/ModuleDefinition/CMakeLists.txt @@ -4,6 +4,8 @@ project(ModuleDefinition C) # Test .def file source recognition for DLLs. add_library(example_dll SHARED example_dll.c example_dll.def) +add_library(split_dll SHARED split_dll.c split_dll_1.def split_dll_2.def) + # Test generated .def file. add_custom_command(OUTPUT example_dll_gen.def DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/example_dll_gen.def.in @@ -24,7 +26,12 @@ endif() # Test .def file source recognition for EXEs. add_executable(example_exe example_exe.c example_exe.def) set_property(TARGET example_exe PROPERTY ENABLE_EXPORTS 1) -target_link_libraries(example_exe example_dll example_dll_gen ${example_dll_2}) +target_link_libraries(example_exe + example_dll + example_dll_gen + ${example_dll_2} + split_dll + ) # Test linking to the executable. add_library(example_mod_1 MODULE example_mod_1.c) diff --git a/Tests/ModuleDefinition/example_exe.c b/Tests/ModuleDefinition/example_exe.c index dff566f..8e86fc4 100644 --- a/Tests/ModuleDefinition/example_exe.c +++ b/Tests/ModuleDefinition/example_exe.c @@ -3,15 +3,19 @@ extern int __declspec(dllimport) example_dll_gen_function(void); #ifdef EXAMPLE_DLL_2 extern int __declspec(dllimport) example_dll_2_function(void); #endif +extern int __declspec(dllimport) split_dll_1(void); +extern int __declspec(dllimport) split_dll_2(void); + int example_exe_function(void) { return 0; } + int main(void) { return example_dll_function() + example_dll_gen_function() + #ifdef EXAMPLE_DLL_2 example_dll_2_function() + #endif - example_exe_function(); + split_dll_1() + split_dll_2() + example_exe_function(); } diff --git a/Tests/ModuleDefinition/split_dll.c b/Tests/ModuleDefinition/split_dll.c new file mode 100644 index 0000000..1546a2d --- /dev/null +++ b/Tests/ModuleDefinition/split_dll.c @@ -0,0 +1,9 @@ +int split_dll_1(void) +{ + return 0; +} + +int split_dll_2(void) +{ + return 0; +} diff --git a/Tests/ModuleDefinition/split_dll_1.def b/Tests/ModuleDefinition/split_dll_1.def new file mode 100644 index 0000000..ced9f10 --- /dev/null +++ b/Tests/ModuleDefinition/split_dll_1.def @@ -0,0 +1,2 @@ +EXPORTS +split_dll_1 diff --git a/Tests/ModuleDefinition/split_dll_2.def b/Tests/ModuleDefinition/split_dll_2.def new file mode 100644 index 0000000..b072c50 --- /dev/null +++ b/Tests/ModuleDefinition/split_dll_2.def @@ -0,0 +1,2 @@ +EXPORTS +split_dll_2 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9f4f53071aa048b3bb4f03b772de079d3dff9dab commit 9f4f53071aa048b3bb4f03b772de079d3dff9dab Author: Brad King AuthorDate: Mon Mar 13 11:53:26 2017 -0400 Commit: Brad King CommitDate: Mon Mar 13 11:53:26 2017 -0400 cmGlobalVisualStudioGenerator: Simplify __create_def command generation diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index a073426..4e7d92a 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -843,9 +843,8 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( std::string obj_dir_expanded = obj_dir; cmSystemTools::ReplaceString(obj_dir_expanded, this->GetCMakeCFGIntDir(), configName.c_str()); - std::string objs_file = obj_dir_expanded; - cmSystemTools::MakeDirectory(objs_file.c_str()); - objs_file += "/objects.txt"; + cmSystemTools::MakeDirectory(obj_dir_expanded); + std::string const objs_file = obj_dir_expanded + "/objects.txt"; cmdl.push_back(objs_file); cmGeneratedFileStream fout(objs_file.c_str()); if (!fout) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c97e0650ee2f477add5a725d30019f386235746f commit c97e0650ee2f477add5a725d30019f386235746f Author: Brad King AuthorDate: Thu Mar 9 16:42:09 2017 -0500 Commit: Brad King CommitDate: Mon Mar 13 11:52:37 2017 -0400 bindexplib: Add support for parsing and integrating `.def` files diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 823b38f..9e08b9c 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -258,11 +258,18 @@ int cmcmd::ExecuteCMakeCommand(std::vector& args) << "\n"; return 1; } - std::string objfile; + std::string file; bindexplib deffile; - while (cmSystemTools::GetLineFromStream(fin, objfile)) { - if (!deffile.AddObjectFile(objfile.c_str())) { - return 1; + while (cmSystemTools::GetLineFromStream(fin, file)) { + std::string const& ext = cmSystemTools::GetFilenameLastExtension(file); + if (cmSystemTools::LowerCase(ext) == ".def") { + if (!deffile.AddDefinitionFile(file.c_str())) { + return 1; + } + } else { + if (!deffile.AddObjectFile(file.c_str())) { + return 1; + } } } deffile.WriteFile(fout); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=de7dd7a9113d55c8acb0614cd9ec213581391fd9 commit de7dd7a9113d55c8acb0614cd9ec213581391fd9 Author: Bertrand Bellenot AuthorDate: Fri Dec 9 11:22:23 2016 +0000 Commit: Brad King CommitDate: Mon Mar 13 11:52:20 2017 -0400 bindexplib: Add method for parsing and integrating `.def` files diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index 7d61ea6..80b083d 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -429,6 +429,34 @@ bool bindexplib::AddObjectFile(const char* filename) return DumpFile(filename, this->Symbols, this->DataSymbols); } +bool bindexplib::AddDefinitionFile(const char* filename) +{ + std::ifstream infile(filename); + if (!infile) { + fprintf(stderr, "Couldn't open definition file '%s'\n", filename); + return false; + } + std::string str; + while (std::getline(infile, str)) { + // skip the LIBRAY and EXPORTS lines (if any) + if ((str.compare(0,7,"LIBRARY") == 0) || + (str.compare(0,7,"EXPORTS") == 0)) { + continue; + } + // remove leading tabs & spaces + str.erase(0, str.find_first_not_of(" \t")); + std::size_t found = str.find(" \t DATA"); + if (found != std::string::npos) { + str.erase (found, std::string::npos); + this->DataSymbols.insert(str); + } else { + this->Symbols.insert(str); + } + } + infile.close(); + return true; +} + void bindexplib::WriteFile(FILE* file) { fprintf(file,"EXPORTS \n"); diff --git a/Source/bindexplib.h b/Source/bindexplib.h index d6900ba..7f0615f 100644 --- a/Source/bindexplib.h +++ b/Source/bindexplib.h @@ -13,6 +13,7 @@ class bindexplib { public: bindexplib() {} + bool AddDefinitionFile(const char* filename); bool AddObjectFile(const char* filename); void WriteFile(FILE* file); private: https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f90e7931487195b5d540fbaa5dad1c90b26cee1 commit 4f90e7931487195b5d540fbaa5dad1c90b26cee1 Author: Brad King AuthorDate: Wed Dec 14 09:25:11 2016 -0500 Commit: Brad King CommitDate: Thu Mar 9 16:28:04 2017 -0500 bindexplib: Revise coding style of CMake-specific methods We exclude this source from `clang-format` due to use of third-party code. However, we can manually format the CMake-specific part of the code using our current style. diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index e41850a..7d61ea6 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -426,24 +426,18 @@ DumpFile(const char* filename, bool bindexplib::AddObjectFile(const char* filename) { - if(!DumpFile(filename, this->Symbols, this->DataSymbols)) - { - return false; - } - return true; + return DumpFile(filename, this->Symbols, this->DataSymbols); } void bindexplib::WriteFile(FILE* file) { fprintf(file,"EXPORTS \n"); - for(std::set::const_iterator i = this->DataSymbols.begin(); - i!= this->DataSymbols.end(); ++i) - { + for (std::set::const_iterator i = this->DataSymbols.begin(); + i != this->DataSymbols.end(); ++i) { fprintf(file, "\t%s \t DATA\n", i->c_str()); - } - for(std::set::const_iterator i = this->Symbols.begin(); - i!= this->Symbols.end(); ++i) - { + } + for (std::set::const_iterator i = this->Symbols.begin(); + i != this->Symbols.end(); ++i) { fprintf(file, "\t%s\n", i->c_str()); - } + } } ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst | 7 ++ .../module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst | 8 +++ Modules/CSharpUtilities.cmake | 32 +++++---- Source/bindexplib.cxx | 48 +++++++++---- Source/bindexplib.h | 1 + Source/cmGeneratorTarget.cxx | 11 +-- Source/cmGeneratorTarget.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 73 +++++++++++--------- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmMakefileTargetGenerator.cxx | 37 ++++++---- Source/cmNinjaNormalTargetGenerator.cxx | 20 ++++-- Source/cmNinjaTargetGenerator.cxx | 12 ++-- Source/cmVisualStudio10TargetGenerator.cxx | 2 +- Source/cmcmd.cxx | 15 ++-- Tests/ModuleDefinition/CMakeLists.txt | 9 ++- Tests/ModuleDefinition/example_exe.c | 6 +- Tests/ModuleDefinition/split_dll.c | 9 +++ Tests/ModuleDefinition/split_dll_1.def | 2 + Tests/ModuleDefinition/split_dll_2.def | 2 + 19 files changed, 207 insertions(+), 91 deletions(-) create mode 100644 Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst create mode 100644 Tests/ModuleDefinition/split_dll.c create mode 100644 Tests/ModuleDefinition/split_dll_1.def create mode 100644 Tests/ModuleDefinition/split_dll_2.def hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 14:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 14:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-516-g1f39ec8 Message-ID: <20170320184502.942AFF6BEB@public.kitware.com> 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 1f39ec883542971bcbf6532c719e1949ebad2877 (commit) via e115396c973013a8d04701fc5351c453a5286678 (commit) via fdb2ba2521998397d97d466b10a8ac2458363625 (commit) from 193ea34cfd698147f6c88dd145b31a46fd9e3042 (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=1f39ec883542971bcbf6532c719e1949ebad2877 commit 1f39ec883542971bcbf6532c719e1949ebad2877 Merge: 193ea34 e115396 Author: Brad King AuthorDate: Mon Mar 20 18:39:00 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 14:39:04 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e115396c973013a8d04701fc5351c453a5286678 commit e115396c973013a8d04701fc5351c453a5286678 Author: Ruslan Baratov AuthorDate: Sat Mar 11 19:56:00 2017 +0800 Commit: Ruslan Baratov CommitDate: Sat Mar 11 19:56:00 2017 +0800 Tests for 'CheckIPOSupported' module diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 5157b9f..217f0d5 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -293,6 +293,7 @@ add_RunCMake_test(target_link_libraries) add_RunCMake_test(target_compile_features) add_RunCMake_test(CheckModules) +add_RunCMake_test(CheckIPOSupported) add_RunCMake_test(CommandLine -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}) add_RunCMake_test(CommandLineTar) diff --git a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt new file mode 100644 index 0000000..a0effc9 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.0) +project(${RunCMake_TEST} NONE) +include(CheckIPOSupported) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake new file mode 100644 index 0000000..e304c61 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -0,0 +1,9 @@ +include(RunCMake) + +run_cmake(unparsed-arguments) +run_cmake(user-lang-unknown) +run_cmake(user-lang-fortran) +run_cmake(default-lang-none) +run_cmake(not-supported-by-cmake) +run_cmake(not-supported-by-compiler) +run_cmake(save-to-result) diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt b/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt b/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt new file mode 100644 index 0000000..dc2c3ad --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt @@ -0,0 +1,7 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(no C/CXX/Fortran languages found in ENABLED_LANGUAGES + global property\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + default-lang-none\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake b/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake new file mode 100644 index 0000000..0a2ac69 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake @@ -0,0 +1 @@ +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt new file mode 100644 index 0000000..f63f30f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(CMake doesn't support IPO for current compiler\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + not-supported-by-cmake\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake new file mode 100644 index 0000000..6f61f7e --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake @@ -0,0 +1,3 @@ +project(${RunCMake_TEST} LANGUAGES C) +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt new file mode 100644 index 0000000..73e2f26 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(compiler doesn't support IPO\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + not-supported-by-compiler\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake new file mode 100644 index 0000000..17b670c --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake @@ -0,0 +1,4 @@ +project(${RunCMake_TEST} LANGUAGES C) +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_SUPPORTED_BY_COMPILER NO) +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake b/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake new file mode 100644 index 0000000..f76db72 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake @@ -0,0 +1,22 @@ +project(${RunCMake_TEST} LANGUAGES C) +check_ipo_supported(RESULT result OUTPUT output) + +string(COMPARE EQUAL "${result}" "" is_empty) +if(is_empty) + message(FATAL_ERROR "Result variable is empty") +endif() + +string(COMPARE EQUAL "${result}" "YES" is_yes) +string(COMPARE EQUAL "${result}" "NO" is_no) + +if(is_yes) + # Compiler supports IPO +elseif(is_no) + # Compiler doesn't support IPO, output should not be empty. + string(COMPARE EQUAL "${output}" "" is_empty) + if(is_empty) + message(FATAL_ERROR "Output is empty") + endif() +else() + message(FATAL_ERROR "Unexpected result: ${result}") +endif() diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt new file mode 100644 index 0000000..a3fee53 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + Unparsed arguments: xxx +Call Stack \(most recent call first\): + unparsed-arguments\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake new file mode 100644 index 0000000..3ee7326 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake @@ -0,0 +1 @@ +check_ipo_supported(RESULT result OUTPUT output xxx) diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt new file mode 100644 index 0000000..2cb595d --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(Fortran is not supported\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + user-lang-fortran\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake new file mode 100644 index 0000000..275dbd9 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake @@ -0,0 +1 @@ +check_ipo_supported(LANGUAGES "Fortran") diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt new file mode 100644 index 0000000..278ba0b --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(language\(s\) 'UnknownLanguage' not supported\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + user-lang-unknown\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake new file mode 100644 index 0000000..ac743ad --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake @@ -0,0 +1 @@ +check_ipo_supported(LANGUAGES UnknownLanguage) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fdb2ba2521998397d97d466b10a8ac2458363625 commit fdb2ba2521998397d97d466b10a8ac2458363625 Author: Ruslan Baratov AuthorDate: Tue Mar 7 20:18:28 2017 +0800 Commit: Ruslan Baratov CommitDate: Sat Mar 11 19:46:25 2017 +0800 CheckIPOSupported: New module to check for compiler/cmake IPO support diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index 5e96d79..1e8342c 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -27,6 +27,7 @@ All Modules /module/CheckFortranFunctionExists /module/CheckFortranSourceCompiles /module/CheckFunctionExists + /module/CheckIPOSupported /module/CheckIncludeFileCXX /module/CheckIncludeFile /module/CheckIncludeFiles diff --git a/Help/module/CheckIPOSupported.rst b/Help/module/CheckIPOSupported.rst new file mode 100644 index 0000000..9c8a77b --- /dev/null +++ b/Help/module/CheckIPOSupported.rst @@ -0,0 +1 @@ +.. cmake-module:: ../../Modules/CheckIPOSupported.cmake diff --git a/Help/release/dev/CheckIPOSupported.rst b/Help/release/dev/CheckIPOSupported.rst new file mode 100644 index 0000000..dbc84e6 --- /dev/null +++ b/Help/release/dev/CheckIPOSupported.rst @@ -0,0 +1,6 @@ +CheckIPOSupported +----------------- + +* A :module:`CheckIPOSupported` module was added to help projects + check whether interprocedural optimization (IPO) is supported by + the current toolchain and CMake version. diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake new file mode 100644 index 0000000..6f7bc82 --- /dev/null +++ b/Modules/CheckIPOSupported.cmake @@ -0,0 +1,215 @@ +# Distributed under the OSI-approved BSD 3-Clause License. See accompanying +# file Copyright.txt or https://cmake.org/licensing for details. + +#[=======================================================================[.rst: +CheckIPOSupported +----------------- + +Check whether the compiler supports an interprocedural optimization (IPO/LTO). +Use this before enabling the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target +property. + +.. command:: check_ipo_supported + + :: + + check_ipo_supported([RESULT ] [OUTPUT ] + [LANGUAGES ...]) + + Options are: + + ``RESULT `` + Set ```` variable to ``YES`` if IPO is supported by the + compiler and ``NO`` otherwise. If this option is not given then + the command will issue a fatal error if IPO is not supported. + ``OUTPUT `` + Set ```` variable with details about any error. + ``LANGUAGES ...`` + Specify languages whose compilers to check. + Languages ``C`` and ``CXX`` are supported. + +Examples +^^^^^^^^ + +.. code-block:: cmake + + check_ipo_supported() # fatal error if IPO is not supported + set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +.. code-block:: cmake + + # Optional IPO. Do not use IPO if it's not supported by compiler. + check_ipo_supported(RESULT result OUTPUT output) + if(result) + set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + else() + message(WARNING "IPO is not supported: ${output}") + endif() + +#]=======================================================================] + +include(CMakeParseArguments) # cmake_parse_arguments + +# X_RESULT - name of the final result variable +# X_OUTPUT - name of the variable with information about error +macro(_ipo_not_supported output) + string(COMPARE EQUAL "${X_RESULT}" "" is_empty) + if(is_empty) + message(FATAL_ERROR "IPO is not supported (${output}).") + endif() + + set("${X_RESULT}" NO PARENT_SCOPE) + set("${X_OUTPUT}" "${output}" PARENT_SCOPE) +endmacro() + +# Run IPO/LTO test +macro(_ipo_run_language_check language) + set(testdir "${CMAKE_CURRENT_BINARY_DIR}/_CMakeLTOTest-${language}") + + file(REMOVE_RECURSE "${testdir}") + file(MAKE_DIRECTORY "${testdir}") + + set(bindir "${testdir}/bin") + set(srcdir "${testdir}/src") + + file(MAKE_DIRECTORY "${bindir}") + file(MAKE_DIRECTORY "${srcdir}") + + set(TRY_COMPILE_PROJECT_NAME "lto-test") + + set(try_compile_src "${CMAKE_ROOT}/Modules/CheckIPOSupported") + + # Use: + # * TRY_COMPILE_PROJECT_NAME + # * CMAKE_VERSION + configure_file( + "${try_compile_src}/CMakeLists-${language}.txt.in" + "${srcdir}/CMakeLists.txt" + @ONLY + ) + + string(COMPARE EQUAL "${language}" "C" is_c) + string(COMPARE EQUAL "${language}" "CXX" is_cxx) + + if(is_c) + set(copy_sources foo.c main.c) + elseif(is_cxx) + set(copy_sources foo.cpp main.cpp) + else() + message(FATAL_ERROR "Language not supported") + endif() + + foreach(x ${copy_sources}) + configure_file( + "${try_compile_src}/${x}" + "${srcdir}/${x}" + COPYONLY + ) + endforeach() + + try_compile( + result + "${bindir}" + "${srcdir}" + "${TRY_COMPILE_PROJECT_NAME}" + CMAKE_FLAGS + "-DCMAKE_VERBOSE_MAKEFILE=ON" + "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON" + OUTPUT_VARIABLE output + ) + + if(NOT result) + _ipo_not_supported("${output}") + return() + endif() +endmacro() + +function(check_ipo_supported) + # TODO: IPO policy + + set(optional) + set(one RESULT OUTPUT) + set(multiple LANGUAGES) + + # Introduce: + # * X_RESULT + # * X_OUTPUT + # * X_LANGUAGES + cmake_parse_arguments(X "${optional}" "${one}" "${multiple}" "${ARGV}") + + string(COMPARE NOTEQUAL "${X_UNPARSED_ARGUMENTS}" "" has_unparsed) + if(has_unparsed) + message(FATAL_ERROR "Unparsed arguments: ${X_UNPARSED_ARGUMENTS}") + endif() + + string(COMPARE EQUAL "${X_LANGUAGES}" "" no_languages) + if(no_languages) + # User did not set any languages, use defaults + get_property(enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES) + string(COMPARE EQUAL "${enabled_languages}" "" no_languages) + if(no_languages) + _ipo_not_supported( + "no languages found in ENABLED_LANGUAGES global property" + ) + return() + endif() + + set(languages "") + list(FIND enabled_languages "CXX" result) + if(NOT result EQUAL -1) + list(APPEND languages "CXX") + endif() + + list(FIND enabled_languages "C" result) + if(NOT result EQUAL -1) + list(APPEND languages "C") + endif() + + list(FIND enabled_languages "Fortran" result) + if(NOT result EQUAL -1) + list(APPEND languages "Fortran") + endif() + + string(COMPARE EQUAL "${languages}" "" no_languages) + if(no_languages) + _ipo_not_supported( + "no C/CXX/Fortran languages found in ENABLED_LANGUAGES global property" + ) + return() + endif() + else() + set(languages "${X_LANGUAGES}") + + set(unsupported_languages "${languages}") + list(REMOVE_ITEM unsupported_languages "C" "CXX" "Fortran") + string(COMPARE NOTEQUAL "${unsupported_languages}" "" has_unsupported) + if(has_unsupported) + _ipo_not_supported( + "language(s) '${unsupported_languages}' not supported" + ) + return() + endif() + endif() + + list(FIND languages "Fortran" result) + if(NOT result EQUAL -1) + _ipo_not_supported("Fortran is not supported") + return() + endif() + + if(NOT _CMAKE_IPO_SUPPORTED_BY_CMAKE) + _ipo_not_supported("CMake doesn't support IPO for current compiler") + return() + endif() + + if(NOT _CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER) + _ipo_not_supported("compiler doesn't support IPO") + return() + endif() + + foreach(x ${languages}) + _ipo_run_language_check(${x}) + endforeach() + + set("${X_RESULT}" YES PARENT_SCOPE) +endfunction() diff --git a/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/Modules/CheckIPOSupported/CMakeLists-C.txt.in new file mode 100644 index 0000000..d20f31f --- /dev/null +++ b/Modules/CheckIPOSupported/CMakeLists-C.txt.in @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION "@CMAKE_VERSION@") +project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES C) + +# TODO: IPO policy + +add_library(foo foo.c) +add_executable(boo main.c) +target_link_libraries(boo PUBLIC foo) diff --git a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in new file mode 100644 index 0000000..4b55c70 --- /dev/null +++ b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION "@CMAKE_VERSION@") +project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES CXX) + +# TODO: IPO policy + +add_library(foo foo.cpp) +add_executable(boo main.cpp) +target_link_libraries(boo PUBLIC foo) diff --git a/Modules/CheckIPOSupported/foo.c b/Modules/CheckIPOSupported/foo.c new file mode 100644 index 0000000..1e56597 --- /dev/null +++ b/Modules/CheckIPOSupported/foo.c @@ -0,0 +1,4 @@ +int foo() +{ + return 0x42; +} diff --git a/Modules/CheckIPOSupported/foo.cpp b/Modules/CheckIPOSupported/foo.cpp new file mode 100644 index 0000000..1e56597 --- /dev/null +++ b/Modules/CheckIPOSupported/foo.cpp @@ -0,0 +1,4 @@ +int foo() +{ + return 0x42; +} diff --git a/Modules/CheckIPOSupported/main.c b/Modules/CheckIPOSupported/main.c new file mode 100644 index 0000000..5be0864 --- /dev/null +++ b/Modules/CheckIPOSupported/main.c @@ -0,0 +1,6 @@ +int foo(); + +int main() +{ + return foo(); +} diff --git a/Modules/CheckIPOSupported/main.cpp b/Modules/CheckIPOSupported/main.cpp new file mode 100644 index 0000000..5be0864 --- /dev/null +++ b/Modules/CheckIPOSupported/main.cpp @@ -0,0 +1,6 @@ +int foo(); + +int main() +{ + return foo(); +} diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake index 85a0772..45dc36f 100644 --- a/Modules/Platform/Linux-Intel.cmake +++ b/Modules/Platform/Linux-Intel.cmake @@ -30,12 +30,17 @@ macro(__linux_compiler_intel lang) # executables that use dlopen but do not set ENABLE_EXPORTS. set(CMAKE_SHARED_LIBRARY_LINK_${lang}_FLAGS "-rdynamic") + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) + if(XIAR) # INTERPROCEDURAL_OPTIMIZATION set(CMAKE_${lang}_COMPILE_OPTIONS_IPO -ipo) set(CMAKE_${lang}_CREATE_STATIC_LIBRARY_IPO "${XIAR} cr " "${XIAR} -s ") + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + else() + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) endif() if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 12.0) ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/module/CheckIPOSupported.rst | 1 + Help/release/dev/CheckIPOSupported.rst | 6 + Modules/CheckIPOSupported.cmake | 215 ++++++++++++++++++++ Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 + Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 + Modules/CheckIPOSupported/foo.c | 4 + Modules/CheckIPOSupported/foo.cpp | 4 + Modules/CheckIPOSupported/main.c | 6 + Modules/CheckIPOSupported/main.cpp | 6 + Modules/Platform/Linux-Intel.cmake | 5 + Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 + .../default-lang-none-result.txt} | 0 .../CheckIPOSupported/default-lang-none-stderr.txt | 7 + .../CheckIPOSupported/default-lang-none.cmake | 1 + .../not-supported-by-cmake-result.txt} | 0 .../not-supported-by-cmake-stderr.txt | 6 + .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 + .../not-supported-by-compiler-result.txt} | 0 .../not-supported-by-compiler-stderr.txt | 6 + .../not-supported-by-compiler.cmake | 4 + .../CheckIPOSupported/save-to-result.cmake | 22 ++ .../unparsed-arguments-result.txt} | 0 .../unparsed-arguments-stderr.txt | 5 + .../CheckIPOSupported/unparsed-arguments.cmake | 1 + .../user-lang-fortran-result.txt} | 0 .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 + .../CheckIPOSupported/user-lang-fortran.cmake | 1 + .../user-lang-unknown-result.txt} | 0 .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 + .../CheckIPOSupported/user-lang-unknown.cmake | 1 + 33 files changed, 347 insertions(+) create mode 100644 Help/module/CheckIPOSupported.rst create mode 100644 Help/release/dev/CheckIPOSupported.rst create mode 100644 Modules/CheckIPOSupported.cmake create mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in create mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in create mode 100644 Modules/CheckIPOSupported/foo.c create mode 100644 Modules/CheckIPOSupported/foo.cpp create mode 100644 Modules/CheckIPOSupported/main.c create mode 100644 Modules/CheckIPOSupported/main.cpp create mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/default-lang-none-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake create mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/unparsed-arguments-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-fortran-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-unknown-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 14:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 14:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-518-g84faf37 Message-ID: <20170320185502.40A22FA313@public.kitware.com> 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 84faf37444eb5882eb41b0491302a8a9b93f6b2c (commit) via 6bd28fd235f75d150b1a4849c5b134f5e2766764 (commit) from 1f39ec883542971bcbf6532c719e1949ebad2877 (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=84faf37444eb5882eb41b0491302a8a9b93f6b2c commit 84faf37444eb5882eb41b0491302a8a9b93f6b2c Merge: 1f39ec8 6bd28fd Author: Brad King AuthorDate: Mon Mar 20 18:46:57 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 14:48:29 2017 -0400 Stage topic 'ml/FindBoost-1.64.0-beta' Topic-id: 23111 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/590 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6bd28fd235f75d150b1a4849c5b134f5e2766764 commit 6bd28fd235f75d150b1a4849c5b134f5e2766764 Author: Mateusz ?oskot AuthorDate: Fri Mar 17 22:48:32 2017 +0100 Commit: Brad King CommitDate: Mon Mar 20 14:43:24 2017 -0400 FindBoost: Add support for 1.64 Update the module to enable finding components of Boost 1.64 (beta) from the upcoming release. Also update the Boost library name mangling used for VS 2017 to match a change made to Boost upstream (vc150 => vc1410). diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index e795aad..7e42c10 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -428,7 +428,7 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret) set(_boost_COMPILER "-ghs") elseif("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC") if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.10) - set(_boost_COMPILER "-vc150") + set(_boost_COMPILER "-vc1410") elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19) set(_boost_COMPILER "-vc140") elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) @@ -742,7 +742,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) - elseif(NOT Boost_VERSION VERSION_LESS 106300 AND Boost_VERSION VERSION_LESS 106400) + elseif(NOT Boost_VERSION VERSION_LESS 106300 AND Boost_VERSION VERSION_LESS 106500) set(_Boost_CHRONO_DEPENDENCIES system) set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time) set(_Boost_COROUTINE_DEPENDENCIES context system) @@ -963,7 +963,7 @@ else() # _Boost_COMPONENT_HEADERS. See the instructions at the top of # _Boost_COMPONENT_DEPENDENCIES. set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS} - "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60" + "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60" "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55" "1.54.0" "1.54" "1.53.0" "1.53" "1.52.0" "1.52" "1.51.0" "1.51" "1.50.0" "1.50" "1.49.0" "1.49" "1.48.0" "1.48" "1.47.0" "1.47" "1.46.1" ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 15:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 15:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-520-g47705d7 Message-ID: <20170320190502.54650FA662@public.kitware.com> 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 47705d78573e31d517e3a61f8109dfa7af9ca938 (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) from 84faf37444eb5882eb41b0491302a8a9b93f6b2c (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=47705d78573e31d517e3a61f8109dfa7af9ca938 commit 47705d78573e31d517e3a61f8109dfa7af9ca938 Merge: 84faf37 4b49c9a Author: Brad King AuthorDate: Mon Mar 20 19:01:37 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 15:01:40 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4b49c9a245db870ab2359495083a6839be3ed9df commit 4b49c9a245db870ab2359495083a6839be3ed9df Author: Daniel Pfeifer AuthorDate: Mon Mar 6 17:52:56 2017 +0100 Commit: Daniel Pfeifer CommitDate: Tue Mar 14 22:40:11 2017 +0100 fix include order of windows.h Comments that indicate a special include order is necessary because GetCurrentDirectory might get redefined are outdated. Remove those outdated comments and use the normal ordering of includes. diff --git a/Source/cmExportCommand.cxx b/Source/cmExportCommand.cxx index 8102276..09c01e9 100644 --- a/Source/cmExportCommand.cxx +++ b/Source/cmExportCommand.cxx @@ -279,7 +279,6 @@ bool cmExportCommand::HandlePackage(std::vector const& args) #if defined(_WIN32) && !defined(__CYGWIN__) #include -#undef GetCurrentDirectory void cmExportCommand::ReportRegistryError(std::string const& msg, std::string const& key, long err) { diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 4b29837..fe4cc54 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -1173,7 +1173,6 @@ void cmFindPackageCommand::FillPrefixesSystemRegistry() #if defined(_WIN32) && !defined(__CYGWIN__) #include -#undef GetCurrentDirectory // http://msdn.microsoft.com/en-us/library/aa384253%28v=vs.85%29.aspx #if !defined(KEY_WOW64_32KEY) #define KEY_WOW64_32KEY 0x0200 diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 1f5e624..0d53bf7 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -1,12 +1,5 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -#if defined(_WIN32) && !defined(__CYGWIN__) -#include "windows.h" // this must be first to define GetCurrentDirectory -#if defined(_MSC_VER) && _MSC_VER >= 1800 -#define KWSYS_WINDOWS_DEPRECATED_GetVersionEx -#endif -#endif - #include "cmGlobalGenerator.h" #include @@ -19,6 +12,10 @@ #include #include +#if defined(_WIN32) && !defined(__CYGWIN__) +#include +#endif + #include "cmAlgorithms.h" #include "cmCPackPropertiesGenerator.h" #include "cmComputeTargetDepends.h" @@ -51,6 +48,10 @@ #include #endif +#if defined(_MSC_VER) && _MSC_VER >= 1800 +#define KWSYS_WINDOWS_DEPRECATED_GetVersionEx +#endif + const std::string kCMAKE_PLATFORM_INFO_INITIALIZED = "CMAKE_PLATFORM_INFO_INITIALIZED"; diff --git a/Source/cmGlobalVisualStudio7Generator.cxx b/Source/cmGlobalVisualStudio7Generator.cxx index 65a0bde..e7fb203 100644 --- a/Source/cmGlobalVisualStudio7Generator.cxx +++ b/Source/cmGlobalVisualStudio7Generator.cxx @@ -1,7 +1,5 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -#include "windows.h" // this must be first to define GetCurrentDirectory - #include "cmGlobalVisualStudio7Generator.h" #include "cmGeneratedFileStream.h" @@ -14,6 +12,7 @@ #include #include +#include static cmVS7FlagTable cmVS7ExtraFlagTable[] = { // Precompiled header and related options. Note that the diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index a073426..81d9765 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -5,6 +5,7 @@ #include #include +#include #include "cmAlgorithms.h" #include "cmCallVisualStudioMacro.h" @@ -441,8 +442,6 @@ std::string cmGlobalVisualStudioGenerator::GetStartupProjectName( return this->GetAllTargetName(); } -#include - bool IsVisualStudioMacrosFileRegistered(const std::string& macrosFile, const std::string& regKeyBase, std::string& nextAvailableSubKeyName) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 8026de9..f8490bf 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -16,6 +16,7 @@ #include "cmGeneratedFileStream.h" #include // for isspace +#include static bool cmLVS7G_IsFAT(const char* dir); @@ -2115,7 +2116,6 @@ std::string cmLocalVisualStudio7Generator::GetTargetDirectory( return dir; } -#include static bool cmLVS7G_IsFAT(const char* dir) { if (dir[0] && dir[1] == ':') { diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index b8e227f..805a9f7 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -1,11 +1,6 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ -// include these first, otherwise there will be problems on Windows -// with GetCurrentDirectory() being redefined -#ifdef CMAKE_BUILD_WITH_CMAKE -#include "cmDocumentation.h" -#include "cmDynamicLoader.h" -#endif +#include #include "cmAlgorithms.h" #include "cmDocumentationEntry.h" @@ -17,7 +12,11 @@ #include "cmake.h" #include "cmcmd.h" -#include +#ifdef CMAKE_BUILD_WITH_CMAKE +#include "cmDocumentation.h" +#include "cmDynamicLoader.h" +#endif + #include #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE) #include ----------------------------------------------------------------------- Summary of changes: Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGlobalGenerator.cxx | 15 ++++++++------- Source/cmGlobalVisualStudio7Generator.cxx | 3 +-- Source/cmGlobalVisualStudioGenerator.cxx | 3 +-- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 ++++++------- 7 files changed, 17 insertions(+), 21 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 16:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 16:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-522-gc88ba48 Message-ID: <20170320201502.33819F6856@public.kitware.com> 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 c88ba48302201816b1438f0647a3577b4291ce37 (commit) via 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f (commit) from 47705d78573e31d517e3a61f8109dfa7af9ca938 (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=c88ba48302201816b1438f0647a3577b4291ce37 commit c88ba48302201816b1438f0647a3577b4291ce37 Merge: 47705d7 8214061 Author: Brad King AuthorDate: Mon Mar 20 20:14:45 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 16:14:48 2017 -0400 Stage topic 'hdf5-root-prefer' Topic-id: 23072 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/587 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f commit 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f Author: Ben Boeckel AuthorDate: Wed Mar 15 12:54:19 2017 -0400 Commit: Ben Boeckel CommitDate: Wed Mar 15 12:54:19 2017 -0400 FindHDF5: fix quoting diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 36cd335..24a356c 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -520,7 +520,7 @@ if(NOT HDF5_FOUND) foreach(L IN LISTS HDF5_${__lang}_LIBRARY_NAMES) set(_HDF5_SEARCH_NAMES_LOCAL) - if(x"${L}" MATCHES "hdf5") + if("x${L}" MATCHES "hdf5") # hdf5 library set(_HDF5_SEARCH_OPTS_LOCAL ${_HDF5_SEARCH_OPTS}) if(UNIX AND HDF5_USE_STATIC_LIBRARIES) ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 16:25:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 16:25:10 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-524-gf5594b1 Message-ID: <20170320202511.63F6BFA530@public.kitware.com> 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 f5594b1892838f1721f703e2d062652fca0791ef (commit) via 2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f (commit) from c88ba48302201816b1438f0647a3577b4291ce37 (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=f5594b1892838f1721f703e2d062652fca0791ef commit f5594b1892838f1721f703e2d062652fca0791ef Merge: c88ba48 2e900f1 Author: Brad King AuthorDate: Mon Mar 20 20:24:51 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 20 16:24:53 2017 -0400 Stage topic 'CPackComponent-use-cmake_parse_arguments' Topic-id: 23074 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/588 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f commit 2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f Author: Daniel Pfeifer AuthorDate: Wed Mar 15 18:10:33 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 15 18:10:33 2017 +0100 CPackComponent: use cmake_parse_arguments diff --git a/Modules/CPackComponent.cmake b/Modules/CPackComponent.cmake index 395a268..2adc9b9 100644 --- a/Modules/CPackComponent.cmake +++ b/Modules/CPackComponent.cmake @@ -303,38 +303,6 @@ if(NOT CPackComponent_CMake_INCLUDED) set(CPackComponent_CMake_INCLUDED 1) -# Argument-parsing macro from https://cmake.org/Wiki/CMakeMacroParseArguments -macro(cpack_parse_arguments prefix arg_names option_names) - set(${prefix}_DEFAULT_ARGS) - foreach(arg_name ${arg_names}) - set(${prefix}_${arg_name}) - endforeach() - foreach(option ${option_names}) - set(${prefix}_${option} FALSE) - endforeach() - - set(current_arg_name DEFAULT_ARGS) - set(current_arg_list) - foreach(arg ${ARGN}) - set(larg_names ${arg_names}) - list(FIND larg_names "${arg}" is_arg_name) - if (is_arg_name GREATER -1) - set(${prefix}_${current_arg_name} ${current_arg_list}) - set(current_arg_name ${arg}) - set(current_arg_list) - else () - set(loption_names ${option_names}) - list(FIND loption_names "${arg}" is_option) - if (is_option GREATER -1) - set(${prefix}_${arg} TRUE) - else () - set(current_arg_list ${current_arg_list} ${arg}) - endif () - endif () - endforeach() - set(${prefix}_${current_arg_name} ${current_arg_list}) -endmacro() - # Macro that appends a SET command for the given variable name (var) # to the macro named strvar, but only if the variable named "var" # has been defined. The string will eventually be appended to a CPack @@ -392,9 +360,10 @@ endmacro() # Macro that adds a component to the CPack installer macro(cpack_add_component compname) string(TOUPPER ${compname} _CPACK_ADDCOMP_UNAME) - cpack_parse_arguments(CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME} - "DISPLAY_NAME;DESCRIPTION;GROUP;DEPENDS;INSTALL_TYPES;ARCHIVE_FILE;PLIST" + cmake_parse_arguments(CPACK_COMPONENT_${_CPACK_ADDCOMP_UNAME} "HIDDEN;REQUIRED;DISABLED;DOWNLOADED" + "DISPLAY_NAME;DESCRIPTION;GROUP;ARCHIVE_FILE;PLIST" + "DEPENDS;INSTALL_TYPES" ${ARGN} ) @@ -464,9 +433,10 @@ endmacro() # Macro that adds a component group to the CPack installer macro(cpack_add_component_group grpname) string(TOUPPER ${grpname} _CPACK_ADDGRP_UNAME) - cpack_parse_arguments(CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME} - "DISPLAY_NAME;DESCRIPTION;PARENT_GROUP" + cmake_parse_arguments(CPACK_COMPONENT_GROUP_${_CPACK_ADDGRP_UNAME} "EXPANDED;BOLD_TITLE" + "DISPLAY_NAME;DESCRIPTION;PARENT_GROUP" + "" ${ARGN} ) @@ -498,7 +468,8 @@ endmacro() # Macro that adds an installation type to the CPack installer macro(cpack_add_install_type insttype) string(TOUPPER ${insttype} _CPACK_INSTTYPE_UNAME) - cpack_parse_arguments(CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME} + cmake_parse_arguments(CPACK_INSTALL_TYPE_${_CPACK_INSTTYPE_UNAME} + "" "DISPLAY_NAME" "" ${ARGN} @@ -521,9 +492,10 @@ macro(cpack_add_install_type insttype) endmacro() macro(cpack_configure_downloads site) - cpack_parse_arguments(CPACK_DOWNLOAD - "UPLOAD_DIRECTORY" + cmake_parse_arguments(CPACK_DOWNLOAD "ALL;ADD_REMOVE;NO_ADD_REMOVE" + "UPLOAD_DIRECTORY" + "" ${ARGN} ) ----------------------------------------------------------------------- Summary of changes: Modules/CPackComponent.cmake | 50 ++++++++++-------------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 21:05:17 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 21:05:17 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-524-gf5594b1 Message-ID: <20170321010537.04A3BFA6A3@public.kitware.com> 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, nightly has been updated discards b7d2d374017f940a7f66611d027ff2175c2c91a5 (commit) discards 6a839be65977e295f58030b58b6f942473400f56 (commit) discards ec8e62fd7e8b10860a57d2526cbc8039e171c8e0 (commit) discards 038bd5e0b5e389c4325f3a0feec9dcc7a0c58c9c (commit) discards 7c14ff1217bdc368b988bdd6d8ee4280349c175b (commit) via f5594b1892838f1721f703e2d062652fca0791ef (commit) via c88ba48302201816b1438f0647a3577b4291ce37 (commit) via 47705d78573e31d517e3a61f8109dfa7af9ca938 (commit) via 84faf37444eb5882eb41b0491302a8a9b93f6b2c (commit) via 6bd28fd235f75d150b1a4849c5b134f5e2766764 (commit) via 1f39ec883542971bcbf6532c719e1949ebad2877 (commit) via 193ea34cfd698147f6c88dd145b31a46fd9e3042 (commit) via 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (commit) via 04a11f16ba2c83c118e1efe86f9994765353b3ff (commit) via 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (commit) via 01bdc2cc43def6797e40037859cb72981c7342b8 (commit) via e145cfe2e9d4afac060754097dee0b9439d470d7 (commit) via f89678f60948241355959fedc2d6239db1bedcd6 (commit) via e22dbdb7df8b50b2e274e0bf3519edb81f99f2d1 (commit) via a5931b61e9dc8d8c6324f50837ef16aa1683ba0a (commit) via 2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f (commit) via 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) via 063b339b6ff5eef34919f4deec8bd2d94041d75e (commit) via 9f4f53071aa048b3bb4f03b772de079d3dff9dab (commit) via c97e0650ee2f477add5a725d30019f386235746f (commit) via de7dd7a9113d55c8acb0614cd9ec213581391fd9 (commit) via e115396c973013a8d04701fc5351c453a5286678 (commit) via fdb2ba2521998397d97d466b10a8ac2458363625 (commit) via 4f90e7931487195b5d540fbaa5dad1c90b26cee1 (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 (b7d2d374017f940a7f66611d027ff2175c2c91a5) \ N -- N -- N (f5594b1892838f1721f703e2d062652fca0791ef) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/module/CheckIPOSupported.rst | 1 + Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst | 7 + ...togen_source_group => Autogen_source_group.rst} | 0 Help/release/dev/CheckIPOSupported.rst | 6 + .../module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst | 8 + Modules/CPackComponent.cmake | 50 +---- Modules/CSharpUtilities.cmake | 32 +-- Modules/CheckIPOSupported.cmake | 215 ++++++++++++++++++++ Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 + Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 + Modules/CheckIPOSupported/foo.c | 4 + Modules/CheckIPOSupported/foo.cpp | 4 + Modules/CheckIPOSupported/main.c | 6 + Modules/CheckIPOSupported/main.cpp | 6 + Modules/FindBoost.cmake | 6 +- Modules/FindHDF5.cmake | 2 +- Modules/Platform/Linux-Intel.cmake | 5 + Source/CMakeVersion.cmake | 2 +- Source/bindexplib.cxx | 48 +++-- Source/bindexplib.h | 1 + Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGeneratorTarget.cxx | 11 +- Source/cmGeneratorTarget.h | 2 + Source/cmGlobalGenerator.cxx | 15 +- Source/cmGlobalVisualStudio7Generator.cxx | 3 +- Source/cmGlobalVisualStudioGenerator.cxx | 76 +++---- Source/cmLocalVisualStudio7Generator.cxx | 4 +- Source/cmMakefileTargetGenerator.cxx | 37 ++-- Source/cmNinjaNormalTargetGenerator.cxx | 20 +- Source/cmNinjaTargetGenerator.cxx | 12 +- Source/cmVisualStudio10TargetGenerator.cxx | 2 +- Source/cmakemain.cxx | 13 +- Source/cmcmd.cxx | 15 +- Tests/ModuleDefinition/CMakeLists.txt | 9 +- Tests/ModuleDefinition/example_exe.c | 6 +- Tests/ModuleDefinition/split_dll.c | 9 + Tests/ModuleDefinition/split_dll_1.def | 2 + Tests/ModuleDefinition/split_dll_2.def | 2 + Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 + .../default-lang-none-result.txt} | 0 .../CheckIPOSupported/default-lang-none-stderr.txt | 7 + .../CheckIPOSupported/default-lang-none.cmake | 1 + .../not-supported-by-cmake-result.txt} | 0 .../not-supported-by-cmake-stderr.txt | 6 + .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 + .../not-supported-by-compiler-result.txt} | 0 .../not-supported-by-compiler-stderr.txt | 6 + .../not-supported-by-compiler.cmake | 4 + .../CheckIPOSupported/save-to-result.cmake | 22 ++ .../unparsed-arguments-result.txt} | 0 .../unparsed-arguments-stderr.txt | 5 + .../CheckIPOSupported/unparsed-arguments.cmake | 1 + .../user-lang-fortran-result.txt} | 0 .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 + .../CheckIPOSupported/user-lang-fortran.cmake | 1 + .../user-lang-unknown-result.txt} | 0 .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 + .../CheckIPOSupported/user-lang-unknown.cmake | 1 + 62 files changed, 587 insertions(+), 156 deletions(-) create mode 100644 Help/module/CheckIPOSupported.rst rename Help/release/dev/{Autogen_source_group => Autogen_source_group.rst} (100%) create mode 100644 Help/release/dev/CheckIPOSupported.rst create mode 100644 Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst create mode 100644 Modules/CheckIPOSupported.cmake create mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in create mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in create mode 100644 Modules/CheckIPOSupported/foo.c create mode 100644 Modules/CheckIPOSupported/foo.cpp create mode 100644 Modules/CheckIPOSupported/main.c create mode 100644 Modules/CheckIPOSupported/main.cpp create mode 100644 Tests/ModuleDefinition/split_dll.c create mode 100644 Tests/ModuleDefinition/split_dll_1.def create mode 100644 Tests/ModuleDefinition/split_dll_2.def create mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/default-lang-none-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake create mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/unparsed-arguments-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-fortran-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-unknown-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 20 21:05:43 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 20 Mar 2017 21:05:43 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-507-g3be5896 Message-ID: <20170321010549.1A85FFA6D9@public.kitware.com> 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, nightly-master has been updated via 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (commit) via 04a11f16ba2c83c118e1efe86f9994765353b3ff (commit) via 09f85c98c0f52a8f58cde0ffc3949316e4c874a2 (commit) via 01bdc2cc43def6797e40037859cb72981c7342b8 (commit) via e145cfe2e9d4afac060754097dee0b9439d470d7 (commit) via f89678f60948241355959fedc2d6239db1bedcd6 (commit) via e22dbdb7df8b50b2e274e0bf3519edb81f99f2d1 (commit) via a5931b61e9dc8d8c6324f50837ef16aa1683ba0a (commit) via 9eb05b48cd8e19988e5a579996598802e2bacdea (commit) via 850eb734f558442310521418dc2cd2ee6a161142 (commit) via af1354d6c14097f9ec9dda25460e9228fa592fbc (commit) via 379cf11b3073caeb97727b17db48766624290caa (commit) via 0b668e52a91b7f03f312c691e5b1c54a371d0316 (commit) via 2a8c2af4d4ca1ec653c87c11a3f79a241b6b27e7 (commit) via 7eb1f5b7aca1500e68a8be7ba158ed616a8595df (commit) via 598400a3e7148c75f83e1adf995cd6c1a3857d58 (commit) from baba0a435a9f715c3f3e399b8284f25e558a5bad (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 3 + Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst | 15 ++++ Help/prop_gbl/AUTOGEN_TARGETS_FOLDER.rst | 4 +- Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst | 7 ++ Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst | 7 ++ Help/prop_tgt/AUTOMOC.rst | 3 + Help/prop_tgt/AUTORCC.rst | 3 + Help/release/dev/Autogen_source_group.rst | 8 +++ Modules/CPackRPM.cmake | 15 ++++ Modules/CSharpUtilities.cmake | 32 +++++---- Modules/GenerateExportHeader.cmake | 8 +-- Modules/Platform/CYGWIN.cmake | 10 +++ Modules/Platform/SunOS.cmake | 5 ++ Modules/Platform/UnixPaths.cmake | 31 +++------ Source/CMakeVersion.cmake | 2 +- Source/cmQtAutoGeneratorCommon.h | 7 ++ Source/cmQtAutoGeneratorInitializer.cxx | 73 ++++++++++++++++++-- Tests/RunCMake/CPack/RunCMakeTest.cmake | 1 + .../ExpectedFiles.cmake | 10 +-- .../tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake | 7 ++ .../{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake | 9 ++- Tests/RunCMake/GenerateExportHeader/GEH.cmake | 2 +- 22 files changed, 208 insertions(+), 54 deletions(-) create mode 100644 Help/prop_gbl/AUTOGEN_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTOMOC_SOURCE_GROUP.rst create mode 100644 Help/prop_gbl/AUTORCC_SOURCE_GROUP.rst create mode 100644 Help/release/dev/Autogen_source_group.rst copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/ExpectedFiles.cmake (60%) create mode 100644 Tests/RunCMake/CPack/tests/EXTRA_SLASH_IN_PATH/VerifyResult.cmake copy Tests/RunCMake/CPack/tests/{DEBUGINFO => EXTRA_SLASH_IN_PATH}/test.cmake (74%) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-508-g851a5d1 Message-ID: <20170321040504.4730DFA671@public.kitware.com> 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 851a5d1d3a80e4c3c4812bcb8073511f98c2ccea (commit) from 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-525-ge1b9c80 Message-ID: <20170321040504.C772FFA67F@public.kitware.com> 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 f5594b1892838f1721f703e2d062652fca0791ef (commit) discards c88ba48302201816b1438f0647a3577b4291ce37 (commit) discards 47705d78573e31d517e3a61f8109dfa7af9ca938 (commit) discards 84faf37444eb5882eb41b0491302a8a9b93f6b2c (commit) discards 1f39ec883542971bcbf6532c719e1949ebad2877 (commit) discards 193ea34cfd698147f6c88dd145b31a46fd9e3042 (commit) via e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10 (commit) via 29e425ce85f1d7441a1c803a8ad62f06dc431583 (commit) via 276ad8fefbd48e9c99d85aa75ff7a669a93917be (commit) via f7d82c36fbd7303c459583cfdb1e0c94af30d84b (commit) via ad7bb691e969368d128c404a608ce004912c3f5d (commit) via c2fa61785ae4a2ef47eaeff0abb9bcc12c15227b (commit) via 851a5d1d3a80e4c3c4812bcb8073511f98c2ccea (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 (f5594b1892838f1721f703e2d062652fca0791ef) \ N -- N -- N (e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10) 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=e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10 commit e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10 Merge: 29e425c 2e900f1 Author: Brad King AuthorDate: Mon Mar 20 20:24:51 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:16 2017 -0400 Stage topic 'CPackComponent-use-cmake_parse_arguments' Topic-id: 23074 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/588 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=29e425ce85f1d7441a1c803a8ad62f06dc431583 commit 29e425ce85f1d7441a1c803a8ad62f06dc431583 Merge: 276ad8f 8214061 Author: Brad King AuthorDate: Mon Mar 20 20:14:45 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:16 2017 -0400 Stage topic 'hdf5-root-prefer' Topic-id: 23072 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/587 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=276ad8fefbd48e9c99d85aa75ff7a669a93917be commit 276ad8fefbd48e9c99d85aa75ff7a669a93917be Merge: f7d82c3 4b49c9a Author: Brad King AuthorDate: Mon Mar 20 19:01:37 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:16 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f7d82c36fbd7303c459583cfdb1e0c94af30d84b commit f7d82c36fbd7303c459583cfdb1e0c94af30d84b Merge: ad7bb69 6bd28fd Author: Brad King AuthorDate: Mon Mar 20 18:46:57 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:16 2017 -0400 Stage topic 'ml/FindBoost-1.64.0-beta' Topic-id: 23111 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/590 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ad7bb691e969368d128c404a608ce004912c3f5d commit ad7bb691e969368d128c404a608ce004912c3f5d Merge: c2fa617 e115396 Author: Brad King AuthorDate: Mon Mar 20 18:39:00 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:15 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c2fa61785ae4a2ef47eaeff0abb9bcc12c15227b commit c2fa61785ae4a2ef47eaeff0abb9bcc12c15227b Merge: 851a5d1 063b339 Author: Brad King AuthorDate: Mon Mar 20 18:32:06 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 00:01:15 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 03:35:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 03:35:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-527-ga51e7a1 Message-ID: <20170321073506.E3725FA691@public.kitware.com> 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 a51e7a14130a99eb1d759ac2da846f55a0102336 (commit) via 84b16147206b2c4195c647ef359c2ace8c8cc172 (commit) from e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10 (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=a51e7a14130a99eb1d759ac2da846f55a0102336 commit a51e7a14130a99eb1d759ac2da846f55a0102336 Merge: e1b9c80 84b1614 Author: Domen Vrankar AuthorDate: Tue Mar 21 07:33:43 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 03:33:46 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=84b16147206b2c4195c647ef359c2ace8c8cc172 commit 84b16147206b2c4195c647ef359c2ace8c8cc172 Author: Domen Vrankar AuthorDate: Tue Mar 21 02:38:30 2017 +0100 Commit: Domen Vrankar CommitDate: Tue Mar 21 08:31:29 2017 +0100 CPack/RPM: cpack_rpm_debugsymbol_check parameter fix CPACK_RPM_INSTALL_FILES must be converted into a list before it is used as parameter to cpack_rpm_debugsymbol_check. Closes #16717 diff --git a/Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst b/Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst new file mode 100644 index 0000000..3f5c0ea --- /dev/null +++ b/Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst @@ -0,0 +1,7 @@ +cpack-rpm-debuginfo-multiple-files-fix +-------------------------------------- + +* The :module:`CPackRPM` module learned how to more correctly + handle adding of source files to debuginfo packages and + skip geneartion of debuginfo packages without sources + with an author warning. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 7a7c170..2e69195 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -2156,7 +2156,9 @@ function(cpack_rpm_generate_package) if(CPACK_RPM_DEBUGINFO_PACKAGE) # only add current package files to debuginfo list if debuginfo # generation is enabled for current package - set(install_files_ "${CPACK_RPM_INSTALL_FILES}") + string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_) + string(REPLACE "\n" ";" install_files_ "${install_files_}") + string(REPLACE "\"" "" install_files_ "${install_files_}") else() unset(install_files_) endif() @@ -2214,7 +2216,11 @@ function(cpack_rpm_generate_package) cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}") else() - cpack_rpm_debugsymbol_check("${CPACK_RPM_INSTALL_FILES}" "${WDIR}") + string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_) + string(REPLACE "\n" ";" install_files_ "${install_files_}") + string(REPLACE "\"" "" install_files_ "${install_files_}") + + cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}") endif() if(TMP_DEBUGINFO_ADDITIONAL_SOURCES) ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst | 7 +++++++ Modules/CPackRPM.cmake | 10 ++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 08:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 08:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-529-g21f774b Message-ID: <20170321120506.4C93DFA72F@public.kitware.com> 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 21f774b9aab08c4756c4d6918414489fc297459f (commit) via 93e18d8e1342f6533891c9e40ffac5542d61d2f8 (commit) from a51e7a14130a99eb1d759ac2da846f55a0102336 (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=21f774b9aab08c4756c4d6918414489fc297459f commit 21f774b9aab08c4756c4d6918414489fc297459f Merge: a51e7a1 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 07:59:21 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=93e18d8e1342f6533891c9e40ffac5542d61d2f8 commit 93e18d8e1342f6533891c9e40ffac5542d61d2f8 Author: Gregor Jasny AuthorDate: Mon Mar 20 21:49:59 2017 +0100 Commit: Gregor Jasny CommitDate: Mon Mar 20 22:57:25 2017 +0100 cmIfCommand: Reject duplicate else() and misplaced elseif() Closes: #14335 diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index a8fa4f9..49755fa 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -57,8 +57,19 @@ bool cmIfFunctionBlocker::IsFunctionBlocked(const cmListFileFunction& lff, // watch for our state change if (scopeDepth == 0 && !cmSystemTools::Strucmp(this->Functions[c].Name.c_str(), "else")) { + + if (this->ElseSeen) { + cmListFileBacktrace bt = mf.GetBacktrace(this->Functions[c]); + mf.GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, + "A duplicate ELSE command was found inside an IF block.", bt); + cmSystemTools::SetFatalErrorOccured(); + return true; + } + this->IsBlocking = this->HasRun; this->HasRun = true; + this->ElseSeen = true; // if trace is enabled, print a (trivially) evaluated "else" // statement @@ -68,7 +79,14 @@ bool cmIfFunctionBlocker::IsFunctionBlocked(const cmListFileFunction& lff, } else if (scopeDepth == 0 && !cmSystemTools::Strucmp(this->Functions[c].Name.c_str(), "elseif")) { - if (this->HasRun) { + if (this->ElseSeen) { + cmListFileBacktrace bt = mf.GetBacktrace(this->Functions[c]); + mf.GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, + "An ELSEIF command was found after an ELSE command.", bt); + cmSystemTools::SetFatalErrorOccured(); + return true; + } else if (this->HasRun) { this->IsBlocking = true; } else { // if trace is enabled, print the evaluated "elseif" statement diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index 56eef30..f81db67 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -21,6 +21,7 @@ public: cmIfFunctionBlocker() { this->HasRun = false; + this->ElseSeen = false; this->ScopeDepth = 0; } ~cmIfFunctionBlocker() CM_OVERRIDE {} @@ -32,6 +33,7 @@ public: std::vector Functions; bool IsBlocking; bool HasRun; + bool ElseSeen; unsigned int ScopeDepth; }; diff --git a/Tests/RunCMake/if/RunCMakeTest.cmake b/Tests/RunCMake/if/RunCMakeTest.cmake index 077d00a..f54edf7 100644 --- a/Tests/RunCMake/if/RunCMakeTest.cmake +++ b/Tests/RunCMake/if/RunCMakeTest.cmake @@ -3,7 +3,11 @@ include(RunCMake) run_cmake(InvalidArgument1) run_cmake(IsDirectory) run_cmake(IsDirectoryLong) +run_cmake(duplicate-deep-else) +run_cmake(duplicate-else) +run_cmake(duplicate-else-after-elseif) run_cmake(elseif-message) +run_cmake(misplaced-elseif) run_cmake(MatchesSelf) diff --git a/Tests/RunCMake/if/duplicate-deep-else-result.txt b/Tests/RunCMake/if/duplicate-deep-else-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-deep-else-stderr.txt b/Tests/RunCMake/if/duplicate-deep-else-stderr.txt new file mode 100644 index 0000000..ac2335c --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-deep-else.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-deep-else.cmake b/Tests/RunCMake/if/duplicate-deep-else.cmake new file mode 100644 index 0000000..94f06de --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else.cmake @@ -0,0 +1,7 @@ +if(0) +else() + if(0) + else() + else() + endif() +endif() diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt b/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt b/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt new file mode 100644 index 0000000..ba6765c --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-else-after-elseif.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif.cmake b/Tests/RunCMake/if/duplicate-else-after-elseif.cmake new file mode 100644 index 0000000..d1d4ac1 --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif.cmake @@ -0,0 +1,5 @@ +if(0) +elseif(0) +else() +else() +endif() diff --git a/Tests/RunCMake/if/duplicate-else-result.txt b/Tests/RunCMake/if/duplicate-else-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-else-stderr.txt b/Tests/RunCMake/if/duplicate-else-stderr.txt new file mode 100644 index 0000000..e0dd01f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-else.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-else.cmake b/Tests/RunCMake/if/duplicate-else.cmake new file mode 100644 index 0000000..14a03ac --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else.cmake @@ -0,0 +1,4 @@ +if(0) +else() +else() +endif() diff --git a/Tests/RunCMake/if/misplaced-elseif-result.txt b/Tests/RunCMake/if/misplaced-elseif-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/misplaced-elseif-stderr.txt b/Tests/RunCMake/if/misplaced-elseif-stderr.txt new file mode 100644 index 0000000..c4b0266 --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at misplaced-elseif.cmake:[0-9]+ \(elseif\): + An ELSEIF command was found after an ELSE command. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/misplaced-elseif.cmake b/Tests/RunCMake/if/misplaced-elseif.cmake new file mode 100644 index 0000000..d27f24e --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif.cmake @@ -0,0 +1,4 @@ +if(0) +else() +elseif(1) +endif() ----------------------------------------------------------------------- Summary of changes: Source/cmIfCommand.cxx | 20 +++++++++++++++++++- Source/cmIfCommand.h | 2 ++ Tests/RunCMake/if/RunCMakeTest.cmake | 4 ++++ .../duplicate-deep-else-result.txt} | 0 Tests/RunCMake/if/duplicate-deep-else-stderr.txt | 4 ++++ Tests/RunCMake/if/duplicate-deep-else.cmake | 7 +++++++ .../duplicate-else-after-elseif-result.txt} | 0 .../if/duplicate-else-after-elseif-stderr.txt | 4 ++++ .../RunCMake/if/duplicate-else-after-elseif.cmake | 5 +++++ .../duplicate-else-result.txt} | 0 Tests/RunCMake/if/duplicate-else-stderr.txt | 4 ++++ Tests/RunCMake/if/duplicate-else.cmake | 4 ++++ .../misplaced-elseif-result.txt} | 0 Tests/RunCMake/if/misplaced-elseif-stderr.txt | 4 ++++ Tests/RunCMake/if/misplaced-elseif.cmake | 4 ++++ 15 files changed, 61 insertions(+), 1 deletion(-) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-deep-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-deep-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-deep-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-after-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/misplaced-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/misplaced-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/misplaced-elseif.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 09:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 09:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-526-g2bf434a Message-ID: <20170321130504.025BEFA702@public.kitware.com> 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 21f774b9aab08c4756c4d6918414489fc297459f (commit) discards a51e7a14130a99eb1d759ac2da846f55a0102336 (commit) discards e1b9c80a725b786bce6f6e7b77a7e1bc3f9f4a10 (commit) discards 29e425ce85f1d7441a1c803a8ad62f06dc431583 (commit) discards 276ad8fefbd48e9c99d85aa75ff7a669a93917be (commit) discards f7d82c36fbd7303c459583cfdb1e0c94af30d84b (commit) discards ad7bb691e969368d128c404a608ce004912c3f5d (commit) discards e115396c973013a8d04701fc5351c453a5286678 (commit) discards fdb2ba2521998397d97d466b10a8ac2458363625 (commit) via 2bf434acb27f64aca0b397971078693f52ec166c (commit) via 1895981eeb0f68d729bb07b53cc5adb1330b80f3 (commit) via 9c77016d0b73411ff724e7355060a1f67f60f7f4 (commit) via 7009951dfcd374eeb639ce69ba441af38c4c1723 (commit) via 669391ed39fd9c2c68fb2339fc4afa584b6b61c5 (commit) via 1a30fdceb121248619c14469e8ec827f1d6e223c (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 (21f774b9aab08c4756c4d6918414489fc297459f) \ N -- N -- N (2bf434acb27f64aca0b397971078693f52ec166c) 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=2bf434acb27f64aca0b397971078693f52ec166c commit 2bf434acb27f64aca0b397971078693f52ec166c Merge: 1895981 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:48 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1895981eeb0f68d729bb07b53cc5adb1330b80f3 commit 1895981eeb0f68d729bb07b53cc5adb1330b80f3 Merge: 9c77016 84b1614 Author: Domen Vrankar AuthorDate: Tue Mar 21 07:33:43 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:48 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9c77016d0b73411ff724e7355060a1f67f60f7f4 commit 9c77016d0b73411ff724e7355060a1f67f60f7f4 Merge: 7009951 2e900f1 Author: Brad King AuthorDate: Mon Mar 20 20:24:51 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:47 2017 -0400 Stage topic 'CPackComponent-use-cmake_parse_arguments' Topic-id: 23074 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/588 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7009951dfcd374eeb639ce69ba441af38c4c1723 commit 7009951dfcd374eeb639ce69ba441af38c4c1723 Merge: 669391e 8214061 Author: Brad King AuthorDate: Mon Mar 20 20:14:45 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:47 2017 -0400 Stage topic 'hdf5-root-prefer' Topic-id: 23072 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/587 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=669391ed39fd9c2c68fb2339fc4afa584b6b61c5 commit 669391ed39fd9c2c68fb2339fc4afa584b6b61c5 Merge: 1a30fdc 4b49c9a Author: Brad King AuthorDate: Mon Mar 20 19:01:37 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:47 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1a30fdceb121248619c14469e8ec827f1d6e223c commit 1a30fdceb121248619c14469e8ec827f1d6e223c Merge: c2fa617 6bd28fd Author: Brad King AuthorDate: Mon Mar 20 18:46:57 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 08:57:46 2017 -0400 Stage topic 'ml/FindBoost-1.64.0-beta' Topic-id: 23111 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/590 ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 - Help/module/CheckIPOSupported.rst | 1 - Help/release/dev/CheckIPOSupported.rst | 6 - Modules/CheckIPOSupported.cmake | 215 -------------------- Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 - Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 - Modules/CheckIPOSupported/foo.c | 4 - Modules/CheckIPOSupported/foo.cpp | 4 - Modules/CheckIPOSupported/main.c | 6 - Modules/CheckIPOSupported/main.cpp | 6 - Modules/Platform/Linux-Intel.cmake | 5 - Tests/RunCMake/CMakeLists.txt | 1 - Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 - .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 - .../CheckIPOSupported/default-lang-none-result.txt | 1 - .../CheckIPOSupported/default-lang-none-stderr.txt | 7 - .../CheckIPOSupported/default-lang-none.cmake | 1 - .../not-supported-by-cmake-result.txt | 1 - .../not-supported-by-cmake-stderr.txt | 6 - .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 - .../not-supported-by-compiler-result.txt | 1 - .../not-supported-by-compiler-stderr.txt | 6 - .../not-supported-by-compiler.cmake | 4 - .../CheckIPOSupported/save-to-result.cmake | 22 -- .../unparsed-arguments-result.txt | 1 - .../unparsed-arguments-stderr.txt | 5 - .../CheckIPOSupported/unparsed-arguments.cmake | 1 - .../CheckIPOSupported/user-lang-fortran-result.txt | 1 - .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 - .../CheckIPOSupported/user-lang-fortran.cmake | 1 - .../CheckIPOSupported/user-lang-unknown-result.txt | 1 - .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 - .../CheckIPOSupported/user-lang-unknown.cmake | 1 - 33 files changed, 353 deletions(-) delete mode 100644 Help/module/CheckIPOSupported.rst delete mode 100644 Help/release/dev/CheckIPOSupported.rst delete mode 100644 Modules/CheckIPOSupported.cmake delete mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in delete mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in delete mode 100644 Modules/CheckIPOSupported/foo.c delete mode 100644 Modules/CheckIPOSupported/foo.cpp delete mode 100644 Modules/CheckIPOSupported/main.c delete mode 100644 Modules/CheckIPOSupported/main.cpp delete mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt delete mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-526-gf84d1cd Message-ID: <20170321131503.95AB6F9AEE@public.kitware.com> 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 2bf434acb27f64aca0b397971078693f52ec166c (commit) discards 1895981eeb0f68d729bb07b53cc5adb1330b80f3 (commit) discards 84b16147206b2c4195c647ef359c2ace8c8cc172 (commit) via f84d1cd2cd72a6f399b51d29d332d49194795337 (commit) via b99cdd26b8e237500f6bdfdbffa55a15568f8dfb (commit) via 5606622e61e7f6eba74326510cea8dd0128ab2aa (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 (2bf434acb27f64aca0b397971078693f52ec166c) \ N -- N -- N (f84d1cd2cd72a6f399b51d29d332d49194795337) 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=f84d1cd2cd72a6f399b51d29d332d49194795337 commit f84d1cd2cd72a6f399b51d29d332d49194795337 Merge: b99cdd2 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 09:10:52 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b99cdd26b8e237500f6bdfdbffa55a15568f8dfb commit b99cdd26b8e237500f6bdfdbffa55a15568f8dfb Merge: 9c77016 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 09:10:09 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5606622e61e7f6eba74326510cea8dd0128ab2aa commit 5606622e61e7f6eba74326510cea8dd0128ab2aa Author: Domen Vrankar AuthorDate: Tue Mar 21 02:38:30 2017 +0100 Commit: Brad King CommitDate: Tue Mar 21 09:09:28 2017 -0400 CPack/RPM: fix cpack_rpm_debugsymbol_check parameter `CPACK_RPM_INSTALL_FILES` must be converted into a list before it is used as parameter to `cpack_rpm_debugsymbol_check`. Fixes: #16717 diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 722ee15..036875b 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -2141,7 +2141,9 @@ function(cpack_rpm_generate_package) if(CPACK_RPM_DEBUGINFO_PACKAGE) # only add current package files to debuginfo list if debuginfo # generation is enabled for current package - set(install_files_ "${CPACK_RPM_INSTALL_FILES}") + string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_) + string(REPLACE "\n" ";" install_files_ "${install_files_}") + string(REPLACE "\"" "" install_files_ "${install_files_}") else() unset(install_files_) endif() @@ -2199,7 +2201,11 @@ function(cpack_rpm_generate_package) cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}") else() - cpack_rpm_debugsymbol_check("${CPACK_RPM_INSTALL_FILES}" "${WDIR}") + string(STRIP "${CPACK_RPM_INSTALL_FILES}" install_files_) + string(REPLACE "\n" ";" install_files_ "${install_files_}") + string(REPLACE "\"" "" install_files_ "${install_files_}") + + cpack_rpm_debugsymbol_check("${install_files_}" "${WDIR}") endif() if(TMP_DEBUGINFO_ADDITIONAL_SOURCES) ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 Help/release/dev/cpack-rpm-debuginfo-multiple-files-fix.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-512-g0e8b83a Message-ID: <20170321140503.4A411FA71A@public.kitware.com> 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 0e8b83a1b75b64cd6985595d396a77446ec49e56 (commit) via 5c6feab206c3b267ad2facbf4898d7e238efd5fe (commit) via 6bd28fd235f75d150b1a4849c5b134f5e2766764 (commit) via 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f (commit) from 851a5d1d3a80e4c3c4812bcb8073511f98c2ccea (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 6 +++--- Modules/FindHDF5.cmake | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-526-gd139fb4 Message-ID: <20170321140503.9CB1CFA693@public.kitware.com> 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 f84d1cd2cd72a6f399b51d29d332d49194795337 (commit) discards b99cdd26b8e237500f6bdfdbffa55a15568f8dfb (commit) discards 9c77016d0b73411ff724e7355060a1f67f60f7f4 (commit) discards 7009951dfcd374eeb639ce69ba441af38c4c1723 (commit) discards 669391ed39fd9c2c68fb2339fc4afa584b6b61c5 (commit) discards 1a30fdceb121248619c14469e8ec827f1d6e223c (commit) discards c2fa61785ae4a2ef47eaeff0abb9bcc12c15227b (commit) discards 063b339b6ff5eef34919f4deec8bd2d94041d75e (commit) discards 9f4f53071aa048b3bb4f03b772de079d3dff9dab (commit) discards c97e0650ee2f477add5a725d30019f386235746f (commit) discards de7dd7a9113d55c8acb0614cd9ec213581391fd9 (commit) via d139fb43c5c092fdfbc53a9fe438e6c16e7566cb (commit) via 8b093328b327b59d114d3553f93bf6d30688c689 (commit) via 4a2ccc3f48bd29f21bcb36648bb6b87ee95fc6f3 (commit) via 9eb0e86640db88518c48245777baf71143f2ec42 (commit) via a3762d8b227e7c8bbc604eea2396799ac39ea95f (commit) via 075f6454092ae058add228eda8220a3680b2f9e4 (commit) via 21c4ec4ffe1c40382f6b435ff49eade31e1137f2 (commit) via 24361a455a2a3bd904433ec3b0107493d29d98ba (commit) via 845c482448e5b60f4934a48eea9c8c1e466f8fea (commit) via 0e8b83a1b75b64cd6985595d396a77446ec49e56 (commit) via 5c6feab206c3b267ad2facbf4898d7e238efd5fe (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 (f84d1cd2cd72a6f399b51d29d332d49194795337) \ N -- N -- N (d139fb43c5c092fdfbc53a9fe438e6c16e7566cb) 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=d139fb43c5c092fdfbc53a9fe438e6c16e7566cb commit d139fb43c5c092fdfbc53a9fe438e6c16e7566cb Merge: 8b09332 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:03:50 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8b093328b327b59d114d3553f93bf6d30688c689 commit 8b093328b327b59d114d3553f93bf6d30688c689 Merge: 4a2ccc3 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:03:36 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4a2ccc3f48bd29f21bcb36648bb6b87ee95fc6f3 commit 4a2ccc3f48bd29f21bcb36648bb6b87ee95fc6f3 Merge: 9eb0e86 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:03:36 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9eb0e86640db88518c48245777baf71143f2ec42 commit 9eb0e86640db88518c48245777baf71143f2ec42 Merge: a3762d8 2e900f1 Author: Brad King AuthorDate: Mon Mar 20 20:24:51 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:03:36 2017 -0400 Stage topic 'CPackComponent-use-cmake_parse_arguments' Topic-id: 23074 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/588 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3762d8b227e7c8bbc604eea2396799ac39ea95f commit a3762d8b227e7c8bbc604eea2396799ac39ea95f Merge: 0e8b83a 4b49c9a Author: Brad King AuthorDate: Mon Mar 20 19:01:37 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:03:35 2017 -0400 Stage topic 'windows-include-order' Topic-id: 23061 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/584 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=075f6454092ae058add228eda8220a3680b2f9e4 commit 075f6454092ae058add228eda8220a3680b2f9e4 Author: Brad King AuthorDate: Mon Mar 13 11:54:30 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 10:02:34 2017 -0400 Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def` files The `WINDOWS_EXPORT_ALL_SYMBOLS` target property exports all symbols found in object files explicitly given to the linker. However, the linker may also find additional symbols in dependencies and copy them into the linked binary (e.g. from `msvcrt.lib`). Provide a way to export an explicit list of such symbols by adding a `.def` file as a source file. Fixes: #16473 diff --git a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst index 06c3e6d..86711bf 100644 --- a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst +++ b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst @@ -14,6 +14,13 @@ be automatically exported and imported by callers. This simplifies porting projects to Windows by reducing the need for explicit ``dllexport`` markup, even in ``C++`` classes. +When this property is enabled, zero or more ``.def`` files may also be +specified as source files of the target. The exports named by these files +will be merged with those detected from the object files to generate a +single module definition file to be passed to the linker. This can be +used to export symbols from a ``.dll`` that are not in any of its object +files but are added by the linker from dependencies (e.g. ``msvcrt.lib``). + This property is initialized by the value of the :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` variable if it is set when a target is created. diff --git a/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst b/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst new file mode 100644 index 0000000..dfa9ef1 --- /dev/null +++ b/Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst @@ -0,0 +1,8 @@ +module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS +----------------------------------------- + +* The :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property may now + be used in combination with explicit ``.def`` files in order to + export all symbols from the object files within a target plus + an explicit list of symbols that the linker finds in dependencies + (e.g. ``msvcrt.lib``). diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 29698cf..e27424f 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1973,15 +1973,16 @@ cmGeneratorTarget::GetModuleDefinitionInfo(std::string const& config) const void cmGeneratorTarget::ComputeModuleDefinitionInfo( std::string const& config, ModuleDefinitionInfo& info) const { - std::vector sources; - this->GetModuleDefinitionSources(sources, config); + this->GetModuleDefinitionSources(info.Sources, config); info.WindowsExportAllSymbols = this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS") && this->GetPropertyAsBool("WINDOWS_EXPORT_ALL_SYMBOLS"); - if (info.WindowsExportAllSymbols) { + info.DefFileGenerated = + info.WindowsExportAllSymbols || info.Sources.size() > 1; + if (info.DefFileGenerated) { info.DefFile = this->ObjectDirectory /* has slash */ + "exports.def"; - } else if (!sources.empty()) { - info.DefFile = sources.front()->GetFullPath(); + } else if (!info.Sources.empty()) { + info.DefFile = info.Sources.front()->GetFullPath(); } } diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 92285f3..68d6ef8 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -238,7 +238,9 @@ public: struct ModuleDefinitionInfo { std::string DefFile; + bool DefFileGenerated; bool WindowsExportAllSymbols; + std::vector Sources; }; ModuleDefinitionInfo const* GetModuleDefinitionInfo( std::string const& config) const; diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 4e7d92a..d052f03 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -816,7 +816,7 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( { cmGeneratorTarget::ModuleDefinitionInfo const* mdi = gt->GetModuleDefinitionInfo(configName); - if (!mdi || !mdi->WindowsExportAllSymbols) { + if (!mdi || !mdi->DefFileGenerated) { return; } @@ -851,37 +851,47 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( cmSystemTools::Error("could not open ", objs_file.c_str()); return; } - std::vector objs; - for (std::vector::const_iterator it = - objectSources.begin(); - it != objectSources.end(); ++it) { - // Find the object file name corresponding to this source file. - std::map::const_iterator map_it = - mapping.find(*it); - // It must exist because we populated the mapping just above. - assert(!map_it->second.empty()); - std::string objFile = obj_dir + map_it->second; - objs.push_back(objFile); - } - std::vector externalObjectSources; - gt->GetExternalObjects(externalObjectSources, configName); - for (std::vector::const_iterator it = - externalObjectSources.begin(); - it != externalObjectSources.end(); ++it) { - objs.push_back((*it)->GetFullPath()); - } - gt->UseObjectLibraries(objs, configName); - for (std::vector::iterator it = objs.begin(); it != objs.end(); - ++it) { - std::string objFile = *it; - // replace $(ConfigurationName) in the object names - cmSystemTools::ReplaceString(objFile, this->GetCMakeCFGIntDir(), - configName.c_str()); - if (cmHasLiteralSuffix(objFile, ".obj")) { - fout << objFile << "\n"; + if (mdi->WindowsExportAllSymbols) { + std::vector objs; + for (std::vector::const_iterator it = + objectSources.begin(); + it != objectSources.end(); ++it) { + // Find the object file name corresponding to this source file. + std::map::const_iterator map_it = + mapping.find(*it); + // It must exist because we populated the mapping just above. + assert(!map_it->second.empty()); + std::string objFile = obj_dir + map_it->second; + objs.push_back(objFile); + } + std::vector externalObjectSources; + gt->GetExternalObjects(externalObjectSources, configName); + for (std::vector::const_iterator it = + externalObjectSources.begin(); + it != externalObjectSources.end(); ++it) { + objs.push_back((*it)->GetFullPath()); + } + + gt->UseObjectLibraries(objs, configName); + for (std::vector::iterator it = objs.begin(); + it != objs.end(); ++it) { + std::string objFile = *it; + // replace $(ConfigurationName) in the object names + cmSystemTools::ReplaceString(objFile, this->GetCMakeCFGIntDir(), + configName.c_str()); + if (cmHasLiteralSuffix(objFile, ".obj")) { + fout << objFile << "\n"; + } } } + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; + } + cmCustomCommandLines commandLines; commandLines.push_back(cmdl); cmCustomCommand command(gt->Target->GetMakefile(), outputs, empty, empty, diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 8026de9..06cca2a 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -1818,7 +1818,7 @@ void cmLocalVisualStudio7Generator::OutputTargetRules( bool addedPrelink = false; cmGeneratorTarget::ModuleDefinitionInfo const* mdi = target->GetModuleDefinitionInfo(configName); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { addedPrelink = true; std::vector commands = target->GetPreLinkCommands(); cmGlobalVisualStudioGenerator* gg = diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index 1fa8702..ed38024 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -1414,10 +1414,14 @@ void cmMakefileTargetGenerator::AppendLinkDepends( this->AppendTargetDepends(depends); // Add a dependency on the link definitions file, if any. - cmGeneratorTarget::ModuleDefinitionInfo const* mdi = - this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { - depends.push_back(mdi->DefFile); + if (cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo( + this->GetConfigName())) { + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + depends.push_back((*i)->GetFullPath()); + } } // Add a dependency on user-specified manifest files, if any. @@ -1724,7 +1728,7 @@ void cmMakefileTargetGenerator::GenDefFile( { cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (!mdi || !mdi->WindowsExportAllSymbols) { + if (!mdi || !mdi->DefFileGenerated) { return; } std::string cmd = cmSystemTools::GetCMakeCommand(); @@ -1744,15 +1748,24 @@ void cmMakefileTargetGenerator::GenDefFile( real_link_commands.insert(real_link_commands.begin(), cmd); // create a list of obj files for the -E __create_def to read cmGeneratedFileStream fout(objlist_file.c_str()); - for (std::vector::const_iterator i = this->Objects.begin(); - i != this->Objects.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { + + if (mdi->WindowsExportAllSymbols) { + for (std::vector::const_iterator i = this->Objects.begin(); + i != this->Objects.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { + fout << *i << "\n"; + } + } + for (std::vector::const_iterator i = + this->ExternalObjects.begin(); + i != this->ExternalObjects.end(); ++i) { fout << *i << "\n"; } } - for (std::vector::const_iterator i = - this->ExternalObjects.begin(); - i != this->ExternalObjects.end(); ++i) { - fout << *i << "\n"; + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; } } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 300618f..cd1407d 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -978,7 +978,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() // maybe create .def file from list of objects cmGeneratorTarget::ModuleDefinitionInfo const* mdi = gt.GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { std::string cmakeCommand = this->GetLocalGenerator()->ConvertToOutputFormat( cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL); @@ -987,18 +987,28 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() cmd += this->GetLocalGenerator()->ConvertToOutputFormat( mdi->DefFile, cmOutputConverter::SHELL); cmd += " "; - cmNinjaDeps objs = this->GetObjects(); std::string obj_list_file = mdi->DefFile + ".objs"; cmd += this->GetLocalGenerator()->ConvertToOutputFormat( obj_list_file, cmOutputConverter::SHELL); preLinkCmdLines.push_back(cmd); + // create a list of obj files for the -E __create_def to read cmGeneratedFileStream fout(obj_list_file.c_str()); - for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { - if (cmHasLiteralSuffix(*i, ".obj")) { - fout << *i << "\n"; + + if (mdi->WindowsExportAllSymbols) { + cmNinjaDeps objs = this->GetObjects(); + for (cmNinjaDeps::iterator i = objs.begin(); i != objs.end(); ++i) { + if (cmHasLiteralSuffix(*i, ".obj")) { + fout << *i << "\n"; + } } } + + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + fout << (*i)->GetFullPath() << "\n"; + } } // If we have any PRE_LINK commands, we need to go back to CMAKE_BINARY_DIR // for diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 917383d..5866950 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -212,10 +212,14 @@ cmNinjaDeps cmNinjaTargetGenerator::ComputeLinkDeps() const std::transform(deps.begin(), deps.end(), result.begin(), MapToNinjaPath()); // Add a dependency on the link definitions file, if any. - cmGeneratorTarget::ModuleDefinitionInfo const* mdi = - this->GeneratorTarget->GetModuleDefinitionInfo(this->GetConfigName()); - if (mdi && !mdi->WindowsExportAllSymbols && !mdi->DefFile.empty()) { - result.push_back(this->ConvertToNinjaPath(mdi->DefFile)); + if (cmGeneratorTarget::ModuleDefinitionInfo const* mdi = + this->GeneratorTarget->GetModuleDefinitionInfo( + this->GetConfigName())) { + for (std::vector::const_iterator i = + mdi->Sources.begin(); + i != mdi->Sources.end(); ++i) { + result.push_back(this->ConvertToNinjaPath((*i)->GetFullPath())); + } } // Add a dependency on user-specified manifest files, if any. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 4aea6f8..68f4e1d 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3162,7 +3162,7 @@ void cmVisualStudio10TargetGenerator::WriteEvents( bool addedPrelink = false; cmGeneratorTarget::ModuleDefinitionInfo const* mdi = this->GeneratorTarget->GetModuleDefinitionInfo(configName); - if (mdi && mdi->WindowsExportAllSymbols) { + if (mdi && mdi->DefFileGenerated) { addedPrelink = true; std::vector commands = this->GeneratorTarget->GetPreLinkCommands(); diff --git a/Tests/ModuleDefinition/CMakeLists.txt b/Tests/ModuleDefinition/CMakeLists.txt index bfbb343..e49ebea 100644 --- a/Tests/ModuleDefinition/CMakeLists.txt +++ b/Tests/ModuleDefinition/CMakeLists.txt @@ -4,6 +4,8 @@ project(ModuleDefinition C) # Test .def file source recognition for DLLs. add_library(example_dll SHARED example_dll.c example_dll.def) +add_library(split_dll SHARED split_dll.c split_dll_1.def split_dll_2.def) + # Test generated .def file. add_custom_command(OUTPUT example_dll_gen.def DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/example_dll_gen.def.in @@ -24,7 +26,12 @@ endif() # Test .def file source recognition for EXEs. add_executable(example_exe example_exe.c example_exe.def) set_property(TARGET example_exe PROPERTY ENABLE_EXPORTS 1) -target_link_libraries(example_exe example_dll example_dll_gen ${example_dll_2}) +target_link_libraries(example_exe + example_dll + example_dll_gen + ${example_dll_2} + split_dll + ) # Test linking to the executable. add_library(example_mod_1 MODULE example_mod_1.c) diff --git a/Tests/ModuleDefinition/example_exe.c b/Tests/ModuleDefinition/example_exe.c index dff566f..8e86fc4 100644 --- a/Tests/ModuleDefinition/example_exe.c +++ b/Tests/ModuleDefinition/example_exe.c @@ -3,15 +3,19 @@ extern int __declspec(dllimport) example_dll_gen_function(void); #ifdef EXAMPLE_DLL_2 extern int __declspec(dllimport) example_dll_2_function(void); #endif +extern int __declspec(dllimport) split_dll_1(void); +extern int __declspec(dllimport) split_dll_2(void); + int example_exe_function(void) { return 0; } + int main(void) { return example_dll_function() + example_dll_gen_function() + #ifdef EXAMPLE_DLL_2 example_dll_2_function() + #endif - example_exe_function(); + split_dll_1() + split_dll_2() + example_exe_function(); } diff --git a/Tests/ModuleDefinition/split_dll.c b/Tests/ModuleDefinition/split_dll.c new file mode 100644 index 0000000..1546a2d --- /dev/null +++ b/Tests/ModuleDefinition/split_dll.c @@ -0,0 +1,9 @@ +int split_dll_1(void) +{ + return 0; +} + +int split_dll_2(void) +{ + return 0; +} diff --git a/Tests/ModuleDefinition/split_dll_1.def b/Tests/ModuleDefinition/split_dll_1.def new file mode 100644 index 0000000..ced9f10 --- /dev/null +++ b/Tests/ModuleDefinition/split_dll_1.def @@ -0,0 +1,2 @@ +EXPORTS +split_dll_1 diff --git a/Tests/ModuleDefinition/split_dll_2.def b/Tests/ModuleDefinition/split_dll_2.def new file mode 100644 index 0000000..b072c50 --- /dev/null +++ b/Tests/ModuleDefinition/split_dll_2.def @@ -0,0 +1,2 @@ +EXPORTS +split_dll_2 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21c4ec4ffe1c40382f6b435ff49eade31e1137f2 commit 21c4ec4ffe1c40382f6b435ff49eade31e1137f2 Author: Brad King AuthorDate: Mon Mar 13 11:53:26 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 10:02:33 2017 -0400 cmGlobalVisualStudioGenerator: Simplify __create_def command generation diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index a073426..4e7d92a 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -843,9 +843,8 @@ void cmGlobalVisualStudioGenerator::AddSymbolExportCommand( std::string obj_dir_expanded = obj_dir; cmSystemTools::ReplaceString(obj_dir_expanded, this->GetCMakeCFGIntDir(), configName.c_str()); - std::string objs_file = obj_dir_expanded; - cmSystemTools::MakeDirectory(objs_file.c_str()); - objs_file += "/objects.txt"; + cmSystemTools::MakeDirectory(obj_dir_expanded); + std::string const objs_file = obj_dir_expanded + "/objects.txt"; cmdl.push_back(objs_file); cmGeneratedFileStream fout(objs_file.c_str()); if (!fout) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=24361a455a2a3bd904433ec3b0107493d29d98ba commit 24361a455a2a3bd904433ec3b0107493d29d98ba Author: Brad King AuthorDate: Thu Mar 9 16:42:09 2017 -0500 Commit: Brad King CommitDate: Tue Mar 21 10:02:33 2017 -0400 bindexplib: Add support for parsing and integrating `.def` files diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx index 823b38f..9e08b9c 100644 --- a/Source/cmcmd.cxx +++ b/Source/cmcmd.cxx @@ -258,11 +258,18 @@ int cmcmd::ExecuteCMakeCommand(std::vector& args) << "\n"; return 1; } - std::string objfile; + std::string file; bindexplib deffile; - while (cmSystemTools::GetLineFromStream(fin, objfile)) { - if (!deffile.AddObjectFile(objfile.c_str())) { - return 1; + while (cmSystemTools::GetLineFromStream(fin, file)) { + std::string const& ext = cmSystemTools::GetFilenameLastExtension(file); + if (cmSystemTools::LowerCase(ext) == ".def") { + if (!deffile.AddDefinitionFile(file.c_str())) { + return 1; + } + } else { + if (!deffile.AddObjectFile(file.c_str())) { + return 1; + } } } deffile.WriteFile(fout); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=845c482448e5b60f4934a48eea9c8c1e466f8fea commit 845c482448e5b60f4934a48eea9c8c1e466f8fea Author: Bertrand Bellenot AuthorDate: Fri Dec 9 11:22:23 2016 +0000 Commit: Brad King CommitDate: Tue Mar 21 10:02:33 2017 -0400 bindexplib: Add method for parsing and integrating `.def` files diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx index 7d61ea6..47c7565 100644 --- a/Source/bindexplib.cxx +++ b/Source/bindexplib.cxx @@ -64,7 +64,7 @@ #include "bindexplib.h" #include -#include +#include #include #include @@ -429,6 +429,34 @@ bool bindexplib::AddObjectFile(const char* filename) return DumpFile(filename, this->Symbols, this->DataSymbols); } +bool bindexplib::AddDefinitionFile(const char* filename) +{ + cmsys::ifstream infile(filename); + if (!infile) { + fprintf(stderr, "Couldn't open definition file '%s'\n", filename); + return false; + } + std::string str; + while (std::getline(infile, str)) { + // skip the LIBRAY and EXPORTS lines (if any) + if ((str.compare(0,7,"LIBRARY") == 0) || + (str.compare(0,7,"EXPORTS") == 0)) { + continue; + } + // remove leading tabs & spaces + str.erase(0, str.find_first_not_of(" \t")); + std::size_t found = str.find(" \t DATA"); + if (found != std::string::npos) { + str.erase (found, std::string::npos); + this->DataSymbols.insert(str); + } else { + this->Symbols.insert(str); + } + } + infile.close(); + return true; +} + void bindexplib::WriteFile(FILE* file) { fprintf(file,"EXPORTS \n"); diff --git a/Source/bindexplib.h b/Source/bindexplib.h index d6900ba..7f0615f 100644 --- a/Source/bindexplib.h +++ b/Source/bindexplib.h @@ -13,6 +13,7 @@ class bindexplib { public: bindexplib() {} + bool AddDefinitionFile(const char* filename); bool AddObjectFile(const char* filename); void WriteFile(FILE* file); private: ----------------------------------------------------------------------- Summary of changes: Source/bindexplib.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-514-gf589e63 Message-ID: <20170321141503.6DD1AF9F48@public.kitware.com> 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 f589e636ebc5d55ac70f4190a86c826e46efcf86 (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) from 0e8b83a1b75b64cd6985595d396a77446ec49e56 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGlobalGenerator.cxx | 15 ++++++++------- Source/cmGlobalVisualStudio7Generator.cxx | 3 +-- Source/cmGlobalVisualStudioGenerator.cxx | 3 +-- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 ++++++------- 7 files changed, 17 insertions(+), 21 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-526-gd8cd320 Message-ID: <20170321141503.B330EF9FD3@public.kitware.com> 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 d139fb43c5c092fdfbc53a9fe438e6c16e7566cb (commit) discards 8b093328b327b59d114d3553f93bf6d30688c689 (commit) discards 4a2ccc3f48bd29f21bcb36648bb6b87ee95fc6f3 (commit) discards 9eb0e86640db88518c48245777baf71143f2ec42 (commit) discards a3762d8b227e7c8bbc604eea2396799ac39ea95f (commit) via d8cd320c70b0b8bd09216ea1f878e8ca03fde810 (commit) via 1c245f110c8a9f86c4cce87047397617e1b7774b (commit) via 1469fba864562e887336b54e57327e0c77f50d0a (commit) via 56fb6804de7751fb96d97aa06e69542d85b7d084 (commit) via f589e636ebc5d55ac70f4190a86c826e46efcf86 (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 (d139fb43c5c092fdfbc53a9fe438e6c16e7566cb) \ N -- N -- N (d8cd320c70b0b8bd09216ea1f878e8ca03fde810) 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=d8cd320c70b0b8bd09216ea1f878e8ca03fde810 commit d8cd320c70b0b8bd09216ea1f878e8ca03fde810 Merge: 1c245f1 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:07:53 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c245f110c8a9f86c4cce87047397617e1b7774b commit 1c245f110c8a9f86c4cce87047397617e1b7774b Merge: 1469fba 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:07:53 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1469fba864562e887336b54e57327e0c77f50d0a commit 1469fba864562e887336b54e57327e0c77f50d0a Merge: 56fb680 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:07:52 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=56fb6804de7751fb96d97aa06e69542d85b7d084 commit 56fb6804de7751fb96d97aa06e69542d85b7d084 Merge: f589e63 2e900f1 Author: Brad King AuthorDate: Mon Mar 20 20:24:51 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:07:52 2017 -0400 Stage topic 'CPackComponent-use-cmake_parse_arguments' Topic-id: 23074 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/588 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-520-g48dc2d1 Message-ID: <20170321142503.43842FA692@public.kitware.com> 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 48dc2d122d74f47ea323066df7be33165a34fa57 (commit) via 3eda6a97aea4447113d5ca2274ba7d125c6f4bd5 (commit) via 50856e948e4d4898aaa6a811b35976bf68a11f6b (commit) via aa21a77660e6d65686807a9304610a907776816f (commit) via 50760540f8d7176efc5c10bb6e3142d80687464b (commit) via 2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f (commit) from f589e636ebc5d55ac70f4190a86c826e46efcf86 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackComponent.cmake | 50 ++++++++++-------------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-530-g941a5b3 Message-ID: <20170321142503.89397FA6AC@public.kitware.com> 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 d8cd320c70b0b8bd09216ea1f878e8ca03fde810 (commit) discards 1c245f110c8a9f86c4cce87047397617e1b7774b (commit) discards 1469fba864562e887336b54e57327e0c77f50d0a (commit) discards 56fb6804de7751fb96d97aa06e69542d85b7d084 (commit) via 941a5b301f5f32f698fb911894816d2a99300584 (commit) via 686bf9c648cee5b4d7ef3e7faa7e4eca618ee143 (commit) via 5e3bcb83e5e6788edb106688181da666bbfec341 (commit) via 48dc2d122d74f47ea323066df7be33165a34fa57 (commit) via 3eda6a97aea4447113d5ca2274ba7d125c6f4bd5 (commit) via 50856e948e4d4898aaa6a811b35976bf68a11f6b (commit) via aa21a77660e6d65686807a9304610a907776816f (commit) via 50760540f8d7176efc5c10bb6e3142d80687464b (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 (d8cd320c70b0b8bd09216ea1f878e8ca03fde810) \ N -- N -- N (941a5b301f5f32f698fb911894816d2a99300584) 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=941a5b301f5f32f698fb911894816d2a99300584 commit 941a5b301f5f32f698fb911894816d2a99300584 Merge: 686bf9c 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:24:36 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=686bf9c648cee5b4d7ef3e7faa7e4eca618ee143 commit 686bf9c648cee5b4d7ef3e7faa7e4eca618ee143 Merge: 5e3bcb8 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:24:36 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5e3bcb83e5e6788edb106688181da666bbfec341 commit 5e3bcb83e5e6788edb106688181da666bbfec341 Merge: 48dc2d1 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:24:35 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-20-g50856e9 Message-ID: <20170321142503.A19BFFA6AD@public.kitware.com> 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, release has been updated via 50856e948e4d4898aaa6a811b35976bf68a11f6b (commit) via aa21a77660e6d65686807a9304610a907776816f (commit) via 6bd28fd235f75d150b1a4849c5b134f5e2766764 (commit) via 50760540f8d7176efc5c10bb6e3142d80687464b (commit) via 04a11f16ba2c83c118e1efe86f9994765353b3ff (commit) via 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f (commit) from f2d250adf0c1740805480c7df4c6cbf565d2072a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CSharpUtilities.cmake | 32 ++++++++++++++++++++------------ Modules/FindBoost.cmake | 6 +++--- Modules/FindHDF5.cmake | 2 +- 3 files changed, 24 insertions(+), 16 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-532-g8fa2244 Message-ID: <20170321143503.7A692FA5BF@public.kitware.com> 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 8fa2244be202a1de02e869b1ac5a3211eb5d1520 (commit) via 2a826e330d67889c70009170020bef661195f6da (commit) from 941a5b301f5f32f698fb911894816d2a99300584 (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=8fa2244be202a1de02e869b1ac5a3211eb5d1520 commit 8fa2244be202a1de02e869b1ac5a3211eb5d1520 Merge: 941a5b3 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:33:02 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a826e330d67889c70009170020bef661195f6da commit 2a826e330d67889c70009170020bef661195f6da Author: Brad King AuthorDate: Tue Mar 21 10:26:02 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 10:28:46 2017 -0400 Revert "CPack/NSIS: Sign the uninstaller" This reverts commit 09475c29 (CPack/NSIS: Sign the uninstaller, 2017-03-01). It fails the CPackComponents test on Linux due to `${NSISDIR}\makensis` not existing. diff --git a/Help/release/dev/cpack-sign-uninstaller.rst b/Help/release/dev/cpack-sign-uninstaller.rst deleted file mode 100644 index ff2b402..0000000 --- a/Help/release/dev/cpack-sign-uninstaller.rst +++ /dev/null @@ -1,5 +0,0 @@ -cpack-sign_uninstaller ----------------------- - -* The :module:`CPackNSIS` module learned to sign the uninstaller - when using :variable:`CPACK_NSIS_SIGN_UNINSTALLER` variable. diff --git a/Modules/CPackNSIS.cmake b/Modules/CPackNSIS.cmake index 37fedf3..18d1871 100644 --- a/Modules/CPackNSIS.cmake +++ b/Modules/CPackNSIS.cmake @@ -133,10 +133,6 @@ # "doc/cmake- at CMake_VERSION_MAJOR@. at CMake_VERSION_MINOR@/cmake.html" # "CMake Help" "https://cmake.org" "CMake Web Site") # -# .. variable:: CPACK_NSIS_SIGN_UNINSTALLER -# -# Specify a command to use for signing the uninstaller. The command will -# be invoked a path to the uninstaller as its only argument. #FIXME we should put NSIS specific code here #FIXME but I'm not doing it because I'm not able to test it... diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index ffa6277..9001888 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -29,33 +29,6 @@ ;-------------------------------- ;General -!ifdef INNER - OutFile "$%TEMP%\tempinstaller.exe" - SetCompress off ; for speed -!else - ; Call makensis again, defining INNER. This writes an installer for us which, when - ; it is invoked, will just write the uninstaller to some location, and then exit. - ; Be sure to substitute the name of this script here. - - !system "$\"${NSISDIR}\makensis$\" /DINNER $\"@CPACK_TEMPORARY_DIRECTORY@/../project.nsi$\"" = 0 - - ; So now run that installer we just created as %TEMP%\tempinstaller.exe. Since it - ; calls quit the return value isn't zero. - - !system "$%TEMP%\tempinstaller.exe" = 2 - - ; That will have written an uninstaller binary for us. Now we sign it with your - ; favourite code signing tool. - - !tempfile INCEXIST - !system 'if exist "@CPACK_NSIS_SIGN_UNINSTALLER@" echo !define HAVE_SIGN_UNINST > "${INCEXIST}"' - !include "${INCEXIST}" - !delfile "${INCEXIST}" - !ifdef HAVE_SIGN_UNINST - !system '"@CPACK_NSIS_SIGN_UNINSTALLER@" "$%TEMP%\Uninstall.exe"' = 0 - !endif - - ; Good. Now we can carry on writing the real installer. ;Name and file Name "@CPACK_NSIS_PACKAGE_NAME@" @@ -63,7 +36,6 @@ ;Set compression SetCompressor @CPACK_NSIS_COMPRESSOR@ -!endif ;Require administrator access RequestExecutionLevel admin @@ -587,10 +559,8 @@ FunctionEnd !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH -!ifdef INNER !insertmacro MUI_UNPAGE_CONFIRM !insertmacro MUI_UNPAGE_INSTFILES -!endif ;-------------------------------- ;Languages @@ -672,10 +642,7 @@ Section "-Core installation" WriteRegStr SHCTX "Software\@CPACK_PACKAGE_VENDOR@\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "" $INSTDIR ;Create uninstaller -!ifndef INNER - ; this packages the signed uninstaller - File "$%TEMP%\Uninstall.exe" -!endif + WriteUninstaller "$INSTDIR\Uninstall.exe" Push "DisplayName" Push "@CPACK_NSIS_DISPLAY_NAME@" Call ConditionalAddToRegisty @@ -834,7 +801,6 @@ FunctionEnd ;-------------------------------- ;Uninstaller Section -!ifdef INNER Section "Uninstall" ReadRegStr $START_MENU SHCTX \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "StartMenu" @@ -920,7 +886,6 @@ Section "Uninstall" Call un.RemoveFromPath doNotRemoveFromPath: SectionEnd -!endif ;-------------------------------- ; determine admin versus local install @@ -933,14 +898,6 @@ SectionEnd ; "Program Files" for AllUsers, "My Documents" for JustMe... Function .onInit -!ifdef INNER - ; If INNER is defined, then we aren't supposed to do anything except write out - ; the installer. This is better than processing a command line option as it means - ; this entire code path is not present in the final (real) installer. - - WriteUninstaller "$%TEMP%\Uninstall.exe" - Quit ; just bail out quickly when running the "inner" installer -!endif StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@" "UninstallString" ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-sign-uninstaller.rst | 5 --- Modules/CPackNSIS.cmake | 4 --- Modules/NSIS.template.in | 45 +-------------------------- 3 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 Help/release/dev/cpack-sign-uninstaller.rst hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 10:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 10:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-535-g8ef278a Message-ID: <20170321144502.C5534E78B0@public.kitware.com> 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 8ef278aad3a55c747e5af1ead666a44b25ce5bcd (commit) via 6c8326749fccd37afd5343d926d650c87ecdfb9f (commit) via fdb2ba2521998397d97d466b10a8ac2458363625 (commit) from 8fa2244be202a1de02e869b1ac5a3211eb5d1520 (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=8ef278aad3a55c747e5af1ead666a44b25ce5bcd commit 8ef278aad3a55c747e5af1ead666a44b25ce5bcd Merge: 8fa2244 6c83267 Author: Brad King AuthorDate: Tue Mar 21 14:43:44 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 10:43:46 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6c8326749fccd37afd5343d926d650c87ecdfb9f commit 6c8326749fccd37afd5343d926d650c87ecdfb9f Author: Ruslan Baratov AuthorDate: Sat Mar 11 19:56:00 2017 +0800 Commit: Ruslan Baratov CommitDate: Tue Mar 21 22:38:53 2017 +0800 Tests for 'CheckIPOSupported' module diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 5157b9f..217f0d5 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -293,6 +293,7 @@ add_RunCMake_test(target_link_libraries) add_RunCMake_test(target_compile_features) add_RunCMake_test(CheckModules) +add_RunCMake_test(CheckIPOSupported) add_RunCMake_test(CommandLine -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}) add_RunCMake_test(CommandLineTar) diff --git a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt new file mode 100644 index 0000000..a0effc9 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.0) +project(${RunCMake_TEST} NONE) +include(CheckIPOSupported) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake new file mode 100644 index 0000000..e304c61 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -0,0 +1,9 @@ +include(RunCMake) + +run_cmake(unparsed-arguments) +run_cmake(user-lang-unknown) +run_cmake(user-lang-fortran) +run_cmake(default-lang-none) +run_cmake(not-supported-by-cmake) +run_cmake(not-supported-by-compiler) +run_cmake(save-to-result) diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt b/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt b/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt new file mode 100644 index 0000000..dc2c3ad --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt @@ -0,0 +1,7 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(no C/CXX/Fortran languages found in ENABLED_LANGUAGES + global property\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + default-lang-none\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake b/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake new file mode 100644 index 0000000..0a2ac69 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake @@ -0,0 +1 @@ +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt new file mode 100644 index 0000000..f63f30f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(CMake doesn't support IPO for current compiler\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + not-supported-by-cmake\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake new file mode 100644 index 0000000..6f61f7e --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake @@ -0,0 +1,3 @@ +project(${RunCMake_TEST} LANGUAGES C) +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt new file mode 100644 index 0000000..73e2f26 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(compiler doesn't support IPO\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + not-supported-by-compiler\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake new file mode 100644 index 0000000..652cfd5 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake @@ -0,0 +1,4 @@ +project(${RunCMake_TEST} LANGUAGES C) +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) +check_ipo_supported() diff --git a/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake b/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake new file mode 100644 index 0000000..f76db72 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/save-to-result.cmake @@ -0,0 +1,22 @@ +project(${RunCMake_TEST} LANGUAGES C) +check_ipo_supported(RESULT result OUTPUT output) + +string(COMPARE EQUAL "${result}" "" is_empty) +if(is_empty) + message(FATAL_ERROR "Result variable is empty") +endif() + +string(COMPARE EQUAL "${result}" "YES" is_yes) +string(COMPARE EQUAL "${result}" "NO" is_no) + +if(is_yes) + # Compiler supports IPO +elseif(is_no) + # Compiler doesn't support IPO, output should not be empty. + string(COMPARE EQUAL "${output}" "" is_empty) + if(is_empty) + message(FATAL_ERROR "Output is empty") + endif() +else() + message(FATAL_ERROR "Unexpected result: ${result}") +endif() diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt new file mode 100644 index 0000000..a3fee53 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + Unparsed arguments: xxx +Call Stack \(most recent call first\): + unparsed-arguments\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake new file mode 100644 index 0000000..3ee7326 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake @@ -0,0 +1 @@ +check_ipo_supported(RESULT result OUTPUT output xxx) diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt new file mode 100644 index 0000000..2cb595d --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(Fortran is not supported\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + user-lang-fortran\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake new file mode 100644 index 0000000..275dbd9 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake @@ -0,0 +1 @@ +check_ipo_supported(LANGUAGES "Fortran") diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt new file mode 100644 index 0000000..278ba0b --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt @@ -0,0 +1,6 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + IPO is not supported \(language\(s\) 'UnknownLanguage' not supported\)\. +Call Stack \(most recent call first\): + .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) + user-lang-unknown\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake new file mode 100644 index 0000000..ac743ad --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake @@ -0,0 +1 @@ +check_ipo_supported(LANGUAGES UnknownLanguage) ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/module/CheckIPOSupported.rst | 1 + Help/release/dev/CheckIPOSupported.rst | 6 + Modules/CheckIPOSupported.cmake | 215 ++++++++++++++++++++ Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 + Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 + Modules/CheckIPOSupported/foo.c | 4 + Modules/CheckIPOSupported/foo.cpp | 4 + Modules/CheckIPOSupported/main.c | 6 + Modules/CheckIPOSupported/main.cpp | 6 + Modules/Platform/Linux-Intel.cmake | 5 + Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 + .../default-lang-none-result.txt} | 0 .../CheckIPOSupported/default-lang-none-stderr.txt | 7 + .../CheckIPOSupported/default-lang-none.cmake | 1 + .../not-supported-by-cmake-result.txt} | 0 .../not-supported-by-cmake-stderr.txt | 6 + .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 + .../not-supported-by-compiler-result.txt} | 0 .../not-supported-by-compiler-stderr.txt | 6 + .../not-supported-by-compiler.cmake | 4 + .../CheckIPOSupported/save-to-result.cmake | 22 ++ .../unparsed-arguments-result.txt} | 0 .../unparsed-arguments-stderr.txt | 5 + .../CheckIPOSupported/unparsed-arguments.cmake | 1 + .../user-lang-fortran-result.txt} | 0 .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 + .../CheckIPOSupported/user-lang-fortran.cmake | 1 + .../user-lang-unknown-result.txt} | 0 .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 + .../CheckIPOSupported/user-lang-unknown.cmake | 1 + 33 files changed, 347 insertions(+) create mode 100644 Help/module/CheckIPOSupported.rst create mode 100644 Help/release/dev/CheckIPOSupported.rst create mode 100644 Modules/CheckIPOSupported.cmake create mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in create mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in create mode 100644 Modules/CheckIPOSupported/foo.c create mode 100644 Modules/CheckIPOSupported/foo.cpp create mode 100644 Modules/CheckIPOSupported/main.c create mode 100644 Modules/CheckIPOSupported/main.cpp create mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/default-lang-none-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake create mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/unparsed-arguments-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-fortran-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-unknown-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 11:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 11:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-537-g8e3c673 Message-ID: <20170321151502.2D5A1E1AAE@public.kitware.com> 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 8e3c673adebb25f95ca63a55d7ebf2b87c1f3e83 (commit) via 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 (commit) from 8ef278aad3a55c747e5af1ead666a44b25ce5bcd (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=8e3c673adebb25f95ca63a55d7ebf2b87c1f3e83 commit 8e3c673adebb25f95ca63a55d7ebf2b87c1f3e83 Merge: 8ef278a 18009aa Author: Brad King AuthorDate: Tue Mar 21 15:13:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 11:13:13 2017 -0400 Stage topic 'libarchive-backport-rc4-crypto-rec' Topic-id: 23145 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/598 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=18009aaf5e1d8a436f251b6f70ac46bcad1ad768 commit 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 Author: Brad King AuthorDate: Tue Mar 21 11:05:28 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 11:09:25 2017 -0400 libarchive: backport rc4 crypto requirement update Backport upstream libarchive commit 70f497f456 (As per Cryptographic Requirements, 2017-03-19). Discard more bytes of the RC4 keystream to reduce the possibility of non-random bytes. diff --git a/Utilities/cmlibarchive/libarchive/archive_random.c b/Utilities/cmlibarchive/libarchive/archive_random.c index a20b9b1..fcea6c6 100644 --- a/Utilities/cmlibarchive/libarchive/archive_random.c +++ b/Utilities/cmlibarchive/libarchive/archive_random.c @@ -222,7 +222,7 @@ arc4_stir(void) * Discard early keystream, as per recommendations in: * "(Not So) Random Shuffles of RC4" by Ilya Mironov. */ - for (i = 0; i < 1024; i++) + for (i = 0; i < 3072; i++) (void)arc4_getbyte(); arc4_count = 1600000; } ----------------------------------------------------------------------- Summary of changes: Utilities/cmlibarchive/libarchive/archive_random.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 11:25:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 11:25:01 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-539-g7a329ac Message-ID: <20170321152502.01BD6FA52F@public.kitware.com> 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 7a329acab4fb6cad9900245d18120401546f6e25 (commit) via feaea0658c9cbd4345f698a22452fe3a08a194a3 (commit) from 8e3c673adebb25f95ca63a55d7ebf2b87c1f3e83 (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=7a329acab4fb6cad9900245d18120401546f6e25 commit 7a329acab4fb6cad9900245d18120401546f6e25 Merge: 8e3c673 feaea06 Author: Brad King AuthorDate: Tue Mar 21 15:16:33 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 11:16:35 2017 -0400 Stage topic 'cuda_no_ninja_response_support' Topic-id: 23138 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/596 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=feaea0658c9cbd4345f698a22452fe3a08a194a3 commit feaea0658c9cbd4345f698a22452fe3a08a194a3 Author: Robert Maynard AuthorDate: Tue Mar 21 08:38:45 2017 -0400 Commit: Robert Maynard CommitDate: Tue Mar 21 11:09:18 2017 -0400 CUDA: Disable support for using response files. diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index b172478..4fc664d 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -753,11 +753,10 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement() cmGlobalNinjaGenerator& globalGen = *this->GetGlobalGenerator(); - int commandLineLengthLimit = -1; - if (!this->ForceResponseFile()) { - commandLineLengthLimit = calculateCommandLineLengthLimit( - globalGen.GetRuleCmdLength(this->LanguageLinkerDeviceRule())); - } + // Device linking currently doesn't support response files so + // do not check if the user has explicitly forced a response file. + int const commandLineLengthLimit = calculateCommandLineLengthLimit( + globalGen.GetRuleCmdLength(this->LanguageLinkerDeviceRule())); const std::string rspfile = std::string(cmake::GetCMakeFilesDirectoryPostSlash()) + @@ -1048,8 +1047,10 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() } cmGlobalNinjaGenerator& globalGen = *this->GetGlobalGenerator(); + bool const lang_supports_response = + !(this->TargetLinkLanguage == "RC" || this->TargetLinkLanguage == "CUDA"); int commandLineLengthLimit = -1; - if (!this->ForceResponseFile()) { + if (!lang_supports_response || !this->ForceResponseFile()) { commandLineLengthLimit = calculateCommandLineLengthLimit( globalGen.GetRuleCmdLength(this->LanguageLinkerRule())); } diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index b1f26e4..c952026 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -405,7 +405,8 @@ void cmNinjaTargetGenerator::WriteCompileRule(const std::string& lang) std::string rspcontent; std::string responseFlag; - if (lang != "RC" && this->ForceResponseFile()) { + bool const lang_supports_response = !(lang == "RC" || lang == "CUDA"); + if (lang_supports_response && this->ForceResponseFile()) { rspfile = "$RSP_FILE"; responseFlag = "@" + rspfile; rspcontent = " $DEFINES $INCLUDES $FLAGS"; @@ -930,9 +931,10 @@ void cmNinjaTargetGenerator::WriteObjectBuildStatement( this->SetMsvcTargetPdbVariable(vars); - bool const isRC = (language == "RC"); + bool const lang_supports_response = + !(language == "RC" || language == "CUDA"); int const commandLineLengthLimit = - ((!isRC && this->ForceResponseFile())) ? -1 : 0; + ((lang_supports_response && this->ForceResponseFile())) ? -1 : 0; std::string const rspfile = objectFileName + ".rsp"; this->GetGlobalGenerator()->WriteBuild( ----------------------------------------------------------------------- Summary of changes: Source/cmNinjaNormalTargetGenerator.cxx | 13 +++++++------ Source/cmNinjaTargetGenerator.cxx | 8 +++++--- 2 files changed, 12 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 13:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 13:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-544-gc8c9513 Message-ID: <20170321172504.4EA85FA37F@public.kitware.com> 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 c8c951303612b50a721e6b2a73064f0afe869b53 (commit) via 2c55c143c8648869ef4042bc980b55f76a51d3a9 (commit) via 63c0ba5ff136bcca413567e2073d4a8c7702f416 (commit) via 9753d4c27e61f1ed90061c9a65a7a30a16062405 (commit) via 2df8aa0c804038e7812b7acf47d5530d967d7ad7 (commit) from 7a329acab4fb6cad9900245d18120401546f6e25 (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=c8c951303612b50a721e6b2a73064f0afe869b53 commit c8c951303612b50a721e6b2a73064f0afe869b53 Merge: 7a329ac 2c55c14 Author: Brad King AuthorDate: Tue Mar 21 17:17:05 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 13:17:07 2017 -0400 Stage topic 'FindHDF5-optional-no-config' Topic-id: 23148 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/599 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2c55c143c8648869ef4042bc980b55f76a51d3a9 commit 2c55c143c8648869ef4042bc980b55f76a51d3a9 Merge: 63c0ba5 9753d4c Author: Brad King AuthorDate: Tue Mar 21 13:12:16 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 13:12:16 2017 -0400 Merge branch 'backport-FindHDF5-optional-no-config' into FindHDF5-optional-no-config diff --cc Modules/FindHDF5.cmake index 65af021,1005635..1e2ea69 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@@ -99,8 -92,8 +99,11 @@@ # ``HDF5_ROOT`` # Specify the path to the HDF5 installation to use. # +# ``HDF5_FIND_DEBUG`` +# Set to a true value to get some extra debugging output. ++# + # ``HDF5_NO_FIND_PACKAGE_CONFIG_FILE`` + # Set to a true value to skip trying to find ``hdf5-config.cmake``. # This module is maintained by Will Dicharry . https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=63c0ba5ff136bcca413567e2073d4a8c7702f416 commit 63c0ba5ff136bcca413567e2073d4a8c7702f416 Author: Brad King AuthorDate: Tue Mar 21 13:02:36 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 13:11:36 2017 -0400 FindHDF5: Improve HDF5_ROOT and HDF5_FIND_DEBUG documentation diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index ff19866..65af021 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -96,9 +96,11 @@ # # The following variable can be set to guide the search for HDF5 libraries and includes: # -# HDF5_ROOT +# ``HDF5_ROOT`` +# Specify the path to the HDF5 installation to use. # -# Set HDF5_FIND_DEBUG to true to get some extra debugging output. +# ``HDF5_FIND_DEBUG`` +# Set to a true value to get some extra debugging output. # This module is maintained by Will Dicharry . https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9753d4c27e61f1ed90061c9a65a7a30a16062405 commit 9753d4c27e61f1ed90061c9a65a7a30a16062405 Author: Brad King AuthorDate: Tue Mar 21 13:03:40 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 13:07:07 2017 -0400 FindHDF5: Add option to skip finding package configuration file Some projects may not be prepared to use the imported targets defined by the HDF5 package configuration file. Give users a way to skip this part of the search. Issue: #16718 diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 1c48763..1005635 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -91,6 +91,9 @@ # # ``HDF5_ROOT`` # Specify the path to the HDF5 installation to use. +# +# ``HDF5_NO_FIND_PACKAGE_CONFIG_FILE`` +# Set to a true value to skip trying to find ``hdf5-config.cmake``. # This module is maintained by Will Dicharry . @@ -391,7 +394,7 @@ else() endif() # Try to find HDF5 using an installed hdf5-config.cmake -if(NOT HDF5_FOUND) +if(NOT HDF5_FOUND AND NOT HDF5_NO_FIND_PACKAGE_CONFIG_FILE) find_package(HDF5 QUIET NO_MODULE HINTS ${HDF5_ROOT} ${_HDF5_SEARCH_OPTS} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2df8aa0c804038e7812b7acf47d5530d967d7ad7 commit 2df8aa0c804038e7812b7acf47d5530d967d7ad7 Author: Brad King AuthorDate: Tue Mar 21 13:02:36 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 13:02:36 2017 -0400 FindHDF5: Improve HDF5_ROOT variable documentation diff --git a/Modules/FindHDF5.cmake b/Modules/FindHDF5.cmake index 65a825d..1c48763 100644 --- a/Modules/FindHDF5.cmake +++ b/Modules/FindHDF5.cmake @@ -89,7 +89,8 @@ # # The following variable can be set to guide the search for HDF5 libraries and includes: # -# HDF5_ROOT +# ``HDF5_ROOT`` +# Specify the path to the HDF5 installation to use. # This module is maintained by Will Dicharry . ----------------------------------------------------------------------- Summary of changes: Modules/FindHDF5.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 15:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 15:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-522-gdc4d6ef Message-ID: <20170321190509.DA7F7FA6AC@public.kitware.com> 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 dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (commit) via 7d22203912bdab5eeefe532d7e644f43c6446925 (commit) from 48dc2d122d74f47ea323066df7be33165a34fa57 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 15:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 15:05:10 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-546-g578970f Message-ID: <20170321190510.8F965FA6A2@public.kitware.com> 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 c8c951303612b50a721e6b2a73064f0afe869b53 (commit) discards 7a329acab4fb6cad9900245d18120401546f6e25 (commit) discards 8e3c673adebb25f95ca63a55d7ebf2b87c1f3e83 (commit) discards 8ef278aad3a55c747e5af1ead666a44b25ce5bcd (commit) discards 8fa2244be202a1de02e869b1ac5a3211eb5d1520 (commit) discards 941a5b301f5f32f698fb911894816d2a99300584 (commit) discards 686bf9c648cee5b4d7ef3e7faa7e4eca618ee143 (commit) discards 5e3bcb83e5e6788edb106688181da666bbfec341 (commit) via 578970f39c22e255cfc8bc16f21ddb96988dbb30 (commit) via e6e6044808a2c6f1e6f6a1f423786bef231e840a (commit) via e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 (commit) via f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 (commit) via 92ac01490d4c2f4d857081a3cad635b5bf79c695 (commit) via b96f5f213757e49fe22c95e113082acdff914475 (commit) via a0de070acb18f0245bc90933ed2fe1cc4c2a04fa (commit) via a53e172260a62c11aa285326b2e23b78ec12f36c (commit) via dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (commit) via 7d22203912bdab5eeefe532d7e644f43c6446925 (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 (c8c951303612b50a721e6b2a73064f0afe869b53) \ N -- N -- N (578970f39c22e255cfc8bc16f21ddb96988dbb30) 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=578970f39c22e255cfc8bc16f21ddb96988dbb30 commit 578970f39c22e255cfc8bc16f21ddb96988dbb30 Merge: e6e6044 2c55c14 Author: Brad King AuthorDate: Tue Mar 21 17:17:05 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:20 2017 -0400 Stage topic 'FindHDF5-optional-no-config' Topic-id: 23148 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/599 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6e6044808a2c6f1e6f6a1f423786bef231e840a commit e6e6044808a2c6f1e6f6a1f423786bef231e840a Merge: e3483f9 feaea06 Author: Brad King AuthorDate: Tue Mar 21 15:16:33 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:20 2017 -0400 Stage topic 'cuda_no_ninja_response_support' Topic-id: 23138 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/596 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 commit e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 Merge: f3edfbd 18009aa Author: Brad King AuthorDate: Tue Mar 21 15:13:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:19 2017 -0400 Stage topic 'libarchive-backport-rc4-crypto-rec' Topic-id: 23145 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/598 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 commit f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 Merge: 92ac014 6c83267 Author: Brad King AuthorDate: Tue Mar 21 14:43:44 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:18 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92ac01490d4c2f4d857081a3cad635b5bf79c695 commit 92ac01490d4c2f4d857081a3cad635b5bf79c695 Merge: b96f5f2 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:18 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b96f5f213757e49fe22c95e113082acdff914475 commit b96f5f213757e49fe22c95e113082acdff914475 Merge: a0de070 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:17 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a0de070acb18f0245bc90933ed2fe1cc4c2a04fa commit a0de070acb18f0245bc90933ed2fe1cc4c2a04fa Merge: a53e172 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:17 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a53e172260a62c11aa285326b2e23b78ec12f36c commit a53e172260a62c11aa285326b2e23b78ec12f36c Merge: dc4d6ef 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:03:16 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 15:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 15:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-548-g6f5459e Message-ID: <20170321193502.BE4B1FA6DA@public.kitware.com> 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 6f5459e67de1d0f0ed40dd2abef86a295b52cd7f (commit) via 805706b36df2eb31f35c1142e50dac6621683cac (commit) from 578970f39c22e255cfc8bc16f21ddb96988dbb30 (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=6f5459e67de1d0f0ed40dd2abef86a295b52cd7f commit 6f5459e67de1d0f0ed40dd2abef86a295b52cd7f Merge: 578970f 805706b Author: Brad King AuthorDate: Tue Mar 21 19:27:56 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 21 15:27:58 2017 -0400 Stage topic 'ninja-fortran-depfile-fix' Topic-id: 23158 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/601 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=805706b36df2eb31f35c1142e50dac6621683cac commit 805706b36df2eb31f35c1142e50dac6621683cac Author: Brad King AuthorDate: Tue Mar 21 15:16:03 2017 -0400 Commit: Brad King CommitDate: Tue Mar 21 15:19:01 2017 -0400 Ninja: Fix Fortran `include` dependency on generated file Work around upstream ninja issue 1251 by converting include directories used by our Fortran dependency scanner to the same path format that we use in preprocessor `-I` flags and in the `build.ninja` manifest. Fixes: #16722 diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index b1f26e4..2e2c53d 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -978,7 +978,9 @@ void cmNinjaTargetGenerator::WriteTargetDependInfo(std::string const& lang) lang, this->GetConfigName()); for (std::vector::iterator i = includes.begin(); i != includes.end(); ++i) { - tdi_include_dirs.append(*i); + // Convert the include directories the same way we do for -I flags. + // See upstream ninja issue 1251. + tdi_include_dirs.append(this->ConvertToNinjaPath(*i)); } Json::Value& tdi_linked_target_dirs = tdi["linked-target-dirs"] = ----------------------------------------------------------------------- Summary of changes: Source/cmNinjaTargetGenerator.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 21:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 21:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-548-g6f5459e Message-ID: <20170322010503.B877BFA6AC@public.kitware.com> 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, nightly has been updated discards f5594b1892838f1721f703e2d062652fca0791ef (commit) discards c88ba48302201816b1438f0647a3577b4291ce37 (commit) discards 47705d78573e31d517e3a61f8109dfa7af9ca938 (commit) discards 84faf37444eb5882eb41b0491302a8a9b93f6b2c (commit) discards 1f39ec883542971bcbf6532c719e1949ebad2877 (commit) discards 193ea34cfd698147f6c88dd145b31a46fd9e3042 (commit) discards 063b339b6ff5eef34919f4deec8bd2d94041d75e (commit) discards 9f4f53071aa048b3bb4f03b772de079d3dff9dab (commit) discards c97e0650ee2f477add5a725d30019f386235746f (commit) discards de7dd7a9113d55c8acb0614cd9ec213581391fd9 (commit) discards e115396c973013a8d04701fc5351c453a5286678 (commit) via 6f5459e67de1d0f0ed40dd2abef86a295b52cd7f (commit) via 805706b36df2eb31f35c1142e50dac6621683cac (commit) via 578970f39c22e255cfc8bc16f21ddb96988dbb30 (commit) via e6e6044808a2c6f1e6f6a1f423786bef231e840a (commit) via e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 (commit) via f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 (commit) via 92ac01490d4c2f4d857081a3cad635b5bf79c695 (commit) via b96f5f213757e49fe22c95e113082acdff914475 (commit) via a0de070acb18f0245bc90933ed2fe1cc4c2a04fa (commit) via a53e172260a62c11aa285326b2e23b78ec12f36c (commit) via dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (commit) via 7d22203912bdab5eeefe532d7e644f43c6446925 (commit) via 2c55c143c8648869ef4042bc980b55f76a51d3a9 (commit) via 63c0ba5ff136bcca413567e2073d4a8c7702f416 (commit) via 9753d4c27e61f1ed90061c9a65a7a30a16062405 (commit) via 2df8aa0c804038e7812b7acf47d5530d967d7ad7 (commit) via 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 (commit) via feaea0658c9cbd4345f698a22452fe3a08a194a3 (commit) via 6c8326749fccd37afd5343d926d650c87ecdfb9f (commit) via 2a826e330d67889c70009170020bef661195f6da (commit) via 48dc2d122d74f47ea323066df7be33165a34fa57 (commit) via 3eda6a97aea4447113d5ca2274ba7d125c6f4bd5 (commit) via f589e636ebc5d55ac70f4190a86c826e46efcf86 (commit) via 075f6454092ae058add228eda8220a3680b2f9e4 (commit) via 21c4ec4ffe1c40382f6b435ff49eade31e1137f2 (commit) via 24361a455a2a3bd904433ec3b0107493d29d98ba (commit) via 845c482448e5b60f4934a48eea9c8c1e466f8fea (commit) via 0e8b83a1b75b64cd6985595d396a77446ec49e56 (commit) via 5c6feab206c3b267ad2facbf4898d7e238efd5fe (commit) via 5606622e61e7f6eba74326510cea8dd0128ab2aa (commit) via 851a5d1d3a80e4c3c4812bcb8073511f98c2ccea (commit) via 93e18d8e1342f6533891c9e40ffac5542d61d2f8 (commit) via 50856e948e4d4898aaa6a811b35976bf68a11f6b (commit) via aa21a77660e6d65686807a9304610a907776816f (commit) via 50760540f8d7176efc5c10bb6e3142d80687464b (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 (f5594b1892838f1721f703e2d062652fca0791ef) \ N -- N -- N (6f5459e67de1d0f0ed40dd2abef86a295b52cd7f) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 11 +++-- Help/release/dev/cpack-sign-uninstaller.rst | 5 --- Modules/CPackNSIS.cmake | 4 -- Modules/CPackRPM.cmake | 10 ++++- Modules/FindHDF5.cmake | 11 +++-- Modules/NSIS.template.in | 45 +------------------- Source/CMakeVersion.cmake | 2 +- Source/bindexplib.cxx | 4 +- Source/cmIfCommand.cxx | 20 ++++++++- Source/cmIfCommand.h | 2 + Source/cmNinjaNormalTargetGenerator.cxx | 13 +++--- Source/cmNinjaTargetGenerator.cxx | 12 ++++-- .../not-supported-by-compiler.cmake | 2 +- Tests/RunCMake/if/RunCMakeTest.cmake | 4 ++ .../duplicate-deep-else-result.txt} | 0 Tests/RunCMake/if/duplicate-deep-else-stderr.txt | 4 ++ Tests/RunCMake/if/duplicate-deep-else.cmake | 7 +++ .../duplicate-else-after-elseif-result.txt} | 0 .../if/duplicate-else-after-elseif-stderr.txt | 4 ++ .../RunCMake/if/duplicate-else-after-elseif.cmake | 5 +++ .../duplicate-else-result.txt} | 0 Tests/RunCMake/if/duplicate-else-stderr.txt | 4 ++ Tests/RunCMake/if/duplicate-else.cmake | 4 ++ .../misplaced-elseif-result.txt} | 0 Tests/RunCMake/if/misplaced-elseif-stderr.txt | 4 ++ Tests/RunCMake/if/misplaced-elseif.cmake | 4 ++ Utilities/cmlibarchive/libarchive/archive_random.c | 2 +- 27 files changed, 106 insertions(+), 77 deletions(-) delete mode 100644 Help/release/dev/cpack-sign-uninstaller.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-deep-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-deep-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-deep-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-after-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/misplaced-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/misplaced-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/misplaced-elseif.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 21 21:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 21 Mar 2017 21:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-522-gdc4d6ef Message-ID: <20170322010503.D2525FA6AD@public.kitware.com> 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, nightly-master has been updated via dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (commit) via 7d22203912bdab5eeefe532d7e644f43c6446925 (commit) via 48dc2d122d74f47ea323066df7be33165a34fa57 (commit) via 3eda6a97aea4447113d5ca2274ba7d125c6f4bd5 (commit) via f589e636ebc5d55ac70f4190a86c826e46efcf86 (commit) via 0e8b83a1b75b64cd6985595d396a77446ec49e56 (commit) via 5c6feab206c3b267ad2facbf4898d7e238efd5fe (commit) via 851a5d1d3a80e4c3c4812bcb8073511f98c2ccea (commit) via 50856e948e4d4898aaa6a811b35976bf68a11f6b (commit) via aa21a77660e6d65686807a9304610a907776816f (commit) via 6bd28fd235f75d150b1a4849c5b134f5e2766764 (commit) via 50760540f8d7176efc5c10bb6e3142d80687464b (commit) via 2e900f1ec56b82b08fcd1a847a3c7317ebad2e2f (commit) via 8214061d1aa52d3bc5a3d0f218b1db8d8e8d743f (commit) via 4b49c9a245db870ab2359495083a6839be3ed9df (commit) from 3be5896e013492cbe1cf65c1c61822b68d9d59c4 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 11 +++++-- Modules/CPackComponent.cmake | 50 +++++++---------------------- Modules/FindBoost.cmake | 6 ++-- Modules/FindHDF5.cmake | 2 +- Source/CMakeVersion.cmake | 2 +- Source/cmExportCommand.cxx | 1 - Source/cmFindPackageCommand.cxx | 1 - Source/cmGlobalGenerator.cxx | 15 +++++---- Source/cmGlobalVisualStudio7Generator.cxx | 3 +- Source/cmGlobalVisualStudioGenerator.cxx | 3 +- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmakemain.cxx | 13 ++++---- 12 files changed, 41 insertions(+), 68 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 00:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 00:05:10 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-523-g564add4 Message-ID: <20170322040510.D0495FA66F@public.kitware.com> 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 564add478dd49f3c444b0f92b22991ea02da30b5 (commit) from dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 00:05:11 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 00:05:11 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-549-ge125f0d Message-ID: <20170322040511.7D7D5FA675@public.kitware.com> 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 6f5459e67de1d0f0ed40dd2abef86a295b52cd7f (commit) discards 578970f39c22e255cfc8bc16f21ddb96988dbb30 (commit) discards e6e6044808a2c6f1e6f6a1f423786bef231e840a (commit) discards e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 (commit) discards f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 (commit) discards 92ac01490d4c2f4d857081a3cad635b5bf79c695 (commit) discards b96f5f213757e49fe22c95e113082acdff914475 (commit) discards a0de070acb18f0245bc90933ed2fe1cc4c2a04fa (commit) discards a53e172260a62c11aa285326b2e23b78ec12f36c (commit) via e125f0d100dc5085c783344ef131807f58a50800 (commit) via 52f0588c14fc1b708b26bdcb522fd13074ef6302 (commit) via 8aadd020004c7106ef16e2fb3e855fe13db78e50 (commit) via baadd789d981fc47f8b56c54472e6106946b0211 (commit) via 4fd4d4c48195e7a41d0fc05aa6db5c19959c0fa3 (commit) via 9e9a9ebb062320896c4735ac71ae5362c9882488 (commit) via b3f791af4ba1e1cb6c7de95cac88c8244f97e535 (commit) via 6ba0f1b929884a8ab41a4969e328cb3f4f18780c (commit) via 067685a69563f74aaf7b8ab138e6017f776340d7 (commit) via 564add478dd49f3c444b0f92b22991ea02da30b5 (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 (6f5459e67de1d0f0ed40dd2abef86a295b52cd7f) \ N -- N -- N (e125f0d100dc5085c783344ef131807f58a50800) 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=e125f0d100dc5085c783344ef131807f58a50800 commit e125f0d100dc5085c783344ef131807f58a50800 Merge: 52f0588 805706b Author: Brad King AuthorDate: Tue Mar 21 19:27:56 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:24 2017 -0400 Stage topic 'ninja-fortran-depfile-fix' Topic-id: 23158 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/601 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52f0588c14fc1b708b26bdcb522fd13074ef6302 commit 52f0588c14fc1b708b26bdcb522fd13074ef6302 Merge: 8aadd02 2c55c14 Author: Brad King AuthorDate: Tue Mar 21 17:17:05 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:24 2017 -0400 Stage topic 'FindHDF5-optional-no-config' Topic-id: 23148 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/599 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8aadd020004c7106ef16e2fb3e855fe13db78e50 commit 8aadd020004c7106ef16e2fb3e855fe13db78e50 Merge: baadd78 feaea06 Author: Brad King AuthorDate: Tue Mar 21 15:16:33 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:24 2017 -0400 Stage topic 'cuda_no_ninja_response_support' Topic-id: 23138 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/596 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=baadd789d981fc47f8b56c54472e6106946b0211 commit baadd789d981fc47f8b56c54472e6106946b0211 Merge: 4fd4d4c 18009aa Author: Brad King AuthorDate: Tue Mar 21 15:13:09 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:24 2017 -0400 Stage topic 'libarchive-backport-rc4-crypto-rec' Topic-id: 23145 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/598 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4fd4d4c48195e7a41d0fc05aa6db5c19959c0fa3 commit 4fd4d4c48195e7a41d0fc05aa6db5c19959c0fa3 Merge: 9e9a9eb 6c83267 Author: Brad King AuthorDate: Tue Mar 21 14:43:44 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:23 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9e9a9ebb062320896c4735ac71ae5362c9882488 commit 9e9a9ebb062320896c4735ac71ae5362c9882488 Merge: b3f791a 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:23 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b3f791af4ba1e1cb6c7de95cac88c8244f97e535 commit b3f791af4ba1e1cb6c7de95cac88c8244f97e535 Merge: 6ba0f1b 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:22 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6ba0f1b929884a8ab41a4969e328cb3f4f18780c commit 6ba0f1b929884a8ab41a4969e328cb3f4f18780c Merge: 067685a 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:22 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=067685a69563f74aaf7b8ab138e6017f776340d7 commit 067685a69563f74aaf7b8ab138e6017f776340d7 Merge: 564add4 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 00:01:22 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 03:15:13 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 03:15:13 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-551-g5379a6a Message-ID: <20170322071513.92063F5365@public.kitware.com> 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 5379a6a630d988cd12532413e988aaaa24fb462f (commit) via ca2ece6a3c74b3873c0dcb475a6fb354d9c33d78 (commit) from e125f0d100dc5085c783344ef131807f58a50800 (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=5379a6a630d988cd12532413e988aaaa24fb462f commit 5379a6a630d988cd12532413e988aaaa24fb462f Merge: e125f0d ca2ece6 Author: Gregor Jasny AuthorDate: Wed Mar 22 07:13:08 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 03:13:27 2017 -0400 Stage topic '16624-blas-lapack-documentation' Topic-id: 23163 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/603 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ca2ece6a3c74b3873c0dcb475a6fb354d9c33d78 commit ca2ece6a3c74b3873c0dcb475a6fb354d9c33d78 Author: Gregor Jasny AuthorDate: Tue Mar 21 21:38:54 2017 +0100 Commit: Gregor Jasny CommitDate: Tue Mar 21 21:38:54 2017 +0100 FindBLAS/LAPACK: Format documentation Closes #16624 diff --git a/Modules/FindBLAS.cmake b/Modules/FindBLAS.cmake index 853a6b4..2684617 100644 --- a/Modules/FindBLAS.cmake +++ b/Modules/FindBLAS.cmake @@ -32,13 +32,32 @@ # all the possibilities # BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK # -# ######### ## List of vendors (BLA_VENDOR) valid in this module # -# Goto,OpenBLAS,ATLAS PhiPACK,CXML,DXML,SunPerf,SCSL,SGIMATH,IBMESSL, -# Intel10_32 (intel mkl v10 32 bit),Intel10_64lp (intel mkl v10 64 bit, -# lp thread model, lp64 model), # Intel10_64lp_seq (intel mkl v10 64 -# bit,sequential code, lp64 model), # Intel( older versions of mkl 32 -# and 64 bit), ACML,ACML_MP,ACML_GPU,Apple, NAS, Generic C/CXX should be -# enabled to use Intel mkl +# List of vendors (BLA_VENDOR) valid in this module: +# +# * Goto +# * OpenBLAS +# * ATLAS PhiPACK +# * CXML +# * DXML +# * SunPerf +# * SCSL +# * SGIMATH +# * IBMESSL +# * Intel10_32 (intel mkl v10 32 bit) +# * Intel10_64lp (intel mkl v10 64 bit, lp thread model, lp64 model) +# * Intel10_64lp_seq (intel mkl v10 64 bit, sequential code, lp64 model) +# * Intel (older versions of mkl 32 and 64 bit) +# * ACML +# * ACML_MP +# * ACML_GPU +# * Apple +# * NAS +# * Generic +# +# .. note:: +# +# C/CXX should be enabled to use Intel mkl +# include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake) include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake) diff --git a/Modules/FindLAPACK.cmake b/Modules/FindLAPACK.cmake index fe6af91..a451e6c 100644 --- a/Modules/FindLAPACK.cmake +++ b/Modules/FindLAPACK.cmake @@ -33,8 +33,15 @@ # all the possibilities # BLA_F95 if set on tries to find the f95 interfaces for BLAS/LAPACK # -# ## List of vendors (BLA_VENDOR) valid in this module # Intel(mkl), -# OpenBLAS, ACML,Apple, NAS, Generic +# List of vendors (BLA_VENDOR) valid in this module: +# +# * Intel(mkl) +# * OpenBLAS +# * ACML +# * Apple +# * NAS +# * Generic +# set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) ----------------------------------------------------------------------- Summary of changes: Modules/FindBLAS.cmake | 33 ++++++++++++++++++++++++++------- Modules/FindLAPACK.cmake | 11 +++++++++-- 2 files changed, 35 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 08:15:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 08:15:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-525-g7ebbe4f Message-ID: <20170322121506.C7844E4D23@public.kitware.com> 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 7ebbe4f9d853a5823ef47a13b53ef7e1f469bd2e (commit) via 5fe3630677a9525428de0f5cd40d4846bd6b9113 (commit) from 564add478dd49f3c444b0f92b22991ea02da30b5 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 7 +++++++ 1 file changed, 7 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 08:15:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 08:15:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-553-gcc58090 Message-ID: <20170322121509.541C0F6162@public.kitware.com> 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 5379a6a630d988cd12532413e988aaaa24fb462f (commit) discards e125f0d100dc5085c783344ef131807f58a50800 (commit) discards 52f0588c14fc1b708b26bdcb522fd13074ef6302 (commit) discards 8aadd020004c7106ef16e2fb3e855fe13db78e50 (commit) discards baadd789d981fc47f8b56c54472e6106946b0211 (commit) discards 4fd4d4c48195e7a41d0fc05aa6db5c19959c0fa3 (commit) discards 9e9a9ebb062320896c4735ac71ae5362c9882488 (commit) discards b3f791af4ba1e1cb6c7de95cac88c8244f97e535 (commit) discards 6ba0f1b929884a8ab41a4969e328cb3f4f18780c (commit) discards 067685a69563f74aaf7b8ab138e6017f776340d7 (commit) via cc58090bb01be9c687ae307201040e4d9f27ca23 (commit) via 77e5b3b683470c27f3cfef73c0b5c777383ef3d9 (commit) via 64601c441f5ea323ba2b16fd351760cb4dce6120 (commit) via 8d241e1d1ff431e289681e3701ebe372f46725e4 (commit) via 34f0e30ba3330a641c90e8e9b4121c00d98b8b1e (commit) via 90bd013cadfd642c046183a29b88d2c20d822347 (commit) via 6b2b25256d6a91c19984c57a44705f988b874cd0 (commit) via 9d56545bf15fe9a22f8468ea1a7263701577bdbf (commit) via e49f1273a98ff9fabadeab307d49e43e10960215 (commit) via ee1a83a7d5baa835174d9916aac5df9e11b2a2eb (commit) via 7ebbe4f9d853a5823ef47a13b53ef7e1f469bd2e (commit) via 5fe3630677a9525428de0f5cd40d4846bd6b9113 (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 (5379a6a630d988cd12532413e988aaaa24fb462f) \ N -- N -- N (cc58090bb01be9c687ae307201040e4d9f27ca23) 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=cc58090bb01be9c687ae307201040e4d9f27ca23 commit cc58090bb01be9c687ae307201040e4d9f27ca23 Merge: 77e5b3b ca2ece6 Author: Gregor Jasny AuthorDate: Wed Mar 22 07:13:08 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:57 2017 -0400 Stage topic '16624-blas-lapack-documentation' Topic-id: 23163 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/603 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=77e5b3b683470c27f3cfef73c0b5c777383ef3d9 commit 77e5b3b683470c27f3cfef73c0b5c777383ef3d9 Merge: 64601c4 805706b Author: Brad King AuthorDate: Tue Mar 21 19:27:56 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:57 2017 -0400 Stage topic 'ninja-fortran-depfile-fix' Topic-id: 23158 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/601 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=64601c441f5ea323ba2b16fd351760cb4dce6120 commit 64601c441f5ea323ba2b16fd351760cb4dce6120 Merge: 8d241e1 2c55c14 Author: Brad King AuthorDate: Tue Mar 21 17:17:05 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:56 2017 -0400 Stage topic 'FindHDF5-optional-no-config' Topic-id: 23148 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/599 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8d241e1d1ff431e289681e3701ebe372f46725e4 commit 8d241e1d1ff431e289681e3701ebe372f46725e4 Merge: 34f0e30 feaea06 Author: Brad King AuthorDate: Tue Mar 21 15:16:33 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:56 2017 -0400 Stage topic 'cuda_no_ninja_response_support' Topic-id: 23138 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/596 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=34f0e30ba3330a641c90e8e9b4121c00d98b8b1e commit 34f0e30ba3330a641c90e8e9b4121c00d98b8b1e Merge: 90bd013 18009aa Author: Brad King AuthorDate: Tue Mar 21 15:13:09 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:56 2017 -0400 Stage topic 'libarchive-backport-rc4-crypto-rec' Topic-id: 23145 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/598 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=90bd013cadfd642c046183a29b88d2c20d822347 commit 90bd013cadfd642c046183a29b88d2c20d822347 Merge: 6b2b252 6c83267 Author: Brad King AuthorDate: Tue Mar 21 14:43:44 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:56 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6b2b25256d6a91c19984c57a44705f988b874cd0 commit 6b2b25256d6a91c19984c57a44705f988b874cd0 Merge: 9d56545 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:55 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9d56545bf15fe9a22f8468ea1a7263701577bdbf commit 9d56545bf15fe9a22f8468ea1a7263701577bdbf Merge: e49f127 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:55 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e49f1273a98ff9fabadeab307d49e43e10960215 commit e49f1273a98ff9fabadeab307d49e43e10960215 Merge: ee1a83a 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:55 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ee1a83a7d5baa835174d9916aac5df9e11b2a2eb commit ee1a83a7d5baa835174d9916aac5df9e11b2a2eb Merge: 7ebbe4f 93e18d8 Author: Gregor Jasny AuthorDate: Tue Mar 21 11:59:09 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:08:55 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 7 +++++++ 1 file changed, 7 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 08:45:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 08:45:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-553-ged2a6b4 Message-ID: <20170322124504.D404EF87B7@public.kitware.com> 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 cc58090bb01be9c687ae307201040e4d9f27ca23 (commit) discards 77e5b3b683470c27f3cfef73c0b5c777383ef3d9 (commit) discards 64601c441f5ea323ba2b16fd351760cb4dce6120 (commit) discards 8d241e1d1ff431e289681e3701ebe372f46725e4 (commit) discards 34f0e30ba3330a641c90e8e9b4121c00d98b8b1e (commit) discards 90bd013cadfd642c046183a29b88d2c20d822347 (commit) discards 6b2b25256d6a91c19984c57a44705f988b874cd0 (commit) discards 9d56545bf15fe9a22f8468ea1a7263701577bdbf (commit) discards e49f1273a98ff9fabadeab307d49e43e10960215 (commit) discards ee1a83a7d5baa835174d9916aac5df9e11b2a2eb (commit) discards 93e18d8e1342f6533891c9e40ffac5542d61d2f8 (commit) via ed2a6b4d93647fa6f997ecf8432aa065936d9da1 (commit) via b3897c5f838e186e4ab665ee7edc588a788d0f2b (commit) via bfa7ca02038fadd1c72e26c844d7cb2c16b8faf5 (commit) via bb7a241f86c9235e97cb09a103c29bb5680dd354 (commit) via 38c9a42b6b0e8f3ef9d14448e6b01cf6b26771dc (commit) via 213cd05b5264eeaa48f3e8ddb0eac0359b412ae1 (commit) via 1d75187ea1f1519b0a390928e18e2e8158b72685 (commit) via bb24b117d8fed6692207ac066ac6fc46867cec93 (commit) via 266820722c96de7e899a755429c970c1e393665b (commit) via df189da83628ccad7819ab48574073c9dc3ecb2f (commit) via edac95b955afdea2d129b32b029bf845dc29cb71 (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 (cc58090bb01be9c687ae307201040e4d9f27ca23) \ N -- N -- N (ed2a6b4d93647fa6f997ecf8432aa065936d9da1) 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=ed2a6b4d93647fa6f997ecf8432aa065936d9da1 commit ed2a6b4d93647fa6f997ecf8432aa065936d9da1 Merge: b3897c5 edac95b Author: Brad King AuthorDate: Wed Mar 22 12:44:22 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:44:24 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b3897c5f838e186e4ab665ee7edc588a788d0f2b commit b3897c5f838e186e4ab665ee7edc588a788d0f2b Merge: bfa7ca0 ca2ece6 Author: Gregor Jasny AuthorDate: Wed Mar 22 07:13:08 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:59 2017 -0400 Stage topic '16624-blas-lapack-documentation' Topic-id: 23163 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/603 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bfa7ca02038fadd1c72e26c844d7cb2c16b8faf5 commit bfa7ca02038fadd1c72e26c844d7cb2c16b8faf5 Merge: bb7a241 805706b Author: Brad King AuthorDate: Tue Mar 21 19:27:56 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:59 2017 -0400 Stage topic 'ninja-fortran-depfile-fix' Topic-id: 23158 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/601 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bb7a241f86c9235e97cb09a103c29bb5680dd354 commit bb7a241f86c9235e97cb09a103c29bb5680dd354 Merge: 38c9a42 2c55c14 Author: Brad King AuthorDate: Tue Mar 21 17:17:05 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:58 2017 -0400 Stage topic 'FindHDF5-optional-no-config' Topic-id: 23148 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/599 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=38c9a42b6b0e8f3ef9d14448e6b01cf6b26771dc commit 38c9a42b6b0e8f3ef9d14448e6b01cf6b26771dc Merge: 213cd05 feaea06 Author: Brad King AuthorDate: Tue Mar 21 15:16:33 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:58 2017 -0400 Stage topic 'cuda_no_ninja_response_support' Topic-id: 23138 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/596 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=213cd05b5264eeaa48f3e8ddb0eac0359b412ae1 commit 213cd05b5264eeaa48f3e8ddb0eac0359b412ae1 Merge: 1d75187 18009aa Author: Brad King AuthorDate: Tue Mar 21 15:13:09 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:58 2017 -0400 Stage topic 'libarchive-backport-rc4-crypto-rec' Topic-id: 23145 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/598 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1d75187ea1f1519b0a390928e18e2e8158b72685 commit 1d75187ea1f1519b0a390928e18e2e8158b72685 Merge: bb24b11 6c83267 Author: Brad King AuthorDate: Tue Mar 21 14:43:44 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:58 2017 -0400 Stage topic 'wip.ipo.module' Topic-id: 22904 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/558 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bb24b117d8fed6692207ac066ac6fc46867cec93 commit bb24b117d8fed6692207ac066ac6fc46867cec93 Merge: 2668207 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:57 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=266820722c96de7e899a755429c970c1e393665b commit 266820722c96de7e899a755429c970c1e393665b Merge: df189da 075f6454 Author: Brad King AuthorDate: Tue Mar 21 14:03:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:57 2017 -0400 Stage topic 'module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS' Topic-id: 23029 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/581 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=df189da83628ccad7819ab48574073c9dc3ecb2f commit df189da83628ccad7819ab48574073c9dc3ecb2f Merge: 7ebbe4f 5606622 Author: Brad King AuthorDate: Tue Mar 21 13:10:48 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:43:57 2017 -0400 Stage topic 'cpack-rpm-debuginfo-multiple-files-fix' Topic-id: 23135 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/595 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=edac95b955afdea2d129b32b029bf845dc29cb71 commit edac95b955afdea2d129b32b029bf845dc29cb71 Author: Gregor Jasny AuthorDate: Mon Mar 20 21:49:59 2017 +0100 Commit: Brad King CommitDate: Wed Mar 22 08:42:35 2017 -0400 cmIfCommand: Reject duplicate else() and misplaced elseif() Closes: #14335 diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index a8fa4f9..421c3dd 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -57,8 +57,19 @@ bool cmIfFunctionBlocker::IsFunctionBlocked(const cmListFileFunction& lff, // watch for our state change if (scopeDepth == 0 && !cmSystemTools::Strucmp(this->Functions[c].Name.c_str(), "else")) { + + if (this->ElseSeen) { + cmListFileBacktrace bt = mf.GetBacktrace(this->Functions[c]); + mf.GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, + "A duplicate ELSE command was found inside an IF block.", bt); + cmSystemTools::SetFatalErrorOccured(); + return true; + } + this->IsBlocking = this->HasRun; this->HasRun = true; + this->ElseSeen = true; // if trace is enabled, print a (trivially) evaluated "else" // statement @@ -68,6 +79,15 @@ bool cmIfFunctionBlocker::IsFunctionBlocked(const cmListFileFunction& lff, } else if (scopeDepth == 0 && !cmSystemTools::Strucmp(this->Functions[c].Name.c_str(), "elseif")) { + if (this->ElseSeen) { + cmListFileBacktrace bt = mf.GetBacktrace(this->Functions[c]); + mf.GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, + "An ELSEIF command was found after an ELSE command.", bt); + cmSystemTools::SetFatalErrorOccured(); + return true; + } + if (this->HasRun) { this->IsBlocking = true; } else { diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h index 56eef30..f81db67 100644 --- a/Source/cmIfCommand.h +++ b/Source/cmIfCommand.h @@ -21,6 +21,7 @@ public: cmIfFunctionBlocker() { this->HasRun = false; + this->ElseSeen = false; this->ScopeDepth = 0; } ~cmIfFunctionBlocker() CM_OVERRIDE {} @@ -32,6 +33,7 @@ public: std::vector Functions; bool IsBlocking; bool HasRun; + bool ElseSeen; unsigned int ScopeDepth; }; diff --git a/Tests/RunCMake/if/RunCMakeTest.cmake b/Tests/RunCMake/if/RunCMakeTest.cmake index 077d00a..f54edf7 100644 --- a/Tests/RunCMake/if/RunCMakeTest.cmake +++ b/Tests/RunCMake/if/RunCMakeTest.cmake @@ -3,7 +3,11 @@ include(RunCMake) run_cmake(InvalidArgument1) run_cmake(IsDirectory) run_cmake(IsDirectoryLong) +run_cmake(duplicate-deep-else) +run_cmake(duplicate-else) +run_cmake(duplicate-else-after-elseif) run_cmake(elseif-message) +run_cmake(misplaced-elseif) run_cmake(MatchesSelf) diff --git a/Tests/RunCMake/if/duplicate-deep-else-result.txt b/Tests/RunCMake/if/duplicate-deep-else-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-deep-else-stderr.txt b/Tests/RunCMake/if/duplicate-deep-else-stderr.txt new file mode 100644 index 0000000..ac2335c --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-deep-else.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-deep-else.cmake b/Tests/RunCMake/if/duplicate-deep-else.cmake new file mode 100644 index 0000000..94f06de --- /dev/null +++ b/Tests/RunCMake/if/duplicate-deep-else.cmake @@ -0,0 +1,7 @@ +if(0) +else() + if(0) + else() + else() + endif() +endif() diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt b/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt b/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt new file mode 100644 index 0000000..ba6765c --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-else-after-elseif.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-else-after-elseif.cmake b/Tests/RunCMake/if/duplicate-else-after-elseif.cmake new file mode 100644 index 0000000..d1d4ac1 --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-after-elseif.cmake @@ -0,0 +1,5 @@ +if(0) +elseif(0) +else() +else() +endif() diff --git a/Tests/RunCMake/if/duplicate-else-result.txt b/Tests/RunCMake/if/duplicate-else-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/duplicate-else-stderr.txt b/Tests/RunCMake/if/duplicate-else-stderr.txt new file mode 100644 index 0000000..e0dd01f --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at duplicate-else.cmake:[0-9]+ \(else\): + A duplicate ELSE command was found inside an IF block. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/duplicate-else.cmake b/Tests/RunCMake/if/duplicate-else.cmake new file mode 100644 index 0000000..14a03ac --- /dev/null +++ b/Tests/RunCMake/if/duplicate-else.cmake @@ -0,0 +1,4 @@ +if(0) +else() +else() +endif() diff --git a/Tests/RunCMake/if/misplaced-elseif-result.txt b/Tests/RunCMake/if/misplaced-elseif-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/if/misplaced-elseif-stderr.txt b/Tests/RunCMake/if/misplaced-elseif-stderr.txt new file mode 100644 index 0000000..c4b0266 --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif-stderr.txt @@ -0,0 +1,4 @@ +CMake Error at misplaced-elseif.cmake:[0-9]+ \(elseif\): + An ELSEIF command was found after an ELSE command. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/if/misplaced-elseif.cmake b/Tests/RunCMake/if/misplaced-elseif.cmake new file mode 100644 index 0000000..d27f24e --- /dev/null +++ b/Tests/RunCMake/if/misplaced-elseif.cmake @@ -0,0 +1,4 @@ +if(0) +else() +elseif(1) +endif() ----------------------------------------------------------------------- Summary of changes: Source/cmIfCommand.cxx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 08:55:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 08:55:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-547-g10cbb87 Message-ID: <20170322125509.AE88CFA674@public.kitware.com> 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 10cbb87fa3a5f81dc9dedd24580a64e062047887 (commit) via 56c39d88363b3a0518bde1569d18ef1bdbeb01e7 (commit) via 53e2ef1bb4434081bedce3742105e378452c4c38 (commit) via b5d8a6de4815ead8b342f7862cd0726b13a03a47 (commit) via 59032a38471c27c547ed76730c2643a5457e6abd (commit) via 989484d51fa78f0fc0014212148b52c90872f57e (commit) via 053317480a12464d405490502dfde75c5fc17b1f (commit) via 805706b36df2eb31f35c1142e50dac6621683cac (commit) via 2c55c143c8648869ef4042bc980b55f76a51d3a9 (commit) via 63c0ba5ff136bcca413567e2073d4a8c7702f416 (commit) via 9753d4c27e61f1ed90061c9a65a7a30a16062405 (commit) via 2df8aa0c804038e7812b7acf47d5530d967d7ad7 (commit) via 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 (commit) via feaea0658c9cbd4345f698a22452fe3a08a194a3 (commit) via 6c8326749fccd37afd5343d926d650c87ecdfb9f (commit) via 075f6454092ae058add228eda8220a3680b2f9e4 (commit) via 21c4ec4ffe1c40382f6b435ff49eade31e1137f2 (commit) via 24361a455a2a3bd904433ec3b0107493d29d98ba (commit) via 845c482448e5b60f4934a48eea9c8c1e466f8fea (commit) via 5606622e61e7f6eba74326510cea8dd0128ab2aa (commit) via fdb2ba2521998397d97d466b10a8ac2458363625 (commit) via 4f90e7931487195b5d540fbaa5dad1c90b26cee1 (commit) from 7ebbe4f9d853a5823ef47a13b53ef7e1f469bd2e (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-modules.7.rst | 1 + Help/module/CheckIPOSupported.rst | 1 + Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst | 7 + Help/release/dev/CheckIPOSupported.rst | 6 + .../module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst | 8 + Modules/CPackRPM.cmake | 10 +- Modules/CheckIPOSupported.cmake | 215 ++++++++++++++++++++ Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 + Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 + Modules/CheckIPOSupported/foo.c | 4 + Modules/CheckIPOSupported/foo.cpp | 4 + Modules/CheckIPOSupported/main.c | 6 + Modules/CheckIPOSupported/main.cpp | 6 + Modules/FindHDF5.cmake | 11 +- Modules/Platform/Linux-Intel.cmake | 5 + Source/bindexplib.cxx | 50 +++-- Source/bindexplib.h | 1 + Source/cmGeneratorTarget.cxx | 11 +- Source/cmGeneratorTarget.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 73 ++++--- Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmMakefileTargetGenerator.cxx | 37 ++-- Source/cmNinjaNormalTargetGenerator.cxx | 33 ++- Source/cmNinjaTargetGenerator.cxx | 24 ++- Source/cmVisualStudio10TargetGenerator.cxx | 2 +- Source/cmcmd.cxx | 15 +- Tests/ModuleDefinition/CMakeLists.txt | 9 +- Tests/ModuleDefinition/example_exe.c | 6 +- Tests/ModuleDefinition/split_dll.c | 9 + Tests/ModuleDefinition/split_dll_1.def | 2 + Tests/ModuleDefinition/split_dll_2.def | 2 + Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 + .../default-lang-none-result.txt} | 0 .../CheckIPOSupported/default-lang-none-stderr.txt | 7 + .../CheckIPOSupported/default-lang-none.cmake | 1 + .../not-supported-by-cmake-result.txt} | 0 .../not-supported-by-cmake-stderr.txt | 6 + .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 + .../not-supported-by-compiler-result.txt} | 0 .../not-supported-by-compiler-stderr.txt | 6 + .../not-supported-by-compiler.cmake | 4 + .../CheckIPOSupported/save-to-result.cmake | 22 ++ .../unparsed-arguments-result.txt} | 0 .../unparsed-arguments-stderr.txt | 5 + .../CheckIPOSupported/unparsed-arguments.cmake | 1 + .../user-lang-fortran-result.txt} | 0 .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 + .../CheckIPOSupported/user-lang-fortran.cmake | 1 + .../user-lang-unknown-result.txt} | 0 .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 + .../CheckIPOSupported/user-lang-unknown.cmake | 1 + Utilities/cmlibarchive/libarchive/archive_random.c | 2 +- 54 files changed, 567 insertions(+), 96 deletions(-) create mode 100644 Help/module/CheckIPOSupported.rst create mode 100644 Help/release/dev/CheckIPOSupported.rst create mode 100644 Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst create mode 100644 Modules/CheckIPOSupported.cmake create mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in create mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in create mode 100644 Modules/CheckIPOSupported/foo.c create mode 100644 Modules/CheckIPOSupported/foo.cpp create mode 100644 Modules/CheckIPOSupported/main.c create mode 100644 Modules/CheckIPOSupported/main.cpp create mode 100644 Tests/ModuleDefinition/split_dll.c create mode 100644 Tests/ModuleDefinition/split_dll_1.def create mode 100644 Tests/ModuleDefinition/split_dll_2.def create mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/default-lang-none-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake create mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/unparsed-arguments-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-fortran-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-unknown-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 08:55:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 08:55:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-553-gc24b513 Message-ID: <20170322125509.F1A7CFA67F@public.kitware.com> 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 ed2a6b4d93647fa6f997ecf8432aa065936d9da1 (commit) discards b3897c5f838e186e4ab665ee7edc588a788d0f2b (commit) discards bfa7ca02038fadd1c72e26c844d7cb2c16b8faf5 (commit) discards bb7a241f86c9235e97cb09a103c29bb5680dd354 (commit) discards 38c9a42b6b0e8f3ef9d14448e6b01cf6b26771dc (commit) discards 213cd05b5264eeaa48f3e8ddb0eac0359b412ae1 (commit) discards 1d75187ea1f1519b0a390928e18e2e8158b72685 (commit) discards bb24b117d8fed6692207ac066ac6fc46867cec93 (commit) discards 266820722c96de7e899a755429c970c1e393665b (commit) discards df189da83628ccad7819ab48574073c9dc3ecb2f (commit) via c24b513a06200b2f3ad73e7ce71cd805420bc1aa (commit) via f16cfada5533f954e4fa29f4f083a1b70bbdfdf6 (commit) via 96079425b326489c24478aef3513ced4e3925f85 (commit) via 10cbb87fa3a5f81dc9dedd24580a64e062047887 (commit) via 56c39d88363b3a0518bde1569d18ef1bdbeb01e7 (commit) via 53e2ef1bb4434081bedce3742105e378452c4c38 (commit) via b5d8a6de4815ead8b342f7862cd0726b13a03a47 (commit) via 59032a38471c27c547ed76730c2643a5457e6abd (commit) via 989484d51fa78f0fc0014212148b52c90872f57e (commit) via 053317480a12464d405490502dfde75c5fc17b1f (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 (ed2a6b4d93647fa6f997ecf8432aa065936d9da1) \ N -- N -- N (c24b513a06200b2f3ad73e7ce71cd805420bc1aa) 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=c24b513a06200b2f3ad73e7ce71cd805420bc1aa commit c24b513a06200b2f3ad73e7ce71cd805420bc1aa Merge: f16cfad edac95b Author: Brad King AuthorDate: Wed Mar 22 12:44:22 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:52:32 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f16cfada5533f954e4fa29f4f083a1b70bbdfdf6 commit f16cfada5533f954e4fa29f4f083a1b70bbdfdf6 Merge: 9607942 ca2ece6 Author: Gregor Jasny AuthorDate: Wed Mar 22 07:13:08 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:52:31 2017 -0400 Stage topic '16624-blas-lapack-documentation' Topic-id: 23163 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/603 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=96079425b326489c24478aef3513ced4e3925f85 commit 96079425b326489c24478aef3513ced4e3925f85 Merge: 10cbb87 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:52:31 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-553-g84a96aa Message-ID: <20170322130502.5BA6EFA746@public.kitware.com> 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 84a96aa0a57959f8552b4329d59329be6c645a4c (commit) via 849f1ec1c07826973772599a55ad1736123b7708 (commit) via 10eb329e31bf76a1abf2b9b0731a33dac8037970 (commit) via 1356ef4f8403533118ec5855b8135091243ef3e0 (commit) via 47adf51f40c488fa46b4a583d7ac43740274facc (commit) via 68115cf0ea67f9b4d75a4aa8a8dee33755807c66 (commit) from 10cbb87fa3a5f81dc9dedd24580a64e062047887 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-559-g6b86e36 Message-ID: <20170322130502.94B71FA74A@public.kitware.com> 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 c24b513a06200b2f3ad73e7ce71cd805420bc1aa (commit) discards f16cfada5533f954e4fa29f4f083a1b70bbdfdf6 (commit) discards 96079425b326489c24478aef3513ced4e3925f85 (commit) via 6b86e3618662f1d559bd0b94899aaf81232a412d (commit) via 534911e4267be0ec4940f8122a0d2685bdf711ab (commit) via a1a6df3d2df5acc99442b579c6428614b3f5ebfa (commit) via 84a96aa0a57959f8552b4329d59329be6c645a4c (commit) via 849f1ec1c07826973772599a55ad1736123b7708 (commit) via 10eb329e31bf76a1abf2b9b0731a33dac8037970 (commit) via 1356ef4f8403533118ec5855b8135091243ef3e0 (commit) via 47adf51f40c488fa46b4a583d7ac43740274facc (commit) via 68115cf0ea67f9b4d75a4aa8a8dee33755807c66 (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 (c24b513a06200b2f3ad73e7ce71cd805420bc1aa) \ N -- N -- N (6b86e3618662f1d559bd0b94899aaf81232a412d) 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=6b86e3618662f1d559bd0b94899aaf81232a412d commit 6b86e3618662f1d559bd0b94899aaf81232a412d Merge: 534911e edac95b Author: Brad King AuthorDate: Wed Mar 22 12:44:22 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:56:48 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=534911e4267be0ec4940f8122a0d2685bdf711ab commit 534911e4267be0ec4940f8122a0d2685bdf711ab Merge: a1a6df3 ca2ece6 Author: Gregor Jasny AuthorDate: Wed Mar 22 07:13:08 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:56:47 2017 -0400 Stage topic '16624-blas-lapack-documentation' Topic-id: 23163 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/603 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a1a6df3d2df5acc99442b579c6428614b3f5ebfa commit a1a6df3d2df5acc99442b579c6428614b3f5ebfa Merge: 84a96aa 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 08:56:47 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-31-g849f1ec Message-ID: <20170322130502.AFC47FA74B@public.kitware.com> 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, release has been updated via 849f1ec1c07826973772599a55ad1736123b7708 (commit) via 805706b36df2eb31f35c1142e50dac6621683cac (commit) via 10eb329e31bf76a1abf2b9b0731a33dac8037970 (commit) via 9753d4c27e61f1ed90061c9a65a7a30a16062405 (commit) via 2df8aa0c804038e7812b7acf47d5530d967d7ad7 (commit) via 1356ef4f8403533118ec5855b8135091243ef3e0 (commit) via 47adf51f40c488fa46b4a583d7ac43740274facc (commit) via 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 (commit) via feaea0658c9cbd4345f698a22452fe3a08a194a3 (commit) via 68115cf0ea67f9b4d75a4aa8a8dee33755807c66 (commit) via 5606622e61e7f6eba74326510cea8dd0128ab2aa (commit) from 50856e948e4d4898aaa6a811b35976bf68a11f6b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 10 ++++++++-- Modules/FindHDF5.cmake | 8 ++++++-- Source/cmNinjaNormalTargetGenerator.cxx | 13 +++++++------ Source/cmNinjaTargetGenerator.cxx | 12 ++++++++---- Utilities/cmlibarchive/libarchive/archive_random.c | 2 +- 5 files changed, 30 insertions(+), 15 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-557-ge24ed7a Message-ID: <20170322131502.E4A90E2BF7@public.kitware.com> 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 e24ed7ad870730304431f5cb09d90c980136639c (commit) via 6ce7e587378781931d36b17cf9e3aaf6ebc8c8fa (commit) via 5b311041f3c5b000137e6c52a9a0bba53146bc79 (commit) via ded9859c925698320cfde342651725f4a67cc3c8 (commit) from 84a96aa0a57959f8552b4329d59329be6c645a4c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindBLAS.cmake | 33 ++++++++++++++++++++++++++------- Modules/FindLAPACK.cmake | 11 +++++++++-- 2 files changed, 35 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-561-g10b21f0 Message-ID: <20170322131503.2794AE3103@public.kitware.com> 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 6b86e3618662f1d559bd0b94899aaf81232a412d (commit) discards 534911e4267be0ec4940f8122a0d2685bdf711ab (commit) discards a1a6df3d2df5acc99442b579c6428614b3f5ebfa (commit) discards ca2ece6a3c74b3873c0dcb475a6fb354d9c33d78 (commit) via 10b21f015010580ceef56d04935650658e7d7236 (commit) via b70467fc1ffb9962aeeb07ea9bd53ce7208f3ccc (commit) via e24ed7ad870730304431f5cb09d90c980136639c (commit) via 6ce7e587378781931d36b17cf9e3aaf6ebc8c8fa (commit) via 5b311041f3c5b000137e6c52a9a0bba53146bc79 (commit) via ded9859c925698320cfde342651725f4a67cc3c8 (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 (6b86e3618662f1d559bd0b94899aaf81232a412d) \ N -- N -- N (10b21f015010580ceef56d04935650658e7d7236) 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=10b21f015010580ceef56d04935650658e7d7236 commit 10b21f015010580ceef56d04935650658e7d7236 Merge: b70467f edac95b Author: Brad King AuthorDate: Wed Mar 22 12:44:22 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 09:12:45 2017 -0400 Stage topic '14335-duplicate-else' Topic-id: 23133 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/594 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b70467fc1ffb9962aeeb07ea9bd53ce7208f3ccc commit b70467fc1ffb9962aeeb07ea9bd53ce7208f3ccc Merge: e24ed7a 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 09:12:44 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-33-g5b31104 Message-ID: <20170322131503.3E66CE4742@public.kitware.com> 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, release has been updated via 5b311041f3c5b000137e6c52a9a0bba53146bc79 (commit) via ded9859c925698320cfde342651725f4a67cc3c8 (commit) from 849f1ec1c07826973772599a55ad1736123b7708 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindBLAS.cmake | 33 ++++++++++++++++++++++++++------- Modules/FindLAPACK.cmake | 11 +++++++++-- 2 files changed, 35 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-559-g5d2f30f Message-ID: <20170322132503.53AC8F9CC3@public.kitware.com> 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 5d2f30f5acbcf572a464f6f45fafaea23c7ae75a (commit) via edac95b955afdea2d129b32b029bf845dc29cb71 (commit) from e24ed7ad870730304431f5cb09d90c980136639c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/cmIfCommand.cxx | 20 ++++++++++++++++++++ Source/cmIfCommand.h | 2 ++ Tests/RunCMake/if/RunCMakeTest.cmake | 4 ++++ .../duplicate-deep-else-result.txt} | 0 Tests/RunCMake/if/duplicate-deep-else-stderr.txt | 4 ++++ Tests/RunCMake/if/duplicate-deep-else.cmake | 7 +++++++ .../duplicate-else-after-elseif-result.txt} | 0 .../if/duplicate-else-after-elseif-stderr.txt | 4 ++++ .../RunCMake/if/duplicate-else-after-elseif.cmake | 5 +++++ .../duplicate-else-result.txt} | 0 Tests/RunCMake/if/duplicate-else-stderr.txt | 4 ++++ Tests/RunCMake/if/duplicate-else.cmake | 4 ++++ .../misplaced-elseif-result.txt} | 0 Tests/RunCMake/if/misplaced-elseif-stderr.txt | 4 ++++ Tests/RunCMake/if/misplaced-elseif.cmake | 4 ++++ 15 files changed, 62 insertions(+) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-deep-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-deep-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-deep-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-after-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/misplaced-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/misplaced-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/misplaced-elseif.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-561-gad1d900 Message-ID: <20170322132503.8708BF9D40@public.kitware.com> 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 10b21f015010580ceef56d04935650658e7d7236 (commit) discards b70467fc1ffb9962aeeb07ea9bd53ce7208f3ccc (commit) via ad1d900e9fe1013dbf0edf5c01ee9065892d72ed (commit) via 5d2f30f5acbcf572a464f6f45fafaea23c7ae75a (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 (10b21f015010580ceef56d04935650658e7d7236) \ N -- N -- N (ad1d900e9fe1013dbf0edf5c01ee9065892d72ed) 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=ad1d900e9fe1013dbf0edf5c01ee9065892d72ed commit ad1d900e9fe1013dbf0edf5c01ee9065892d72ed Merge: 5d2f30f 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 09:24:58 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 09:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 09:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-561-ga16cf09 Message-ID: <20170322133502.8E1D4FA56B@public.kitware.com> 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 ad1d900e9fe1013dbf0edf5c01ee9065892d72ed (commit) via a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2 (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 (ad1d900e9fe1013dbf0edf5c01ee9065892d72ed) \ N -- N -- N (a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2) 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=a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2 commit a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2 Merge: 5d2f30f 2a826e3 Author: Brad King AuthorDate: Tue Mar 21 14:33:00 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 09:25:03 2017 -0400 Stage topic 'revert-cpack_nsis_sign_uninstaller' Topic-id: 23143 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/597 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-561-g61beaf2 Message-ID: <20170322140502.B08FFFA6E2@public.kitware.com> 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 a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2 (commit) discards 2a826e330d67889c70009170020bef661195f6da (commit) via 61beaf2735aec3a10ce8806639785403b487974b (commit) via e1ee7b4305bdf2b50640c4c500705bb4bbff47bf (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 (a16cf09e57105c0ccb3d86419b1daf72c3b0e6e2) \ N -- N -- N (61beaf2735aec3a10ce8806639785403b487974b) 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=61beaf2735aec3a10ce8806639785403b487974b commit 61beaf2735aec3a10ce8806639785403b487974b Merge: 5d2f30f e1ee7b4 Author: Brad King AuthorDate: Wed Mar 22 14:01:34 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 10:01:46 2017 -0400 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 23173 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/605 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e1ee7b4305bdf2b50640c4c500705bb4bbff47bf commit e1ee7b4305bdf2b50640c4c500705bb4bbff47bf Author: Roman W?ger AuthorDate: Wed Mar 22 13:15:24 2017 +0100 Commit: Roman W?ger CommitDate: Wed Mar 22 13:15:24 2017 +0100 CPack/NSIS: Avoid a race condition when generating the installer diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in index ffa6277..4f6aa75 100644 --- a/Modules/NSIS.template.in +++ b/Modules/NSIS.template.in @@ -30,19 +30,20 @@ ;-------------------------------- ;General !ifdef INNER - OutFile "$%TEMP%\tempinstaller.exe" + OutFile "${TEMPINSTALLER}.exe" SetCompress off ; for speed !else ; Call makensis again, defining INNER. This writes an installer for us which, when ; it is invoked, will just write the uninstaller to some location, and then exit. ; Be sure to substitute the name of this script here. - - !system "$\"${NSISDIR}\makensis$\" /DINNER $\"@CPACK_TEMPORARY_DIRECTORY@/../project.nsi$\"" = 0 + !tempfile TEMPINSTALLER + !tempfile TEMPUNINSTALLER + !system "$\"${NSISDIR}\makensis$\" /DTEMPINSTALLER=$\"${TEMPINSTALLER}$\" /DTEMPUNINSTALLER=$\"${TEMPUNINSTALLER}$\" /DINNER $\"@CPACK_TEMPORARY_DIRECTORY@/../project.nsi$\"" = 0 ; So now run that installer we just created as %TEMP%\tempinstaller.exe. Since it ; calls quit the return value isn't zero. - !system "$%TEMP%\tempinstaller.exe" = 2 + !system "$\"${TEMPINSTALLER}.exe$\"" = 2 ; That will have written an uninstaller binary for us. Now we sign it with your ; favourite code signing tool. @@ -52,7 +53,7 @@ !include "${INCEXIST}" !delfile "${INCEXIST}" !ifdef HAVE_SIGN_UNINST - !system '"@CPACK_NSIS_SIGN_UNINSTALLER@" "$%TEMP%\Uninstall.exe"' = 0 + !system '"@CPACK_NSIS_SIGN_UNINSTALLER@" "${TEMPUNINSTALLER}.exe"' = 0 !endif ; Good. Now we can carry on writing the real installer. @@ -674,7 +675,7 @@ Section "-Core installation" ;Create uninstaller !ifndef INNER ; this packages the signed uninstaller - File "$%TEMP%\Uninstall.exe" + File "/oname=Uninstall.exe" "${TEMPUNINSTALLER}.exe" !endif Push "DisplayName" Push "@CPACK_NSIS_DISPLAY_NAME@" @@ -938,7 +939,7 @@ Function .onInit ; the installer. This is better than processing a command line option as it means ; this entire code path is not present in the final (real) installer. - WriteUninstaller "$%TEMP%\Uninstall.exe" + WriteUninstaller "${TEMPUNINSTALLER}.exe" Quit ; just bail out quickly when running the "inner" installer !endif StrCmp "@CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL@" "ON" 0 inst ----------------------------------------------------------------------- Summary of changes: Help/release/dev/cpack-sign-uninstaller.rst | 5 +++ Modules/CPackNSIS.cmake | 4 +++ Modules/NSIS.template.in | 46 ++++++++++++++++++++++++++- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-562-gda802af Message-ID: <20170322141502.C2A5DF7586@public.kitware.com> 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 da802afd6e88d6cb4b562a816eee1f85e9ad1e8c (commit) via 72f534ca15674424e7e3974042921178d6b1c64c (commit) via 2192247e336364731cbeafcd63a92d3ec58c38d2 (commit) from 5d2f30f5acbcf572a464f6f45fafaea23c7ae75a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-566-gfb79b7e Message-ID: <20170322141503.4AD10F8370@public.kitware.com> 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 61beaf2735aec3a10ce8806639785403b487974b (commit) via fb79b7e3a94b17f9410cf71060230941c9a6e607 (commit) via ebfea4c683321cc6d26d872bd1ae9e16fd3daf6e (commit) via da802afd6e88d6cb4b562a816eee1f85e9ad1e8c (commit) via 72f534ca15674424e7e3974042921178d6b1c64c (commit) via 2192247e336364731cbeafcd63a92d3ec58c38d2 (commit) via b3790796a2fbae9e0558edd6ba3b0212d33669ca (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 (61beaf2735aec3a10ce8806639785403b487974b) \ N -- N -- N (fb79b7e3a94b17f9410cf71060230941c9a6e607) 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=fb79b7e3a94b17f9410cf71060230941c9a6e607 commit fb79b7e3a94b17f9410cf71060230941c9a6e607 Merge: ebfea4c b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 10:06:11 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ebfea4c683321cc6d26d872bd1ae9e16fd3daf6e commit ebfea4c683321cc6d26d872bd1ae9e16fd3daf6e Merge: da802af e1ee7b4 Author: Brad King AuthorDate: Wed Mar 22 14:01:34 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 10:06:10 2017 -0400 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 23173 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/605 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b3790796a2fbae9e0558edd6ba3b0212d33669ca commit b3790796a2fbae9e0558edd6ba3b0212d33669ca Author: Javier Mart?n AuthorDate: Mon Mar 20 18:15:22 2017 +0100 Commit: Brad King CommitDate: Mon Mar 20 16:18:57 2017 -0400 VS: Use .vfproj utility targets in Fortran-only projects For CMake projects in which only Fortran has been enabled, make the VS generator create the "support" VS projects (`INSTALL`, `ZERO_CHECK`, etc.) as Fortran projects (`.vfproj`) instead of Visual C/C++ projects (`.vcproj`). Fixes: #16719 diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index a073426..e451f3e 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -735,6 +735,25 @@ bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly( if (*languages.begin() == "Fortran") { return true; } + } else if (languages.empty()) { + // For "language-less" targets (e.g. ALL_BUILD), check if Fortran is the + // only language enabled for this project (other than RC). + if (!this->GetLanguageEnabled("Fortran")) { + return false; + } + + std::vector enabled, accepted; + accepted.push_back("Fortran"); + accepted.push_back("RC"); // Note: add in sorted order! + + this->GetEnabledLanguages(enabled); + std::sort(enabled.begin(), enabled.end()); + // True if accepted includes enabled, that is, if the set of enabled + // languages has no other elements than the accepted ones. + if (std::includes(accepted.begin(), accepted.end(), enabled.begin(), + enabled.end())) { + return true; + } } return false; } ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 21 ++++++++++++++++++++- Source/cmGlobalVisualStudioGenerator.cxx | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-566-g9a733c7 Message-ID: <20170322145503.4A9D2FA56E@public.kitware.com> 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 9a733c7bd626f457a71632da46934995da7bbd4b (commit) via 88d32ef095c06d9ff8044ccd782701951d03e65a (commit) via 352b195f8769c5e4c884c1f9d0ba6d747d533547 (commit) via 9b2f8a82e54538f7132d2e8903c7cc960b6864f7 (commit) from da802afd6e88d6cb4b562a816eee1f85e9ad1e8c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-570-g8725317 Message-ID: <20170322145503.893BAFA5A1@public.kitware.com> 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 fb79b7e3a94b17f9410cf71060230941c9a6e607 (commit) discards ebfea4c683321cc6d26d872bd1ae9e16fd3daf6e (commit) via 872531753f5216d1b6d9682923473df33f3b8860 (commit) via 0a9fe75a2d649463a7d17552546a532f6d8c3c80 (commit) via 9a733c7bd626f457a71632da46934995da7bbd4b (commit) via 88d32ef095c06d9ff8044ccd782701951d03e65a (commit) via 352b195f8769c5e4c884c1f9d0ba6d747d533547 (commit) via 9b2f8a82e54538f7132d2e8903c7cc960b6864f7 (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 (fb79b7e3a94b17f9410cf71060230941c9a6e607) \ N -- N -- N (872531753f5216d1b6d9682923473df33f3b8860) 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=872531753f5216d1b6d9682923473df33f3b8860 commit 872531753f5216d1b6d9682923473df33f3b8860 Merge: 0a9fe75 b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 10:54:44 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a9fe75a2d649463a7d17552546a532f6d8c3c80 commit 0a9fe75a2d649463a7d17552546a532f6d8c3c80 Merge: 9a733c7 e1ee7b4 Author: Brad King AuthorDate: Wed Mar 22 14:01:34 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 10:54:44 2017 -0400 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 23173 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/605 ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 10:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 10:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-35-g352b195 Message-ID: <20170322145503.A38E6FA5B5@public.kitware.com> 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, release has been updated via 352b195f8769c5e4c884c1f9d0ba6d747d533547 (commit) via 9b2f8a82e54538f7132d2e8903c7cc960b6864f7 (commit) from 5b311041f3c5b000137e6c52a9a0bba53146bc79 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 11:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 11:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-573-g377cd08 Message-ID: <20170322151504.CE1F2F73B3@public.kitware.com> 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 377cd0876d8101934496d83ab86c06cd6b2ba246 (commit) via 8f207df14de3b8141c37b8b34baae29ebda248b3 (commit) via 73f7d266825f1d301aece1286666beda9297382b (commit) from 872531753f5216d1b6d9682923473df33f3b8860 (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=377cd0876d8101934496d83ab86c06cd6b2ba246 commit 377cd0876d8101934496d83ab86c06cd6b2ba246 Merge: 8725317 8f207df Author: Brad King AuthorDate: Wed Mar 22 15:09:28 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 11:09:32 2017 -0400 Stage topic 'FindwxWidgets-vs-2017' Topic-id: 23178 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/608 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8f207df14de3b8141c37b8b34baae29ebda248b3 commit 8f207df14de3b8141c37b8b34baae29ebda248b3 Author: Brad King AuthorDate: Wed Mar 22 11:07:16 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:08:05 2017 -0400 FindwxWidgets: Add support for VS 2017 v141 toolset Issue: #16735 diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake index f1627b6..d30d35f 100644 --- a/Modules/FindwxWidgets.cmake +++ b/Modules/FindwxWidgets.cmake @@ -498,7 +498,9 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32") set(_WX_TOOL gcc) elseif(MSVC) set(_WX_TOOL vc) - if(MSVC_VERSION EQUAL 1900) + if(MSVC_VERSION EQUAL 1910) + set(_WX_TOOLVER 141) + elseif(MSVC_VERSION EQUAL 1900) set(_WX_TOOLVER 140) elseif(MSVC_VERSION EQUAL 1800) set(_WX_TOOLVER 120) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=73f7d266825f1d301aece1286666beda9297382b commit 73f7d266825f1d301aece1286666beda9297382b Author: Brad King AuthorDate: Wed Mar 22 11:05:46 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:08:05 2017 -0400 FindwxWidgets: Use `MSVC_VERSION` instead of `MSVC##` diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake index 77091f4..f1627b6 100644 --- a/Modules/FindwxWidgets.cmake +++ b/Modules/FindwxWidgets.cmake @@ -498,15 +498,15 @@ if(wxWidgets_FIND_STYLE STREQUAL "win32") set(_WX_TOOL gcc) elseif(MSVC) set(_WX_TOOL vc) - if(MSVC14) + if(MSVC_VERSION EQUAL 1900) set(_WX_TOOLVER 140) - elseif(MSVC12) + elseif(MSVC_VERSION EQUAL 1800) set(_WX_TOOLVER 120) - elseif(MSVC11) + elseif(MSVC_VERSION EQUAL 1700) set(_WX_TOOLVER 110) - elseif(MSVC10) + elseif(MSVC_VERSION EQUAL 1600) set(_WX_TOOLVER 100) - elseif(MSVC90) + elseif(MSVC_VERSION EQUAL 1500) set(_WX_TOOLVER 90) endif() if(CMAKE_SIZEOF_VOID_P EQUAL 8) ----------------------------------------------------------------------- Summary of changes: Modules/FindwxWidgets.cmake | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 11:35:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 11:35:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-577-g606c1fc Message-ID: <20170322153510.7D2CCFA6E9@public.kitware.com> 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 606c1fcdf87b319fe10f2ad100508b16f23a4e59 (commit) via fecf846701ca3a7de4875f5c4362bc79e21b0a4c (commit) via 712452e33088b1ba02c7dde10f56cd2add81deab (commit) via 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 (commit) from 377cd0876d8101934496d83ab86c06cd6b2ba246 (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=606c1fcdf87b319fe10f2ad100508b16f23a4e59 commit 606c1fcdf87b319fe10f2ad100508b16f23a4e59 Merge: 377cd08 fecf846 Author: Brad King AuthorDate: Wed Mar 22 15:29:33 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 11:29:37 2017 -0400 Stage topic 'doc-prefer-MSVC_VERSION' Topic-id: 23180 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/609 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fecf846701ca3a7de4875f5c4362bc79e21b0a4c commit fecf846701ca3a7de4875f5c4362bc79e21b0a4c Author: Brad King AuthorDate: Wed Mar 22 11:22:35 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:24:54 2017 -0400 Help: Document preference of `MSVC_VERSION` over `MSVC##` Issue: #16735 diff --git a/Help/variable/MSVC.rst b/Help/variable/MSVC.rst index 913ed08..22a087a 100644 --- a/Help/variable/MSVC.rst +++ b/Help/variable/MSVC.rst @@ -4,3 +4,5 @@ MSVC ``True`` when using Microsoft Visual C++. Set to ``true`` when the compiler is some version of Microsoft Visual C++. + +See also the :variable:`MSVC_VERSION` variable. diff --git a/Help/variable/MSVC10.rst b/Help/variable/MSVC10.rst index 98e0493..55c6337 100644 --- a/Help/variable/MSVC10.rst +++ b/Help/variable/MSVC10.rst @@ -1,5 +1,7 @@ MSVC10 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v100`` toolset (``cl`` version 16) or another compiler that simulates it. diff --git a/Help/variable/MSVC11.rst b/Help/variable/MSVC11.rst index 42b7b86..17943dc 100644 --- a/Help/variable/MSVC11.rst +++ b/Help/variable/MSVC11.rst @@ -1,5 +1,7 @@ MSVC11 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v110`` toolset (``cl`` version 17) or another compiler that simulates it. diff --git a/Help/variable/MSVC12.rst b/Help/variable/MSVC12.rst index 0648f35..a524fab 100644 --- a/Help/variable/MSVC12.rst +++ b/Help/variable/MSVC12.rst @@ -1,5 +1,7 @@ MSVC12 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v120`` toolset (``cl`` version 18) or another compiler that simulates it. diff --git a/Help/variable/MSVC14.rst b/Help/variable/MSVC14.rst index 16bfe07..79e0c10 100644 --- a/Help/variable/MSVC14.rst +++ b/Help/variable/MSVC14.rst @@ -1,5 +1,7 @@ MSVC14 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v140`` or ``v141`` toolset (``cl`` version 19) or another compiler that simulates it. diff --git a/Help/variable/MSVC60.rst b/Help/variable/MSVC60.rst index 14f09cf..14164bf 100644 --- a/Help/variable/MSVC60.rst +++ b/Help/variable/MSVC60.rst @@ -1,6 +1,8 @@ MSVC60 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using Microsoft Visual C++ 6.0. Set to ``true`` when the compiler is version 6.0 of Microsoft Visual C++. diff --git a/Help/variable/MSVC70.rst b/Help/variable/MSVC70.rst index 76fa96f..ed3b0bb 100644 --- a/Help/variable/MSVC70.rst +++ b/Help/variable/MSVC70.rst @@ -1,6 +1,8 @@ MSVC70 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using Microsoft Visual C++ 7.0. Set to ``true`` when the compiler is version 7.0 of Microsoft Visual C++. diff --git a/Help/variable/MSVC71.rst b/Help/variable/MSVC71.rst index d69d4fc..0237592 100644 --- a/Help/variable/MSVC71.rst +++ b/Help/variable/MSVC71.rst @@ -1,6 +1,8 @@ MSVC71 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using Microsoft Visual C++ 7.1. Set to ``true`` when the compiler is version 7.1 of Microsoft Visual C++. diff --git a/Help/variable/MSVC80.rst b/Help/variable/MSVC80.rst index 0d33e82..1533218 100644 --- a/Help/variable/MSVC80.rst +++ b/Help/variable/MSVC80.rst @@ -1,5 +1,7 @@ MSVC80 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v80`` toolset (``cl`` version 14) or another compiler that simulates it. diff --git a/Help/variable/MSVC90.rst b/Help/variable/MSVC90.rst index 1716e6f..4981ecf 100644 --- a/Help/variable/MSVC90.rst +++ b/Help/variable/MSVC90.rst @@ -1,5 +1,7 @@ MSVC90 ------ +Discouraged. Use the :variable:`MSVC_VERSION` variable instead. + ``True`` when using the Microsoft Visual Studio ``v90`` toolset (``cl`` version 15) or another compiler that simulates it. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=712452e33088b1ba02c7dde10f56cd2add81deab commit 712452e33088b1ba02c7dde10f56cd2add81deab Author: Brad King AuthorDate: Wed Mar 22 11:12:13 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:24:46 2017 -0400 Help: Clarify MSVC14 docs w.r.t. VS 2017 v141 toolset Issue: #16735 diff --git a/Help/variable/MSVC14.rst b/Help/variable/MSVC14.rst index f67ebc7..16bfe07 100644 --- a/Help/variable/MSVC14.rst +++ b/Help/variable/MSVC14.rst @@ -1,5 +1,5 @@ MSVC14 ------ -``True`` when using the Microsoft Visual Studio ``v140`` toolset -(``cl`` version 19) or another compiler that simulates it. +``True`` when using the Microsoft Visual Studio ``v140`` or ``v141`` +toolset (``cl`` version 19) or another compiler that simulates it. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=49a60b70e700e9f0bddc4cb6986d9621423ee2d9 commit 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 Author: Brad King AuthorDate: Wed Mar 22 11:17:39 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:23:37 2017 -0400 MSVC: Exclude future cl 20+ from MSVC14 variable diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake index 0e90d35..31b26b59 100644 --- a/Modules/Platform/Windows-MSVC.cmake +++ b/Modules/Platform/Windows-MSVC.cmake @@ -78,7 +78,9 @@ if(NOT MSVC_VERSION) set(MSVC90) set(CMAKE_COMPILER_2005) set(CMAKE_COMPILER_SUPPORTS_PDBTYPE) - if(NOT "${_compiler_version}" VERSION_LESS 19) + if(NOT "${_compiler_version}" VERSION_LESS 20) + # We no longer provide per-version variables. Use MSVC_VERSION instead. + elseif(NOT "${_compiler_version}" VERSION_LESS 19) set(MSVC14 1) elseif(NOT "${_compiler_version}" VERSION_LESS 18) set(MSVC12 1) ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC.rst | 2 ++ Help/variable/MSVC10.rst | 2 ++ Help/variable/MSVC11.rst | 2 ++ Help/variable/MSVC12.rst | 2 ++ Help/variable/MSVC14.rst | 6 ++++-- Help/variable/MSVC60.rst | 2 ++ Help/variable/MSVC70.rst | 2 ++ Help/variable/MSVC71.rst | 2 ++ Help/variable/MSVC80.rst | 2 ++ Help/variable/MSVC90.rst | 2 ++ Modules/Platform/Windows-MSVC.cmake | 4 +++- 11 files changed, 25 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 11:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 11:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-581-g31004b5 Message-ID: <20170322154502.B0C9BF5D84@public.kitware.com> 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 31004b59ed1dd444582ce5948ee151247ae3fb6c (commit) via feed8d91328ee4c8416ba024a38edbab1669af3e (commit) via ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 (commit) via 3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a (commit) from 606c1fcdf87b319fe10f2ad100508b16f23a4e59 (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=31004b59ed1dd444582ce5948ee151247ae3fb6c commit 31004b59ed1dd444582ce5948ee151247ae3fb6c Merge: 606c1fc feed8d9 Author: Brad King AuthorDate: Wed Mar 22 15:38:45 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 11:38:48 2017 -0400 Stage topic 'avoid-MSVC-per-version-vars' Topic-id: 23183 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/610 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=feed8d91328ee4c8416ba024a38edbab1669af3e commit feed8d91328ee4c8416ba024a38edbab1669af3e Author: Brad King AuthorDate: Wed Mar 22 11:36:26 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:36:26 2017 -0400 FindRuby: Use `MSVC_VERSION` instead of `MSVC##` diff --git a/Modules/FindRuby.cmake b/Modules/FindRuby.cmake index b0e9b47..a9f8d35 100644 --- a/Modules/FindRuby.cmake +++ b/Modules/FindRuby.cmake @@ -207,19 +207,19 @@ set(_RUBY_POSSIBLE_LIB_NAMES ruby ruby-static ruby${_RUBY_VERSION_SHORT} ruby${_ if(WIN32) set( _RUBY_MSVC_RUNTIME "" ) - if( MSVC60 ) + if( MSVC_VERSION EQUAL 1200 ) set( _RUBY_MSVC_RUNTIME "60" ) endif() - if( MSVC70 ) + if( MSVC_VERSION EQUAL 1300 ) set( _RUBY_MSVC_RUNTIME "70" ) endif() - if( MSVC71 ) + if( MSVC_VERSION EQUAL 1310 ) set( _RUBY_MSVC_RUNTIME "71" ) endif() - if( MSVC80 ) + if( MSVC_VERSION EQUAL 1400 ) set( _RUBY_MSVC_RUNTIME "80" ) endif() - if( MSVC90 ) + if( MSVC_VERSION EQUAL 1500 ) set( _RUBY_MSVC_RUNTIME "90" ) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 commit ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 Author: Brad King AuthorDate: Wed Mar 22 11:36:11 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:36:11 2017 -0400 FindGTK2: Use `MSVC_VERSION` instead of `MSVC##` diff --git a/Modules/FindGTK2.cmake b/Modules/FindGTK2.cmake index 2eca5f9..b87b9f3 100644 --- a/Modules/FindGTK2.cmake +++ b/Modules/FindGTK2.cmake @@ -105,7 +105,7 @@ # * 14236: Detect gthread library # Detect pangocairo on windows # Detect pangocairo with gtk module instead of with gtkmm -# * 14259: Use vc100 libraries with MSVC11 +# * 14259: Use vc100 libraries with VS 11 # * 14260: Export a GTK2_DEFINITIONS variable to set /vd2 when appropriate # (i.e. MSVC) # * Use the optimized/debug syntax for _LIBRARY and _LIBRARIES variables when @@ -354,13 +354,13 @@ function(_GTK2_FIND_LIBRARY _var _lib _expand_vc _append_version) if(_expand_vc AND MSVC) # Add vc80/vc90/vc100 midfixes - if(MSVC80) + if(MSVC_VERSION EQUAL 1400) set(_library ${_library}-vc80) - elseif(MSVC90) + elseif(MSVC_VERSION EQUAL 1500) set(_library ${_library}-vc90) - elseif(MSVC10) + elseif(MSVC_VERSION EQUAL 1600) set(_library ${_library}-vc100) - elseif(MSVC11) + elseif(MSVC_VERSION EQUAL 1700) # Up to gtkmm-win 2.22.0-2 there are no vc110 libraries but vc100 can be used set(_library ${_library}-vc100) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a commit 3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a Author: Brad King AuthorDate: Wed Mar 22 11:35:29 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 11:35:29 2017 -0400 FindBoost: Avoid mentioning discouraged `MSVC##`` variable diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 2886381..a6f63f5 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -445,7 +445,7 @@ function(_Boost_GUESS_COMPILER_PREFIX _ret) set(_boost_COMPILER "-vc71") elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13) # Good luck! set(_boost_COMPILER "-vc7") # yes, this is correct - else() # MSVC60 Good luck! + else() # VS 6.0 Good luck! set(_boost_COMPILER "-vc6") # yes, this is correct endif() elseif (BORLAND) ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 2 +- Modules/FindGTK2.cmake | 10 +++++----- Modules/FindRuby.cmake | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 12:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 12:45:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-583-g4ea507d Message-ID: <20170322164503.478FFF38A4@public.kitware.com> 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 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 (commit) via 8285ad511a92416f0e99fcda27de98435316173b (commit) from 31004b59ed1dd444582ce5948ee151247ae3fb6c (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=4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 commit 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 Merge: 31004b5 8285ad5 Author: Brad King AuthorDate: Wed Mar 22 16:37:14 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 12:37:18 2017 -0400 Stage topic 'fix/16736' Topic-id: 23186 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/611 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8285ad511a92416f0e99fcda27de98435316173b commit 8285ad511a92416f0e99fcda27de98435316173b Author: Tobias Hunger AuthorDate: Wed Mar 22 16:52:08 2017 +0100 Commit: Tobias Hunger CommitDate: Wed Mar 22 17:31:02 2017 +0100 server-mode: Make CMAKE_HOME_DIRECTORY more reliable Make CMAKE_HOME_DIRECTORY detection work more reliably in the face of symlinks. Closes #16736 diff --git a/Source/cmServerProtocol.cxx b/Source/cmServerProtocol.cxx index e159c8f..8317018 100644 --- a/Source/cmServerProtocol.cxx +++ b/Source/cmServerProtocol.cxx @@ -251,6 +251,27 @@ static void setErrorMessage(std::string* errorMessage, const std::string& text) } } +static bool testHomeDirectory(cmState* state, std::string& value, + std::string* errorMessage) +{ + const std::string cachedValue = + std::string(state->GetCacheEntryValue("CMAKE_HOME_DIRECTORY")); + const std::string suffix = "/CMakeLists.txt"; + const std::string cachedValueCML = cachedValue + suffix; + const std::string valueCML = value + suffix; + if (!cmSystemTools::SameFile(valueCML, cachedValueCML)) { + setErrorMessage(errorMessage, + std::string("\"CMAKE_HOME_DIRECTORY\" is set but " + "incompatible with configured " + "source directory value.")); + return false; + } + if (value.empty()) { + value = cachedValue; + } + return true; +} + static bool testValue(cmState* state, const std::string& key, std::string& value, const std::string& keyDescription, std::string* errorMessage) @@ -310,8 +331,7 @@ bool cmServerProtocol1_0::DoActivate(const cmServerRequest& request, } // check sourcedir: - if (!testValue(state, "CMAKE_HOME_DIRECTORY", sourceDirectory, - "source directory", errorMessage)) { + if (!testHomeDirectory(state, sourceDirectory, errorMessage)) { return false; } ----------------------------------------------------------------------- Summary of changes: Source/cmServerProtocol.cxx | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 12:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 12:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-585-g1c3e7cc Message-ID: <20170322165502.2A688FA4FE@public.kitware.com> 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 1c3e7cc20f7f92d68264e2ec15c0f1d73eb2f15d (commit) via a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 (commit) from 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 (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=1c3e7cc20f7f92d68264e2ec15c0f1d73eb2f15d commit 1c3e7cc20f7f92d68264e2ec15c0f1d73eb2f15d Merge: 4ea507d a259e8d Author: Brad King AuthorDate: Wed Mar 22 16:52:38 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 12:52:41 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-MSVC_VERSION' Topic-id: 23190 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/612 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 commit a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 Author: Brad King AuthorDate: Wed Mar 22 12:33:56 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 12:50:10 2017 -0400 InstallRequiredSystemLibraries: Use `MSVC_VERSION` instead of `MSVC##` Issue: #16735 diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 7975bd4..beb4195 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -69,21 +69,21 @@ if(MSVC) get_filename_component(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH) get_filename_component(base_dir "${devenv_dir}/../.." ABSOLUTE) - if(MSVC70) + if(MSVC_VERSION EQUAL 1300) set(__install__libs "${SYSTEMROOT}/system32/msvcp70.dll" "${SYSTEMROOT}/system32/msvcr70.dll" ) endif() - if(MSVC71) + if(MSVC_VERSION EQUAL 1310) set(__install__libs "${SYSTEMROOT}/system32/msvcp71.dll" "${SYSTEMROOT}/system32/msvcr71.dll" ) endif() - if(MSVC80) + if(MSVC_VERSION EQUAL 1400) # Find the runtime library redistribution directory. get_filename_component(msvc_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE) @@ -120,7 +120,7 @@ if(MSVC) endif() endif() - if(MSVC90) + if(MSVC_VERSION EQUAL 1500) # Find the runtime library redistribution directory. get_filename_component(msvc_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE) @@ -234,36 +234,36 @@ if(MSVC) endif() endmacro() - if(MSVC10) + if(MSVC_VERSION EQUAL 1600) MSVCRT_FILES_FOR_VERSION(10) endif() - if(MSVC11) + if(MSVC_VERSION EQUAL 1700) MSVCRT_FILES_FOR_VERSION(11) endif() - if(MSVC12) + if(MSVC_VERSION EQUAL 1800) MSVCRT_FILES_FOR_VERSION(12) endif() - if(MSVC14) + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) MSVCRT_FILES_FOR_VERSION(14) endif() if(CMAKE_INSTALL_MFC_LIBRARIES) - if(MSVC70) + if(MSVC_VERSION EQUAL 1300) set(__install__libs ${__install__libs} "${SYSTEMROOT}/system32/mfc70.dll" ) endif() - if(MSVC71) + if(MSVC_VERSION EQUAL 1310) set(__install__libs ${__install__libs} "${SYSTEMROOT}/system32/mfc71.dll" ) endif() - if(MSVC80) + if(MSVC_VERSION EQUAL 1400) if(CMAKE_INSTALL_DEBUG_LIBRARIES) set(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC") @@ -307,7 +307,7 @@ if(MSVC) ) endif() - if(MSVC90) + if(MSVC_VERSION EQUAL 1500) if(CMAKE_INSTALL_DEBUG_LIBRARIES) set(MSVC90_MFC_DIR "${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC") @@ -403,19 +403,19 @@ if(MSVC) ) endmacro() - if(MSVC10) + if(MSVC_VERSION EQUAL 1600) MFC_FILES_FOR_VERSION(10) endif() - if(MSVC11) + if(MSVC_VERSION EQUAL 1700) MFC_FILES_FOR_VERSION(11) endif() - if(MSVC12) + if(MSVC_VERSION EQUAL 1800) MFC_FILES_FOR_VERSION(12) endif() - if(MSVC14) + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) MFC_FILES_FOR_VERSION(14) endif() endif() @@ -434,22 +434,22 @@ if(MSVC) endif() endmacro() - if(MSVC80) + if(MSVC_VERSION EQUAL 1400) OPENMP_FILES_FOR_VERSION(80 80) endif() - if(MSVC90) + if(MSVC_VERSION EQUAL 1500) OPENMP_FILES_FOR_VERSION(90 90) endif() - if(MSVC10) + if(MSVC_VERSION EQUAL 1600) OPENMP_FILES_FOR_VERSION(10 100) endif() - if(MSVC11) + if(MSVC_VERSION EQUAL 1700) OPENMP_FILES_FOR_VERSION(11 110) endif() - if(MSVC12) + if(MSVC_VERSION EQUAL 1800) OPENMP_FILES_FOR_VERSION(12 120) endif() - if(MSVC14) + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) OPENMP_FILES_FOR_VERSION(14 140) endif() endif() ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 44 +++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 16:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 16:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-587-g1b4bc2f Message-ID: <20170322201503.7A322FA108@public.kitware.com> 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 1c3e7cc20f7f92d68264e2ec15c0f1d73eb2f15d (commit) via 1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 (commit) via a2aad448e1b285944c3d128487da2f0df6c180b6 (commit) via 16eb58d503b55e5758aa791a0e17aed2935f9d37 (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 (1c3e7cc20f7f92d68264e2ec15c0f1d73eb2f15d) \ N -- N -- N (1b4bc2f130f28fc4a5c9ed8464b467380749a0b5) 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=1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 commit 1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 Merge: 4ea507d a2aad448 Author: Brad King AuthorDate: Wed Mar 22 20:08:30 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 22 16:08:33 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-refactor' Topic-id: 23190 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/612 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a2aad448e1b285944c3d128487da2f0df6c180b6 commit a2aad448e1b285944c3d128487da2f0df6c180b6 Author: Brad King AuthorDate: Wed Mar 22 15:22:26 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 15:58:40 2017 -0400 InstallRequiredSystemLibraries: Drop version from variable names Each `MSVC${v}_*_DIR` variable is only ever used with one value for `${v}` within a given build tree. Drop the `${v}` version component from the variable names. diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index bded808..67dfe8f 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -87,35 +87,38 @@ if(MSVC) # Find the runtime library redistribution directory. get_filename_component(msvc_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE) - find_path(MSVC80_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest + if(DEFINED MSVC80_REDIST_DIR AND EXISTS "${MSVC80_REDIST_DIR}") + set(MSVC_REDIST_DIR "${MSVC80_REDIST_DIR}") # use old cache entry + endif() + find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest PATHS "${msvc_install_dir}/../../VC/redist" "${base_dir}/VC/redist" ) - mark_as_advanced(MSVC80_REDIST_DIR) - set(MSVC80_CRT_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT") + mark_as_advanced(MSVC_REDIST_DIR) + set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs - "${MSVC80_CRT_DIR}/Microsoft.VC80.CRT.manifest" - "${MSVC80_CRT_DIR}/msvcm80.dll" - "${MSVC80_CRT_DIR}/msvcp80.dll" - "${MSVC80_CRT_DIR}/msvcr80.dll" + "${MSVC_CRT_DIR}/Microsoft.VC80.CRT.manifest" + "${MSVC_CRT_DIR}/msvcm80.dll" + "${MSVC_CRT_DIR}/msvcp80.dll" + "${MSVC_CRT_DIR}/msvcr80.dll" ) else() set(__install__libs) endif() if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC80_CRT_DIR - "${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT") + set(MSVC_CRT_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT") set(__install__libs ${__install__libs} - "${MSVC80_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest" - "${MSVC80_CRT_DIR}/msvcm80d.dll" - "${MSVC80_CRT_DIR}/msvcp80d.dll" - "${MSVC80_CRT_DIR}/msvcr80d.dll" + "${MSVC_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest" + "${MSVC_CRT_DIR}/msvcm80d.dll" + "${MSVC_CRT_DIR}/msvcp80d.dll" + "${MSVC_CRT_DIR}/msvcr80d.dll" ) endif() endif() @@ -126,36 +129,39 @@ if(MSVC) "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE) get_filename_component(msvc_express_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]" ABSOLUTE) - find_path(MSVC90_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest + if(DEFINED MSVC90_REDIST_DIR AND EXISTS "${MSVC90_REDIST_DIR}") + set(MSVC_REDIST_DIR "${MSVC90_REDIST_DIR}") # use old cache entry + endif() + find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest PATHS "${msvc_install_dir}/../../VC/redist" "${msvc_express_install_dir}/../../VC/redist" "${base_dir}/VC/redist" ) - mark_as_advanced(MSVC90_REDIST_DIR) - set(MSVC90_CRT_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT") + mark_as_advanced(MSVC_REDIST_DIR) + set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs - "${MSVC90_CRT_DIR}/Microsoft.VC90.CRT.manifest" - "${MSVC90_CRT_DIR}/msvcm90.dll" - "${MSVC90_CRT_DIR}/msvcp90.dll" - "${MSVC90_CRT_DIR}/msvcr90.dll" + "${MSVC_CRT_DIR}/Microsoft.VC90.CRT.manifest" + "${MSVC_CRT_DIR}/msvcm90.dll" + "${MSVC_CRT_DIR}/msvcp90.dll" + "${MSVC_CRT_DIR}/msvcr90.dll" ) else() set(__install__libs) endif() if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC90_CRT_DIR - "${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT") + set(MSVC_CRT_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT") set(__install__libs ${__install__libs} - "${MSVC90_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest" - "${MSVC90_CRT_DIR}/msvcm90d.dll" - "${MSVC90_CRT_DIR}/msvcp90d.dll" - "${MSVC90_CRT_DIR}/msvcr90d.dll" + "${MSVC_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest" + "${MSVC_CRT_DIR}/msvcm90d.dll" + "${MSVC_CRT_DIR}/msvcp90d.dll" + "${MSVC_CRT_DIR}/msvcr90d.dll" ) endif() endif() @@ -179,45 +185,48 @@ if(MSVC) get_filename_component(msvc_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${v}.0;InstallDir]" ABSOLUTE) set(programfilesx86 "ProgramFiles(x86)") - find_path(MSVC${v}_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT + if(DEFINED MSVC${v}_REDIST_DIR AND EXISTS "${MSVC${v}_REDIST_DIR}") + set(MSVC_REDIST_DIR "${MSVC${v}_REDIST_DIR}") # use old cache entry + endif() + find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT PATHS "${msvc_install_dir}/../../VC/redist" "${base_dir}/VC/redist" "$ENV{ProgramFiles}/Microsoft Visual Studio ${v}.0/VC/redist" "$ENV{${programfilesx86}}/Microsoft Visual Studio ${v}.0/VC/redist" ) - mark_as_advanced(MSVC${v}_REDIST_DIR) - set(MSVC${v}_CRT_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT") + mark_as_advanced(MSVC_REDIST_DIR) + set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs - "${MSVC${v}_CRT_DIR}/msvcp${v}0.dll" + "${MSVC_CRT_DIR}/msvcp${v}0.dll" ) if(NOT v VERSION_LESS 14) list(APPEND __install__libs - "${MSVC${v}_CRT_DIR}/vcruntime${v}0.dll" - "${MSVC${v}_CRT_DIR}/concrt${v}0.dll" + "${MSVC_CRT_DIR}/vcruntime${v}0.dll" + "${MSVC_CRT_DIR}/concrt${v}0.dll" ) else() - list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/msvcr${v}0.dll") + list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}0.dll") endif() else() set(__install__libs) endif() if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC${v}_CRT_DIR - "${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugCRT") + set(MSVC_CRT_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugCRT") set(__install__libs ${__install__libs} - "${MSVC${v}_CRT_DIR}/msvcp${v}0d.dll" + "${MSVC_CRT_DIR}/msvcp${v}0d.dll" ) if(NOT v VERSION_LESS 14) list(APPEND __install__libs - "${MSVC${v}_CRT_DIR}/vcruntime${v}0d.dll" - "${MSVC${v}_CRT_DIR}/concrt${v}0d.dll" + "${MSVC_CRT_DIR}/vcruntime${v}0d.dll" + "${MSVC_CRT_DIR}/concrt${v}0d.dll" ) else() - list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/msvcr${v}0d.dll") + list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}0d.dll") endif() endif() @@ -261,89 +270,89 @@ if(MSVC) if(MSVC_VERSION EQUAL 1400) if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC80_MFC_DIR - "${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC") + set(MSVC_MFC_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC") set(__install__libs ${__install__libs} - "${MSVC80_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest" - "${MSVC80_MFC_DIR}/mfc80d.dll" - "${MSVC80_MFC_DIR}/mfc80ud.dll" - "${MSVC80_MFC_DIR}/mfcm80d.dll" - "${MSVC80_MFC_DIR}/mfcm80ud.dll" + "${MSVC_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest" + "${MSVC_MFC_DIR}/mfc80d.dll" + "${MSVC_MFC_DIR}/mfc80ud.dll" + "${MSVC_MFC_DIR}/mfcm80d.dll" + "${MSVC_MFC_DIR}/mfcm80ud.dll" ) endif() - set(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC") + set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} - "${MSVC80_MFC_DIR}/Microsoft.VC80.MFC.manifest" - "${MSVC80_MFC_DIR}/mfc80.dll" - "${MSVC80_MFC_DIR}/mfc80u.dll" - "${MSVC80_MFC_DIR}/mfcm80.dll" - "${MSVC80_MFC_DIR}/mfcm80u.dll" + "${MSVC_MFC_DIR}/Microsoft.VC80.MFC.manifest" + "${MSVC_MFC_DIR}/mfc80.dll" + "${MSVC_MFC_DIR}/mfc80u.dll" + "${MSVC_MFC_DIR}/mfcm80.dll" + "${MSVC_MFC_DIR}/mfcm80u.dll" ) endif() # include the language dll's for vs8 as well as the actuall dll's - set(MSVC80_MFCLOC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC") + set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. set(__install__libs ${__install__libs} - "${MSVC80_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest" - "${MSVC80_MFCLOC_DIR}/mfc80chs.dll" - "${MSVC80_MFCLOC_DIR}/mfc80cht.dll" - "${MSVC80_MFCLOC_DIR}/mfc80enu.dll" - "${MSVC80_MFCLOC_DIR}/mfc80esp.dll" - "${MSVC80_MFCLOC_DIR}/mfc80deu.dll" - "${MSVC80_MFCLOC_DIR}/mfc80fra.dll" - "${MSVC80_MFCLOC_DIR}/mfc80ita.dll" - "${MSVC80_MFCLOC_DIR}/mfc80jpn.dll" - "${MSVC80_MFCLOC_DIR}/mfc80kor.dll" + "${MSVC_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest" + "${MSVC_MFCLOC_DIR}/mfc80chs.dll" + "${MSVC_MFCLOC_DIR}/mfc80cht.dll" + "${MSVC_MFCLOC_DIR}/mfc80enu.dll" + "${MSVC_MFCLOC_DIR}/mfc80esp.dll" + "${MSVC_MFCLOC_DIR}/mfc80deu.dll" + "${MSVC_MFCLOC_DIR}/mfc80fra.dll" + "${MSVC_MFCLOC_DIR}/mfc80ita.dll" + "${MSVC_MFCLOC_DIR}/mfc80jpn.dll" + "${MSVC_MFCLOC_DIR}/mfc80kor.dll" ) endif() if(MSVC_VERSION EQUAL 1500) if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC90_MFC_DIR - "${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC") + set(MSVC_MFC_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC") set(__install__libs ${__install__libs} - "${MSVC90_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest" - "${MSVC90_MFC_DIR}/mfc90d.dll" - "${MSVC90_MFC_DIR}/mfc90ud.dll" - "${MSVC90_MFC_DIR}/mfcm90d.dll" - "${MSVC90_MFC_DIR}/mfcm90ud.dll" + "${MSVC_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest" + "${MSVC_MFC_DIR}/mfc90d.dll" + "${MSVC_MFC_DIR}/mfc90ud.dll" + "${MSVC_MFC_DIR}/mfcm90d.dll" + "${MSVC_MFC_DIR}/mfcm90ud.dll" ) endif() - set(MSVC90_MFC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC") + set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} - "${MSVC90_MFC_DIR}/Microsoft.VC90.MFC.manifest" - "${MSVC90_MFC_DIR}/mfc90.dll" - "${MSVC90_MFC_DIR}/mfc90u.dll" - "${MSVC90_MFC_DIR}/mfcm90.dll" - "${MSVC90_MFC_DIR}/mfcm90u.dll" + "${MSVC_MFC_DIR}/Microsoft.VC90.MFC.manifest" + "${MSVC_MFC_DIR}/mfc90.dll" + "${MSVC_MFC_DIR}/mfc90u.dll" + "${MSVC_MFC_DIR}/mfcm90.dll" + "${MSVC_MFC_DIR}/mfcm90u.dll" ) endif() # include the language dll's for vs9 as well as the actuall dll's - set(MSVC90_MFCLOC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC") + set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC") # Install the manifest that allows DLLs to be loaded from the # directory containing the executable. set(__install__libs ${__install__libs} - "${MSVC90_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest" - "${MSVC90_MFCLOC_DIR}/mfc90chs.dll" - "${MSVC90_MFCLOC_DIR}/mfc90cht.dll" - "${MSVC90_MFCLOC_DIR}/mfc90enu.dll" - "${MSVC90_MFCLOC_DIR}/mfc90esp.dll" - "${MSVC90_MFCLOC_DIR}/mfc90deu.dll" - "${MSVC90_MFCLOC_DIR}/mfc90fra.dll" - "${MSVC90_MFCLOC_DIR}/mfc90ita.dll" - "${MSVC90_MFCLOC_DIR}/mfc90jpn.dll" - "${MSVC90_MFCLOC_DIR}/mfc90kor.dll" + "${MSVC_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest" + "${MSVC_MFCLOC_DIR}/mfc90chs.dll" + "${MSVC_MFCLOC_DIR}/mfc90cht.dll" + "${MSVC_MFCLOC_DIR}/mfc90enu.dll" + "${MSVC_MFCLOC_DIR}/mfc90esp.dll" + "${MSVC_MFCLOC_DIR}/mfc90deu.dll" + "${MSVC_MFCLOC_DIR}/mfc90fra.dll" + "${MSVC_MFCLOC_DIR}/mfc90ita.dll" + "${MSVC_MFCLOC_DIR}/mfc90jpn.dll" + "${MSVC_MFCLOC_DIR}/mfc90kor.dll" ) endif() @@ -367,47 +376,47 @@ if(MSVC) # whether they are available and exclude them if they are not. if(CMAKE_INSTALL_DEBUG_LIBRARIES) - set(MSVC${v}_MFC_DIR - "${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC") + set(MSVC_MFC_DIR + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC") set(__install__libs ${__install__libs} - "${MSVC${v}_MFC_DIR}/mfc${v}0ud.dll" - "${MSVC${v}_MFC_DIR}/mfcm${v}0ud.dll" + "${MSVC_MFC_DIR}/mfc${v}0ud.dll" + "${MSVC_MFC_DIR}/mfcm${v}0ud.dll" ) - if("${v}" LESS 12 OR EXISTS "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll") + if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}0d.dll") set(__install__libs ${__install__libs} - "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll" - "${MSVC${v}_MFC_DIR}/mfcm${v}0d.dll" + "${MSVC_MFC_DIR}/mfc${v}0d.dll" + "${MSVC_MFC_DIR}/mfcm${v}0d.dll" ) endif() endif() - set(MSVC${v}_MFC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC") + set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} - "${MSVC${v}_MFC_DIR}/mfc${v}0u.dll" - "${MSVC${v}_MFC_DIR}/mfcm${v}0u.dll" + "${MSVC_MFC_DIR}/mfc${v}0u.dll" + "${MSVC_MFC_DIR}/mfcm${v}0u.dll" ) - if("${v}" LESS 12 OR EXISTS "${MSVC${v}_MFC_DIR}/mfc${v}0.dll") + if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}0.dll") set(__install__libs ${__install__libs} - "${MSVC${v}_MFC_DIR}/mfc${v}0.dll" - "${MSVC${v}_MFC_DIR}/mfcm${v}0.dll" + "${MSVC_MFC_DIR}/mfc${v}0.dll" + "${MSVC_MFC_DIR}/mfcm${v}0.dll" ) endif() endif() # include the language dll's as well as the actuall dll's - set(MSVC${v}_MFCLOC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFCLOC") + set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFCLOC") set(__install__libs ${__install__libs} - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0chs.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0cht.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0deu.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0enu.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0esn.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0fra.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0ita.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0jpn.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0kor.dll" - "${MSVC${v}_MFCLOC_DIR}/mfc${v}0rus.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0chs.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0cht.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0deu.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0enu.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0esn.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0fra.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0ita.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0jpn.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0kor.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}0rus.dll" ) endif() endif() @@ -416,36 +425,28 @@ if(MSVC) # Furthermore, there is no debug version of this if(CMAKE_INSTALL_OPENMP_LIBRARIES) if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - set(_MSOMP_VAR_VER 14) set(_MSOMP_VERSION 140) elseif(MSVC_VERSION EQUAL 1800) - set(_MSOMP_VAR_VER 12) set(_MSOMP_VERSION 120) elseif(MSVC_VERSION EQUAL 1700) - set(_MSOMP_VAR_VER 11) set(_MSOMP_VERSION 110) elseif(MSVC_VERSION EQUAL 1600) - set(_MSOMP_VAR_VER 10) set(_MSOMP_VERSION 100) elseif(MSVC_VERSION EQUAL 1500) - set(_MSOMP_VAR_VER 90) set(_MSOMP_VERSION 90) elseif(MSVC_VERSION EQUAL 1400) - set(_MSOMP_VAR_VER 80) set(_MSOMP_VERSION 80) else() - set(_MSOMP_VAR_VER "") set(_MSOMP_VERSION "") endif() if(_MSOMP_VERSION) - set(va "${_MSOMP_VAR_VER}") - set(vb "${_MSOMP_VERSION}") - set(MSVC${va}_OPENMP_DIR "${MSVC${va}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vb}.OPENMP") + set(v "${_MSOMP_VERSION}") + set(MSVC_OPENMP_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}.OPENMP") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} - "${MSVC${va}_OPENMP_DIR}/vcomp${vb}.dll") + "${MSVC_OPENMP_DIR}/vcomp${v}.dll") endif() endif() endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=16eb58d503b55e5758aa791a0e17aed2935f9d37 commit 16eb58d503b55e5758aa791a0e17aed2935f9d37 Author: Brad King AuthorDate: Wed Mar 22 15:15:27 2017 -0400 Commit: Brad King CommitDate: Wed Mar 22 15:48:34 2017 -0400 InstallRequiredSystemLibraries: Refactor to avoid macros For a given `MSVC_VERSION` our macros were each called at most once. Replace them with a single code path that is parameterized over what was the macro argument. diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index beb4195..bded808 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -160,8 +160,20 @@ if(MSVC) endif() endif() - macro(MSVCRT_FILES_FOR_VERSION version) - set(v "${version}") + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + set(_MSVCRT_VERSION 14) + elseif(MSVC_VERSION EQUAL 1800) + set(_MSVCRT_VERSION 12) + elseif(MSVC_VERSION EQUAL 1700) + set(_MSVCRT_VERSION 11) + elseif(MSVC_VERSION EQUAL 1600) + set(_MSVCRT_VERSION 10) + else() + set(_MSVCRT_VERSION "") + endif() + + if(_MSVCRT_VERSION) + set(v "${_MSVCRT_VERSION}") # Find the runtime library redistribution directory. get_filename_component(msvc_install_dir @@ -232,22 +244,6 @@ if(MSVC) list(APPEND __install__libs ${__ucrt_dlls}) endif() endif() - endmacro() - - if(MSVC_VERSION EQUAL 1600) - MSVCRT_FILES_FOR_VERSION(10) - endif() - - if(MSVC_VERSION EQUAL 1700) - MSVCRT_FILES_FOR_VERSION(11) - endif() - - if(MSVC_VERSION EQUAL 1800) - MSVCRT_FILES_FOR_VERSION(12) - endif() - - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - MSVCRT_FILES_FOR_VERSION(14) endif() if(CMAKE_INSTALL_MFC_LIBRARIES) @@ -351,8 +347,20 @@ if(MSVC) ) endif() - macro(MFC_FILES_FOR_VERSION version) - set(v "${version}") + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + set(_MFC_VERSION 14) + elseif(MSVC_VERSION EQUAL 1800) + set(_MFC_VERSION 12) + elseif(MSVC_VERSION EQUAL 1700) + set(_MFC_VERSION 11) + elseif(MSVC_VERSION EQUAL 1600) + set(_MFC_VERSION 10) + else() + set(_MFC_VERSION "") + endif() + + if(_MFC_VERSION) + set(v "${_MFC_VERSION}") # Multi-Byte Character Set versions of MFC are available as optional # addon since Visual Studio 12. So for version 12 or higher, check @@ -401,56 +409,44 @@ if(MSVC) "${MSVC${v}_MFCLOC_DIR}/mfc${v}0kor.dll" "${MSVC${v}_MFCLOC_DIR}/mfc${v}0rus.dll" ) - endmacro() - - if(MSVC_VERSION EQUAL 1600) - MFC_FILES_FOR_VERSION(10) - endif() - - if(MSVC_VERSION EQUAL 1700) - MFC_FILES_FOR_VERSION(11) - endif() - - if(MSVC_VERSION EQUAL 1800) - MFC_FILES_FOR_VERSION(12) - endif() - - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - MFC_FILES_FOR_VERSION(14) endif() endif() # MSVC 8 was the first version with OpenMP # Furthermore, there is no debug version of this if(CMAKE_INSTALL_OPENMP_LIBRARIES) - macro(OPENMP_FILES_FOR_VERSION version_a version_b) - set(va "${version_a}") - set(vb "${version_b}") + if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + set(_MSOMP_VAR_VER 14) + set(_MSOMP_VERSION 140) + elseif(MSVC_VERSION EQUAL 1800) + set(_MSOMP_VAR_VER 12) + set(_MSOMP_VERSION 120) + elseif(MSVC_VERSION EQUAL 1700) + set(_MSOMP_VAR_VER 11) + set(_MSOMP_VERSION 110) + elseif(MSVC_VERSION EQUAL 1600) + set(_MSOMP_VAR_VER 10) + set(_MSOMP_VERSION 100) + elseif(MSVC_VERSION EQUAL 1500) + set(_MSOMP_VAR_VER 90) + set(_MSOMP_VERSION 90) + elseif(MSVC_VERSION EQUAL 1400) + set(_MSOMP_VAR_VER 80) + set(_MSOMP_VERSION 80) + else() + set(_MSOMP_VAR_VER "") + set(_MSOMP_VERSION "") + endif() + + if(_MSOMP_VERSION) + set(va "${_MSOMP_VAR_VER}") + set(vb "${_MSOMP_VERSION}") set(MSVC${va}_OPENMP_DIR "${MSVC${va}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vb}.OPENMP") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} "${MSVC${va}_OPENMP_DIR}/vcomp${vb}.dll") endif() - endmacro() - - if(MSVC_VERSION EQUAL 1400) - OPENMP_FILES_FOR_VERSION(80 80) - endif() - if(MSVC_VERSION EQUAL 1500) - OPENMP_FILES_FOR_VERSION(90 90) - endif() - if(MSVC_VERSION EQUAL 1600) - OPENMP_FILES_FOR_VERSION(10 100) - endif() - if(MSVC_VERSION EQUAL 1700) - OPENMP_FILES_FOR_VERSION(11 110) - endif() - if(MSVC_VERSION EQUAL 1800) - OPENMP_FILES_FOR_VERSION(12 120) - endif() - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - OPENMP_FILES_FOR_VERSION(14 140) endif() endif() ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 339 +++++++++++++------------- 1 file changed, 168 insertions(+), 171 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 21:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 21:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-587-g1b4bc2f Message-ID: <20170323010506.79A70FA72B@public.kitware.com> 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, nightly has been updated discards 6f5459e67de1d0f0ed40dd2abef86a295b52cd7f (commit) discards 578970f39c22e255cfc8bc16f21ddb96988dbb30 (commit) discards e6e6044808a2c6f1e6f6a1f423786bef231e840a (commit) discards e3483f9a43e8dfcc90aa3d2ccf41ea894d4a85d6 (commit) discards f3edfbdb303a2e05ba4e19b779e25aa54fc8a647 (commit) discards 92ac01490d4c2f4d857081a3cad635b5bf79c695 (commit) discards b96f5f213757e49fe22c95e113082acdff914475 (commit) discards a0de070acb18f0245bc90933ed2fe1cc4c2a04fa (commit) discards a53e172260a62c11aa285326b2e23b78ec12f36c (commit) discards 2a826e330d67889c70009170020bef661195f6da (commit) discards 93e18d8e1342f6533891c9e40ffac5542d61d2f8 (commit) via 1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 (commit) via a2aad448e1b285944c3d128487da2f0df6c180b6 (commit) via 16eb58d503b55e5758aa791a0e17aed2935f9d37 (commit) via a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 (commit) via 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 (commit) via 8285ad511a92416f0e99fcda27de98435316173b (commit) via 31004b59ed1dd444582ce5948ee151247ae3fb6c (commit) via feed8d91328ee4c8416ba024a38edbab1669af3e (commit) via ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 (commit) via 3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a (commit) via 606c1fcdf87b319fe10f2ad100508b16f23a4e59 (commit) via fecf846701ca3a7de4875f5c4362bc79e21b0a4c (commit) via 712452e33088b1ba02c7dde10f56cd2add81deab (commit) via 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 (commit) via 377cd0876d8101934496d83ab86c06cd6b2ba246 (commit) via 8f207df14de3b8141c37b8b34baae29ebda248b3 (commit) via 73f7d266825f1d301aece1286666beda9297382b (commit) via 872531753f5216d1b6d9682923473df33f3b8860 (commit) via 0a9fe75a2d649463a7d17552546a532f6d8c3c80 (commit) via 9a733c7bd626f457a71632da46934995da7bbd4b (commit) via 88d32ef095c06d9ff8044ccd782701951d03e65a (commit) via 352b195f8769c5e4c884c1f9d0ba6d747d533547 (commit) via 9b2f8a82e54538f7132d2e8903c7cc960b6864f7 (commit) via da802afd6e88d6cb4b562a816eee1f85e9ad1e8c (commit) via 72f534ca15674424e7e3974042921178d6b1c64c (commit) via 2192247e336364731cbeafcd63a92d3ec58c38d2 (commit) via 5d2f30f5acbcf572a464f6f45fafaea23c7ae75a (commit) via e24ed7ad870730304431f5cb09d90c980136639c (commit) via 6ce7e587378781931d36b17cf9e3aaf6ebc8c8fa (commit) via 5b311041f3c5b000137e6c52a9a0bba53146bc79 (commit) via ded9859c925698320cfde342651725f4a67cc3c8 (commit) via 84a96aa0a57959f8552b4329d59329be6c645a4c (commit) via 10cbb87fa3a5f81dc9dedd24580a64e062047887 (commit) via 56c39d88363b3a0518bde1569d18ef1bdbeb01e7 (commit) via 53e2ef1bb4434081bedce3742105e378452c4c38 (commit) via b5d8a6de4815ead8b342f7862cd0726b13a03a47 (commit) via 59032a38471c27c547ed76730c2643a5457e6abd (commit) via 989484d51fa78f0fc0014212148b52c90872f57e (commit) via 053317480a12464d405490502dfde75c5fc17b1f (commit) via edac95b955afdea2d129b32b029bf845dc29cb71 (commit) via e1ee7b4305bdf2b50640c4c500705bb4bbff47bf (commit) via 7ebbe4f9d853a5823ef47a13b53ef7e1f469bd2e (commit) via 564add478dd49f3c444b0f92b22991ea02da30b5 (commit) via 5fe3630677a9525428de0f5cd40d4846bd6b9113 (commit) via 849f1ec1c07826973772599a55ad1736123b7708 (commit) via 10eb329e31bf76a1abf2b9b0731a33dac8037970 (commit) via 1356ef4f8403533118ec5855b8135091243ef3e0 (commit) via 47adf51f40c488fa46b4a583d7ac43740274facc (commit) via 68115cf0ea67f9b4d75a4aa8a8dee33755807c66 (commit) via b3790796a2fbae9e0558edd6ba3b0212d33669ca (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 (6f5459e67de1d0f0ed40dd2abef86a295b52cd7f) \ N -- N -- N (1b4bc2f130f28fc4a5c9ed8464b467380749a0b5) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 28 +- Help/release/dev/cpack-sign-uninstaller.rst | 5 + Help/variable/MSVC.rst | 2 + Help/variable/MSVC10.rst | 2 + Help/variable/MSVC11.rst | 2 + Help/variable/MSVC12.rst | 2 + Help/variable/MSVC14.rst | 6 +- Help/variable/MSVC60.rst | 2 + Help/variable/MSVC70.rst | 2 + Help/variable/MSVC71.rst | 2 + Help/variable/MSVC80.rst | 2 + Help/variable/MSVC90.rst | 2 + Modules/CPackNSIS.cmake | 4 + Modules/FindBLAS.cmake | 33 ++- Modules/FindBoost.cmake | 4 +- Modules/FindGTK2.cmake | 10 +- Modules/FindLAPACK.cmake | 11 +- Modules/FindRuby.cmake | 10 +- Modules/FindwxWidgets.cmake | 12 +- Modules/InstallRequiredSystemLibraries.cmake | 355 +++++++++++++------------- Modules/NSIS.template.in | 46 +++- Modules/Platform/Windows-MSVC.cmake | 4 +- Source/CMakeVersion.cmake | 2 +- Source/cmGlobalVisualStudioGenerator.cxx | 19 ++ Source/cmIfCommand.cxx | 4 +- Source/cmServerProtocol.cxx | 24 +- 26 files changed, 381 insertions(+), 214 deletions(-) create mode 100644 Help/release/dev/cpack-sign-uninstaller.rst hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 22 21:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 22 Mar 2017 21:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-566-g9a733c7 Message-ID: <20170323010506.B844AFA72F@public.kitware.com> 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, nightly-master has been updated via 9a733c7bd626f457a71632da46934995da7bbd4b (commit) via 88d32ef095c06d9ff8044ccd782701951d03e65a (commit) via 352b195f8769c5e4c884c1f9d0ba6d747d533547 (commit) via 9b2f8a82e54538f7132d2e8903c7cc960b6864f7 (commit) via da802afd6e88d6cb4b562a816eee1f85e9ad1e8c (commit) via 72f534ca15674424e7e3974042921178d6b1c64c (commit) via 2192247e336364731cbeafcd63a92d3ec58c38d2 (commit) via 5d2f30f5acbcf572a464f6f45fafaea23c7ae75a (commit) via e24ed7ad870730304431f5cb09d90c980136639c (commit) via 6ce7e587378781931d36b17cf9e3aaf6ebc8c8fa (commit) via 5b311041f3c5b000137e6c52a9a0bba53146bc79 (commit) via ded9859c925698320cfde342651725f4a67cc3c8 (commit) via 84a96aa0a57959f8552b4329d59329be6c645a4c (commit) via 10cbb87fa3a5f81dc9dedd24580a64e062047887 (commit) via 56c39d88363b3a0518bde1569d18ef1bdbeb01e7 (commit) via 53e2ef1bb4434081bedce3742105e378452c4c38 (commit) via b5d8a6de4815ead8b342f7862cd0726b13a03a47 (commit) via 59032a38471c27c547ed76730c2643a5457e6abd (commit) via 989484d51fa78f0fc0014212148b52c90872f57e (commit) via 053317480a12464d405490502dfde75c5fc17b1f (commit) via edac95b955afdea2d129b32b029bf845dc29cb71 (commit) via 7ebbe4f9d853a5823ef47a13b53ef7e1f469bd2e (commit) via 564add478dd49f3c444b0f92b22991ea02da30b5 (commit) via 5fe3630677a9525428de0f5cd40d4846bd6b9113 (commit) via 849f1ec1c07826973772599a55ad1736123b7708 (commit) via 805706b36df2eb31f35c1142e50dac6621683cac (commit) via 2c55c143c8648869ef4042bc980b55f76a51d3a9 (commit) via 63c0ba5ff136bcca413567e2073d4a8c7702f416 (commit) via 10eb329e31bf76a1abf2b9b0731a33dac8037970 (commit) via 9753d4c27e61f1ed90061c9a65a7a30a16062405 (commit) via 2df8aa0c804038e7812b7acf47d5530d967d7ad7 (commit) via 1356ef4f8403533118ec5855b8135091243ef3e0 (commit) via 47adf51f40c488fa46b4a583d7ac43740274facc (commit) via 18009aaf5e1d8a436f251b6f70ac46bcad1ad768 (commit) via feaea0658c9cbd4345f698a22452fe3a08a194a3 (commit) via 6c8326749fccd37afd5343d926d650c87ecdfb9f (commit) via 075f6454092ae058add228eda8220a3680b2f9e4 (commit) via 21c4ec4ffe1c40382f6b435ff49eade31e1137f2 (commit) via 24361a455a2a3bd904433ec3b0107493d29d98ba (commit) via 845c482448e5b60f4934a48eea9c8c1e466f8fea (commit) via 68115cf0ea67f9b4d75a4aa8a8dee33755807c66 (commit) via 5606622e61e7f6eba74326510cea8dd0128ab2aa (commit) via fdb2ba2521998397d97d466b10a8ac2458363625 (commit) via 4f90e7931487195b5d540fbaa5dad1c90b26cee1 (commit) from dc4d6efa5a507db0a0ba9e22a3c92c6430bdbc85 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/dev/review.rst | 28 ++- Help/manual/cmake-modules.7.rst | 1 + Help/module/CheckIPOSupported.rst | 1 + Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst | 7 + Help/release/dev/CheckIPOSupported.rst | 6 + .../module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst | 8 + Modules/CPackRPM.cmake | 10 +- Modules/CheckIPOSupported.cmake | 215 ++++++++++++++++++++ Modules/CheckIPOSupported/CMakeLists-C.txt.in | 8 + Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 8 + Modules/CheckIPOSupported/foo.c | 4 + Modules/CheckIPOSupported/foo.cpp | 4 + Modules/CheckIPOSupported/main.c | 6 + Modules/CheckIPOSupported/main.cpp | 6 + Modules/FindBLAS.cmake | 33 ++- Modules/FindBoost.cmake | 2 +- Modules/FindHDF5.cmake | 11 +- Modules/FindLAPACK.cmake | 11 +- Modules/Platform/Linux-Intel.cmake | 5 + Source/CMakeVersion.cmake | 2 +- Source/bindexplib.cxx | 50 +++-- Source/bindexplib.h | 1 + Source/cmGeneratorTarget.cxx | 11 +- Source/cmGeneratorTarget.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 73 ++++--- Source/cmIfCommand.cxx | 20 ++ Source/cmIfCommand.h | 2 + Source/cmLocalVisualStudio7Generator.cxx | 2 +- Source/cmMakefileTargetGenerator.cxx | 37 ++-- Source/cmNinjaNormalTargetGenerator.cxx | 33 ++- Source/cmNinjaTargetGenerator.cxx | 24 ++- Source/cmVisualStudio10TargetGenerator.cxx | 2 +- Source/cmcmd.cxx | 15 +- Tests/ModuleDefinition/CMakeLists.txt | 9 +- Tests/ModuleDefinition/example_exe.c | 6 +- Tests/ModuleDefinition/split_dll.c | 9 + Tests/ModuleDefinition/split_dll_1.def | 2 + Tests/ModuleDefinition/split_dll_2.def | 2 + Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 4 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 9 + .../default-lang-none-result.txt} | 0 .../CheckIPOSupported/default-lang-none-stderr.txt | 7 + .../CheckIPOSupported/default-lang-none.cmake | 1 + .../not-supported-by-cmake-result.txt} | 0 .../not-supported-by-cmake-stderr.txt | 6 + .../CheckIPOSupported/not-supported-by-cmake.cmake | 3 + .../not-supported-by-compiler-result.txt} | 0 .../not-supported-by-compiler-stderr.txt | 6 + .../not-supported-by-compiler.cmake | 4 + .../CheckIPOSupported/save-to-result.cmake | 22 ++ .../unparsed-arguments-result.txt} | 0 .../unparsed-arguments-stderr.txt | 5 + .../CheckIPOSupported/unparsed-arguments.cmake | 1 + .../user-lang-fortran-result.txt} | 0 .../CheckIPOSupported/user-lang-fortran-stderr.txt | 6 + .../CheckIPOSupported/user-lang-fortran.cmake | 1 + .../user-lang-unknown-result.txt} | 0 .../CheckIPOSupported/user-lang-unknown-stderr.txt | 6 + .../CheckIPOSupported/user-lang-unknown.cmake | 1 + Tests/RunCMake/if/RunCMakeTest.cmake | 4 + .../duplicate-deep-else-result.txt} | 0 Tests/RunCMake/if/duplicate-deep-else-stderr.txt | 4 + Tests/RunCMake/if/duplicate-deep-else.cmake | 7 + .../duplicate-else-after-elseif-result.txt} | 0 .../if/duplicate-else-after-elseif-stderr.txt | 4 + .../RunCMake/if/duplicate-else-after-elseif.cmake | 5 + .../duplicate-else-result.txt} | 0 Tests/RunCMake/if/duplicate-else-stderr.txt | 4 + Tests/RunCMake/if/duplicate-else.cmake | 4 + .../misplaced-elseif-result.txt} | 0 Tests/RunCMake/if/misplaced-elseif-stderr.txt | 4 + Tests/RunCMake/if/misplaced-elseif.cmake | 4 + Utilities/cmlibarchive/libarchive/archive_random.c | 2 +- 74 files changed, 693 insertions(+), 108 deletions(-) create mode 100644 Help/module/CheckIPOSupported.rst create mode 100644 Help/release/dev/CheckIPOSupported.rst create mode 100644 Help/release/dev/module-def-and-WINDOWS_EXPORT_ALL_SYMBOLS.rst create mode 100644 Modules/CheckIPOSupported.cmake create mode 100644 Modules/CheckIPOSupported/CMakeLists-C.txt.in create mode 100644 Modules/CheckIPOSupported/CMakeLists-CXX.txt.in create mode 100644 Modules/CheckIPOSupported/foo.c create mode 100644 Modules/CheckIPOSupported/foo.cpp create mode 100644 Modules/CheckIPOSupported/main.c create mode 100644 Modules/CheckIPOSupported/main.cpp create mode 100644 Tests/ModuleDefinition/split_dll.c create mode 100644 Tests/ModuleDefinition/split_dll_1.def create mode 100644 Tests/ModuleDefinition/split_dll_2.def create mode 100644 Tests/RunCMake/CheckIPOSupported/CMakeLists.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/default-lang-none-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/default-lang-none.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler.cmake create mode 100644 Tests/RunCMake/CheckIPOSupported/save-to-result.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/unparsed-arguments-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/unparsed-arguments.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-fortran-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-fortran.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/user-lang-unknown-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/user-lang-unknown.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-deep-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-deep-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-deep-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-after-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else-after-elseif.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/duplicate-else-result.txt} (100%) create mode 100644 Tests/RunCMake/if/duplicate-else-stderr.txt create mode 100644 Tests/RunCMake/if/duplicate-else.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => if/misplaced-elseif-result.txt} (100%) create mode 100644 Tests/RunCMake/if/misplaced-elseif-stderr.txt create mode 100644 Tests/RunCMake/if/misplaced-elseif.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 00:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-567-g82db83d Message-ID: <20170323040507.DD0EDFA692@public.kitware.com> 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 82db83d2f143fa90c13be2a63fe0273e7e80bd09 (commit) from 9a733c7bd626f457a71632da46934995da7bbd4b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 00:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 00:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-588-g24c959a Message-ID: <20170323040508.680CAFA696@public.kitware.com> 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 1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 (commit) discards 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 (commit) discards 31004b59ed1dd444582ce5948ee151247ae3fb6c (commit) discards 606c1fcdf87b319fe10f2ad100508b16f23a4e59 (commit) discards 377cd0876d8101934496d83ab86c06cd6b2ba246 (commit) discards 872531753f5216d1b6d9682923473df33f3b8860 (commit) discards 0a9fe75a2d649463a7d17552546a532f6d8c3c80 (commit) via 24c959a2b299b0152ed8c76d8b67cb5e37976ff1 (commit) via 25da367b8a3264e4a4a0d789d748090d4c4f2e0a (commit) via 6043f9bfc3177347db49ae4c4872a5c2f3c00632 (commit) via 686ca3aa15ee2d6872edf6cc728b02ace701174e (commit) via 5e8d199f0ef4635409d05cf881df145eeb04292f (commit) via fe8f3d2c1f87a2903ee216c7747e311d23c56a7b (commit) via f02103932dfc086535716b1331238605237c5856 (commit) via 82db83d2f143fa90c13be2a63fe0273e7e80bd09 (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 (1b4bc2f130f28fc4a5c9ed8464b467380749a0b5) \ N -- N -- N (24c959a2b299b0152ed8c76d8b67cb5e37976ff1) 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=24c959a2b299b0152ed8c76d8b67cb5e37976ff1 commit 24c959a2b299b0152ed8c76d8b67cb5e37976ff1 Merge: 25da367 a2aad448 Author: Brad King AuthorDate: Wed Mar 22 20:08:30 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:31 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-refactor' Topic-id: 23190 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/612 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=25da367b8a3264e4a4a0d789d748090d4c4f2e0a commit 25da367b8a3264e4a4a0d789d748090d4c4f2e0a Merge: 6043f9b 8285ad5 Author: Brad King AuthorDate: Wed Mar 22 16:37:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:31 2017 -0400 Stage topic 'fix/16736' Topic-id: 23186 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/611 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6043f9bfc3177347db49ae4c4872a5c2f3c00632 commit 6043f9bfc3177347db49ae4c4872a5c2f3c00632 Merge: 686ca3a feed8d9 Author: Brad King AuthorDate: Wed Mar 22 15:38:45 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:30 2017 -0400 Stage topic 'avoid-MSVC-per-version-vars' Topic-id: 23183 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/610 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=686ca3aa15ee2d6872edf6cc728b02ace701174e commit 686ca3aa15ee2d6872edf6cc728b02ace701174e Merge: 5e8d199 fecf846 Author: Brad King AuthorDate: Wed Mar 22 15:29:33 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:30 2017 -0400 Stage topic 'doc-prefer-MSVC_VERSION' Topic-id: 23180 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/609 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5e8d199f0ef4635409d05cf881df145eeb04292f commit 5e8d199f0ef4635409d05cf881df145eeb04292f Merge: fe8f3d2 8f207df Author: Brad King AuthorDate: Wed Mar 22 15:09:28 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:30 2017 -0400 Stage topic 'FindwxWidgets-vs-2017' Topic-id: 23178 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/608 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fe8f3d2c1f87a2903ee216c7747e311d23c56a7b commit fe8f3d2c1f87a2903ee216c7747e311d23c56a7b Merge: f021039 b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:30 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f02103932dfc086535716b1331238605237c5856 commit f02103932dfc086535716b1331238605237c5856 Merge: 82db83d e1ee7b4 Author: Brad King AuthorDate: Wed Mar 22 14:01:34 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 00:01:29 2017 -0400 Stage topic 'cpack_nsis_sign_uninstaller' Topic-id: 23173 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/605 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:35:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:35:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-569-g922b777 Message-ID: <20170323123505.ECABFFA532@public.kitware.com> 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 922b7770bda42a365b062f942b9fc08b2a443709 (commit) via e1ee7b4305bdf2b50640c4c500705bb4bbff47bf (commit) from 82db83d2f143fa90c13be2a63fe0273e7e80bd09 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/NSIS.template.in | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:35:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:35:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-588-gcb7f989 Message-ID: <20170323123506.9F386FA56B@public.kitware.com> 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 24c959a2b299b0152ed8c76d8b67cb5e37976ff1 (commit) discards 25da367b8a3264e4a4a0d789d748090d4c4f2e0a (commit) discards 6043f9bfc3177347db49ae4c4872a5c2f3c00632 (commit) discards 686ca3aa15ee2d6872edf6cc728b02ace701174e (commit) discards 5e8d199f0ef4635409d05cf881df145eeb04292f (commit) discards fe8f3d2c1f87a2903ee216c7747e311d23c56a7b (commit) discards f02103932dfc086535716b1331238605237c5856 (commit) via cb7f9893763ab2cab4a45d9ef1853e12b2480e76 (commit) via 7a872cb9abb39d65f4da4a90a468a4ec93e3c92f (commit) via e45eff14a7551391d4939b15b0ab528a8f6eebbf (commit) via 031306aca719d571f14076cba6a9017510155255 (commit) via 171d5c7ffa592630a415ade9c80ea0f24e11b077 (commit) via 27f8d19bbae0327a791b8ffbda687cb4981e68fa (commit) via 922b7770bda42a365b062f942b9fc08b2a443709 (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 (24c959a2b299b0152ed8c76d8b67cb5e37976ff1) \ N -- N -- N (cb7f9893763ab2cab4a45d9ef1853e12b2480e76) 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=cb7f9893763ab2cab4a45d9ef1853e12b2480e76 commit cb7f9893763ab2cab4a45d9ef1853e12b2480e76 Merge: 7a872cb a2aad448 Author: Brad King AuthorDate: Wed Mar 22 20:08:30 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:06 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-refactor' Topic-id: 23190 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/612 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a872cb9abb39d65f4da4a90a468a4ec93e3c92f commit 7a872cb9abb39d65f4da4a90a468a4ec93e3c92f Merge: e45eff1 8285ad5 Author: Brad King AuthorDate: Wed Mar 22 16:37:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:06 2017 -0400 Stage topic 'fix/16736' Topic-id: 23186 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/611 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e45eff14a7551391d4939b15b0ab528a8f6eebbf commit e45eff14a7551391d4939b15b0ab528a8f6eebbf Merge: 031306a feed8d9 Author: Brad King AuthorDate: Wed Mar 22 15:38:45 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:05 2017 -0400 Stage topic 'avoid-MSVC-per-version-vars' Topic-id: 23183 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/610 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=031306aca719d571f14076cba6a9017510155255 commit 031306aca719d571f14076cba6a9017510155255 Merge: 171d5c7 fecf846 Author: Brad King AuthorDate: Wed Mar 22 15:29:33 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:05 2017 -0400 Stage topic 'doc-prefer-MSVC_VERSION' Topic-id: 23180 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/609 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=171d5c7ffa592630a415ade9c80ea0f24e11b077 commit 171d5c7ffa592630a415ade9c80ea0f24e11b077 Merge: 27f8d19 8f207df Author: Brad King AuthorDate: Wed Mar 22 15:09:28 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:05 2017 -0400 Stage topic 'FindwxWidgets-vs-2017' Topic-id: 23178 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/608 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=27f8d19bbae0327a791b8ffbda687cb4981e68fa commit 27f8d19bbae0327a791b8ffbda687cb4981e68fa Merge: 922b777 b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:30:05 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:45:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-580-gcfa55fd Message-ID: <20170323124503.5B771E30FD@public.kitware.com> 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 cfa55fd428360776c442a5e3c5724c6253265fed (commit) via a1440504ffd18f155404b8bf44466172e9a8054d (commit) via e978a2e5b135e25d6654570a6ed948bd5b0f33dc (commit) via 9ab966a722bbe08615d6d5d4a82fd27aab64d315 (commit) via 69b9fde1480eea682937189df7536898422c24f1 (commit) via 3fe3182247fa56fa031c74ea499059102c2743de (commit) via fecf846701ca3a7de4875f5c4362bc79e21b0a4c (commit) via 712452e33088b1ba02c7dde10f56cd2add81deab (commit) via 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 (commit) via 8f207df14de3b8141c37b8b34baae29ebda248b3 (commit) via 73f7d266825f1d301aece1286666beda9297382b (commit) from 922b7770bda42a365b062f942b9fc08b2a443709 (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=cfa55fd428360776c442a5e3c5724c6253265fed commit cfa55fd428360776c442a5e3c5724c6253265fed Merge: a144050 fecf846 Author: Brad King AuthorDate: Thu Mar 23 12:44:55 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:44:58 2017 -0400 Merge topic 'doc-prefer-MSVC_VERSION' fecf8467 Help: Document preference of `MSVC_VERSION` over `MSVC##` 712452e3 Help: Clarify MSVC14 docs w.r.t. VS 2017 v141 toolset 49a60b70 MSVC: Exclude future cl 20+ from MSVC14 variable Acked-by: Kitware Robot Merge-request: !609 ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC.rst | 2 ++ Help/variable/MSVC10.rst | 2 ++ Help/variable/MSVC11.rst | 2 ++ Help/variable/MSVC12.rst | 2 ++ Help/variable/MSVC14.rst | 6 ++++-- Help/variable/MSVC60.rst | 2 ++ Help/variable/MSVC70.rst | 2 ++ Help/variable/MSVC71.rst | 2 ++ Help/variable/MSVC80.rst | 2 ++ Help/variable/MSVC90.rst | 2 ++ Modules/FindBoost.cmake | 2 +- Modules/FindGTK2.cmake | 10 +++++----- Modules/FindRuby.cmake | 10 +++++----- Modules/FindwxWidgets.cmake | 12 +++++++----- Modules/Platform/Windows-MSVC.cmake | 4 +++- 15 files changed, 43 insertions(+), 19 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:45:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:45:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-588-g528202e Message-ID: <20170323124503.B85B8E3CF2@public.kitware.com> 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 cb7f9893763ab2cab4a45d9ef1853e12b2480e76 (commit) discards 7a872cb9abb39d65f4da4a90a468a4ec93e3c92f (commit) discards e45eff14a7551391d4939b15b0ab528a8f6eebbf (commit) discards 031306aca719d571f14076cba6a9017510155255 (commit) discards 171d5c7ffa592630a415ade9c80ea0f24e11b077 (commit) discards 27f8d19bbae0327a791b8ffbda687cb4981e68fa (commit) discards feed8d91328ee4c8416ba024a38edbab1669af3e (commit) discards ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 (commit) discards 3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a (commit) via 528202e71179d9e7c3ce3029cb49b1fa0bb22132 (commit) via f4aef484bbc9c67feea1e6e44a6a87db5eb7ad3f (commit) via 661830ba2dc67cb0f6c61dbd6748fb05a91ef993 (commit) via 6fd68db467dcffc647ac8752853a4dc0dcea04c2 (commit) via a1440504ffd18f155404b8bf44466172e9a8054d (commit) via e978a2e5b135e25d6654570a6ed948bd5b0f33dc (commit) via 9ab966a722bbe08615d6d5d4a82fd27aab64d315 (commit) via 69b9fde1480eea682937189df7536898422c24f1 (commit) via 3fe3182247fa56fa031c74ea499059102c2743de (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 (cb7f9893763ab2cab4a45d9ef1853e12b2480e76) \ N -- N -- N (528202e71179d9e7c3ce3029cb49b1fa0bb22132) 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=528202e71179d9e7c3ce3029cb49b1fa0bb22132 commit 528202e71179d9e7c3ce3029cb49b1fa0bb22132 Merge: f4aef48 a2aad448 Author: Brad King AuthorDate: Wed Mar 22 20:08:30 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:44:34 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-refactor' Topic-id: 23190 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/612 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f4aef484bbc9c67feea1e6e44a6a87db5eb7ad3f commit f4aef484bbc9c67feea1e6e44a6a87db5eb7ad3f Merge: 661830b 8285ad5 Author: Brad King AuthorDate: Wed Mar 22 16:37:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:44:34 2017 -0400 Stage topic 'fix/16736' Topic-id: 23186 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/611 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=661830ba2dc67cb0f6c61dbd6748fb05a91ef993 commit 661830ba2dc67cb0f6c61dbd6748fb05a91ef993 Merge: 6fd68db fecf846 Author: Brad King AuthorDate: Wed Mar 22 15:29:33 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:44:33 2017 -0400 Stage topic 'doc-prefer-MSVC_VERSION' Topic-id: 23180 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/609 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6fd68db467dcffc647ac8752853a4dc0dcea04c2 commit 6fd68db467dcffc647ac8752853a4dc0dcea04c2 Merge: a144050 b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:44:33 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-592-gf0f60c5 Message-ID: <20170323125503.2F6F9F9D90@public.kitware.com> 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 f0f60c548a3c3156f6488c1921f5b64ea33f5410 (commit) via 677b3cbf28eb528f18777276035a223c565d8add (commit) via f673623130df6eafe5f691d67089cb75b320eea5 (commit) via 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (commit) via 51ef9bb1eb9468376b6ab2014f4519d57b90c682 (commit) via b8c72c50f7a75c46a596b2209223def2a70aebfc (commit) via a2aad448e1b285944c3d128487da2f0df6c180b6 (commit) via 16eb58d503b55e5758aa791a0e17aed2935f9d37 (commit) via a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 (commit) via 8285ad511a92416f0e99fcda27de98435316173b (commit) via d2fb1264d71d64f48ab8c7f15dc3d1fed4182111 (commit) via 4fbae41f889a53903fd5f625ee378b333e8a75fc (commit) from cfa55fd428360776c442a5e3c5724c6253265fed (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 355 +++++++++++++------------- Source/cmServerProtocol.cxx | 24 +- 2 files changed, 198 insertions(+), 181 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-594-gfcaf48b Message-ID: <20170323125503.557ACF9D9F@public.kitware.com> 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 528202e71179d9e7c3ce3029cb49b1fa0bb22132 (commit) discards f4aef484bbc9c67feea1e6e44a6a87db5eb7ad3f (commit) discards 661830ba2dc67cb0f6c61dbd6748fb05a91ef993 (commit) discards 6fd68db467dcffc647ac8752853a4dc0dcea04c2 (commit) via fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11 (commit) via f0f60c548a3c3156f6488c1921f5b64ea33f5410 (commit) via 677b3cbf28eb528f18777276035a223c565d8add (commit) via f673623130df6eafe5f691d67089cb75b320eea5 (commit) via cfa55fd428360776c442a5e3c5724c6253265fed (commit) via 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (commit) via 51ef9bb1eb9468376b6ab2014f4519d57b90c682 (commit) via b8c72c50f7a75c46a596b2209223def2a70aebfc (commit) via d2fb1264d71d64f48ab8c7f15dc3d1fed4182111 (commit) via 4fbae41f889a53903fd5f625ee378b333e8a75fc (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 (528202e71179d9e7c3ce3029cb49b1fa0bb22132) \ N -- N -- N (fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11) 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=fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11 commit fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11 Merge: f0f60c5 b379079 Author: Brad King AuthorDate: Wed Mar 22 14:05:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 08:51:25 2017 -0400 Stage topic 'vfproj' Topic-id: 23126 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/593 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 08:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 08:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-52-g324d7f5 Message-ID: <20170323125503.73A5BF9DFF@public.kitware.com> 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, release has been updated via 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (commit) via 51ef9bb1eb9468376b6ab2014f4519d57b90c682 (commit) via b8c72c50f7a75c46a596b2209223def2a70aebfc (commit) via 9ab966a722bbe08615d6d5d4a82fd27aab64d315 (commit) via 69b9fde1480eea682937189df7536898422c24f1 (commit) via 3fe3182247fa56fa031c74ea499059102c2743de (commit) via a2aad448e1b285944c3d128487da2f0df6c180b6 (commit) via 16eb58d503b55e5758aa791a0e17aed2935f9d37 (commit) via a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 (commit) via 8285ad511a92416f0e99fcda27de98435316173b (commit) via d2fb1264d71d64f48ab8c7f15dc3d1fed4182111 (commit) via 4fbae41f889a53903fd5f625ee378b333e8a75fc (commit) via fecf846701ca3a7de4875f5c4362bc79e21b0a4c (commit) via 712452e33088b1ba02c7dde10f56cd2add81deab (commit) via 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 (commit) via 8f207df14de3b8141c37b8b34baae29ebda248b3 (commit) via 73f7d266825f1d301aece1286666beda9297382b (commit) from 352b195f8769c5e4c884c1f9d0ba6d747d533547 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC.rst | 2 + Help/variable/MSVC10.rst | 2 + Help/variable/MSVC11.rst | 2 + Help/variable/MSVC12.rst | 2 + Help/variable/MSVC14.rst | 6 +- Help/variable/MSVC60.rst | 2 + Help/variable/MSVC70.rst | 2 + Help/variable/MSVC71.rst | 2 + Help/variable/MSVC80.rst | 2 + Help/variable/MSVC90.rst | 2 + Modules/FindBoost.cmake | 2 +- Modules/FindGTK2.cmake | 10 +- Modules/FindRuby.cmake | 10 +- Modules/FindwxWidgets.cmake | 12 +- Modules/InstallRequiredSystemLibraries.cmake | 355 +++++++++++++------------- Modules/Platform/Windows-MSVC.cmake | 4 +- Source/cmServerProtocol.cxx | 24 +- 17 files changed, 241 insertions(+), 200 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 09:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 09:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-597-gb95ba9c Message-ID: <20170323132503.52DDCFA3A7@public.kitware.com> 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 fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11 (commit) discards b3790796a2fbae9e0558edd6ba3b0212d33669ca (commit) via b95ba9c47daae0f77c06a2e993e342cb74de5ce3 (commit) via d9bebefbde3ce2ff1589de401b916b9d62dd6ca9 (commit) via 1e2081a40b4e468ae21814d58a5a67e764830dde (commit) via 060be58c6f9ffe11235341bc10c8f5d808e31b3d (commit) via 484ccb0c454afa36da6b36e4ca5e0258e1739b3d (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 (fcaf48bb9b9e64022a2b72819a3affd9e9b6ea11) \ N -- N -- N (b95ba9c47daae0f77c06a2e993e342cb74de5ce3) 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=b95ba9c47daae0f77c06a2e993e342cb74de5ce3 commit b95ba9c47daae0f77c06a2e993e342cb74de5ce3 Merge: f0f60c5 d9bebef Author: Brad King AuthorDate: Thu Mar 23 13:16:21 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 09:20:36 2017 -0400 Stage topic '16680-ios-bundle-resources' Topic-id: 23205 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/613 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d9bebefbde3ce2ff1589de401b916b9d62dd6ca9 commit d9bebefbde3ce2ff1589de401b916b9d62dd6ca9 Author: Gregor Jasny AuthorDate: Wed Mar 22 23:10:28 2017 +0100 Commit: Gregor Jasny CommitDate: Wed Mar 22 23:36:47 2017 +0100 Apple: Add test for bundle resource layout Closes: #16680 diff --git a/Tests/RunCMake/Framework/FrameworkLayout.cmake b/Tests/RunCMake/Framework/FrameworkLayout.cmake index ae32134..dcfbd2d 100644 --- a/Tests/RunCMake/Framework/FrameworkLayout.cmake +++ b/Tests/RunCMake/Framework/FrameworkLayout.cmake @@ -4,11 +4,17 @@ enable_language(C) add_library(Framework ${FRAMEWORK_TYPE} foo.c foo.h - res.txt) + res.txt + flatresource.txt + deepresource.txt + some.txt) set_target_properties(Framework PROPERTIES FRAMEWORK TRUE PUBLIC_HEADER foo.h RESOURCE "res.txt") +set_source_files_properties(flatresource.txt PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +set_source_files_properties(deepresource.txt PROPERTIES MACOSX_PACKAGE_LOCATION Resources/deep) +set_source_files_properties(some.txt PROPERTIES MACOSX_PACKAGE_LOCATION somedir) add_custom_command(TARGET Framework POST_BUILD COMMAND /usr/bin/file $) diff --git a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake index da1ccb4..1a543d8 100644 --- a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake @@ -1,8 +1,11 @@ set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-resources}/res.txt") +set(framework-flat-resource-file "${framework-resources}/flatresource.txt") +set(framework-deep-resource-file "${framework-resources}/deep/deepresource.txt") set(framework-library "${framework-dir}/Framework") set(framework-versions "${framework-dir}/Versions") +set(framework-some-file "${framework-versions}/Current/somedir/some.txt") set(plist-file "${framework-resources}/Info.plist") set(framework-header "${framework-dir}/Headers/foo.h") @@ -22,6 +25,18 @@ if(NOT EXISTS ${framework-resource-file}) message(SEND_ERROR "Framework resource file not found at ${framework-resource-file}") endif() +if(NOT EXISTS ${framework-flat-resource-file}) + message(SEND_ERROR "Framework flat resource file not found at ${framework-flat-resource-file}") +endif() + +if(NOT EXISTS ${framework-deep-resource-file}) + message(SEND_ERROR "Framework deep resource file not found at ${framework-deep-resource-file}") +endif() + +if(NOT EXISTS ${framework-some-file}) + message(SEND_ERROR "Framework some file not found at ${framework-some-file}") +endif() + if(NOT EXISTS ${framework-versions}) message(SEND_ERROR "Framework versions not found at ${framework-versions}") endif() diff --git a/Tests/RunCMake/Framework/deepresource.txt b/Tests/RunCMake/Framework/deepresource.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/Framework/flatresource.txt b/Tests/RunCMake/Framework/flatresource.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake index b81a5f7..e068a3a 100644 --- a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake @@ -1,6 +1,9 @@ set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-dir}/res.txt") +set(framework-flat-resource-file "${framework-dir}/flatresource.txt") +set(framework-deep-resource-file "${framework-dir}/deep/deepresource.txt") +set(framework-some-file "${framework-dir}/somedir/some.txt") set(framework-library "${framework-dir}/Framework") set(framework-versions "${framework-dir}/Versions") set(plist-file "${framework-dir}/Info.plist") @@ -22,6 +25,18 @@ if(NOT EXISTS ${framework-resource-file}) message(SEND_ERROR "Framework resource file not found at ${framework-resource-file}") endif() +if(NOT EXISTS ${framework-flat-resource-file}) + message(SEND_ERROR "Framework flat resource file not found at ${framework-flat-resource-file}") +endif() + +if(NOT EXISTS ${framework-deep-resource-file}) + message(SEND_ERROR "Framework deep resource file not found at ${framework-deep-resource-file}") +endif() + +if(NOT EXISTS ${framework-some-file}) + message(SEND_ERROR "Framework some file not found at ${framework-some-file}") +endif() + if(EXISTS ${framework-versions}) message(SEND_ERROR "Framework versions found at ${framework-versions}") endif() diff --git a/Tests/RunCMake/Framework/some.txt b/Tests/RunCMake/Framework/some.txt new file mode 100644 index 0000000..e69de29 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1e2081a40b4e468ae21814d58a5a67e764830dde commit 1e2081a40b4e468ae21814d58a5a67e764830dde Author: Gregor Jasny AuthorDate: Wed Mar 22 22:49:38 2017 +0100 Commit: Gregor Jasny CommitDate: Wed Mar 22 23:36:18 2017 +0100 Apple: Fix Resources location for all generators Issue: #16680 diff --git a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst index 69cdcb7..a064afa 100644 --- a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst +++ b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst @@ -21,3 +21,10 @@ extension is changed). See the :prop_tgt:`PUBLIC_HEADER`, :prop_tgt:`PRIVATE_HEADER`, and :prop_tgt:`RESOURCE` target properties for specifying files meant for ``Headers``, ``PrivateHeaders``, or ``Resources`` directories. + +If the specified location is equal to ``Resources``, the resulting location +will be the same as if the :prop_tgt:`RESOURCE` property had been used. If +the specified location is a sub-folder of ``Resources``, it will be placed +into the respective sub-folder. Note: For iOS Apple uses a flat bundle layout +where no ``Resources`` folder exist. Therefore CMake strips the ``Resources`` +folder name from the specified location. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 64b05c3..d9f55fe 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3315,10 +3315,16 @@ cmGeneratorTarget::GetTargetSourceFileFlags(const cmSourceFile* sf) const // were not listed in one of the other lists. if (const char* location = sf->GetProperty("MACOSX_PACKAGE_LOCATION")) { flags.MacFolder = location; + const bool stripResources = + this->GlobalGenerator->ShouldStripResourcePath(this->Makefile); if (strcmp(location, "Resources") == 0) { flags.Type = cmGeneratorTarget::SourceFileTypeResource; + if (stripResources) + flags.MacFolder = ""; } else if (cmSystemTools::StringStartsWith(location, "Resources/")) { flags.Type = cmGeneratorTarget::SourceFileTypeDeepResource; + if (stripResources) + flags.MacFolder += strlen("Resources/"); } else { flags.Type = cmGeneratorTarget::SourceFileTypeMacContent; } @@ -3372,7 +3378,7 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const if (cmSourceFile* sf = this->Makefile->GetSource(*it)) { SourceFileFlags& flags = this->SourceFlagsMap[sf]; flags.MacFolder = ""; - if (!this->Makefile->PlatformIsAppleIos()) { + if (!this->GlobalGenerator->ShouldStripResourcePath(this->Makefile)) { flags.MacFolder = "Resources"; } flags.Type = cmGeneratorTarget::SourceFileTypeResource; diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 0d53bf7..851290a 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2487,6 +2487,11 @@ std::string cmGlobalGenerator::GenerateRuleFile( return ruleFile; } +bool cmGlobalGenerator::ShouldStripResourcePath(cmMakefile* mf) const +{ + return mf->PlatformIsAppleIos(); +} + std::string cmGlobalGenerator::GetSharedLibFlagsForLanguage( std::string const& l) const { diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b3cb41f..2558fee 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -337,6 +337,10 @@ public: relevant for mixed macOS and iOS builds. */ virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; } + /** Return whether the "Resources" folder prefix should be stripped from + MacFolder. */ + virtual bool ShouldStripResourcePath(cmMakefile*) const; + std::string GetSharedLibFlagsForLanguage(std::string const& lang) const; /** Generate an .rule file path for a given command output. */ diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index bd0f55b..39f7b8f 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1200,9 +1200,8 @@ bool cmGlobalXCodeGenerator::CreateXCodeTargets( this->CreateString("2147483647")); copyFilesBuildPhase->AddAttribute("dstSubfolderSpec", this->CreateString("7")); - const std::string dstPath = mit->first.substr(strlen("Resources/")); copyFilesBuildPhase->AddAttribute("dstPath", - this->CreateString(dstPath)); + this->CreateString(mit->first)); copyFilesBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", this->CreateString("0")); buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); @@ -3701,6 +3700,12 @@ bool cmGlobalXCodeGenerator::UseEffectivePlatformName(cmMakefile* mf) const return cmSystemTools::IsOn(epnValue); } +bool cmGlobalXCodeGenerator::ShouldStripResourcePath(cmMakefile*) const +{ + // Xcode determines Resource location itself + return true; +} + void cmGlobalXCodeGenerator::ComputeTargetObjectDirectory( cmGeneratorTarget* gt) const { diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 9eacdef..172e414 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -88,6 +88,8 @@ public: bool UseEffectivePlatformName(cmMakefile* mf) const CM_OVERRIDE; + bool ShouldStripResourcePath(cmMakefile*) const CM_OVERRIDE; + bool SetGeneratorToolset(std::string const& ts, cmMakefile* mf) CM_OVERRIDE; void AppendFlag(std::string& flags, std::string const& flag); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=060be58c6f9ffe11235341bc10c8f5d808e31b3d commit 060be58c6f9ffe11235341bc10c8f5d808e31b3d Author: Gregor Jasny AuthorDate: Sun Feb 26 22:12:44 2017 +0100 Commit: Gregor Jasny CommitDate: Wed Mar 22 23:36:11 2017 +0100 Xcode: Properly handle Bundle Resources with more than one hierarchy level Issue: #16680 diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index e27424f..64b05c3 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3317,6 +3317,8 @@ cmGeneratorTarget::GetTargetSourceFileFlags(const cmSourceFile* sf) const flags.MacFolder = location; if (strcmp(location, "Resources") == 0) { flags.Type = cmGeneratorTarget::SourceFileTypeResource; + } else if (cmSystemTools::StringStartsWith(location, "Resources/")) { + flags.Type = cmGeneratorTarget::SourceFileTypeDeepResource; } else { flags.Type = cmGeneratorTarget::SourceFileTypeMacContent; } diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 68d6ef8..d60ad24 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -422,7 +422,9 @@ public: SourceFileTypePublicHeader, // is in "PUBLIC_HEADER" target property SourceFileTypeResource, // is in "RESOURCE" target property *or* // has MACOSX_PACKAGE_LOCATION=="Resources" - SourceFileTypeMacContent // has MACOSX_PACKAGE_LOCATION!="Resources" + SourceFileTypeDeepResource, // MACOSX_PACKAGE_LOCATION starts with + // "Resources/" + SourceFileTypeMacContent // has MACOSX_PACKAGE_LOCATION!="Resources[/]" }; struct SourceFileFlags { diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 3f5dde7..bd0f55b 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1177,6 +1177,46 @@ bool cmGlobalXCodeGenerator::CreateXCodeTargets( } } + // create vector of "resource content file" build phases - only for + // framework or bundle targets + if (isFrameworkTarget || isBundleTarget || isCFBundleTarget) { + typedef std::map > + mapOfVectorOfSourceFiles; + mapOfVectorOfSourceFiles bundleFiles; + for (std::vector::const_iterator i = classes.begin(); + i != classes.end(); ++i) { + cmGeneratorTarget::SourceFileFlags tsFlags = + gtgt->GetTargetSourceFileFlags(*i); + if (tsFlags.Type == cmGeneratorTarget::SourceFileTypeDeepResource) { + bundleFiles[tsFlags.MacFolder].push_back(*i); + } + } + mapOfVectorOfSourceFiles::iterator mit; + for (mit = bundleFiles.begin(); mit != bundleFiles.end(); ++mit) { + cmXCodeObject* copyFilesBuildPhase = + this->CreateObject(cmXCodeObject::PBXCopyFilesBuildPhase); + copyFilesBuildPhase->SetComment("Copy files"); + copyFilesBuildPhase->AddAttribute("buildActionMask", + this->CreateString("2147483647")); + copyFilesBuildPhase->AddAttribute("dstSubfolderSpec", + this->CreateString("7")); + const std::string dstPath = mit->first.substr(strlen("Resources/")); + copyFilesBuildPhase->AddAttribute("dstPath", + this->CreateString(dstPath)); + copyFilesBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", + this->CreateString("0")); + buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); + copyFilesBuildPhase->AddAttribute("files", buildFiles); + std::vector::iterator sfIt; + for (sfIt = mit->second.begin(); sfIt != mit->second.end(); ++sfIt) { + cmXCodeObject* xsf = this->CreateXCodeSourceFile( + this->CurrentLocalGenerator, *sfIt, gtgt); + buildFiles->AddObject(xsf); + } + contentBuildPhases.push_back(copyFilesBuildPhase); + } + } + // create framework build phase cmXCodeObject* frameworkBuildPhase = 0; if (!externalObjFiles.empty()) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=484ccb0c454afa36da6b36e4ca5e0258e1739b3d commit 484ccb0c454afa36da6b36e4ca5e0258e1739b3d Author: Gregor Jasny AuthorDate: Sun Feb 26 22:14:34 2017 +0100 Commit: Gregor Jasny CommitDate: Wed Mar 22 21:16:42 2017 +0100 Xcode: Properly handle non-resource Bundle files on iOS Issue: #16680 diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 77f3408..3f5dde7 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1154,8 +1154,12 @@ bool cmGlobalXCodeGenerator::CreateXCodeTargets( // dstPath in frameworks is relative to Versions/ ostr << mit->first; } else if (mit->first != "MacOS") { - // dstPath in bundles is relative to Contents/MacOS - ostr << "../" << mit->first.c_str(); + if (gtgt->Target->GetMakefile()->PlatformIsAppleIos()) { + ostr << mit->first; + } else { + // dstPath in bundles is relative to Contents/MacOS + ostr << "../" << mit->first; + } } copyFilesBuildPhase->AddAttribute("dstPath", this->CreateString(ostr.str())); ----------------------------------------------------------------------- Summary of changes: Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 7 +++ Source/cmGeneratorTarget.cxx | 10 +++- Source/cmGeneratorTarget.h | 4 +- Source/cmGlobalGenerator.cxx | 5 ++ Source/cmGlobalGenerator.h | 4 ++ Source/cmGlobalVisualStudioGenerator.cxx | 19 ------- Source/cmGlobalXCodeGenerator.cxx | 53 +++++++++++++++++++- Source/cmGlobalXCodeGenerator.h | 2 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 8 ++- .../Framework/OSXFrameworkLayout-build-check.cmake | 15 ++++++ .../RunCMake/Framework/deepresource.txt | 0 .../RunCMake/Framework/flatresource.txt | 0 .../Framework/iOSFrameworkLayout-build-check.cmake | 15 ++++++ .../hello.f => Tests/RunCMake/Framework/some.txt | 0 14 files changed, 118 insertions(+), 24 deletions(-) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/deepresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/flatresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/some.txt (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 10:55:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 10:55:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-603-gab31b34 Message-ID: <20170323145504.33F29FA035@public.kitware.com> 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 ab31b34c7f87f2703299f0e5af1fb3cec9fa39b5 (commit) via 835c6bc8f1bfdc0258a56bfb45b629119ff49bea (commit) via d4a693a08385024175240a5543cc2a7bb7311966 (commit) via 5ed4e48128837df0539cb1570c954e2872256930 (commit) via dbdb880af976b82f6530de5753b84cfa53c985c8 (commit) via d40fc8856d3cc3cd40e091d858df4fb1725f1406 (commit) from b95ba9c47daae0f77c06a2e993e342cb74de5ce3 (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=ab31b34c7f87f2703299f0e5af1fb3cec9fa39b5 commit ab31b34c7f87f2703299f0e5af1fb3cec9fa39b5 Merge: 835c6bc d40fc88 Author: Brad King AuthorDate: Thu Mar 23 14:52:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 10:52:17 2017 -0400 Stage topic 'make_sure_cuda_tests_run' Topic-id: 23212 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/615 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=835c6bc8f1bfdc0258a56bfb45b629119ff49bea commit 835c6bc8f1bfdc0258a56bfb45b629119ff49bea Merge: b95ba9c d4a693a Author: Brad King AuthorDate: Thu Mar 23 14:48:05 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 10:48:08 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23213 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/616 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4a693a08385024175240a5543cc2a7bb7311966 commit d4a693a08385024175240a5543cc2a7bb7311966 Author: Brad King AuthorDate: Thu Mar 23 10:30:14 2017 -0400 Commit: Brad King CommitDate: Thu Mar 23 10:30:14 2017 -0400 InstallRequiredSystemLibraries: Add support for VS 2017 VS 2017 (VS 15) places its redist DLLs in `Microsoft.VC150.*` directories but still uses version number `140` in the DLL names. The redist directories now have version numbers in their name, and the MSVC and MFC runtime DLLs may be in directories with different versions. Fill out our logic to handle this. For now assume we are given the `MSVC_REDIST_DIR` value as a cache entry. Unfortunately we cannot yet find the VS 2017 MSVC redist directory automatically since there is no registry entry for the VS installation. Later we will have to use `cmVSSetupHelper` for this. Issue: #16735 diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 2ff2f06..1061da0 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -166,7 +166,10 @@ if(MSVC) endif() endif() - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + if(MSVC_VERSION EQUAL 1910) + set(_MSVCRT_DLL_VERSION 140) + set(_MSVCRT_IDE_VERSION 15) + elseif(MSVC_VERSION EQUAL 1900) set(_MSVCRT_DLL_VERSION 140) set(_MSVCRT_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) @@ -191,7 +194,7 @@ if(MSVC) get_filename_component(msvc_install_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE) set(programfilesx86 "ProgramFiles(x86)") - if(DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}") + if(vs VERSION_LESS 15 AND DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}") set(MSVC_REDIST_DIR "${MSVC${vs}_REDIST_DIR}") # use old cache entry endif() find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT @@ -362,7 +365,10 @@ if(MSVC) ) endif() - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + if(MSVC_VERSION EQUAL 1910) + set(_MFC_DLL_VERSION 140) + set(_MFC_IDE_VERSION 15) + elseif(MSVC_VERSION EQUAL 1900) set(_MFC_DLL_VERSION 140) set(_MFC_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) @@ -383,7 +389,16 @@ if(MSVC) set(v "${_MFC_DLL_VERSION}") set(vs "${_MFC_IDE_VERSION}") - set(MSVC_REDIST_MFC_DIR "${MSVC_REDIST_DIR}") + # Starting with VS 15 the MFC DLLs may be in a different directory. + if (NOT vs VERSION_LESS 15) + file(GLOB _MSVC_REDIST_DIRS "${MSVC_REDIST_DIR}/../*") + find_path(MSVC_REDIST_MFC_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFC + PATHS ${_MSVC_REDIST_DIRS} NO_DEFAULT_PATH) + mark_as_advanced(MSVC_REDIST_MFC_DIR) + unset(_MSVC_REDIST_DIRS) + else() + set(MSVC_REDIST_MFC_DIR "${MSVC_REDIST_DIR}") + endif() # Multi-Byte Character Set versions of MFC are available as optional # addon since Visual Studio 12. So for version 12 or higher, check @@ -438,7 +453,10 @@ if(MSVC) # MSVC 8 was the first version with OpenMP # Furthermore, there is no debug version of this if(CMAKE_INSTALL_OPENMP_LIBRARIES) - if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) + if(MSVC_VERSION EQUAL 1910) + set(_MSOMP_DLL_VERSION 140) + set(_MSOMP_IDE_VERSION 15) + elseif(MSVC_VERSION EQUAL 1900) set(_MSOMP_DLL_VERSION 140) set(_MSOMP_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5ed4e48128837df0539cb1570c954e2872256930 commit 5ed4e48128837df0539cb1570c954e2872256930 Author: Brad King AuthorDate: Thu Mar 23 10:26:52 2017 -0400 Commit: Brad King CommitDate: Thu Mar 23 10:26:52 2017 -0400 InstallRequiredSystemLibraries: Split MFC redist dir variable diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index d19d030..2ff2f06 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -383,13 +383,15 @@ if(MSVC) set(v "${_MFC_DLL_VERSION}") set(vs "${_MFC_IDE_VERSION}") + set(MSVC_REDIST_MFC_DIR "${MSVC_REDIST_DIR}") + # Multi-Byte Character Set versions of MFC are available as optional # addon since Visual Studio 12. So for version 12 or higher, check # whether they are available and exclude them if they are not. if(CMAKE_INSTALL_DEBUG_LIBRARIES) set(MSVC_MFC_DIR - "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.DebugMFC") + "${MSVC_REDIST_MFC_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.DebugMFC") set(__install__libs ${__install__libs} "${MSVC_MFC_DIR}/mfc${v}ud.dll" "${MSVC_MFC_DIR}/mfcm${v}ud.dll" @@ -402,7 +404,7 @@ if(MSVC) endif() endif() - set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFC") + set(MSVC_MFC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFC") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} "${MSVC_MFC_DIR}/mfc${v}u.dll" @@ -417,7 +419,7 @@ if(MSVC) endif() # include the language dll's as well as the actuall dll's - set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFCLOC") + set(MSVC_MFCLOC_DIR "${MSVC_REDIST_MFC_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFCLOC") set(__install__libs ${__install__libs} "${MSVC_MFCLOC_DIR}/mfc${v}chs.dll" "${MSVC_MFCLOC_DIR}/mfc${v}cht.dll" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dbdb880af976b82f6530de5753b84cfa53c985c8 commit dbdb880af976b82f6530de5753b84cfa53c985c8 Author: Brad King AuthorDate: Thu Mar 23 10:14:50 2017 -0400 Commit: Brad King CommitDate: Thu Mar 23 10:14:50 2017 -0400 InstallRequiredSystemLibraries: Split VS IDE and DLL versions Refactor MSVC logic to split the IDE and DLL version variables. diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 67dfe8f..d19d030 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -167,48 +167,54 @@ if(MSVC) endif() if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - set(_MSVCRT_VERSION 14) + set(_MSVCRT_DLL_VERSION 140) + set(_MSVCRT_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) - set(_MSVCRT_VERSION 12) + set(_MSVCRT_DLL_VERSION 120) + set(_MSVCRT_IDE_VERSION 12) elseif(MSVC_VERSION EQUAL 1700) - set(_MSVCRT_VERSION 11) + set(_MSVCRT_DLL_VERSION 110) + set(_MSVCRT_IDE_VERSION 11) elseif(MSVC_VERSION EQUAL 1600) - set(_MSVCRT_VERSION 10) + set(_MSVCRT_DLL_VERSION 100) + set(_MSVCRT_IDE_VERSION 10) else() - set(_MSVCRT_VERSION "") + set(_MSVCRT_DLL_VERSION "") + set(_MSVCRT_IDE_VERSION "") endif() - if(_MSVCRT_VERSION) - set(v "${_MSVCRT_VERSION}") + if(_MSVCRT_DLL_VERSION) + set(v "${_MSVCRT_DLL_VERSION}") + set(vs "${_MSVCRT_IDE_VERSION}") # Find the runtime library redistribution directory. get_filename_component(msvc_install_dir - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${v}.0;InstallDir]" ABSOLUTE) + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE) set(programfilesx86 "ProgramFiles(x86)") - if(DEFINED MSVC${v}_REDIST_DIR AND EXISTS "${MSVC${v}_REDIST_DIR}") - set(MSVC_REDIST_DIR "${MSVC${v}_REDIST_DIR}") # use old cache entry + if(DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}") + set(MSVC_REDIST_DIR "${MSVC${vs}_REDIST_DIR}") # use old cache entry endif() - find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT + find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT PATHS "${msvc_install_dir}/../../VC/redist" "${base_dir}/VC/redist" - "$ENV{ProgramFiles}/Microsoft Visual Studio ${v}.0/VC/redist" - "$ENV{${programfilesx86}}/Microsoft Visual Studio ${v}.0/VC/redist" + "$ENV{ProgramFiles}/Microsoft Visual Studio ${vs}.0/VC/redist" + "$ENV{${programfilesx86}}/Microsoft Visual Studio ${vs}.0/VC/redist" ) mark_as_advanced(MSVC_REDIST_DIR) - set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT") + set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs - "${MSVC_CRT_DIR}/msvcp${v}0.dll" + "${MSVC_CRT_DIR}/msvcp${v}.dll" ) - if(NOT v VERSION_LESS 14) + if(NOT vs VERSION_LESS 14) list(APPEND __install__libs - "${MSVC_CRT_DIR}/vcruntime${v}0.dll" - "${MSVC_CRT_DIR}/concrt${v}0.dll" + "${MSVC_CRT_DIR}/vcruntime${v}.dll" + "${MSVC_CRT_DIR}/concrt${v}.dll" ) else() - list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}0.dll") + list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}.dll") endif() else() set(__install__libs) @@ -216,21 +222,21 @@ if(MSVC) if(CMAKE_INSTALL_DEBUG_LIBRARIES) set(MSVC_CRT_DIR - "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugCRT") + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.DebugCRT") set(__install__libs ${__install__libs} - "${MSVC_CRT_DIR}/msvcp${v}0d.dll" + "${MSVC_CRT_DIR}/msvcp${v}d.dll" ) - if(NOT v VERSION_LESS 14) + if(NOT vs VERSION_LESS 14) list(APPEND __install__libs - "${MSVC_CRT_DIR}/vcruntime${v}0d.dll" - "${MSVC_CRT_DIR}/concrt${v}0d.dll" + "${MSVC_CRT_DIR}/vcruntime${v}d.dll" + "${MSVC_CRT_DIR}/concrt${v}d.dll" ) else() - list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}0d.dll") + list(APPEND __install__libs "${MSVC_CRT_DIR}/msvcr${v}d.dll") endif() endif() - if(CMAKE_INSTALL_UCRT_LIBRARIES AND NOT v VERSION_LESS 14) + if(CMAKE_INSTALL_UCRT_LIBRARIES AND NOT vs VERSION_LESS 14) # Find the Windows Kits directory. get_filename_component(windows_kits_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE) @@ -357,19 +363,25 @@ if(MSVC) endif() if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - set(_MFC_VERSION 14) + set(_MFC_DLL_VERSION 140) + set(_MFC_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) - set(_MFC_VERSION 12) + set(_MFC_DLL_VERSION 120) + set(_MFC_IDE_VERSION 12) elseif(MSVC_VERSION EQUAL 1700) - set(_MFC_VERSION 11) + set(_MFC_DLL_VERSION 110) + set(_MFC_IDE_VERSION 11) elseif(MSVC_VERSION EQUAL 1600) - set(_MFC_VERSION 10) + set(_MFC_DLL_VERSION 100) + set(_MFC_IDE_VERSION 10) else() - set(_MFC_VERSION "") + set(_MFC_DLL_VERSION "") + set(_MFC_IDE_VERSION "") endif() - if(_MFC_VERSION) - set(v "${_MFC_VERSION}") + if(_MFC_DLL_VERSION) + set(v "${_MFC_DLL_VERSION}") + set(vs "${_MFC_IDE_VERSION}") # Multi-Byte Character Set versions of MFC are available as optional # addon since Visual Studio 12. So for version 12 or higher, check @@ -377,46 +389,46 @@ if(MSVC) if(CMAKE_INSTALL_DEBUG_LIBRARIES) set(MSVC_MFC_DIR - "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC") + "${MSVC_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.DebugMFC") set(__install__libs ${__install__libs} - "${MSVC_MFC_DIR}/mfc${v}0ud.dll" - "${MSVC_MFC_DIR}/mfcm${v}0ud.dll" + "${MSVC_MFC_DIR}/mfc${v}ud.dll" + "${MSVC_MFC_DIR}/mfcm${v}ud.dll" ) - if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}0d.dll") + if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}d.dll") set(__install__libs ${__install__libs} - "${MSVC_MFC_DIR}/mfc${v}0d.dll" - "${MSVC_MFC_DIR}/mfcm${v}0d.dll" + "${MSVC_MFC_DIR}/mfc${v}d.dll" + "${MSVC_MFC_DIR}/mfcm${v}d.dll" ) endif() endif() - set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC") + set(MSVC_MFC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFC") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} - "${MSVC_MFC_DIR}/mfc${v}0u.dll" - "${MSVC_MFC_DIR}/mfcm${v}0u.dll" + "${MSVC_MFC_DIR}/mfc${v}u.dll" + "${MSVC_MFC_DIR}/mfcm${v}u.dll" ) - if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}0.dll") + if("${v}" LESS 12 OR EXISTS "${MSVC_MFC_DIR}/mfc${v}.dll") set(__install__libs ${__install__libs} - "${MSVC_MFC_DIR}/mfc${v}0.dll" - "${MSVC_MFC_DIR}/mfcm${v}0.dll" + "${MSVC_MFC_DIR}/mfc${v}.dll" + "${MSVC_MFC_DIR}/mfcm${v}.dll" ) endif() endif() # include the language dll's as well as the actuall dll's - set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFCLOC") + set(MSVC_MFCLOC_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.MFCLOC") set(__install__libs ${__install__libs} - "${MSVC_MFCLOC_DIR}/mfc${v}0chs.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0cht.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0deu.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0enu.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0esn.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0fra.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0ita.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0jpn.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0kor.dll" - "${MSVC_MFCLOC_DIR}/mfc${v}0rus.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}chs.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}cht.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}deu.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}enu.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}esn.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}fra.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}ita.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}jpn.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}kor.dll" + "${MSVC_MFCLOC_DIR}/mfc${v}rus.dll" ) endif() endif() @@ -425,24 +437,32 @@ if(MSVC) # Furthermore, there is no debug version of this if(CMAKE_INSTALL_OPENMP_LIBRARIES) if(MSVC_VERSION EQUAL 1900 OR MSVC_VERSION EQUAL 1910) - set(_MSOMP_VERSION 140) + set(_MSOMP_DLL_VERSION 140) + set(_MSOMP_IDE_VERSION 14) elseif(MSVC_VERSION EQUAL 1800) - set(_MSOMP_VERSION 120) + set(_MSOMP_DLL_VERSION 120) + set(_MSOMP_IDE_VERSION 12) elseif(MSVC_VERSION EQUAL 1700) - set(_MSOMP_VERSION 110) + set(_MSOMP_DLL_VERSION 110) + set(_MSOMP_IDE_VERSION 11) elseif(MSVC_VERSION EQUAL 1600) - set(_MSOMP_VERSION 100) + set(_MSOMP_DLL_VERSION 100) + set(_MSOMP_IDE_VERSION 10) elseif(MSVC_VERSION EQUAL 1500) - set(_MSOMP_VERSION 90) + set(_MSOMP_DLL_VERSION 90) + set(_MSOMP_IDE_VERSION 9) elseif(MSVC_VERSION EQUAL 1400) - set(_MSOMP_VERSION 80) + set(_MSOMP_DLL_VERSION 80) + set(_MSOMP_IDE_VERSION 8) else() - set(_MSOMP_VERSION "") + set(_MSOMP_DLL_VERSION "") + set(_MSOMP_IDE_VERSION "") endif() - if(_MSOMP_VERSION) - set(v "${_MSOMP_VERSION}") - set(MSVC_OPENMP_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}.OPENMP") + if(_MSOMP_DLL_VERSION) + set(v "${_MSOMP_DLL_VERSION}") + set(vs "${_MSOMP_IDE_VERSION}") + set(MSVC_OPENMP_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.OPENMP") if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY) set(__install__libs ${__install__libs} https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d40fc8856d3cc3cd40e091d858df4fb1725f1406 commit d40fc8856d3cc3cd40e091d858df4fb1725f1406 Author: Robert Maynard AuthorDate: Thu Mar 23 09:31:25 2017 -0400 Commit: Robert Maynard CommitDate: Thu Mar 23 09:44:30 2017 -0400 CUDA: ObjectLibrary test executable now runs on OSX diff --git a/Tests/Cuda/ObjectLibrary/CMakeLists.txt b/Tests/Cuda/ObjectLibrary/CMakeLists.txt index cbe1e67..1d93be7 100644 --- a/Tests/Cuda/ObjectLibrary/CMakeLists.txt +++ b/Tests/Cuda/ObjectLibrary/CMakeLists.txt @@ -10,3 +10,8 @@ add_library(CudaMixedObjectLib OBJECT static.cu static.cpp) add_executable(CudaObjectLibrary main.cpp $) +if(APPLE) + # We need to add the default path to the driver (libcuda.dylib) as an rpath, so that + # the static cuda runtime can find it at runtime. + target_link_libraries(CudaObjectLibrary PRIVATE -Wl,-rpath,/usr/local/cuda/lib) +endif() ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 178 ++++++++++++++++---------- Tests/Cuda/ObjectLibrary/CMakeLists.txt | 5 + 2 files changed, 114 insertions(+), 69 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 11:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 11:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-603-g08b2a3a Message-ID: <20170323154502.C093EE667F@public.kitware.com> 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 ab31b34c7f87f2703299f0e5af1fb3cec9fa39b5 (commit) discards 835c6bc8f1bfdc0258a56bfb45b629119ff49bea (commit) discards b95ba9c47daae0f77c06a2e993e342cb74de5ce3 (commit) discards d9bebefbde3ce2ff1589de401b916b9d62dd6ca9 (commit) discards 1e2081a40b4e468ae21814d58a5a67e764830dde (commit) via 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 (commit) via 7b0663973bba18c5e532464261f9ec404f9ebaaf (commit) via 304e6a832e47a384552a3adbc49d7d68d65c2dd9 (commit) via b5189fda244112f47e71c820bf1498d500026cd0 (commit) via c51c2cfac619ac9efb9829f8b4decf9756891609 (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 (ab31b34c7f87f2703299f0e5af1fb3cec9fa39b5) \ N -- N -- N (08b2a3a2ca83d8249b433708b7bb6982d04d7bb4) 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=08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 commit 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 Merge: 7b06639 b5189fd Author: Gregor Jasny AuthorDate: Thu Mar 23 15:44:56 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 11:44:59 2017 -0400 Stage topic '16680-ios-bundle-resources' Topic-id: 23205 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/613 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7b0663973bba18c5e532464261f9ec404f9ebaaf commit 7b0663973bba18c5e532464261f9ec404f9ebaaf Merge: 304e6a8 d40fc88 Author: Brad King AuthorDate: Thu Mar 23 14:52:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 11:44:12 2017 -0400 Stage topic 'make_sure_cuda_tests_run' Topic-id: 23212 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/615 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=304e6a832e47a384552a3adbc49d7d68d65c2dd9 commit 304e6a832e47a384552a3adbc49d7d68d65c2dd9 Merge: f0f60c5 d4a693a Author: Brad King AuthorDate: Thu Mar 23 14:48:05 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 11:44:11 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23213 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/616 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b5189fda244112f47e71c820bf1498d500026cd0 commit b5189fda244112f47e71c820bf1498d500026cd0 Author: Gregor Jasny AuthorDate: Wed Mar 22 23:10:28 2017 +0100 Commit: Gregor Jasny CommitDate: Thu Mar 23 16:43:55 2017 +0100 Apple: Add test for bundle resource layout Closes: #16680 diff --git a/Tests/RunCMake/Framework/FrameworkLayout.cmake b/Tests/RunCMake/Framework/FrameworkLayout.cmake index ae32134..dcfbd2d 100644 --- a/Tests/RunCMake/Framework/FrameworkLayout.cmake +++ b/Tests/RunCMake/Framework/FrameworkLayout.cmake @@ -4,11 +4,17 @@ enable_language(C) add_library(Framework ${FRAMEWORK_TYPE} foo.c foo.h - res.txt) + res.txt + flatresource.txt + deepresource.txt + some.txt) set_target_properties(Framework PROPERTIES FRAMEWORK TRUE PUBLIC_HEADER foo.h RESOURCE "res.txt") +set_source_files_properties(flatresource.txt PROPERTIES MACOSX_PACKAGE_LOCATION Resources) +set_source_files_properties(deepresource.txt PROPERTIES MACOSX_PACKAGE_LOCATION Resources/deep) +set_source_files_properties(some.txt PROPERTIES MACOSX_PACKAGE_LOCATION somedir) add_custom_command(TARGET Framework POST_BUILD COMMAND /usr/bin/file $) diff --git a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake index da1ccb4..1a543d8 100644 --- a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake @@ -1,8 +1,11 @@ set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-resources}/res.txt") +set(framework-flat-resource-file "${framework-resources}/flatresource.txt") +set(framework-deep-resource-file "${framework-resources}/deep/deepresource.txt") set(framework-library "${framework-dir}/Framework") set(framework-versions "${framework-dir}/Versions") +set(framework-some-file "${framework-versions}/Current/somedir/some.txt") set(plist-file "${framework-resources}/Info.plist") set(framework-header "${framework-dir}/Headers/foo.h") @@ -22,6 +25,18 @@ if(NOT EXISTS ${framework-resource-file}) message(SEND_ERROR "Framework resource file not found at ${framework-resource-file}") endif() +if(NOT EXISTS ${framework-flat-resource-file}) + message(SEND_ERROR "Framework flat resource file not found at ${framework-flat-resource-file}") +endif() + +if(NOT EXISTS ${framework-deep-resource-file}) + message(SEND_ERROR "Framework deep resource file not found at ${framework-deep-resource-file}") +endif() + +if(NOT EXISTS ${framework-some-file}) + message(SEND_ERROR "Framework some file not found at ${framework-some-file}") +endif() + if(NOT EXISTS ${framework-versions}) message(SEND_ERROR "Framework versions not found at ${framework-versions}") endif() diff --git a/Tests/RunCMake/Framework/deepresource.txt b/Tests/RunCMake/Framework/deepresource.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/Framework/flatresource.txt b/Tests/RunCMake/Framework/flatresource.txt new file mode 100644 index 0000000..e69de29 diff --git a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake index b81a5f7..e068a3a 100644 --- a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake @@ -1,6 +1,9 @@ set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-dir}/res.txt") +set(framework-flat-resource-file "${framework-dir}/flatresource.txt") +set(framework-deep-resource-file "${framework-dir}/deep/deepresource.txt") +set(framework-some-file "${framework-dir}/somedir/some.txt") set(framework-library "${framework-dir}/Framework") set(framework-versions "${framework-dir}/Versions") set(plist-file "${framework-dir}/Info.plist") @@ -22,6 +25,18 @@ if(NOT EXISTS ${framework-resource-file}) message(SEND_ERROR "Framework resource file not found at ${framework-resource-file}") endif() +if(NOT EXISTS ${framework-flat-resource-file}) + message(SEND_ERROR "Framework flat resource file not found at ${framework-flat-resource-file}") +endif() + +if(NOT EXISTS ${framework-deep-resource-file}) + message(SEND_ERROR "Framework deep resource file not found at ${framework-deep-resource-file}") +endif() + +if(NOT EXISTS ${framework-some-file}) + message(SEND_ERROR "Framework some file not found at ${framework-some-file}") +endif() + if(EXISTS ${framework-versions}) message(SEND_ERROR "Framework versions found at ${framework-versions}") endif() diff --git a/Tests/RunCMake/Framework/some.txt b/Tests/RunCMake/Framework/some.txt new file mode 100644 index 0000000..e69de29 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c51c2cfac619ac9efb9829f8b4decf9756891609 commit c51c2cfac619ac9efb9829f8b4decf9756891609 Author: Gregor Jasny AuthorDate: Wed Mar 22 22:49:38 2017 +0100 Commit: Gregor Jasny CommitDate: Thu Mar 23 16:43:55 2017 +0100 Apple: Fix Resources location for all generators Issue: #16680 diff --git a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst index 69cdcb7..a064afa 100644 --- a/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst +++ b/Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst @@ -21,3 +21,10 @@ extension is changed). See the :prop_tgt:`PUBLIC_HEADER`, :prop_tgt:`PRIVATE_HEADER`, and :prop_tgt:`RESOURCE` target properties for specifying files meant for ``Headers``, ``PrivateHeaders``, or ``Resources`` directories. + +If the specified location is equal to ``Resources``, the resulting location +will be the same as if the :prop_tgt:`RESOURCE` property had been used. If +the specified location is a sub-folder of ``Resources``, it will be placed +into the respective sub-folder. Note: For iOS Apple uses a flat bundle layout +where no ``Resources`` folder exist. Therefore CMake strips the ``Resources`` +folder name from the specified location. diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 64b05c3..f78a933 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3315,10 +3315,18 @@ cmGeneratorTarget::GetTargetSourceFileFlags(const cmSourceFile* sf) const // were not listed in one of the other lists. if (const char* location = sf->GetProperty("MACOSX_PACKAGE_LOCATION")) { flags.MacFolder = location; + const bool stripResources = + this->GlobalGenerator->ShouldStripResourcePath(this->Makefile); if (strcmp(location, "Resources") == 0) { flags.Type = cmGeneratorTarget::SourceFileTypeResource; + if (stripResources) { + flags.MacFolder = ""; + } } else if (cmSystemTools::StringStartsWith(location, "Resources/")) { flags.Type = cmGeneratorTarget::SourceFileTypeDeepResource; + if (stripResources) { + flags.MacFolder += strlen("Resources/"); + } } else { flags.Type = cmGeneratorTarget::SourceFileTypeMacContent; } @@ -3372,7 +3380,7 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const if (cmSourceFile* sf = this->Makefile->GetSource(*it)) { SourceFileFlags& flags = this->SourceFlagsMap[sf]; flags.MacFolder = ""; - if (!this->Makefile->PlatformIsAppleIos()) { + if (!this->GlobalGenerator->ShouldStripResourcePath(this->Makefile)) { flags.MacFolder = "Resources"; } flags.Type = cmGeneratorTarget::SourceFileTypeResource; diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index 0d53bf7..851290a 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2487,6 +2487,11 @@ std::string cmGlobalGenerator::GenerateRuleFile( return ruleFile; } +bool cmGlobalGenerator::ShouldStripResourcePath(cmMakefile* mf) const +{ + return mf->PlatformIsAppleIos(); +} + std::string cmGlobalGenerator::GetSharedLibFlagsForLanguage( std::string const& l) const { diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b3cb41f..2558fee 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -337,6 +337,10 @@ public: relevant for mixed macOS and iOS builds. */ virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; } + /** Return whether the "Resources" folder prefix should be stripped from + MacFolder. */ + virtual bool ShouldStripResourcePath(cmMakefile*) const; + std::string GetSharedLibFlagsForLanguage(std::string const& lang) const; /** Generate an .rule file path for a given command output. */ diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index bd0f55b..39f7b8f 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1200,9 +1200,8 @@ bool cmGlobalXCodeGenerator::CreateXCodeTargets( this->CreateString("2147483647")); copyFilesBuildPhase->AddAttribute("dstSubfolderSpec", this->CreateString("7")); - const std::string dstPath = mit->first.substr(strlen("Resources/")); copyFilesBuildPhase->AddAttribute("dstPath", - this->CreateString(dstPath)); + this->CreateString(mit->first)); copyFilesBuildPhase->AddAttribute("runOnlyForDeploymentPostprocessing", this->CreateString("0")); buildFiles = this->CreateObject(cmXCodeObject::OBJECT_LIST); @@ -3701,6 +3700,12 @@ bool cmGlobalXCodeGenerator::UseEffectivePlatformName(cmMakefile* mf) const return cmSystemTools::IsOn(epnValue); } +bool cmGlobalXCodeGenerator::ShouldStripResourcePath(cmMakefile*) const +{ + // Xcode determines Resource location itself + return true; +} + void cmGlobalXCodeGenerator::ComputeTargetObjectDirectory( cmGeneratorTarget* gt) const { diff --git a/Source/cmGlobalXCodeGenerator.h b/Source/cmGlobalXCodeGenerator.h index 9eacdef..172e414 100644 --- a/Source/cmGlobalXCodeGenerator.h +++ b/Source/cmGlobalXCodeGenerator.h @@ -88,6 +88,8 @@ public: bool UseEffectivePlatformName(cmMakefile* mf) const CM_OVERRIDE; + bool ShouldStripResourcePath(cmMakefile*) const CM_OVERRIDE; + bool SetGeneratorToolset(std::string const& ts, cmMakefile* mf) CM_OVERRIDE; void AppendFlag(std::string& flags, std::string const& flag); ----------------------------------------------------------------------- Summary of changes: Source/cmGeneratorTarget.cxx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 13:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 13:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-605-gdd8f935 Message-ID: <20170323175502.E6939FA2EE@public.kitware.com> 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 dd8f9350e498f92c094593d8f87db419372ebdea (commit) via 8dc23a438065b711b7b60b17c982f34a96631d1a (commit) from 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 (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=dd8f9350e498f92c094593d8f87db419372ebdea commit dd8f9350e498f92c094593d8f87db419372ebdea Merge: 08b2a3a 8dc23a4 Author: Brad King AuthorDate: Thu Mar 23 17:49:57 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 13:50:02 2017 -0400 Stage topic 'correct-error-message-debug-lengths' Topic-id: 23211 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/614 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8dc23a438065b711b7b60b17c982f34a96631d1a commit 8dc23a438065b711b7b60b17c982f34a96631d1a Author: Daniel Black AuthorDate: Thu Mar 23 23:57:17 2017 +1100 Commit: Brad King CommitDate: Thu Mar 23 13:47:58 2017 -0400 CPack/RPM: fix error message associated with source path length diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 722ee15..1519e29 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -1472,8 +1472,8 @@ function(cpack_rpm_debugsymbol_check INSTALL_FILES WORKING_DIR) string(LENGTH "${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}" debuginfo_dir_len) if(source_dir_len_ LESS debuginfo_dir_len) message(FATAL_ERROR "CPackRPM: source dir path '${source_dir_}' is" - " longer than debuginfo sources dir path '${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}'!" - " Source dir path must be shorter than debuginfo sources dir path." + " shorter than debuginfo sources dir path '${CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX}/src_${index_}'!" + " Source dir path must be longer than debuginfo sources dir path." " Set CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX variable to a shorter value" " or make source dir path longer." " Required for debuginfo packaging. See documentation of" ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 14:45:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 14:45:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-607-g299f570 Message-ID: <20170323184506.A5766F6856@public.kitware.com> 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 299f570d20bc217d426b89f648a45dd5bbdf092e (commit) via 35e8a6de86790c10a5157bbb90c730b47bc552fa (commit) from dd8f9350e498f92c094593d8f87db419372ebdea (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=299f570d20bc217d426b89f648a45dd5bbdf092e commit 299f570d20bc217d426b89f648a45dd5bbdf092e Merge: dd8f935 35e8a6d Author: Brad King AuthorDate: Thu Mar 23 18:38:05 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 14:38:10 2017 -0400 Stage topic 'autogen_rcc_test' Topic-id: 23218 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/618 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=35e8a6de86790c10a5157bbb90c730b47bc552fa commit 35e8a6de86790c10a5157bbb90c730b47bc552fa Author: Sebastian Holtermann AuthorDate: Thu Mar 23 16:46:42 2017 +0100 Commit: Sebastian Holtermann CommitDate: Thu Mar 23 16:51:34 2017 +0100 Autogen: Tests: More rigorous rcc rebuild tests Closes: #16103 diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 86af746..101b396 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -82,9 +82,14 @@ target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES}) # -- Test # When a file listed in a .qrc file changes the target must be rebuilt +set(timeformat "%Y%j%H%M%S") +set(RCC_DEPENDS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/rccDepends") +set(RCC_DEPENDS_BIN "${CMAKE_CURRENT_BINARY_DIR}/rccDepends") +configure_file(${RCC_DEPENDS_SRC}/res1a.qrc.in ${RCC_DEPENDS_BIN}/res1.qrc COPYONLY) +configure_file(${RCC_DEPENDS_SRC}/res2a.qrc.in ${RCC_DEPENDS_BIN}/res2.qrc.in COPYONLY) try_compile(RCC_DEPENDS - "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" - "${CMAKE_CURRENT_SOURCE_DIR}/rccDepends" + "${RCC_DEPENDS_BIN}" + "${RCC_DEPENDS_SRC}" rccDepends CMAKE_FLAGS "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" "-DQT_TEST_VERSION=${QT_TEST_VERSION}" @@ -94,47 +99,82 @@ try_compile(RCC_DEPENDS if (NOT RCC_DEPENDS) message(SEND_ERROR "Initial build of rccDepends failed. Output: ${output}") endif() - # Get name and timestamp of the output binary -file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/target1.txt" target1List) -list(GET target1List 0 binFile) -set(timeformat "%Y%j%H%M%S") -file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") - -# Touch first qrc input file and rebuild +file(STRINGS "${RCC_DEPENDS_BIN}/target.txt" targetList) +list(GET targetList 0 rccDependsBin) +file(TIMESTAMP "${rccDependsBin}" timeBegin "${timeformat}") +# Sleep, touch regular qrc input file, rebuild and compare timestamp execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. -execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res1/input.txt") -execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" - RESULT_VARIABLE rccDepends_result -) -if (rccDepends_result) +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${RCC_DEPENDS_BIN}/res1/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) message(SEND_ERROR "Second build of rccDepends failed.") endif() -# Compare timestamps -file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") +file(TIMESTAMP "${rccDependsBin}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) - message(SEND_ERROR "File (${binFile}) should have changed in the first step!") + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the first step!") endif() - -# Touch second qrc input file and rebuild +# Sleep, update regular qrc file, rebuild and compare timestamp execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. -execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${CMAKE_CURRENT_BINARY_DIR}/rccDepends/res2/input.txt") -execute_process(COMMAND "${CMAKE_COMMAND}" --build . - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/rccDepends" - RESULT_VARIABLE rccDepends_result -) -if (rccDepends_result) +configure_file(${RCC_DEPENDS_SRC}/res1b.qrc.in ${RCC_DEPENDS_BIN}/res1.qrc COPYONLY) +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) message(SEND_ERROR "Third build of rccDepends failed.") endif() -# Compare timestamps -file(TIMESTAMP "${binFile}" timeStep2 "${timeformat}") +file(TIMESTAMP "${rccDependsBin}" timeStep2 "${timeformat}") if (NOT timeStep2 GREATER timeStep1) - message(SEND_ERROR "File (${binFile}) should have changed in the second step!") + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the second step!") +endif() +# Sleep, touch regular qrc newly added input file, rebuild and compare timestamp +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${RCC_DEPENDS_BIN}/res1/inputAdded.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) + message(SEND_ERROR "Fourth build of rccDepends failed.") +endif() +file(TIMESTAMP "${rccDependsBin}" timeStep3 "${timeformat}") +if (NOT timeStep3 GREATER timeStep2) + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the third step!") +endif() +# Sleep, touch generated qrc input file, rebuild and compare timestamp +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${RCC_DEPENDS_BIN}/res2/input.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) + message(SEND_ERROR "Fifth build of rccDepends failed.") +endif() +file(TIMESTAMP "${rccDependsBin}" timeStep4 "${timeformat}") +if (NOT timeStep4 GREATER timeStep3) + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the fourth step!") +endif() +# Sleep, update generated qrc file, rebuild and compare timestamp +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +configure_file(${RCC_DEPENDS_SRC}/res2b.qrc.in ${RCC_DEPENDS_BIN}/res2.qrc.in COPYONLY) +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) + message(SEND_ERROR "Sixth build of rccDepends failed.") +endif() +file(TIMESTAMP "${rccDependsBin}" timeStep5 "${timeformat}") +if (NOT timeStep5 GREATER timeStep4) + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the fitfh step!") +endif() +# Sleep, touch generated qrc newly added input file, rebuild and compare timestamp +execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) # Ensure that the timestamp will change. +execute_process(COMMAND "${CMAKE_COMMAND}" -E touch "${RCC_DEPENDS_BIN}/res2/inputAdded.txt") +execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${RCC_DEPENDS_BIN}" RESULT_VARIABLE result) +if (result) + message(SEND_ERROR "Seventh build of rccDepends failed.") +endif() +file(TIMESTAMP "${rccDependsBin}" timeStep6 "${timeformat}") +if (NOT timeStep6 GREATER timeStep5) + message(SEND_ERROR "File (${rccDependsBin}) should have changed in the sixth step!") endif() + # -- Test # Ensure a repeated build succeeds when a header containing a QObject changes +set(timeformat "%Y%j%H%M%S") +configure_file(mocRerun/test1a.h.in mocRerun/test1.h COPYONLY) try_compile(MOC_RERUN "${CMAKE_CURRENT_BINARY_DIR}/mocRerun" "${CMAKE_CURRENT_SOURCE_DIR}/mocRerun" @@ -147,13 +187,10 @@ try_compile(MOC_RERUN if (NOT MOC_RERUN) message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}") endif() - # Get name and timestamp of the output binary file(STRINGS "${CMAKE_CURRENT_BINARY_DIR}/mocRerun/target1.txt" target1List) list(GET target1List 0 binFile) -set(timeformat "%Y%j%H%M%S") file(TIMESTAMP "${binFile}" timeBegin "${timeformat}") - # Change file content and rebuild execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1) configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY) @@ -164,7 +201,6 @@ execute_process(COMMAND "${CMAKE_COMMAND}" --build . if (mocRerun_result) message(SEND_ERROR "Second build of mocRerun failed.") endif() - # Compare timestamps file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}") if (NOT timeStep1 GREATER timeBegin) diff --git a/Tests/QtAutogen/mocRerun/CMakeLists.txt b/Tests/QtAutogen/mocRerun/CMakeLists.txt index 6689f50..69ea8d7 100644 --- a/Tests/QtAutogen/mocRerun/CMakeLists.txt +++ b/Tests/QtAutogen/mocRerun/CMakeLists.txt @@ -16,10 +16,9 @@ endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) -configure_file(test1a.h.in test1.h COPYONLY) # Generated source file add_custom_command(OUTPUT main.cpp - COMMAND ${CMAKE_COMMAND} -E sleep 3 + COMMAND ${CMAKE_COMMAND} -E sleep 2 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/main.cpp ) diff --git a/Tests/QtAutogen/rccDepends/CMakeLists.txt b/Tests/QtAutogen/rccDepends/CMakeLists.txt index de98573..878ae5d 100644 --- a/Tests/QtAutogen/rccDepends/CMakeLists.txt +++ b/Tests/QtAutogen/rccDepends/CMakeLists.txt @@ -15,22 +15,21 @@ else() set(QT_CORE_TARGET Qt5::Core) endif() -configure_file(res/input1.txt.in res1/input.txt @ONLY) -configure_file(res/input2.txt.in res2/input.txt @ONLY) -# Configure time generated qrc file -configure_file(res1.qrc.in res1.qrc @ONLY) +configure_file(res/input1.txt.in res1/input.txt COPYONLY) +configure_file(res/input1.txt.in res1/inputAdded.txt COPYONLY) +configure_file(res/input2.txt.in res2/input.txt COPYONLY) +configure_file(res/input2.txt.in res2/inputAdded.txt COPYONLY) # Dependency generated qrc file add_custom_command(OUTPUT res2.qrc - COMMAND ${CMAKE_COMMAND} -E sleep 3 - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/res2.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc.in + COMMAND ${CMAKE_COMMAND} -E sleep 2 + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc.in ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc ) - add_executable(rccDepends main.cpp ${CMAKE_CURRENT_BINARY_DIR}/res1.qrc - ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc -) + ${CMAKE_CURRENT_BINARY_DIR}/res2.qrc ) target_link_libraries(rccDepends ${QT_CORE_TARGET}) add_custom_command(TARGET rccDepends POST_BUILD COMMAND - ${CMAKE_COMMAND} -E echo "$" > target1.txt) + ${CMAKE_COMMAND} -E echo "$" > target.txt) diff --git a/Tests/QtAutogen/rccDepends/res1.qrc.in b/Tests/QtAutogen/rccDepends/res1a.qrc.in similarity index 66% rename from Tests/QtAutogen/rccDepends/res1.qrc.in rename to Tests/QtAutogen/rccDepends/res1a.qrc.in index 2a5417b..d111ffb 100644 --- a/Tests/QtAutogen/rccDepends/res1.qrc.in +++ b/Tests/QtAutogen/rccDepends/res1a.qrc.in @@ -1,5 +1,5 @@ - + res1/input.txt diff --git a/Tests/QtAutogen/rccDepends/res1b.qrc.in b/Tests/QtAutogen/rccDepends/res1b.qrc.in new file mode 100644 index 0000000..4cb3f04 --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res1b.qrc.in @@ -0,0 +1,6 @@ + + + res1/input.txt + res1/inputAdded.txt + + diff --git a/Tests/QtAutogen/rccDepends/res2.qrc.in b/Tests/QtAutogen/rccDepends/res2a.qrc.in similarity index 66% rename from Tests/QtAutogen/rccDepends/res2.qrc.in rename to Tests/QtAutogen/rccDepends/res2a.qrc.in index 18b916a..19f34ac 100644 --- a/Tests/QtAutogen/rccDepends/res2.qrc.in +++ b/Tests/QtAutogen/rccDepends/res2a.qrc.in @@ -1,5 +1,5 @@ - + res2/input.txt diff --git a/Tests/QtAutogen/rccDepends/res2b.qrc.in b/Tests/QtAutogen/rccDepends/res2b.qrc.in new file mode 100644 index 0000000..19e8ba1 --- /dev/null +++ b/Tests/QtAutogen/rccDepends/res2b.qrc.in @@ -0,0 +1,6 @@ + + + res2/input.txt + res2/inputAdded.txt + + ----------------------------------------------------------------------- Summary of changes: Tests/QtAutogen/CMakeLists.txt | 102 +++++++++++++------- Tests/QtAutogen/mocRerun/CMakeLists.txt | 3 +- Tests/QtAutogen/rccDepends/CMakeLists.txt | 19 ++-- .../rccDepends/{res1.qrc.in => res1a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res1b.qrc.in | 6 ++ .../rccDepends/{res2.qrc.in => res2a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res2b.qrc.in | 6 ++ 7 files changed, 93 insertions(+), 47 deletions(-) rename Tests/QtAutogen/rccDepends/{res1.qrc.in => res1a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res1b.qrc.in rename Tests/QtAutogen/rccDepends/{res2.qrc.in => res2a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res2b.qrc.in hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 15:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 15:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-609-ge527693 Message-ID: <20170323193502.E2FFDFA6B8@public.kitware.com> 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 e5276930c157cdaf147f97f5dd2bd99f4752fbce (commit) via 07f2682c6c2398c4f0317dc03a36368c0ce64f00 (commit) from 299f570d20bc217d426b89f648a45dd5bbdf092e (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=e5276930c157cdaf147f97f5dd2bd99f4752fbce commit e5276930c157cdaf147f97f5dd2bd99f4752fbce Merge: 299f570 07f2682 Author: Brad King AuthorDate: Thu Mar 23 19:31:51 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 15:31:59 2017 -0400 Stage topic 'suppress-xcode-error' Topic-id: 23217 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/617 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=07f2682c6c2398c4f0317dc03a36368c0ce64f00 commit 07f2682c6c2398c4f0317dc03a36368c0ce64f00 Author: Gregor Jasny AuthorDate: Thu Mar 23 16:53:05 2017 +0100 Commit: Gregor Jasny CommitDate: Thu Mar 23 16:53:12 2017 +0100 RunCMake: Ignore cmakexbuild warnings in tests Encountered on master-MacOSX10.4.11i386-Xcode (dashmacmini2.kitware.com) Expected stderr to match: expect-err> ^$ Actual stderr: actual-err> Hit xcodebuild bug : /bin/sh: /Users/kitware/Dashboards/My Tests-MacOSX10.4.11i386-Xcode/CMakeMaster-build/Tests/RunCMake/CrosscompilingEmulator/AddCustomCommand-build/AddCustomCommand.build/Debug/ZERO_CHECK.build/Script-71CF34B67E0B4D0AAAA1463A.sh: /bin/sh: bad interpreter: Text file busy diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake index 5f66da0..9e2fe7a 100644 --- a/Tests/RunCMake/RunCMake.cmake +++ b/Tests/RunCMake/RunCMake.cmake @@ -101,7 +101,7 @@ function(run_cmake test) endif() foreach(o out err) string(REGEX REPLACE "\r\n" "\n" actual_std${o} "${actual_std${o}}") - string(REGEX REPLACE "(^|\n)((==[0-9]+==|BullseyeCoverage|[a-z]+\\([0-9]+\\) malloc:|Error kstat returned|[^\n]*is a member of multiple groups|[^\n]*from Time Machine by path|[^\n]*Bullseye Testing Technology)[^\n]*\n)+" "\\1" actual_std${o} "${actual_std${o}}") + string(REGEX REPLACE "(^|\n)((==[0-9]+==|BullseyeCoverage|[a-z]+\\([0-9]+\\) malloc:|Error kstat returned|Hit xcodebuild bug|[^\n]*is a member of multiple groups|[^\n]*from Time Machine by path|[^\n]*Bullseye Testing Technology)[^\n]*\n)+" "\\1" actual_std${o} "${actual_std${o}}") string(REGEX REPLACE "\n+$" "" actual_std${o} "${actual_std${o}}") set(expect_${o} "") if(DEFINED expect_std${o}) ----------------------------------------------------------------------- Summary of changes: Tests/RunCMake/RunCMake.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 19:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 19:25:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-614-g2b1a230 Message-ID: <20170323232502.DBA1DFA3FF@public.kitware.com> 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 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc (commit) via 41ec352832037d316c34b3eba336eeb7f4163d86 (commit) via 72ea66b1cf28bba68f2b81637864a330e3ae715f (commit) via 2a827b8244d451071c02e3a3c8398bcb8b0e01fd (commit) via bcd08aa383e92b3fe53faa23cb7509796b9dd8db (commit) from e5276930c157cdaf147f97f5dd2bd99f4752fbce (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=2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc commit 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc Merge: e527693 41ec352 Author: Daniel Pfeifer AuthorDate: Thu Mar 23 23:22:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 19:22:20 2017 -0400 Stage topic 'iwyu' Topic-id: 23241 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/619 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=41ec352832037d316c34b3eba336eeb7f4163d86 commit 41ec352832037d316c34b3eba336eeb7f4163d86 Author: Daniel Pfeifer AuthorDate: Thu Mar 23 23:27:08 2017 +0100 Commit: Daniel Pfeifer CommitDate: Thu Mar 23 23:38:46 2017 +0100 IWYU: use pragma export diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in index 26f1df2..5f89ba1 100644 --- a/Source/cmConfigure.cmake.h.in +++ b/Source/cmConfigure.cmake.h.in @@ -3,7 +3,7 @@ #ifndef cmConfigure_h #define cmConfigure_h -#include // IWYU pragma: keep +#include // IWYU pragma: export #ifdef _MSC_VER #pragma warning(disable : 4786) diff --git a/Source/cmDynamicLoader.cxx b/Source/cmDynamicLoader.cxx index a30b642..39a59fc 100644 --- a/Source/cmDynamicLoader.cxx +++ b/Source/cmDynamicLoader.cxx @@ -4,7 +4,6 @@ #include -#include #include #include #include diff --git a/Source/cmDynamicLoader.h b/Source/cmDynamicLoader.h index d14f81e..5d69400 100644 --- a/Source/cmDynamicLoader.h +++ b/Source/cmDynamicLoader.h @@ -10,7 +10,7 @@ #include // IWYU pragma: keep -#include +#include "cmsys/DynamicLoader.hxx" // IWYU pragma: export class cmDynamicLoader { diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index b7afa10..b2e3c6a 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index 10e8280..070f81f 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -5,9 +5,9 @@ #include // IWYU pragma: keep +#include "cmsys/SystemTools.hxx" // IWYU pragma: export #include #include -#include #include #include #include https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=72ea66b1cf28bba68f2b81637864a330e3ae715f commit 72ea66b1cf28bba68f2b81637864a330e3ae715f Author: Daniel Pfeifer AuthorDate: Thu Mar 23 23:19:45 2017 +0100 Commit: Daniel Pfeifer CommitDate: Thu Mar 23 23:20:10 2017 +0100 Autogen: include what you use diff --git a/Source/cmQtAutoGeneratorCommon.cxx b/Source/cmQtAutoGeneratorCommon.cxx index dcd61a3..2498fe8 100644 --- a/Source/cmQtAutoGeneratorCommon.cxx +++ b/Source/cmQtAutoGeneratorCommon.cxx @@ -8,6 +8,7 @@ #include #include +#include // - Static functions diff --git a/Source/cmQtAutoGeneratorCommon.h b/Source/cmQtAutoGeneratorCommon.h index b54b6fa..b004005 100644 --- a/Source/cmQtAutoGeneratorCommon.h +++ b/Source/cmQtAutoGeneratorCommon.h @@ -3,13 +3,10 @@ #ifndef cmQtAutoGeneratorCommon_h #define cmQtAutoGeneratorCommon_h -#include // IWYU pragma: keep +#include #include #include -class cmGeneratorTarget; -class cmLocalGenerator; - class cmQtAutoGeneratorCommon { // - Types and statics diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 6ebc234..ead3dfc 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -7,12 +7,11 @@ #include "cmCustomCommandLines.h" #include "cmFilePathChecksum.h" #include "cmGeneratorTarget.h" -#include "cmGlobalGenerator.h" #include "cmLocalGenerator.h" #include "cmMakefile.h" #include "cmOutputConverter.h" #include "cmSourceFile.h" -#include "cmSourceFileLocation.h" +#include "cmSourceGroup.h" #include "cmState.h" #include "cmSystemTools.h" #include "cmTarget.h" @@ -25,11 +24,8 @@ #include #include #include -#include #include #include -#include -#include #include #include #include https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2a827b8244d451071c02e3a3c8398bcb8b0e01fd commit 2a827b8244d451071c02e3a3c8398bcb8b0e01fd Author: Daniel Pfeifer AuthorDate: Fri Feb 17 23:28:58 2017 +0100 Commit: Daniel Pfeifer CommitDate: Thu Mar 23 23:08:57 2017 +0100 cmCPackGenerator: Move macros to bottom of file Since the class name is used in the macros, the iwyu tool gets confused wheter it needs a forward declaration or not. diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h index 57b8fff..39fd2cc 100644 --- a/Source/CPack/cmCPackGenerator.h +++ b/Source/CPack/cmCPackGenerator.h @@ -17,20 +17,6 @@ class cmCPackLog; class cmInstalledFile; class cmMakefile; -#define cmCPackTypeMacro(klass, superclass) \ - typedef superclass Superclass; \ - const char* GetNameOfClass() CM_OVERRIDE { return #klass; } \ - static cmCPackGenerator* CreateGenerator() { return new klass; } \ - class cmCPackTypeMacro_UseTrailingSemicolon - -#define cmCPackLogger(logType, msg) \ - do { \ - std::ostringstream cmCPackLog_msg; \ - cmCPackLog_msg << msg; \ - this->Logger->Log(logType, __FILE__, __LINE__, \ - cmCPackLog_msg.str().c_str()); \ - } while (false) - /** \class cmCPackGenerator * \brief A superclass of all CPack Generators * @@ -311,4 +297,18 @@ private: cmMakefile* MakefileMap; }; +#define cmCPackTypeMacro(klass, superclass) \ + typedef superclass Superclass; \ + const char* GetNameOfClass() CM_OVERRIDE { return #klass; } \ + static cmCPackGenerator* CreateGenerator() { return new klass; } \ + class cmCPackTypeMacro_UseTrailingSemicolon + +#define cmCPackLogger(logType, msg) \ + do { \ + std::ostringstream cmCPackLog_msg; \ + cmCPackLog_msg << msg; \ + this->Logger->Log(logType, __FILE__, __LINE__, \ + cmCPackLog_msg.str().c_str()); \ + } while (false) + #endif https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bcd08aa383e92b3fe53faa23cb7509796b9dd8db commit bcd08aa383e92b3fe53faa23cb7509796b9dd8db Author: Daniel Pfeifer AuthorDate: Fri Feb 17 23:27:34 2017 +0100 Commit: Daniel Pfeifer CommitDate: Thu Mar 23 23:08:56 2017 +0100 cmCTest: Move macros to bottom of file Since the class name is used in the macros, the iwyu tool gets confused wheter it needs a forward declaration or not. diff --git a/Source/cmCTest.h b/Source/cmCTest.h index ebdc8b0..be736da 100644 --- a/Source/cmCTest.h +++ b/Source/cmCTest.h @@ -20,22 +20,6 @@ class cmGeneratedFileStream; class cmMakefile; class cmXMLWriter; -#define cmCTestLog(ctSelf, logType, msg) \ - do { \ - std::ostringstream cmCTestLog_msg; \ - cmCTestLog_msg << msg; \ - (ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__, \ - cmCTestLog_msg.str().c_str()); \ - } while (false) - -#define cmCTestOptionalLog(ctSelf, logType, msg, suppress) \ - do { \ - std::ostringstream cmCTestLog_msg; \ - cmCTestLog_msg << msg; \ - (ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__, \ - cmCTestLog_msg.str().c_str(), suppress); \ - } while (false) - /** \class cmCTest * \brief Represents a ctest invocation. * @@ -647,4 +631,20 @@ inline std::ostream& operator<<(std::ostream& os, const cmCTestLogWrite& c) return os; } +#define cmCTestLog(ctSelf, logType, msg) \ + do { \ + std::ostringstream cmCTestLog_msg; \ + cmCTestLog_msg << msg; \ + (ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__, \ + cmCTestLog_msg.str().c_str()); \ + } while (false) + +#define cmCTestOptionalLog(ctSelf, logType, msg, suppress) \ + do { \ + std::ostringstream cmCTestLog_msg; \ + cmCTestLog_msg << msg; \ + (ctSelf)->Log(cmCTest::logType, __FILE__, __LINE__, \ + cmCTestLog_msg.str().c_str(), suppress); \ + } while (false) + #endif ----------------------------------------------------------------------- Summary of changes: Source/CPack/cmCPackGenerator.h | 28 +++++++++++++-------------- Source/cmCTest.h | 32 +++++++++++++++---------------- Source/cmConfigure.cmake.h.in | 2 +- Source/cmDynamicLoader.cxx | 1 - Source/cmDynamicLoader.h | 2 +- Source/cmQtAutoGeneratorCommon.cxx | 1 + Source/cmQtAutoGeneratorCommon.h | 5 +---- Source/cmQtAutoGeneratorInitializer.cxx | 6 +----- Source/cmSystemTools.cxx | 1 - Source/cmSystemTools.h | 2 +- 10 files changed, 36 insertions(+), 44 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 20:25:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 20:25:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-617-g47ea9a8 Message-ID: <20170324002508.904D6FA520@public.kitware.com> 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 47ea9a8f3927ad605729400e812ca52560f9265f (commit) via 794c3b65826300b99548227a1f618ff2097cceb1 (commit) via d268dc1e62ca9e4971672d89c536b56eb98f8ab5 (commit) from 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc (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=47ea9a8f3927ad605729400e812ca52560f9265f commit 47ea9a8f3927ad605729400e812ca52560f9265f Merge: 2b1a230 794c3b6 Author: Domen Vrankar AuthorDate: Fri Mar 24 00:17:28 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 23 20:17:32 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=794c3b65826300b99548227a1f618ff2097cceb1 commit 794c3b65826300b99548227a1f618ff2097cceb1 Author: Domen Vrankar AuthorDate: Thu Mar 23 23:41:20 2017 +0100 Commit: Domen Vrankar CommitDate: Fri Mar 24 01:07:10 2017 +0100 CPack/RPM honor package file name on debuginfo enabled Packages with debuginfo enabled should still honor defined package file name if file name is not set to RPM-DEFAULT. Fixes #16715 diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 2e69195..a81719e 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -2648,8 +2648,8 @@ mv %_topdir/tmpBBroot $RPM_BUILD_ROOT unset(expected_filenames_) unset(filenames_) if(CPACK_RPM_DEBUGINFO_PACKAGE AND NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT") - string(TOLOWER "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm" efn_) - list(APPEND expected_filenames_ "${efn_}") + list(APPEND expected_filenames_ + "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm") list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}") endif() diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake index 06e56d3..452c1de 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake @@ -3,11 +3,13 @@ set(whitespaces_ "[\t\n\r ]*") set(EXPECTED_FILES_COUNT "5") set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE) +set(PACKAGES_FILE_NAME "Debuginfo") + set(EXPECTED_FILE_1_COMPONENT "applications") set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/foo;/usr/foo/test_prog") -set(EXPECTED_FILE_2 "debuginfo*-headers.rpm") +set(EXPECTED_FILE_2 "TestDinfo-pkg*-headers.rpm") set(EXPECTED_FILE_CONTENT_2_LIST "/usr;/usr/bar;/usr/bar/CMakeLists.txt") -set(EXPECTED_FILE_3 "debuginfo*-libs.rpm") +set(EXPECTED_FILE_3 "TestDinfo-pkg*-libs.rpm") set(EXPECTED_FILE_CONTENT_3_LIST "/usr;/usr/bas;/usr/bas/libtest_lib.so") set(EXPECTED_FILE_4_COMPONENT "applications-debuginfo") diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake index 0642d83..cfae259 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake @@ -25,6 +25,11 @@ install(TARGETS test_lib DESTINATION bas COMPONENT libs) set(CPACK_RPM_APPLICATIONS_FILE_NAME "RPM-DEFAULT") set(CPACK_RPM_APPLICATIONS_DEBUGINFO_PACKAGE ON) + +# test that components with debuginfo enabled still honor +# CPACK_PACKAGE_FILE_NAME setting +set(CPACK_RPM_PACKAGE_NAME "Debuginfo") +set(CPACK_PACKAGE_FILE_NAME "TestDinfo-pkg") set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON) set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/src") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d268dc1e62ca9e4971672d89c536b56eb98f8ab5 commit d268dc1e62ca9e4971672d89c536b56eb98f8ab5 Author: Domen Vrankar AuthorDate: Thu Mar 23 23:36:47 2017 +0100 Commit: Domen Vrankar CommitDate: Fri Mar 24 00:11:04 2017 +0100 CPack support test packages name override diff --git a/Tests/RunCMake/CPack/README.txt b/Tests/RunCMake/CPack/README.txt index 7c98f69..428a25e 100644 --- a/Tests/RunCMake/CPack/README.txt +++ b/Tests/RunCMake/CPack/README.txt @@ -131,8 +131,8 @@ this step and must contain parts that are already populated by default but can always be overwritten if needed: - EXPECTED_FILE__NAME is the name component of - the file (by default it is set to package name that is same as test name - in lowercase) + the file (by default it is set to PACKAGES_FILE_NAME or if not set to + package name that is same as test name in lowercase) - EXPECTED_FILE__VERSION is the version of the package (by default it is set to '0.1.1') - EXPECTED_FILE__REVISION is the revision of the diff --git a/Tests/RunCMake/CPack/VerifyResult.cmake b/Tests/RunCMake/CPack/VerifyResult.cmake index 59751a7..cefeb9a 100644 --- a/Tests/RunCMake/CPack/VerifyResult.cmake +++ b/Tests/RunCMake/CPack/VerifyResult.cmake @@ -1,10 +1,14 @@ cmake_minimum_required(VERSION ${CMAKE_VERSION} FATAL_ERROR) -function(findExpectedFile FILE_NO RESULT_VAR) +function(findExpectedFile FILE_NO RESULT_VAR EXPECTED_FILE_REGEX_VAR) if(NOT DEFINED EXPECTED_FILE_${FILE_NO}) # explicit file name regex was not provided - construct one from other data # set defaults if parameters are not provided if(NOT DEFINED EXPECTED_FILE_${FILE_NO}_NAME) - string(TOLOWER "${RunCMake_TEST_FILE_PREFIX}" EXPECTED_FILE_${FILE_NO}_NAME) + if(PACKAGES_FILE_NAME) + set(EXPECTED_FILE_${FILE_NO}_NAME "${PACKAGES_FILE_NAME}") + else() + string(TOLOWER "${RunCMake_TEST_FILE_PREFIX}" EXPECTED_FILE_${FILE_NO}_NAME) + endif() endif() if(NOT DEFINED EXPECTED_FILE_${FILE_NO}_VERSION) set(EXPECTED_FILE_${FILE_NO}_VERSION "0.1.1") @@ -21,6 +25,7 @@ function(findExpectedFile FILE_NO RESULT_VAR) file(GLOB found_file_ RELATIVE "${bin_dir}" "${EXPECTED_FILE_${FILE_NO}}") set(${RESULT_VAR} "${found_file_}" PARENT_SCOPE) + set(${EXPECTED_FILE_REGEX_VAR} "${EXPECTED_FILE_${FILE_NO}}" PARENT_SCOPE) endfunction() include("${config_file}") @@ -39,7 +44,8 @@ include("${src_dir}/tests/${RunCMake_TEST_FILE_PREFIX}/ExpectedFiles.cmake") # check that expected generated files exist and contain expected content if(NOT EXPECTED_FILES_COUNT EQUAL 0) foreach(file_no_ RANGE 1 ${EXPECTED_FILES_COUNT}) - findExpectedFile("${file_no_}" "FOUND_FILE_${file_no_}") + findExpectedFile("${file_no_}" "FOUND_FILE_${file_no_}" + "EXPECTED_FILE_${file_no_}") list(APPEND foundFiles_ "${FOUND_FILE_${file_no_}}") list(LENGTH FOUND_FILE_${file_no_} foundFilesCount_) ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 ++-- Tests/RunCMake/CPack/README.txt | 4 ++-- Tests/RunCMake/CPack/VerifyResult.cmake | 12 +++++++++--- Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 6 ++++-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 5 +++++ 5 files changed, 22 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 21:05:34 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 21:05:34 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc2-617-g47ea9a8 Message-ID: <20170324010539.62CDAFA922@public.kitware.com> 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, nightly has been updated discards 1b4bc2f130f28fc4a5c9ed8464b467380749a0b5 (commit) discards 4ea507d989fed7a3bc8fa762419f4e8b13a0ea50 (commit) discards 31004b59ed1dd444582ce5948ee151247ae3fb6c (commit) discards feed8d91328ee4c8416ba024a38edbab1669af3e (commit) discards ded7c14b87cd230f7f2a56b98e0575c46a4d54a8 (commit) discards 3a4d0c3ec7ec9f86828335cfe7a5f3f4ac17698a (commit) discards 606c1fcdf87b319fe10f2ad100508b16f23a4e59 (commit) discards 377cd0876d8101934496d83ab86c06cd6b2ba246 (commit) discards 872531753f5216d1b6d9682923473df33f3b8860 (commit) discards 0a9fe75a2d649463a7d17552546a532f6d8c3c80 (commit) discards b3790796a2fbae9e0558edd6ba3b0212d33669ca (commit) via 47ea9a8f3927ad605729400e812ca52560f9265f (commit) via 794c3b65826300b99548227a1f618ff2097cceb1 (commit) via 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc (commit) via d268dc1e62ca9e4971672d89c536b56eb98f8ab5 (commit) via 41ec352832037d316c34b3eba336eeb7f4163d86 (commit) via 72ea66b1cf28bba68f2b81637864a330e3ae715f (commit) via 2a827b8244d451071c02e3a3c8398bcb8b0e01fd (commit) via bcd08aa383e92b3fe53faa23cb7509796b9dd8db (commit) via e5276930c157cdaf147f97f5dd2bd99f4752fbce (commit) via 299f570d20bc217d426b89f648a45dd5bbdf092e (commit) via dd8f9350e498f92c094593d8f87db419372ebdea (commit) via 8dc23a438065b711b7b60b17c982f34a96631d1a (commit) via 07f2682c6c2398c4f0317dc03a36368c0ce64f00 (commit) via 35e8a6de86790c10a5157bbb90c730b47bc552fa (commit) via 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 (commit) via 7b0663973bba18c5e532464261f9ec404f9ebaaf (commit) via 304e6a832e47a384552a3adbc49d7d68d65c2dd9 (commit) via b5189fda244112f47e71c820bf1498d500026cd0 (commit) via c51c2cfac619ac9efb9829f8b4decf9756891609 (commit) via d4a693a08385024175240a5543cc2a7bb7311966 (commit) via 5ed4e48128837df0539cb1570c954e2872256930 (commit) via dbdb880af976b82f6530de5753b84cfa53c985c8 (commit) via d40fc8856d3cc3cd40e091d858df4fb1725f1406 (commit) via f0f60c548a3c3156f6488c1921f5b64ea33f5410 (commit) via 677b3cbf28eb528f18777276035a223c565d8add (commit) via f673623130df6eafe5f691d67089cb75b320eea5 (commit) via cfa55fd428360776c442a5e3c5724c6253265fed (commit) via a1440504ffd18f155404b8bf44466172e9a8054d (commit) via e978a2e5b135e25d6654570a6ed948bd5b0f33dc (commit) via 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (commit) via 51ef9bb1eb9468376b6ab2014f4519d57b90c682 (commit) via b8c72c50f7a75c46a596b2209223def2a70aebfc (commit) via 9ab966a722bbe08615d6d5d4a82fd27aab64d315 (commit) via 69b9fde1480eea682937189df7536898422c24f1 (commit) via 3fe3182247fa56fa031c74ea499059102c2743de (commit) via 922b7770bda42a365b062f942b9fc08b2a443709 (commit) via 82db83d2f143fa90c13be2a63fe0273e7e80bd09 (commit) via 060be58c6f9ffe11235341bc10c8f5d808e31b3d (commit) via 484ccb0c454afa36da6b36e4ca5e0258e1739b3d (commit) via d2fb1264d71d64f48ab8c7f15dc3d1fed4182111 (commit) via 4fbae41f889a53903fd5f625ee378b333e8a75fc (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 (1b4bc2f130f28fc4a5c9ed8464b467380749a0b5) \ N -- N -- N (47ea9a8f3927ad605729400e812ca52560f9265f) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 7 + Modules/CPackRPM.cmake | 8 +- Modules/InstallRequiredSystemLibraries.cmake | 178 ++++++++++++-------- Source/CMakeVersion.cmake | 2 +- Source/CPack/cmCPackGenerator.h | 28 +-- Source/cmCTest.h | 32 ++-- Source/cmConfigure.cmake.h.in | 2 +- Source/cmDynamicLoader.cxx | 1 - Source/cmDynamicLoader.h | 2 +- Source/cmGeneratorTarget.cxx | 12 +- Source/cmGeneratorTarget.h | 4 +- Source/cmGlobalGenerator.cxx | 5 + Source/cmGlobalGenerator.h | 4 + Source/cmGlobalVisualStudioGenerator.cxx | 19 --- Source/cmGlobalXCodeGenerator.cxx | 53 +++++- Source/cmGlobalXCodeGenerator.h | 2 + Source/cmQtAutoGeneratorCommon.cxx | 1 + Source/cmQtAutoGeneratorCommon.h | 5 +- Source/cmQtAutoGeneratorInitializer.cxx | 6 +- Source/cmSystemTools.cxx | 1 - Source/cmSystemTools.h | 2 +- Tests/Cuda/ObjectLibrary/CMakeLists.txt | 5 + Tests/QtAutogen/CMakeLists.txt | 102 +++++++---- Tests/QtAutogen/mocRerun/CMakeLists.txt | 3 +- Tests/QtAutogen/rccDepends/CMakeLists.txt | 19 +-- .../rccDepends/{res1.qrc.in => res1a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res1b.qrc.in | 6 + .../rccDepends/{res2.qrc.in => res2a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res2b.qrc.in | 6 + Tests/RunCMake/CPack/README.txt | 4 +- Tests/RunCMake/CPack/VerifyResult.cmake | 12 +- .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 6 +- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 5 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 8 +- .../Framework/OSXFrameworkLayout-build-check.cmake | 15 ++ .../RunCMake/Framework/deepresource.txt | 0 .../RunCMake/Framework/flatresource.txt | 0 .../Framework/iOSFrameworkLayout-build-check.cmake | 15 ++ .../hello.f => Tests/RunCMake/Framework/some.txt | 0 Tests/RunCMake/RunCMake.cmake | 2 +- 40 files changed, 389 insertions(+), 197 deletions(-) rename Tests/QtAutogen/rccDepends/{res1.qrc.in => res1a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res1b.qrc.in rename Tests/QtAutogen/rccDepends/{res2.qrc.in => res2a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res2b.qrc.in copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/deepresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/flatresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/some.txt (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 23 21:05:39 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 23 Mar 2017 21:05:39 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc2-592-gf0f60c5 Message-ID: <20170324010541.6D871FA919@public.kitware.com> 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, nightly-master has been updated via f0f60c548a3c3156f6488c1921f5b64ea33f5410 (commit) via 677b3cbf28eb528f18777276035a223c565d8add (commit) via f673623130df6eafe5f691d67089cb75b320eea5 (commit) via cfa55fd428360776c442a5e3c5724c6253265fed (commit) via a1440504ffd18f155404b8bf44466172e9a8054d (commit) via e978a2e5b135e25d6654570a6ed948bd5b0f33dc (commit) via 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (commit) via 51ef9bb1eb9468376b6ab2014f4519d57b90c682 (commit) via b8c72c50f7a75c46a596b2209223def2a70aebfc (commit) via 9ab966a722bbe08615d6d5d4a82fd27aab64d315 (commit) via 69b9fde1480eea682937189df7536898422c24f1 (commit) via 3fe3182247fa56fa031c74ea499059102c2743de (commit) via 922b7770bda42a365b062f942b9fc08b2a443709 (commit) via 82db83d2f143fa90c13be2a63fe0273e7e80bd09 (commit) via a2aad448e1b285944c3d128487da2f0df6c180b6 (commit) via 16eb58d503b55e5758aa791a0e17aed2935f9d37 (commit) via a259e8db8fa78dda5b21edab0b5a5e7ba4f725b4 (commit) via 8285ad511a92416f0e99fcda27de98435316173b (commit) via d2fb1264d71d64f48ab8c7f15dc3d1fed4182111 (commit) via 4fbae41f889a53903fd5f625ee378b333e8a75fc (commit) via fecf846701ca3a7de4875f5c4362bc79e21b0a4c (commit) via 712452e33088b1ba02c7dde10f56cd2add81deab (commit) via 49a60b70e700e9f0bddc4cb6986d9621423ee2d9 (commit) via 8f207df14de3b8141c37b8b34baae29ebda248b3 (commit) via 73f7d266825f1d301aece1286666beda9297382b (commit) via e1ee7b4305bdf2b50640c4c500705bb4bbff47bf (commit) from 9a733c7bd626f457a71632da46934995da7bbd4b (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/variable/MSVC.rst | 2 + Help/variable/MSVC10.rst | 2 + Help/variable/MSVC11.rst | 2 + Help/variable/MSVC12.rst | 2 + Help/variable/MSVC14.rst | 6 +- Help/variable/MSVC60.rst | 2 + Help/variable/MSVC70.rst | 2 + Help/variable/MSVC71.rst | 2 + Help/variable/MSVC80.rst | 2 + Help/variable/MSVC90.rst | 2 + Modules/FindBoost.cmake | 2 +- Modules/FindGTK2.cmake | 10 +- Modules/FindRuby.cmake | 10 +- Modules/FindwxWidgets.cmake | 12 +- Modules/InstallRequiredSystemLibraries.cmake | 355 +++++++++++++------------- Modules/NSIS.template.in | 15 +- Modules/Platform/Windows-MSVC.cmake | 4 +- Source/CMakeVersion.cmake | 2 +- Source/cmServerProtocol.cxx | 24 +- 19 files changed, 250 insertions(+), 208 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 00:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 00:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-593-g6cd8aa3 Message-ID: <20170324040508.535F9FA6F1@public.kitware.com> 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 6cd8aa3c2a2fc6ecee9b8efea300b3b978660c35 (commit) from f0f60c548a3c3156f6488c1921f5b64ea33f5410 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 00:05:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 00:05:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-618-g929352a Message-ID: <20170324040509.7A89EFA6F1@public.kitware.com> 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 47ea9a8f3927ad605729400e812ca52560f9265f (commit) discards 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc (commit) discards e5276930c157cdaf147f97f5dd2bd99f4752fbce (commit) discards 299f570d20bc217d426b89f648a45dd5bbdf092e (commit) discards dd8f9350e498f92c094593d8f87db419372ebdea (commit) discards 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 (commit) discards 7b0663973bba18c5e532464261f9ec404f9ebaaf (commit) discards 304e6a832e47a384552a3adbc49d7d68d65c2dd9 (commit) via 929352a82ef95a79f7e640595f3c697df49d4f46 (commit) via 443567831b85ea57f1e44034892bcd8befd27e1f (commit) via bb1f4f46666fb19bcc941436a17481b2d28f207e (commit) via b865dc3920380a4c308dd8ea57f7f1c731ddcdc9 (commit) via 0886640e479b40ebf919e6d952bcd7d928cbfea1 (commit) via 06a517ba7fb88586651abd5ffc98556c081beb8c (commit) via e7e084712af8f23606e57ae04626a91867a339c8 (commit) via 42249082316ae05da1dfd4cf5bd1ece544a8da0f (commit) via 6cd8aa3c2a2fc6ecee9b8efea300b3b978660c35 (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 (47ea9a8f3927ad605729400e812ca52560f9265f) \ N -- N -- N (929352a82ef95a79f7e640595f3c697df49d4f46) 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=929352a82ef95a79f7e640595f3c697df49d4f46 commit 929352a82ef95a79f7e640595f3c697df49d4f46 Merge: 4435678 794c3b6 Author: Domen Vrankar AuthorDate: Fri Mar 24 00:17:28 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:42 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=443567831b85ea57f1e44034892bcd8befd27e1f commit 443567831b85ea57f1e44034892bcd8befd27e1f Merge: bb1f4f4 41ec352 Author: Daniel Pfeifer AuthorDate: Thu Mar 23 23:22:18 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:42 2017 -0400 Stage topic 'iwyu' Topic-id: 23241 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/619 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bb1f4f46666fb19bcc941436a17481b2d28f207e commit bb1f4f46666fb19bcc941436a17481b2d28f207e Merge: b865dc3 07f2682 Author: Brad King AuthorDate: Thu Mar 23 19:31:51 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:41 2017 -0400 Stage topic 'suppress-xcode-error' Topic-id: 23217 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/617 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b865dc3920380a4c308dd8ea57f7f1c731ddcdc9 commit b865dc3920380a4c308dd8ea57f7f1c731ddcdc9 Merge: 0886640 35e8a6d Author: Brad King AuthorDate: Thu Mar 23 18:38:05 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:41 2017 -0400 Stage topic 'autogen_rcc_test' Topic-id: 23218 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/618 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0886640e479b40ebf919e6d952bcd7d928cbfea1 commit 0886640e479b40ebf919e6d952bcd7d928cbfea1 Merge: 06a517b 8dc23a4 Author: Brad King AuthorDate: Thu Mar 23 17:49:57 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:41 2017 -0400 Stage topic 'correct-error-message-debug-lengths' Topic-id: 23211 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/614 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=06a517ba7fb88586651abd5ffc98556c081beb8c commit 06a517ba7fb88586651abd5ffc98556c081beb8c Merge: e7e0847 b5189fd Author: Gregor Jasny AuthorDate: Thu Mar 23 15:44:56 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:41 2017 -0400 Stage topic '16680-ios-bundle-resources' Topic-id: 23205 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/613 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e7e084712af8f23606e57ae04626a91867a339c8 commit e7e084712af8f23606e57ae04626a91867a339c8 Merge: 4224908 d40fc88 Author: Brad King AuthorDate: Thu Mar 23 14:52:14 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:41 2017 -0400 Stage topic 'make_sure_cuda_tests_run' Topic-id: 23212 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/615 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42249082316ae05da1dfd4cf5bd1ece544a8da0f commit 42249082316ae05da1dfd4cf5bd1ece544a8da0f Merge: 6cd8aa3 d4a693a Author: Brad King AuthorDate: Thu Mar 23 14:48:05 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 00:01:40 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23213 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/616 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-615-g4435678 Message-ID: <20170324120505.861F6FA632@public.kitware.com> 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 929352a82ef95a79f7e640595f3c697df49d4f46 (commit) discards 794c3b65826300b99548227a1f618ff2097cceb1 (commit) discards d268dc1e62ca9e4971672d89c536b56eb98f8ab5 (commit) This update discarded existing revisions and left the branch pointing at a previous point in the repository history. * -- * -- N (443567831b85ea57f1e44034892bcd8befd27e1f) \ O -- O -- O (929352a82ef95a79f7e640595f3c697df49d4f46) The removed revisions are not necessarilly gone - if another reference still refers to them they will stay in the repository. No new revisions were added by this update. Summary of changes: Modules/CPackRPM.cmake | 4 ++-- Tests/RunCMake/CPack/README.txt | 4 ++-- Tests/RunCMake/CPack/VerifyResult.cmake | 12 +++--------- Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 6 ++---- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 5 ----- 5 files changed, 9 insertions(+), 22 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:25:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:25:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-603-g8b25d8e Message-ID: <20170324122505.A08EBFA56E@public.kitware.com> 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 8b25d8e23c1415a99c0cd270f6fe8c4b26749870 (commit) via 1898f7c7d329d9b2f32f3b7957430533b697d591 (commit) via 0fe705a2c33dc6491bd61bbdb91dbbd13190cfd5 (commit) via 080350b622e4315e91f87921485512a95bdf7458 (commit) via ede8db109cabae485e53002c3350eb4d531ab076 (commit) via 8dc23a438065b711b7b60b17c982f34a96631d1a (commit) via d4a693a08385024175240a5543cc2a7bb7311966 (commit) via 5ed4e48128837df0539cb1570c954e2872256930 (commit) via dbdb880af976b82f6530de5753b84cfa53c985c8 (commit) via d40fc8856d3cc3cd40e091d858df4fb1725f1406 (commit) from 6cd8aa3c2a2fc6ecee9b8efea300b3b978660c35 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 +- Modules/InstallRequiredSystemLibraries.cmake | 178 ++++++++++++++++---------- Tests/Cuda/ObjectLibrary/CMakeLists.txt | 5 + Tests/RunCMake/RunCMake.cmake | 2 +- 4 files changed, 117 insertions(+), 72 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:25:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:25:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-615-g13908ea Message-ID: <20170324122505.C6AA9FA58D@public.kitware.com> 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 443567831b85ea57f1e44034892bcd8befd27e1f (commit) discards bb1f4f46666fb19bcc941436a17481b2d28f207e (commit) discards b865dc3920380a4c308dd8ea57f7f1c731ddcdc9 (commit) discards 0886640e479b40ebf919e6d952bcd7d928cbfea1 (commit) discards 06a517ba7fb88586651abd5ffc98556c081beb8c (commit) discards e7e084712af8f23606e57ae04626a91867a339c8 (commit) discards 42249082316ae05da1dfd4cf5bd1ece544a8da0f (commit) discards 07f2682c6c2398c4f0317dc03a36368c0ce64f00 (commit) via 13908eae4145346aff2b324e048d6235b06a02c1 (commit) via 4f9021ac1502039025ec4a10cf3e09b80fffd5ac (commit) via 3e912713838afff53f8375836adf9a71779a8d34 (commit) via 8b25d8e23c1415a99c0cd270f6fe8c4b26749870 (commit) via 1898f7c7d329d9b2f32f3b7957430533b697d591 (commit) via 0fe705a2c33dc6491bd61bbdb91dbbd13190cfd5 (commit) via 080350b622e4315e91f87921485512a95bdf7458 (commit) via ede8db109cabae485e53002c3350eb4d531ab076 (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 (443567831b85ea57f1e44034892bcd8befd27e1f) \ N -- N -- N (13908eae4145346aff2b324e048d6235b06a02c1) 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=13908eae4145346aff2b324e048d6235b06a02c1 commit 13908eae4145346aff2b324e048d6235b06a02c1 Merge: 4f9021a 41ec352 Author: Daniel Pfeifer AuthorDate: Thu Mar 23 23:22:18 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 08:23:27 2017 -0400 Stage topic 'iwyu' Topic-id: 23241 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/619 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4f9021ac1502039025ec4a10cf3e09b80fffd5ac commit 4f9021ac1502039025ec4a10cf3e09b80fffd5ac Merge: 3e91271 35e8a6d Author: Brad King AuthorDate: Thu Mar 23 18:38:05 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 08:23:26 2017 -0400 Stage topic 'autogen_rcc_test' Topic-id: 23218 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/618 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3e912713838afff53f8375836adf9a71779a8d34 commit 3e912713838afff53f8375836adf9a71779a8d34 Merge: 8b25d8e b5189fd Author: Gregor Jasny AuthorDate: Thu Mar 23 15:44:56 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 08:23:25 2017 -0400 Stage topic '16680-ios-bundle-resources' Topic-id: 23205 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/613 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-615-g8047bd6 Message-ID: <20170324123503.552F8FA726@public.kitware.com> 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 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (commit) via 5bded841b4d66bea70c932184eac0a44b82d03fe (commit) via 0f4420e0a80993ccd6ce7d51eeb96e904b8bd9f8 (commit) via 41ec352832037d316c34b3eba336eeb7f4163d86 (commit) via 72ea66b1cf28bba68f2b81637864a330e3ae715f (commit) via 2a827b8244d451071c02e3a3c8398bcb8b0e01fd (commit) via bcd08aa383e92b3fe53faa23cb7509796b9dd8db (commit) via 35e8a6de86790c10a5157bbb90c730b47bc552fa (commit) via b5189fda244112f47e71c820bf1498d500026cd0 (commit) via c51c2cfac619ac9efb9829f8b4decf9756891609 (commit) via 060be58c6f9ffe11235341bc10c8f5d808e31b3d (commit) via 484ccb0c454afa36da6b36e4ca5e0258e1739b3d (commit) from 8b25d8e23c1415a99c0cd270f6fe8c4b26749870 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 7 ++ Source/CPack/cmCPackGenerator.h | 28 +++--- Source/cmCTest.h | 32 +++--- Source/cmConfigure.cmake.h.in | 2 +- Source/cmDynamicLoader.cxx | 1 - Source/cmDynamicLoader.h | 2 +- Source/cmGeneratorTarget.cxx | 12 ++- Source/cmGeneratorTarget.h | 4 +- Source/cmGlobalGenerator.cxx | 5 + Source/cmGlobalGenerator.h | 4 + Source/cmGlobalXCodeGenerator.cxx | 53 +++++++++- Source/cmGlobalXCodeGenerator.h | 2 + Source/cmQtAutoGeneratorCommon.cxx | 1 + Source/cmQtAutoGeneratorCommon.h | 5 +- Source/cmQtAutoGeneratorInitializer.cxx | 6 +- Source/cmSystemTools.cxx | 1 - Source/cmSystemTools.h | 2 +- Tests/QtAutogen/CMakeLists.txt | 102 +++++++++++++------- Tests/QtAutogen/mocRerun/CMakeLists.txt | 3 +- Tests/QtAutogen/rccDepends/CMakeLists.txt | 19 ++-- .../rccDepends/{res1.qrc.in => res1a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res1b.qrc.in | 6 ++ .../rccDepends/{res2.qrc.in => res2a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res2b.qrc.in | 6 ++ Tests/RunCMake/Framework/FrameworkLayout.cmake | 8 +- .../Framework/OSXFrameworkLayout-build-check.cmake | 15 +++ .../RunCMake/Framework/deepresource.txt | 0 .../RunCMake/Framework/flatresource.txt | 0 .../Framework/iOSFrameworkLayout-build-check.cmake | 15 +++ .../hello.f => Tests/RunCMake/Framework/some.txt | 0 30 files changed, 249 insertions(+), 96 deletions(-) rename Tests/QtAutogen/rccDepends/{res1.qrc.in => res1a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res1b.qrc.in rename Tests/QtAutogen/rccDepends/{res2.qrc.in => res2a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res2b.qrc.in copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/deepresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/flatresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/some.txt (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-615-g8047bd6 Message-ID: <20170324123503.73A4FFA72A@public.kitware.com> 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 13908eae4145346aff2b324e048d6235b06a02c1 (commit) discards 4f9021ac1502039025ec4a10cf3e09b80fffd5ac (commit) discards 3e912713838afff53f8375836adf9a71779a8d34 (commit) via 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (commit) via 5bded841b4d66bea70c932184eac0a44b82d03fe (commit) via 0f4420e0a80993ccd6ce7d51eeb96e904b8bd9f8 (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 (13908eae4145346aff2b324e048d6235b06a02c1) \ N -- N -- N (8047bd6c0d935d8c0cc303b26d75ee62973d2b7f) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:45:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:45:01 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-618-g09a80c4 Message-ID: <20170324124501.E60D3E202F@public.kitware.com> 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 09a80c4be6f53d10ce07c24d30d2361d2546142d (commit) via 1adbe223cd10ee133f5137da028ed86ddef7cc4d (commit) via 40cf5e0e070365a1e68e128eeab6f4e80850ce91 (commit) from 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-618-g09a80c4 Message-ID: <20170324124502.0B24AE20E8@public.kitware.com> 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 09a80c4be6f53d10ce07c24d30d2361d2546142d (commit) via 1adbe223cd10ee133f5137da028ed86ddef7cc4d (commit) via 40cf5e0e070365a1e68e128eeab6f4e80850ce91 (commit) from 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 08:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 08:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-58-g1adbe22 Message-ID: <20170324124502.239B8E2BF7@public.kitware.com> 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, release has been updated via 1adbe223cd10ee133f5137da028ed86ddef7cc4d (commit) via 8dc23a438065b711b7b60b17c982f34a96631d1a (commit) via 40cf5e0e070365a1e68e128eeab6f4e80850ce91 (commit) via d4a693a08385024175240a5543cc2a7bb7311966 (commit) via 5ed4e48128837df0539cb1570c954e2872256930 (commit) via dbdb880af976b82f6530de5753b84cfa53c985c8 (commit) from 324d7f5a507bdfc9e46665573c42b82c4d51d9a9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 +- Modules/InstallRequiredSystemLibraries.cmake | 178 ++++++++++++++++---------- 2 files changed, 111 insertions(+), 71 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 09:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 09:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-623-ge4d9bb3 Message-ID: <20170324130502.34F62FA64E@public.kitware.com> 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 e4d9bb37952ea16d6703979832e8c865c0763fd8 (commit) via a7e7b0aedf56fcf79c9a7ee66450ef93a444029c (commit) via 954185d414641b7d314683bae7399f8b7f920139 (commit) via 5ef2628c307fe103c8a0e0b05ecf13fb07e5efcd (commit) via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) from 09a80c4be6f53d10ce07c24d30d2361d2546142d (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=e4d9bb37952ea16d6703979832e8c865c0763fd8 commit e4d9bb37952ea16d6703979832e8c865c0763fd8 Merge: a7e7b0a 5ef2628 Author: Brad King AuthorDate: Fri Mar 24 13:02:17 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 09:02:19 2017 -0400 Stage topic 'stage-release' Topic-id: 23252 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/622 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a7e7b0aedf56fcf79c9a7ee66450ef93a444029c commit a7e7b0aedf56fcf79c9a7ee66450ef93a444029c Merge: 09a80c4 954185d Author: Brad King AuthorDate: Fri Mar 24 12:59:52 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 08:59:55 2017 -0400 Stage topic 'binaries-from-gitlab-repo' Topic-id: 23251 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/621 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=954185d414641b7d314683bae7399f8b7f920139 commit 954185d414641b7d314683bae7399f8b7f920139 Author: Brad King AuthorDate: Fri Mar 24 08:56:41 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 08:56:41 2017 -0400 Utilities/Release: Fetch stage/master/head Update our release scripts to fetch `refs/stage/master/head` from the `gitlab.kitware.com` repository. This will allow us to prepare releases from staged commits before merging them to `master` or `release`. diff --git a/Utilities/Release/release_cmake.cmake b/Utilities/Release/release_cmake.cmake index ee1a0dc..b2c21b7 100644 --- a/Utilities/Release/release_cmake.cmake +++ b/Utilities/Release/release_cmake.cmake @@ -40,7 +40,8 @@ elseif(CMAKE_CREATE_VERSION STREQUAL "nightly") set(GIT_FETCH "${GIT_COMMAND} fetch origin refs/${nightly}:refs/remotes/origin/${nightly}") set(GIT_BRANCH origin/${nightly}) else() - set(GIT_FETCH "") + set(stage stage/master/head) + set(GIT_FETCH "${GIT_COMMAND} fetch origin refs/${stage}:refs/remotes/origin/${stage}") set(GIT_BRANCH ${CMAKE_CREATE_VERSION}) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5ef2628c307fe103c8a0e0b05ecf13fb07e5efcd commit 5ef2628c307fe103c8a0e0b05ecf13fb07e5efcd Merge: 09a80c4 3b7f19a Author: Brad King AuthorDate: Fri Mar 24 08:48:16 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 08:48:16 2017 -0400 Merge branch 'release' into stage-release https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc commit 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc Author: Brad King AuthorDate: Fri Mar 24 08:47:13 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 08:47:13 2017 -0400 CMake 3.8.0-rc3 diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index e2b8d4f..8ae8b33 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 2) +set(CMake_VERSION_RC 3) ----------------------------------------------------------------------- Summary of changes: Utilities/Release/release_cmake.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 10:45:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 10:45:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-620-g97662ba Message-ID: <20170324144506.46F0CF6528@public.kitware.com> 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 97662babe958748d0e1f827b8066d4abe93f159a (commit) via 954185d414641b7d314683bae7399f8b7f920139 (commit) from 09a80c4be6f53d10ce07c24d30d2361d2546142d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Utilities/Release/release_cmake.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 10:45:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 10:45:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-622-g634707f Message-ID: <20170324144506.7EA2FF6856@public.kitware.com> 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 e4d9bb37952ea16d6703979832e8c865c0763fd8 (commit) discards a7e7b0aedf56fcf79c9a7ee66450ef93a444029c (commit) discards 5ef2628c307fe103c8a0e0b05ecf13fb07e5efcd (commit) discards 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) via 634707f0e558e577a0a2601e56ebf95dda6b4a7f (commit) via 97662babe958748d0e1f827b8066d4abe93f159a (commit) via 70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 (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 (e4d9bb37952ea16d6703979832e8c865c0763fd8) \ N -- N -- N (634707f0e558e577a0a2601e56ebf95dda6b4a7f) 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=634707f0e558e577a0a2601e56ebf95dda6b4a7f commit 634707f0e558e577a0a2601e56ebf95dda6b4a7f Merge: 97662ba 70d8f0d Author: Brad King AuthorDate: Fri Mar 24 14:41:54 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 10:43:54 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-test-openmp' Topic-id: 23255 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/623 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 commit 70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 Author: Brad King AuthorDate: Thu Mar 23 10:40:17 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 10:40:58 2017 -0400 Tests: Activate InstallRequiredSystemLibraries OpenMP libs The SimpleInstall test performs a smoke test of this module. Activate the OpenMP code paths. diff --git a/Tests/SimpleInstall/CMakeLists.txt b/Tests/SimpleInstall/CMakeLists.txt index 4cf7355..f8068b1 100644 --- a/Tests/SimpleInstall/CMakeLists.txt +++ b/Tests/SimpleInstall/CMakeLists.txt @@ -365,6 +365,7 @@ set(CPACK_PACKAGE_EXECUTABLES "SimpleInstall" "Simple Install") set(CMAKE_INSTALL_MFC_LIBRARIES 1) set(CMAKE_INSTALL_DEBUG_LIBRARIES 1) set(CMAKE_INSTALL_UCRT_LIBRARIES 1) +set(CMAKE_INSTALL_OPENMP_LIBRARIES 1) include(InstallRequiredSystemLibraries) if(CTEST_TEST_CPACK) ----------------------------------------------------------------------- Summary of changes: Tests/SimpleInstall/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 10:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 10:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc2-622-g3142808 Message-ID: <20170324145502.7EA3DFA75E@public.kitware.com> 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 3142808f15b0dabca8a5d66535c3f795ed470bac (commit) via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) from 97662babe958748d0e1f827b8066d4abe93f159a (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 10:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 10:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc2-624-g6f245c2 Message-ID: <20170324145502.C1D50FA759@public.kitware.com> 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 634707f0e558e577a0a2601e56ebf95dda6b4a7f (commit) via 6f245c20528528f5c848e69ee909a803a59477f0 (commit) via 3142808f15b0dabca8a5d66535c3f795ed470bac (commit) via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (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 (634707f0e558e577a0a2601e56ebf95dda6b4a7f) \ N -- N -- N (6f245c20528528f5c848e69ee909a803a59477f0) 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=6f245c20528528f5c848e69ee909a803a59477f0 commit 6f245c20528528f5c848e69ee909a803a59477f0 Merge: 3142808 70d8f0d Author: Brad King AuthorDate: Fri Mar 24 14:41:54 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 10:46:29 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-test-openmp' Topic-id: 23255 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/623 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 10:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 10:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc2-59-g3b7f19a Message-ID: <20170324145502.D94CEFA75E@public.kitware.com> 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, release has been updated via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) from 1adbe223cd10ee133f5137da028ed86ddef7cc4d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 11:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 11:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake annotated tag, v3.8.0-rc3, created. v3.8.0-rc3 Message-ID: <20170324150502.4C9A5FA86E@public.kitware.com> 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 annotated tag, v3.8.0-rc3 has been created at a1c43dfcf00c97d3517582cd3fd3f94cc22a38c4 (tag) tagging 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) replaces v3.8.0-rc2 tagged by Brad King on Fri Mar 24 10:45:27 2017 -0400 - Log ----------------------------------------------------------------- CMake 3.8.0-rc3 -----BEGIN PGP SIGNATURE----- iQJKBAABCAA0FiEExsJlMku+vcNQtRPQLSzvEDSSFoQFAljVMQcWHGJyYWQua2lu Z0BraXR3YXJlLmNvbQAKCRAtLO8QNJIWhLimEACndMF0DPw97mypNomsRujGqokW tjIx2+7PWxcag4WGZNcvfbIhwkFbfeNrwQm/+IXn3TZG01jXyzn8qZNaTsMszs6f VwBT5OrrZ4JIjjXDEF3YnszOXF8hltQ9PtdAJUUCNAZkh8oBdrG8IBn2qcAJpd5A PAiIHTTJ1X7ADZX/yaPJuG6ObOkeUGrcv4siSnuRXXYvk1PMOdzMPlGGBW3ljKms pOz+KEk7Y5j+EcRdPXWSMj++qNPYmSEHPiB+2ig7tgHuxf8LMUCin5rNtdfAlAlr fVDu8lk/h+mSGX3ll0t9QSGc4jRUaZK5XZJE9B/8yjVHlY5WjH4HzPnBShGM0K2I ozNmiuZO7exKvt/5egjbSiDFn1dQxbIutEgTLRrHOSt9VQIOjDJ+FL3YjS5dVAcl CagnBMCVzyB9XrbfWTtYz9P47ecu5kqIYX46CghBiU8rSvDZM7WQBqVVumklEU6k xYuW93epOM0Rus1VbfPv/2J+5XfUPMjRHtZtGfVOmruSvaVkfcUxy2WvL5dYlG9F u+ipnj6XjuCgWxgwHCpk3NOq0Ag3AcvODIaFzN/bJzWYRfoGNRnUR5vjOcCF0WMC PXoB8j3Vd2uFwRs7G5WTaRMrwfdO6pb+qoRGxluNW/KhdPG5Z0d8k2XDZ51+NX+u WTvK2u+/kFEq2sD3Mw== =UofH -----END PGP SIGNATURE----- Ben Boeckel (1): FindHDF5: fix quoting Brad King (46): Revert "Remove CTestTestfile.cmake when BUILD_TESTING is OFF" Merge branch 'FindHDF5-fix-definitions' into release Merge branch 'FindVulkan-fix-win-32' into release Merge branch 'revert-CTestTestfile-removal' into release Merge branch 'fix_csharp_custom_targets' into release Merge branch 'doc-vs15-MSVC_VERSION' into release FindGit: Avoid finding VS 2017 non-general Git installation Merge branch 'FindGit-avoid-vs-2017-git' into release Help: Fix typo in CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE Merge branch 'doc-toolset-host-arch-typo' into release Merge branch 'CSharpUtilities-doc' into release Merge branch 'FindBoost-1.64' into release Merge branch 'FindHDF5-fix-quoting' into release Merge branch 'cpack-rpm-debuginfo-multiple-files-fix' into release libarchive: backport rc4 crypto requirement update Merge branch 'libarchive-backport-rc4-crypto-rec' into release Merge branch 'cuda_no_ninja_response_support' into release FindHDF5: Improve HDF5_ROOT variable documentation FindHDF5: Add option to skip finding package configuration file Merge branch 'backport-FindHDF5-optional-no-config' into release Ninja: Fix Fortran `include` dependency on generated file Merge branch 'ninja-fortran-depfile-fix' into release Merge branch '16624-blas-lapack-documentation' into release Merge branch 'FindBoost-1.64' into release FindwxWidgets: Use `MSVC_VERSION` instead of `MSVC##` FindwxWidgets: Add support for VS 2017 v141 toolset MSVC: Exclude future cl 20+ from MSVC14 variable Help: Clarify MSVC14 docs w.r.t. VS 2017 v141 toolset Help: Document preference of `MSVC_VERSION` over `MSVC##` Merge branch 'FindwxWidgets-vs-2017' into release Merge branch 'doc-prefer-MSVC_VERSION' into release InstallRequiredSystemLibraries: Use `MSVC_VERSION` instead of `MSVC##` InstallRequiredSystemLibraries: Refactor to avoid macros InstallRequiredSystemLibraries: Drop version from variable names FindBoost: Avoid mentioning discouraged `MSVC##`` variable FindGTK2: Use `MSVC_VERSION` instead of `MSVC##` FindRuby: Use `MSVC_VERSION` instead of `MSVC##` Merge branch 'avoid-MSVC-per-version-vars' into release Merge branch 'InstallRequiredSystemLibraries-refactor' into release Merge branch 'server-mode-fix-home-dir-check' into release InstallRequiredSystemLibraries: Split VS IDE and DLL versions InstallRequiredSystemLibraries: Split MFC redist dir variable InstallRequiredSystemLibraries: Add support for VS 2017 Merge branch 'InstallRequiredSystemLibraries-vs2017' into release Merge branch 'cpack-rpm-correct-error-message-debug-lengths' into release CMake 3.8.0-rc3 Daniel Black (1): CPack/RPM: fix error message associated with source path length Domen Vrankar (1): CPack/RPM: fix cpack_rpm_debugsymbol_check parameter Gregor Jasny (1): FindBLAS/LAPACK: Format documentation Kris Thielemans (1): FindHDF5: Restore `-D` in HDF5_DEFINITIONS Mateusz ?oskot (2): FindBoost: Add support for 1.64 FindBoost: Update support for 1.64 Matth?us G. Chajdas (1): FindVulkan: Fix for SDK versions < 1.0.42 on 32-bit Windows Michael St?rmer (2): VS: Do not treat custom targets as CSharp targets CSharpUtilities: Fix documentation Robert Maynard (1): CUDA: Disable support for using response files. Tobias Hunger (1): server-mode: Make CMAKE_HOME_DIRECTORY more reliable Wojciech Mamrak (1): Help: Update MSVC_VERSION for Visual Studio 2017 ----------------------------------------------------------------------- hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 15:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 15:25:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-570-g30b22d9 Message-ID: <20170324192502.C5221FA329@public.kitware.com> 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 30b22d94f06e8b1760ea2bca570376161fdf95c1 (commit) via ea2a91a43279616a602b641d827e07912ac9c0b9 (commit) via fda80fde76c230dda8372bf9d7208520c40f3611 (commit) via 64490637840b05da7f0829aa52cae7f3923b805e (commit) via f1a5583901e051ef4627bf8be08565c4b331e99a (commit) from 6f245c20528528f5c848e69ee909a803a59477f0 (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=30b22d94f06e8b1760ea2bca570376161fdf95c1 commit 30b22d94f06e8b1760ea2bca570376161fdf95c1 Merge: 6f245c2 ea2a91a Author: Brad King AuthorDate: Fri Mar 24 19:22:04 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 15:22:06 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23265 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/624 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ea2a91a43279616a602b641d827e07912ac9c0b9 commit ea2a91a43279616a602b641d827e07912ac9c0b9 Merge: 6449063 fda80fd Author: Brad King AuthorDate: Fri Mar 24 15:17:25 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 15:17:25 2017 -0400 Merge branch 'upstream-KWSys' into update-kwsys * upstream-KWSys: KWSys 2017-03-24 (7e9f7b7b) Resolve conflicts in `.gitattributes` by integrating changes from both sides. Keep the `our-c-style` attribute that KWSys uses, but drop their definition of it in favor of ours (Git only allows custom attributes in the top level anyway). Then add our own attribute line to unset the `format.clang-format` attribute for KWSys sources since we do not want to format third-party code ourselves. diff --cc Source/kwsys/.gitattributes index a121ad1,0000000..3583f39 mode 100644,000000..100644 --- a/Source/kwsys/.gitattributes +++ b/Source/kwsys/.gitattributes @@@ -1,12 -1,0 +1,15 @@@ +.git* export-ignore + - *.c whitespace=tab-in-indent,no-lf-at-eof - *.h whitespace=tab-in-indent,no-lf-at-eof - *.h.in whitespace=tab-in-indent,no-lf-at-eof - *.cxx whitespace=tab-in-indent,no-lf-at-eof - *.hxx whitespace=tab-in-indent,no-lf-at-eof - *.hxx.in whitespace=tab-in-indent,no-lf-at-eof - *.txt whitespace=tab-in-indent,no-lf-at-eof - *.cmake whitespace=tab-in-indent,no-lf-at-eof ++*.c our-c-style ++*.c.in our-c-style ++*.cxx our-c-style ++*.h our-c-style ++*.h.in our-c-style ++*.hxx our-c-style ++*.hxx.in our-c-style + ++*.cmake whitespace=tab-in-indent +*.rst whitespace=tab-in-indent conflict-marker-size=79 ++*.txt whitespace=tab-in-indent ++ ++* -format.clang-format https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fda80fde76c230dda8372bf9d7208520c40f3611 commit fda80fde76c230dda8372bf9d7208520c40f3611 Author: KWSys Upstream AuthorDate: Fri Mar 24 13:30:34 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 15:16:56 2017 -0400 KWSys 2017-03-24 (7e9f7b7b) Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit 7e9f7b7bdc8ac54006a40a775867022c4d678b06 (master). Upstream Shortlog ----------------- Brad King (3): 0af48083 Drop custom Git whitespace check attribute 6365886c Define a custom Git attribute to mark sources using our C style d22c2743 clang-format.bash: Use Git attributes to mark files for formatting Egor Pugin (3): ce44c58a FStream: Export ReadBOM() from shared library 04e24b2b ConsoleBuf: Remove export macro from BasicConsoleBuf template 858d5edd Encoding: Export CommandLineArguments from shared library diff --git a/.gitattributes b/.gitattributes index f2da782..8ce3d68 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,18 +2,22 @@ .gitattributes -export-ignore .hooks* export-ignore +# Custom attribute to mark sources as using our C code style. +#[attr]our-c-style whitespace=tab-in-indent format.clang-format + /GitSetup export-ignore /*.sh export-ignore eol=lf /*.bash export-ignore eol=lf /.clang-format export-ignore -*.c whitespace=tab-in-indent,no-lf-at-eof -*.h whitespace=tab-in-indent,no-lf-at-eof -*.h.in whitespace=tab-in-indent,no-lf-at-eof -*.cxx whitespace=tab-in-indent,no-lf-at-eof -*.hxx whitespace=tab-in-indent,no-lf-at-eof -*.hxx.in whitespace=tab-in-indent,no-lf-at-eof -*.txt whitespace=tab-in-indent,no-lf-at-eof -*.cmake whitespace=tab-in-indent,no-lf-at-eof +*.c our-c-style +*.c.in our-c-style +*.cxx our-c-style +*.h our-c-style +*.h.in our-c-style +*.hxx our-c-style +*.hxx.in our-c-style +*.cmake whitespace=tab-in-indent *.rst whitespace=tab-in-indent conflict-marker-size=79 +*.txt whitespace=tab-in-indent diff --git a/ConsoleBuf.hxx.in b/ConsoleBuf.hxx.in index cb58865..32e680c 100644 --- a/ConsoleBuf.hxx.in +++ b/ConsoleBuf.hxx.in @@ -25,8 +25,7 @@ namespace @KWSYS_NAMESPACE@ { #if defined(_WIN32) template > -class @KWSYS_NAMESPACE at _EXPORT BasicConsoleBuf - : public std::basic_streambuf +class BasicConsoleBuf : public std::basic_streambuf { public: typedef typename Traits::int_type int_type; diff --git a/Encoding.hxx.in b/Encoding.hxx.in index 6639efd..bf93f50 100644 --- a/Encoding.hxx.in +++ b/Encoding.hxx.in @@ -13,7 +13,7 @@ class @KWSYS_NAMESPACE at _EXPORT Encoding { public: // Container class for argc/argv. - class CommandLineArguments + class @KWSYS_NAMESPACE at _EXPORT CommandLineArguments { public: // On Windows, get the program command line arguments diff --git a/FStream.hxx.in b/FStream.hxx.in index 736214f..cf331a5 100644 --- a/FStream.hxx.in +++ b/FStream.hxx.in @@ -269,7 +269,7 @@ enum BOM // If a BOM exists, the stream is advanced to after the BOM. // This function requires a seekable stream (but not a relative // seekable stream). -BOM ReadBOM(std::istream& in); + at KWSYS_NAMESPACE@_EXPORT BOM ReadBOM(std::istream& in); } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=64490637840b05da7f0829aa52cae7f3923b805e commit 64490637840b05da7f0829aa52cae7f3923b805e Author: Brad King AuthorDate: Fri Mar 24 14:51:46 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 15:16:39 2017 -0400 update-kwsys: Disable custom gitattributes during import The KWSys `.gitattributes` file now defines custom attributes. Git does not support these in a subdirectory where we are about to place the content, so comment them out during import. This also ensures that the `our-c-style` attribute on KWSys sources does not activate the `format.clang-format` attribute on the third-party import branch. diff --git a/Utilities/Scripts/update-kwsys.bash b/Utilities/Scripts/update-kwsys.bash index 83da8a4..d5485aa 100755 --- a/Utilities/Scripts/update-kwsys.bash +++ b/Utilities/Scripts/update-kwsys.bash @@ -15,6 +15,7 @@ readonly paths=" extract_source () { git_archive + disable_custom_gitattributes } export HOOKS_ALLOW_KWSYS=1 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f1a5583901e051ef4627bf8be08565c4b331e99a commit f1a5583901e051ef4627bf8be08565c4b331e99a Author: Brad King AuthorDate: Fri Mar 24 15:13:55 2017 -0400 Commit: Brad King CommitDate: Fri Mar 24 15:13:55 2017 -0400 update-third-party: Add helper to disable custom gitattributes Provide a helper function that import scripts can use when the third-party project defines custom Git attributes in its top-level `.gitattributes` file. These must be commented out because Git does not support custom attributes in a subdirectory where we where the third-party project is about to be merged. diff --git a/Utilities/Scripts/update-third-party.bash b/Utilities/Scripts/update-third-party.bash index 3b8358e..670946e 100644 --- a/Utilities/Scripts/update-third-party.bash +++ b/Utilities/Scripts/update-third-party.bash @@ -52,6 +52,14 @@ git_archive () { tar -C "$extractdir" -x } +disable_custom_gitattributes() { + pushd "${extractdir}/${name}-reduced" + # Git does not allow custom attributes in a subdirectory where we + # are about to merge the `.gitattributes` file, so disable them. + sed -i '/^\[attr\]/ {s/^/#/}' .gitattributes + popd +} + die () { echo >&2 "$@" exit 1 ----------------------------------------------------------------------- Summary of changes: Source/kwsys/.gitattributes | 19 +++++++++++-------- Source/kwsys/ConsoleBuf.hxx.in | 3 +-- Source/kwsys/Encoding.hxx.in | 2 +- Source/kwsys/FStream.hxx.in | 2 +- Utilities/Scripts/update-kwsys.bash | 1 + Utilities/Scripts/update-third-party.bash | 8 ++++++++ 6 files changed, 23 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From cmake-commits at cmake.org Fri Mar 24 16:43:49 2017 From: cmake-commits at cmake.org (cmake-commits at cmake.org) Date: Fri, 24 Mar 2017 20:43:49 +0000 (UTC) Subject: Banco Bradesco S/A - Informamos que seu Cartão de Chaves de Segurança encontra-se expirado. (62650) Message-ID: <20170324204349.80F7F27F21@tempo-01.tempo-01.i2.internal.cloudapp.net> An HTML attachment was scrubbed... URL: From kwrobot at kitware.com Fri Mar 24 18:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 18:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-572-g6d5ad4d Message-ID: <20170324220503.02F6FFA8A2@public.kitware.com> 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 6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 (commit) via e9fc7ff5052f3ab40c2b39ba653506c5346d4582 (commit) from 30b22d94f06e8b1760ea2bca570376161fdf95c1 (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=6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 commit 6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 Merge: 30b22d9 e9fc7ff Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:04:21 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 24 18:04:24 2017 -0400 Stage topic 'cm-sys-stat' Topic-id: 23273 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/625 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e9fc7ff5052f3ab40c2b39ba653506c5346d4582 commit e9fc7ff5052f3ab40c2b39ba653506c5346d4582 Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:58:25 2017 +0100 Commit: Daniel Pfeifer CommitDate: Fri Mar 24 22:58:25 2017 +0100 Add self-sufficient wrapper for diff --git a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx index a471d26..3158343 100644 --- a/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx +++ b/Source/CPack/WiX/cmWIXFilesSourceWriter.cxx @@ -9,9 +9,7 @@ #include #include -#include -// include sys/stat.h after sys/types.h -#include +#include "cm_sys_stat.h" cmWIXFilesSourceWriter::cmWIXFilesSourceWriter(cmCPackLog* logger, std::string const& filename, diff --git a/Source/CPack/cmCPackCygwinSourceGenerator.cxx b/Source/CPack/cmCPackCygwinSourceGenerator.cxx index 92475d9..bd22cec 100644 --- a/Source/CPack/cmCPackCygwinSourceGenerator.cxx +++ b/Source/CPack/cmCPackCygwinSourceGenerator.cxx @@ -15,7 +15,7 @@ // system tools because it is not implemented robustly enough to move // files across directories. #ifdef _WIN32 -#include +#include "cm_sys_stat.h" #include #endif diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 5c50da8..ed87238 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -8,6 +8,7 @@ #include "cmCPackLog.h" #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" +#include "cm_sys_stat.h" #include #include @@ -16,7 +17,6 @@ #include #include #include -#include #include // NOTE: diff --git a/Source/CPack/cmCPackOSXX11Generator.cxx b/Source/CPack/cmCPackOSXX11Generator.cxx index 0d8dc48..8ea88a8 100644 --- a/Source/CPack/cmCPackOSXX11Generator.cxx +++ b/Source/CPack/cmCPackOSXX11Generator.cxx @@ -3,12 +3,12 @@ #include "cmCPackOSXX11Generator.h" #include -#include #include "cmCPackGenerator.h" #include "cmCPackLog.h" #include "cmGeneratedFileStream.h" #include "cmSystemTools.h" +#include "cm_sys_stat.h" cmCPackOSXX11Generator::cmCPackOSXX11Generator() { diff --git a/Source/CPack/cmCPackSTGZGenerator.cxx b/Source/CPack/cmCPackSTGZGenerator.cxx index 682394e..2765e2a 100644 --- a/Source/CPack/cmCPackSTGZGenerator.cxx +++ b/Source/CPack/cmCPackSTGZGenerator.cxx @@ -8,13 +8,10 @@ #include #include -#include -// include sys/stat.h after sys/types.h -#include - #include "cmCPackGenerator.h" #include "cmCPackLog.h" #include "cmSystemTools.h" +#include "cm_sys_stat.h" cmCPackSTGZGenerator::cmCPackSTGZGenerator() { diff --git a/Source/CTest/cmCTestSubmitHandler.cxx b/Source/CTest/cmCTestSubmitHandler.cxx index cc399b0..88193b0 100644 --- a/Source/CTest/cmCTestSubmitHandler.cxx +++ b/Source/CTest/cmCTestSubmitHandler.cxx @@ -25,8 +25,8 @@ #if defined(CTEST_USE_XMLRPC) #include "cmVersion.h" +#include "cm_sys_stat.h" #include -#include #endif #define SUBMIT_TIMEOUT_IN_SECONDS_DEFAULT 120 diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 5e03c39..b2f0b2d 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -184,9 +184,9 @@ int main(int argc, char** argv) } #if defined(Q_OS_MAC) +#include "cm_sys_stat.h" #include #include -#include #include static bool cmOSXInstall(std::string const& dir, std::string const& tool) { diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 957b4cb..97292f9 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -16,10 +16,6 @@ #include #include -#include -// include sys/stat.h after sys/types.h -#include - #include "cmAlgorithms.h" #include "cmCommandArgumentsHelper.h" #include "cmCryptoHash.h" @@ -35,6 +31,7 @@ #include "cmSystemTools.h" #include "cmTimestamp.h" #include "cm_auto_ptr.hxx" +#include "cm_sys_stat.h" #include "cmake.h" #if defined(CMAKE_BUILD_WITH_CMAKE) diff --git a/Source/cmFileTimeComparison.cxx b/Source/cmFileTimeComparison.cxx index 991ebb8..ef4337b 100644 --- a/Source/cmFileTimeComparison.cxx +++ b/Source/cmFileTimeComparison.cxx @@ -10,7 +10,7 @@ // Use a platform-specific API to get file times efficiently. #if !defined(_WIN32) || defined(__CYGWIN__) -#include +#include "cm_sys_stat.h" #define cmFileTimeComparison_Type struct stat #else #include diff --git a/Source/cmGeneratorExpressionEvaluationFile.h b/Source/cmGeneratorExpressionEvaluationFile.h index 26135df..1223ffd 100644 --- a/Source/cmGeneratorExpressionEvaluationFile.h +++ b/Source/cmGeneratorExpressionEvaluationFile.h @@ -11,12 +11,7 @@ #include "cmGeneratorExpression.h" #include "cm_auto_ptr.hxx" - -#if defined(_MSC_VER) -typedef unsigned short mode_t; -#else -#include -#endif +#include "cm_sys_stat.h" class cmLocalGenerator; diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c4a488f..f7d822a 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -38,6 +38,7 @@ #include "cmVersion.h" #include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" +#include "cm_sys_stat.h" #include "cmake.h" #ifdef CMAKE_BUILD_WITH_CMAKE diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index ead3dfc..d69794c 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -15,6 +15,7 @@ #include "cmState.h" #include "cmSystemTools.h" #include "cmTarget.h" +#include "cm_sys_stat.h" #include "cmake.h" #if defined(_WIN32) && !defined(__CYGWIN__) @@ -27,7 +28,6 @@ #include #include #include -#include #include #include diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index b2e3c6a..ee751f2 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -4,6 +4,7 @@ #include "cmAlgorithms.h" #include "cmProcessOutput.h" +#include "cm_sys_stat.h" #if defined(CMAKE_BUILD_WITH_CMAKE) #include "cmArchiveWrite.h" @@ -42,7 +43,6 @@ #include #include #include -#include #include #include diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index 070f81f..e93eaae 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -12,12 +12,6 @@ #include #include -#if defined(_MSC_VER) -typedef unsigned short mode_t; -#else -#include -#endif - class cmSystemToolsFileTime; /** \class cmSystemTools diff --git a/Source/cmWriteFileCommand.cxx b/Source/cmWriteFileCommand.cxx index 96c8e27..ce2de57 100644 --- a/Source/cmWriteFileCommand.cxx +++ b/Source/cmWriteFileCommand.cxx @@ -4,12 +4,9 @@ #include -#include -// include sys/stat.h after sys/types.h -#include - #include "cmMakefile.h" #include "cmSystemTools.h" +#include "cm_sys_stat.h" class cmExecutionStatus; diff --git a/Source/cm_sys_stat.h b/Source/cm_sys_stat.h new file mode 100644 index 0000000..26e4baa --- /dev/null +++ b/Source/cm_sys_stat.h @@ -0,0 +1,14 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cm_sys_stat_h +#define cm_sys_stat_h + +#if defined(_MSC_VER) +typedef unsigned short mode_t; +#endif + +#include +// include sys/stat.h after sys/types.h +#include + +#endif diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 3af3be6..4363c12 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -25,6 +25,7 @@ #include "cmVersionConfig.h" #include "cmWorkingDirectory.h" #include "cm_auto_ptr.hxx" +#include "cm_sys_stat.h" #if defined(CMAKE_BUILD_WITH_CMAKE) #include @@ -106,10 +107,6 @@ #include #endif -#include -// include sys/stat.h after sys/types.h -#include // struct stat - #include #include #include ----------------------------------------------------------------------- Summary of changes: Source/CPack/WiX/cmWIXFilesSourceWriter.cxx | 4 +--- Source/CPack/cmCPackCygwinSourceGenerator.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 2 +- Source/CPack/cmCPackOSXX11Generator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 5 +---- Source/CTest/cmCTestSubmitHandler.cxx | 2 +- Source/QtDialog/CMakeSetup.cxx | 2 +- Source/cmFileCommand.cxx | 5 +---- Source/cmFileTimeComparison.cxx | 2 +- Source/cmGeneratorExpressionEvaluationFile.h | 7 +------ Source/cmMakefile.cxx | 1 + Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmSystemTools.cxx | 2 +- Source/cmSystemTools.h | 6 ------ Source/cmWriteFileCommand.cxx | 5 +---- Source/cm_sys_stat.h | 14 ++++++++++++++ Source/cmake.cxx | 5 +---- 17 files changed, 29 insertions(+), 39 deletions(-) create mode 100644 Source/cm_sys_stat.h hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-572-g6d5ad4d Message-ID: <20170325010507.14313FA8F0@public.kitware.com> 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, nightly has been updated discards 47ea9a8f3927ad605729400e812ca52560f9265f (commit) discards 794c3b65826300b99548227a1f618ff2097cceb1 (commit) discards 2b1a2307f2e37686a2f2cdc4a52104fa04c48ccc (commit) discards d268dc1e62ca9e4971672d89c536b56eb98f8ab5 (commit) discards e5276930c157cdaf147f97f5dd2bd99f4752fbce (commit) discards 299f570d20bc217d426b89f648a45dd5bbdf092e (commit) discards dd8f9350e498f92c094593d8f87db419372ebdea (commit) discards 07f2682c6c2398c4f0317dc03a36368c0ce64f00 (commit) discards 08b2a3a2ca83d8249b433708b7bb6982d04d7bb4 (commit) discards 7b0663973bba18c5e532464261f9ec404f9ebaaf (commit) discards 304e6a832e47a384552a3adbc49d7d68d65c2dd9 (commit) via 6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 (commit) via e9fc7ff5052f3ab40c2b39ba653506c5346d4582 (commit) via 30b22d94f06e8b1760ea2bca570376161fdf95c1 (commit) via ea2a91a43279616a602b641d827e07912ac9c0b9 (commit) via fda80fde76c230dda8372bf9d7208520c40f3611 (commit) via 64490637840b05da7f0829aa52cae7f3923b805e (commit) via f1a5583901e051ef4627bf8be08565c4b331e99a (commit) via 6f245c20528528f5c848e69ee909a803a59477f0 (commit) via 3142808f15b0dabca8a5d66535c3f795ed470bac (commit) via 97662babe958748d0e1f827b8066d4abe93f159a (commit) via 70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 (commit) via 954185d414641b7d314683bae7399f8b7f920139 (commit) via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) via 09a80c4be6f53d10ce07c24d30d2361d2546142d (commit) via 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (commit) via 5bded841b4d66bea70c932184eac0a44b82d03fe (commit) via 0f4420e0a80993ccd6ce7d51eeb96e904b8bd9f8 (commit) via 8b25d8e23c1415a99c0cd270f6fe8c4b26749870 (commit) via 1898f7c7d329d9b2f32f3b7957430533b697d591 (commit) via 0fe705a2c33dc6491bd61bbdb91dbbd13190cfd5 (commit) via 080350b622e4315e91f87921485512a95bdf7458 (commit) via ede8db109cabae485e53002c3350eb4d531ab076 (commit) via 6cd8aa3c2a2fc6ecee9b8efea300b3b978660c35 (commit) via 1adbe223cd10ee133f5137da028ed86ddef7cc4d (commit) via 40cf5e0e070365a1e68e128eeab6f4e80850ce91 (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 (47ea9a8f3927ad605729400e812ca52560f9265f) \ N -- N -- N (6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 ++-- Source/CMakeVersion.cmake | 2 +- Source/CPack/WiX/cmWIXFilesSourceWriter.cxx | 4 +--- Source/CPack/cmCPackCygwinSourceGenerator.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 2 +- Source/CPack/cmCPackOSXX11Generator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 5 +---- Source/CTest/cmCTestSubmitHandler.cxx | 2 +- Source/QtDialog/CMakeSetup.cxx | 2 +- Source/cmFileCommand.cxx | 5 +---- Source/cmFileTimeComparison.cxx | 2 +- Source/cmGeneratorExpressionEvaluationFile.h | 7 +------ Source/cmMakefile.cxx | 1 + Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmSystemTools.cxx | 2 +- Source/cmSystemTools.h | 6 ------ Source/cmWriteFileCommand.cxx | 5 +---- Source/cm_sys_stat.h | 14 ++++++++++++++ Source/cmake.cxx | 5 +---- Source/kwsys/.gitattributes | 19 +++++++++++-------- Source/kwsys/ConsoleBuf.hxx.in | 3 +-- Source/kwsys/Encoding.hxx.in | 2 +- Source/kwsys/FStream.hxx.in | 2 +- Tests/RunCMake/CPack/README.txt | 4 ++-- Tests/RunCMake/CPack/VerifyResult.cmake | 12 +++--------- .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 6 ++---- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 5 ----- Tests/SimpleInstall/CMakeLists.txt | 1 + Utilities/Release/release_cmake.cmake | 3 ++- Utilities/Scripts/update-kwsys.bash | 1 + Utilities/Scripts/update-third-party.bash | 8 ++++++++ 31 files changed, 65 insertions(+), 75 deletions(-) create mode 100644 Source/cm_sys_stat.h hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 24 21:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 24 Mar 2017 21:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-563-g3142808 Message-ID: <20170325010507.63993FA8F1@public.kitware.com> 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, nightly-master has been updated via 3142808f15b0dabca8a5d66535c3f795ed470bac (commit) via 97662babe958748d0e1f827b8066d4abe93f159a (commit) via 954185d414641b7d314683bae7399f8b7f920139 (commit) via 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (commit) via 09a80c4be6f53d10ce07c24d30d2361d2546142d (commit) via 8047bd6c0d935d8c0cc303b26d75ee62973d2b7f (commit) via 5bded841b4d66bea70c932184eac0a44b82d03fe (commit) via 0f4420e0a80993ccd6ce7d51eeb96e904b8bd9f8 (commit) via 8b25d8e23c1415a99c0cd270f6fe8c4b26749870 (commit) via 1898f7c7d329d9b2f32f3b7957430533b697d591 (commit) via 0fe705a2c33dc6491bd61bbdb91dbbd13190cfd5 (commit) via 080350b622e4315e91f87921485512a95bdf7458 (commit) via ede8db109cabae485e53002c3350eb4d531ab076 (commit) via 6cd8aa3c2a2fc6ecee9b8efea300b3b978660c35 (commit) via 41ec352832037d316c34b3eba336eeb7f4163d86 (commit) via 72ea66b1cf28bba68f2b81637864a330e3ae715f (commit) via 2a827b8244d451071c02e3a3c8398bcb8b0e01fd (commit) via bcd08aa383e92b3fe53faa23cb7509796b9dd8db (commit) via 1adbe223cd10ee133f5137da028ed86ddef7cc4d (commit) via 8dc23a438065b711b7b60b17c982f34a96631d1a (commit) via 35e8a6de86790c10a5157bbb90c730b47bc552fa (commit) via b5189fda244112f47e71c820bf1498d500026cd0 (commit) via c51c2cfac619ac9efb9829f8b4decf9756891609 (commit) via 40cf5e0e070365a1e68e128eeab6f4e80850ce91 (commit) via d4a693a08385024175240a5543cc2a7bb7311966 (commit) via 5ed4e48128837df0539cb1570c954e2872256930 (commit) via dbdb880af976b82f6530de5753b84cfa53c985c8 (commit) via d40fc8856d3cc3cd40e091d858df4fb1725f1406 (commit) via 060be58c6f9ffe11235341bc10c8f5d808e31b3d (commit) via 484ccb0c454afa36da6b36e4ca5e0258e1739b3d (commit) from f0f60c548a3c3156f6488c1921f5b64ea33f5410 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/prop_sf/MACOSX_PACKAGE_LOCATION.rst | 7 + Modules/CPackRPM.cmake | 4 +- Modules/InstallRequiredSystemLibraries.cmake | 178 ++++++++++++-------- Source/CMakeVersion.cmake | 2 +- Source/CPack/cmCPackGenerator.h | 28 +-- Source/cmCTest.h | 32 ++-- Source/cmConfigure.cmake.h.in | 2 +- Source/cmDynamicLoader.cxx | 1 - Source/cmDynamicLoader.h | 2 +- Source/cmGeneratorTarget.cxx | 12 +- Source/cmGeneratorTarget.h | 4 +- Source/cmGlobalGenerator.cxx | 5 + Source/cmGlobalGenerator.h | 4 + Source/cmGlobalXCodeGenerator.cxx | 53 +++++- Source/cmGlobalXCodeGenerator.h | 2 + Source/cmQtAutoGeneratorCommon.cxx | 1 + Source/cmQtAutoGeneratorCommon.h | 5 +- Source/cmQtAutoGeneratorInitializer.cxx | 6 +- Source/cmSystemTools.cxx | 1 - Source/cmSystemTools.h | 2 +- Tests/Cuda/ObjectLibrary/CMakeLists.txt | 5 + Tests/QtAutogen/CMakeLists.txt | 102 +++++++---- Tests/QtAutogen/mocRerun/CMakeLists.txt | 3 +- Tests/QtAutogen/rccDepends/CMakeLists.txt | 19 +-- .../rccDepends/{res1.qrc.in => res1a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res1b.qrc.in | 6 + .../rccDepends/{res2.qrc.in => res2a.qrc.in} | 2 +- Tests/QtAutogen/rccDepends/res2b.qrc.in | 6 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 8 +- .../Framework/OSXFrameworkLayout-build-check.cmake | 15 ++ .../RunCMake/Framework/deepresource.txt | 0 .../RunCMake/Framework/flatresource.txt | 0 .../Framework/iOSFrameworkLayout-build-check.cmake | 15 ++ .../hello.f => Tests/RunCMake/Framework/some.txt | 0 Tests/RunCMake/RunCMake.cmake | 2 +- Utilities/Release/release_cmake.cmake | 3 +- 36 files changed, 369 insertions(+), 170 deletions(-) rename Tests/QtAutogen/rccDepends/{res1.qrc.in => res1a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res1b.qrc.in rename Tests/QtAutogen/rccDepends/{res2.qrc.in => res2a.qrc.in} (66%) create mode 100644 Tests/QtAutogen/rccDepends/res2b.qrc.in copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/deepresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/flatresource.txt (100%) copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/some.txt (100%) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 00:05:09 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 00:05:09 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-564-g3ac205f Message-ID: <20170325040509.E6CA8FA3EB@public.kitware.com> 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 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (commit) from 3142808f15b0dabca8a5d66535c3f795ed470bac (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 00:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 00:05:10 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-573-g85994c6 Message-ID: <20170325040511.14854FA3E6@public.kitware.com> 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 6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 (commit) discards 30b22d94f06e8b1760ea2bca570376161fdf95c1 (commit) discards 6f245c20528528f5c848e69ee909a803a59477f0 (commit) via 85994c65a43f0a171e5e52afcb6eef0031a87744 (commit) via 55a5616ac24da31d63744b84f07b531bb7e837f4 (commit) via 239a17c59f75b0c1294009703ddd6dd0f24b644d (commit) via 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (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 (6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3) \ N -- N -- N (85994c65a43f0a171e5e52afcb6eef0031a87744) 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=85994c65a43f0a171e5e52afcb6eef0031a87744 commit 85994c65a43f0a171e5e52afcb6eef0031a87744 Merge: 55a5616 e9fc7ff Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:04:21 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 00:01:43 2017 -0400 Stage topic 'cm-sys-stat' Topic-id: 23273 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/625 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=55a5616ac24da31d63744b84f07b531bb7e837f4 commit 55a5616ac24da31d63744b84f07b531bb7e837f4 Merge: 239a17c ea2a91a Author: Brad King AuthorDate: Fri Mar 24 19:22:04 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 00:01:43 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23265 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/624 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=239a17c59f75b0c1294009703ddd6dd0f24b644d commit 239a17c59f75b0c1294009703ddd6dd0f24b644d Merge: 3ac205f 70d8f0d Author: Brad King AuthorDate: Fri Mar 24 14:41:54 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 00:01:42 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-test-openmp' Topic-id: 23255 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/623 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 09:25:19 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 09:25:19 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-576-g0c98146 Message-ID: <20170325132520.258ACFA52F@public.kitware.com> 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 0c981463d280f73eadf546f9b760d2a8cdfbb4d7 (commit) via 914a4e6c17bdace4a0ab857071ce461a62d4fbef (commit) via 6c09c5d64cad9c7d1c6be414ce918ac2d090b864 (commit) from 85994c65a43f0a171e5e52afcb6eef0031a87744 (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=0c981463d280f73eadf546f9b760d2a8cdfbb4d7 commit 0c981463d280f73eadf546f9b760d2a8cdfbb4d7 Merge: 85994c6 914a4e6 Author: Domen Vrankar AuthorDate: Sat Mar 25 13:17:12 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 09:18:02 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=914a4e6c17bdace4a0ab857071ce461a62d4fbef commit 914a4e6c17bdace4a0ab857071ce461a62d4fbef Author: Domen Vrankar AuthorDate: Fri Mar 24 22:41:02 2017 +0100 Commit: Domen Vrankar CommitDate: Sat Mar 25 11:34:18 2017 +0100 CPack/RPM: support for debuginfo package renaming diff --git a/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst b/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst new file mode 100644 index 0000000..1c6eb2b --- /dev/null +++ b/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst @@ -0,0 +1,5 @@ +cpack-rpm-debuginfo-honor-package-filename +------------------------------------------ + +* The :module:`CPackRPM` module learned to modify debuginfo package name. + See :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index a81719e..6dd3143 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -825,6 +825,30 @@ # is set then :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is automatically set to # ``ON`` when :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` is set. # +# .. variable:: CPACK_RPM_DEBUGINFO_FILE_NAME +# CPACK_RPM__DEBUGINFO_FILE_NAME +# +# Debuginfo package file name. +# +# * Mandatory : NO +# * Default : rpmbuild tool generated package file name +# +# Alternatively provided debuginfo package file name must end with ``.rpm`` +# suffix and should differ from file names of other generated packages. +# +# Variable may contain ``@cpack_rpm_component@`` placeholder which will be +# replaced by component name if component packaging is enabled otherwise it +# deletes the placeholder. +# +# Setting the variable to ``RPM-DEFAULT`` may be used to explicitly set +# filename generation to default. +# +# .. note:: +# +# :variable:`CPACK_RPM_FILE_NAME` also supports rpmbuild tool generated package +# file name - disabled by default but can be enabled by setting the variable to +# ``RPM-DEFAULT``. +# # Packaging of sources (SRPM) # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ # @@ -2653,6 +2677,22 @@ mv %_topdir/tmpBBroot $RPM_BUILD_ROOT list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}") endif() + if(CPACK_RPM_DEBUGINFO_PACKAGE) + cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_FILE_NAME" + "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_FILE_NAME" + "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_FILE_NAME" + "CPACK_RPM_DEBUGINFO_FILE_NAME") + + if(CPACK_RPM_DEBUGINFO_FILE_NAME AND + NOT CPACK_RPM_DEBUGINFO_FILE_NAME STREQUAL "RPM-DEFAULT") + list(APPEND expected_filenames_ + "${CPACK_RPM_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}.*\\.rpm") + string(REPLACE "@cpack_rpm_component@" "${CPACK_RPM_PACKAGE_COMPONENT}" + CPACK_RPM_DEBUGINFO_FILE_NAME "${CPACK_RPM_DEBUGINFO_FILE_NAME}") + list(APPEND filenames_ "${CPACK_RPM_DEBUGINFO_FILE_NAME}") + endif() + endif() + # check if other files have to be renamed file(GLOB rename_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.rpm_name") if(rename_files_) diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake index 2948a1b..3d8de74 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake @@ -14,6 +14,5 @@ set(EXPECTED_FILE_CONTENT_3_LIST "/usr;/usr/bas;/usr/bas/libtest_lib.so") set(EXPECTED_FILE_4_NAME "Debuginfo") set(EXPECTED_FILE_4_COMPONENT "applications-debuginfo") set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*") -set(EXPECTED_FILE_5_NAME "Debuginfo") -set(EXPECTED_FILE_5_COMPONENT "libs-debuginfo") +set(EXPECTED_FILE_5 "libs-DebugInfoPackage.rpm") set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*") diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake index cfae259..83931fa 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake @@ -32,4 +32,9 @@ set(CPACK_RPM_PACKAGE_NAME "Debuginfo") set(CPACK_PACKAGE_FILE_NAME "TestDinfo-pkg") set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON) +# test debuginfo package rename +set(CPACK_RPM_DEBUGINFO_FILE_NAME + "@cpack_rpm_component at -DebugInfoPackage.rpm") +set(CPACK_RPM_APPLICATIONS_DEBUGINFO_FILE_NAME "RPM-DEFAULT") + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/src") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6c09c5d64cad9c7d1c6be414ce918ac2d090b864 commit 6c09c5d64cad9c7d1c6be414ce918ac2d090b864 Author: Domen Vrankar AuthorDate: Thu Mar 23 23:36:47 2017 +0100 Commit: Domen Vrankar CommitDate: Fri Mar 24 19:52:02 2017 +0100 CPack/RPM honor package file name on debuginfo enabled Packages with debuginfo enabled should still honor defined package file name if file name is not set to RPM-DEFAULT. Fixes #16715 diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 2e69195..a81719e 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -2648,8 +2648,8 @@ mv %_topdir/tmpBBroot $RPM_BUILD_ROOT unset(expected_filenames_) unset(filenames_) if(CPACK_RPM_DEBUGINFO_PACKAGE AND NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT") - string(TOLOWER "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm" efn_) - list(APPEND expected_filenames_ "${efn_}") + list(APPEND expected_filenames_ + "${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm") list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}") endif() diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake index 06e56d3..2948a1b 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake @@ -3,14 +3,17 @@ set(whitespaces_ "[\t\n\r ]*") set(EXPECTED_FILES_COUNT "5") set(EXPECTED_FILES_NAME_GENERATOR_SPECIFIC_FORMAT TRUE) +set(EXPECTED_FILE_1_NAME "Debuginfo") set(EXPECTED_FILE_1_COMPONENT "applications") set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/foo;/usr/foo/test_prog") -set(EXPECTED_FILE_2 "debuginfo*-headers.rpm") +set(EXPECTED_FILE_2 "TestDinfo-pkg*-headers.rpm") set(EXPECTED_FILE_CONTENT_2_LIST "/usr;/usr/bar;/usr/bar/CMakeLists.txt") -set(EXPECTED_FILE_3 "debuginfo*-libs.rpm") +set(EXPECTED_FILE_3 "TestDinfo-pkg*-libs.rpm") set(EXPECTED_FILE_CONTENT_3_LIST "/usr;/usr/bas;/usr/bas/libtest_lib.so") +set(EXPECTED_FILE_4_NAME "Debuginfo") set(EXPECTED_FILE_4_COMPONENT "applications-debuginfo") set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*") +set(EXPECTED_FILE_5_NAME "Debuginfo") set(EXPECTED_FILE_5_COMPONENT "libs-debuginfo") set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*") diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake index 0642d83..cfae259 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake @@ -25,6 +25,11 @@ install(TARGETS test_lib DESTINATION bas COMPONENT libs) set(CPACK_RPM_APPLICATIONS_FILE_NAME "RPM-DEFAULT") set(CPACK_RPM_APPLICATIONS_DEBUGINFO_PACKAGE ON) + +# test that components with debuginfo enabled still honor +# CPACK_PACKAGE_FILE_NAME setting +set(CPACK_RPM_PACKAGE_NAME "Debuginfo") +set(CPACK_PACKAGE_FILE_NAME "TestDinfo-pkg") set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON) set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/src") ----------------------------------------------------------------------- Summary of changes: .../cpack-rpm-debuginfo-honor-package-filename.rst | 5 +++ Modules/CPackRPM.cmake | 44 +++++++++++++++++++- .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 8 ++-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 10 +++++ 4 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 10:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 10:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-576-g6d6df43 Message-ID: <20170325143502.8D647FA65E@public.kitware.com> 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 0c981463d280f73eadf546f9b760d2a8cdfbb4d7 (commit) discards 914a4e6c17bdace4a0ab857071ce461a62d4fbef (commit) via 6d6df438eaa5f0e21591142ba23681661968daf8 (commit) via f237f5f851df64e009f97304e6569f7e259d44e6 (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 (0c981463d280f73eadf546f9b760d2a8cdfbb4d7) \ N -- N -- N (6d6df438eaa5f0e21591142ba23681661968daf8) 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=6d6df438eaa5f0e21591142ba23681661968daf8 commit 6d6df438eaa5f0e21591142ba23681661968daf8 Merge: 85994c6 f237f5f Author: Domen Vrankar AuthorDate: Sat Mar 25 14:26:35 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 10:26:38 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f237f5f851df64e009f97304e6569f7e259d44e6 commit f237f5f851df64e009f97304e6569f7e259d44e6 Author: Domen Vrankar AuthorDate: Fri Mar 24 22:41:02 2017 +0100 Commit: Domen Vrankar CommitDate: Sat Mar 25 15:25:55 2017 +0100 CPack/RPM: support for debuginfo package renaming diff --git a/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst b/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst new file mode 100644 index 0000000..1c6eb2b --- /dev/null +++ b/Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst @@ -0,0 +1,5 @@ +cpack-rpm-debuginfo-honor-package-filename +------------------------------------------ + +* The :module:`CPackRPM` module learned to modify debuginfo package name. + See :variable:`CPACK_RPM_DEBUGINFO_FILE_NAME` variable. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index a81719e..2137133 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -825,6 +825,30 @@ # is set then :variable:`CPACK_RPM_DEBUGINFO_PACKAGE` is automatically set to # ``ON`` when :variable:`CPACK_RPM_DEBUGINFO_SINGLE_PACKAGE` is set. # +# .. variable:: CPACK_RPM_DEBUGINFO_FILE_NAME +# CPACK_RPM__DEBUGINFO_FILE_NAME +# +# Debuginfo package file name. +# +# * Mandatory : NO +# * Default : rpmbuild tool generated package file name +# +# Alternatively provided debuginfo package file name must end with ``.rpm`` +# suffix and should differ from file names of other generated packages. +# +# Variable may contain ``@cpack_component@`` placeholder which will be +# replaced by component name if component packaging is enabled otherwise it +# deletes the placeholder. +# +# Setting the variable to ``RPM-DEFAULT`` may be used to explicitly set +# filename generation to default. +# +# .. note:: +# +# :variable:`CPACK_RPM_FILE_NAME` also supports rpmbuild tool generated package +# file name - disabled by default but can be enabled by setting the variable to +# ``RPM-DEFAULT``. +# # Packaging of sources (SRPM) # ^^^^^^^^^^^^^^^^^^^^^^^^^^^ # @@ -2653,6 +2677,22 @@ mv %_topdir/tmpBBroot $RPM_BUILD_ROOT list(APPEND filenames_ "${CPACK_RPM_FILE_NAME}") endif() + if(CPACK_RPM_DEBUGINFO_PACKAGE) + cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_FILE_NAME" + "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_FILE_NAME" + "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_FILE_NAME" + "CPACK_RPM_DEBUGINFO_FILE_NAME") + + if(CPACK_RPM_DEBUGINFO_FILE_NAME AND + NOT CPACK_RPM_DEBUGINFO_FILE_NAME STREQUAL "RPM-DEFAULT") + list(APPEND expected_filenames_ + "${CPACK_RPM_PACKAGE_NAME}-debuginfo-${CPACK_PACKAGE_VERSION}.*\\.rpm") + string(REPLACE "@cpack_component@" "${CPACK_RPM_PACKAGE_COMPONENT}" + CPACK_RPM_DEBUGINFO_FILE_NAME "${CPACK_RPM_DEBUGINFO_FILE_NAME}") + list(APPEND filenames_ "${CPACK_RPM_DEBUGINFO_FILE_NAME}") + endif() + endif() + # check if other files have to be renamed file(GLOB rename_files_ "${CPACK_RPM_DIRECTORY}/SPECS/*.rpm_name") if(rename_files_) diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake index 2948a1b..3d8de74 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/ExpectedFiles.cmake @@ -14,6 +14,5 @@ set(EXPECTED_FILE_CONTENT_3_LIST "/usr;/usr/bas;/usr/bas/libtest_lib.so") set(EXPECTED_FILE_4_NAME "Debuginfo") set(EXPECTED_FILE_4_COMPONENT "applications-debuginfo") set(EXPECTED_FILE_CONTENT_4 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/main.cpp.*") -set(EXPECTED_FILE_5_NAME "Debuginfo") -set(EXPECTED_FILE_5_COMPONENT "libs-debuginfo") +set(EXPECTED_FILE_5 "libs-DebugInfoPackage.rpm") set(EXPECTED_FILE_CONTENT_5 ".*/src${whitespaces_}/src/src_1${whitespaces_}/src/src_1/test_lib.cpp.*") diff --git a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake index cfae259..f1b6738 100644 --- a/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake +++ b/Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake @@ -32,4 +32,9 @@ set(CPACK_RPM_PACKAGE_NAME "Debuginfo") set(CPACK_PACKAGE_FILE_NAME "TestDinfo-pkg") set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON) +# test debuginfo package rename +set(CPACK_RPM_DEBUGINFO_FILE_NAME + "@cpack_component at -DebugInfoPackage.rpm") +set(CPACK_RPM_APPLICATIONS_DEBUGINFO_FILE_NAME "RPM-DEFAULT") + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/src") ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 4 ++-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 15:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 15:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-578-ga209a3b Message-ID: <20170325193503.57E43FA56D@public.kitware.com> 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 a209a3bce2e8bc3100a3de2b36349996fc18adb6 (commit) via 58d6061cd5c42a52184acf0dd97a9f78f5e89fae (commit) from 6d6df438eaa5f0e21591142ba23681661968daf8 (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=a209a3bce2e8bc3100a3de2b36349996fc18adb6 commit a209a3bce2e8bc3100a3de2b36349996fc18adb6 Merge: 6d6df43 58d6061 Author: Domen Vrankar AuthorDate: Sat Mar 25 19:28:21 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 15:28:27 2017 -0400 Stage topic 'cpack-rpm-tests-handle-build-id-links' Topic-id: 23282 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/628 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=58d6061cd5c42a52184acf0dd97a9f78f5e89fae commit 58d6061cd5c42a52184acf0dd97a9f78f5e89fae Author: Domen Vrankar AuthorDate: Sat Mar 25 19:13:08 2017 +0100 Commit: Domen Vrankar CommitDate: Sat Mar 25 19:13:08 2017 +0100 CPack/RPM tests: handle build-id links Build id links generation was introduced in rpm 4.13.0.1 so files related to them should be ignored as they are not relevant for the tests. Fixes #16710 diff --git a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake index fc90d09..a5b38fd 100644 --- a/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake +++ b/Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake @@ -205,14 +205,14 @@ if(CPackGen MATCHES "RPM") /usr/foo/bar/non_relocatable/depth_two /usr/foo/bar/non_relocatable/depth_two/symlink_from_non_relocatable_path /usr/foo/bar/other_relocatable -/usr/foo/bar/other_relocatable/depth_two$") +/usr/foo/bar/other_relocatable/depth_two(\n.*\.build-id.*)*$") elseif(check_file_headers_match) set(check_file_match_expected_summary ".*${CPACK_RPM_HEADERS_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*${CPACK_RPM_HEADERS_PACKAGE_DESCRIPTION}.*") set(check_file_match_expected_relocation_path "Relocations${whitespaces}:${whitespaces}${CPACK_PACKAGING_INSTALL_PREFIX}${whitespaces}${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") set(check_file_match_expected_architecture "noarch") set(spec_regex "*headers*") - set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/include\n/usr/foo/bar/include/mylib.h$") + set(check_content_list "^/usr/foo/bar\n/usr/foo/bar/include\n/usr/foo/bar/include/mylib.h(\n.*\.build-id.*)*$") elseif(check_file_applications_match) set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*${CPACK_COMPONENT_APPLICATIONS_DESCRIPTION}.*") @@ -221,7 +221,7 @@ if(CPackGen MATCHES "RPM") set(spec_regex "*applications*") set(check_content_list "^/usr/foo/bar /usr/foo/bar/bin -/usr/foo/bar/bin/mylibapp$") +/usr/foo/bar/bin/mylibapp(\n.*\.build-id.*)*$") elseif(check_file_Unspecified_match) set(check_file_match_expected_summary ".*${CPACK_RPM_PACKAGE_SUMMARY}.*") set(check_file_match_expected_description ".*DESCRIPTION.*") @@ -241,7 +241,7 @@ if(CPackGen MATCHES "RPM") /usr/foo/bar/share/man/mylib/man3 /usr/foo/bar/share/man/mylib/man3/mylib.1 /usr/foo/bar/share/man/mylib/man3/mylib.1/mylib -/usr/foo/bar/share/man/mylib/man3/mylib.1/mylib2$") +/usr/foo/bar/share/man/mylib/man3/mylib.1/mylib2(\n.*\.build-id.*)*$") else() message(FATAL_ERROR "error: unexpected rpm package '${check_file}'") endif() diff --git a/Tests/RunCMake/CPack/RPM/Helpers.cmake b/Tests/RunCMake/CPack/RPM/Helpers.cmake index bbc358c8..d8012b1 100644 --- a/Tests/RunCMake/CPack/RPM/Helpers.cmake +++ b/Tests/RunCMake/CPack/RPM/Helpers.cmake @@ -36,6 +36,10 @@ function(getPackageContentList FILE RESULT_VAR) OUTPUT_STRIP_TRAILING_WHITESPACE) string(REGEX REPLACE "\n" ";" package_content_ "${package_content_}") + # never versions of rpmbuild (introduced in rpm 4.13.0.1) add build_id links + # to packages - tests should ignore them + list(FILTER package_content_ EXCLUDE REGEX ".*\.build-id.*") + set(${RESULT_VAR} "${package_content_}" PARENT_SCOPE) endfunction() diff --git a/Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake b/Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake index bc54d79..73d7481 100644 --- a/Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake +++ b/Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake @@ -21,7 +21,9 @@ execute_process(COMMAND ${RPMBUILD_EXECUTABLE} --define "_topdir ${CMAKE_CURRENT set(output_error_message_ "\n${RPMBUILD_EXECUTABLE} error: '${error_}';\nresult: '${result_}';\n${output_error_message}") -set(EXPECTED_FILE_CONTENT_ "^/foo${whitespaces_}/foo/test_prog$") +# expected file content are test_prog and optional build-id links that are +# generated by rpmbuild (introduced in rpm 4.13.0.1) +set(EXPECTED_FILE_CONTENT_ "^/foo${whitespaces_}/foo/test_prog(${whitespaces_}.*\.build-id.*)*$") file(GLOB_RECURSE FOUND_FILE_ RELATIVE "${CMAKE_CURRENT_BINARY_DIR}/test_rpm/RPMS" "${CMAKE_CURRENT_BINARY_DIR}/test_rpm/RPMS/*.rpm") list(APPEND foundFiles_ "${FOUND_FILE_}") ----------------------------------------------------------------------- Summary of changes: Tests/CPackComponentsForAll/RunCPackVerifyResult.cmake | 8 ++++---- Tests/RunCMake/CPack/RPM/Helpers.cmake | 4 ++++ Tests/RunCMake/CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake | 4 +++- 3 files changed, 11 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 20:15:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 20:15:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-580-ge18fda6 Message-ID: <20170326001506.E2992E78B0@public.kitware.com> 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 e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b (commit) via 052704682a0173d33ecd285e4b1145daef1f91ab (commit) from a209a3bce2e8bc3100a3de2b36349996fc18adb6 (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=e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b commit e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b Merge: a209a3b 0527046 Author: Domen Vrankar AuthorDate: Sun Mar 26 00:08:35 2017 +0000 Commit: Kitware Robot CommitDate: Sat Mar 25 20:08:38 2017 -0400 Stage topic 'cpack-rpm-debuginfo-docs-cleanup' Topic-id: 23284 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/630 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=052704682a0173d33ecd285e4b1145daef1f91ab commit 052704682a0173d33ecd285e4b1145daef1f91ab Author: Domen Vrankar AuthorDate: Sun Mar 26 01:05:49 2017 +0100 Commit: Domen Vrankar CommitDate: Sun Mar 26 01:05:49 2017 +0100 CPack/RPM can now generate a single debuginfo package CMake 3.8 introduced possibility of generating a single debuginfo package even if component packaging is enabled so this note no longer applies. diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 95263ed..3766a3d 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -721,14 +721,6 @@ # Debuginfo packages contain debug symbols and sources for debugging packaged # binaries. # -# .. note:: -# -# Currently multiple debuginfo packages are generated if component based -# packaging is used - one debuginfo package per component. This duplicates -# sources if multiple binaries are using them. This is a side effect of -# how CPackRPM currently generates component packages and will be addressed -# in later versions of the generator. -# # Debuginfo RPM packaging has it's own set of variables: # # .. variable:: CPACK_RPM_DEBUGINFO_PACKAGE ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 8 -------- 1 file changed, 8 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-580-ge18fda6 Message-ID: <20170326010513.C7D01FA73E@public.kitware.com> 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, nightly has been updated discards 6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3 (commit) discards 30b22d94f06e8b1760ea2bca570376161fdf95c1 (commit) discards 6f245c20528528f5c848e69ee909a803a59477f0 (commit) via e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b (commit) via 052704682a0173d33ecd285e4b1145daef1f91ab (commit) via a209a3bce2e8bc3100a3de2b36349996fc18adb6 (commit) via 58d6061cd5c42a52184acf0dd97a9f78f5e89fae (commit) via 6d6df438eaa5f0e21591142ba23681661968daf8 (commit) via f237f5f851df64e009f97304e6569f7e259d44e6 (commit) via 85994c65a43f0a171e5e52afcb6eef0031a87744 (commit) via 55a5616ac24da31d63744b84f07b531bb7e837f4 (commit) via 239a17c59f75b0c1294009703ddd6dd0f24b644d (commit) via 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (commit) via 6c09c5d64cad9c7d1c6be414ce918ac2d090b864 (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 (6d5ad4da359624a3ee5fa5dfcc3c19879f90efc3) \ N -- N -- N (e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: .../cpack-rpm-debuginfo-honor-package-filename.rst | 5 ++ Modules/CPackRPM.cmake | 52 ++++++++++++++++---- Source/CMakeVersion.cmake | 2 +- .../RunCPackVerifyResult.cmake | 8 +-- Tests/RunCMake/CPack/RPM/Helpers.cmake | 4 ++ .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 8 +-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 10 ++++ .../CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake | 4 +- 8 files changed, 74 insertions(+), 19 deletions(-) create mode 100644 Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst hooks/post-receive -- CMake From kwrobot at kitware.com Sat Mar 25 21:05:13 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sat, 25 Mar 2017 21:05:13 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-564-g3ac205f Message-ID: <20170326010525.244CEFA73A@public.kitware.com> 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, nightly-master has been updated via 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (commit) from 3142808f15b0dabca8a5d66535c3f795ed470bac (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 26 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 26 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-565-gd6ef21c Message-ID: <20170326040505.1A9D1FA71F@public.kitware.com> 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 d6ef21cf702793b8c1ca74e1243c357e651b6adf (commit) from 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 26 00:05:14 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 26 Mar 2017 00:05:14 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-581-g5319e9c Message-ID: <20170326040514.2795AFA71F@public.kitware.com> 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 e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b (commit) discards a209a3bce2e8bc3100a3de2b36349996fc18adb6 (commit) discards 6d6df438eaa5f0e21591142ba23681661968daf8 (commit) discards 85994c65a43f0a171e5e52afcb6eef0031a87744 (commit) discards 55a5616ac24da31d63744b84f07b531bb7e837f4 (commit) discards 239a17c59f75b0c1294009703ddd6dd0f24b644d (commit) via 5319e9c2e6631549e9dbe284237e179110082e6c (commit) via d6eab9516fda3e50c14abe942e014a8a564f7697 (commit) via 95e1bd59d86542f2e73b5f3266e10730e766ca9a (commit) via fd61926921afe2920aee3e5a17fc66e5383bf010 (commit) via ed09bd8bad52401ad899a2f3994ef2bbccb738b8 (commit) via 57fa214f883c593f79ef4573b7fad716d3578416 (commit) via d6ef21cf702793b8c1ca74e1243c357e651b6adf (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 (e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b) \ N -- N -- N (5319e9c2e6631549e9dbe284237e179110082e6c) 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=5319e9c2e6631549e9dbe284237e179110082e6c commit 5319e9c2e6631549e9dbe284237e179110082e6c Merge: d6eab95 0527046 Author: Domen Vrankar AuthorDate: Sun Mar 26 00:08:35 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:20 2017 -0400 Stage topic 'cpack-rpm-debuginfo-docs-cleanup' Topic-id: 23284 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/630 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d6eab9516fda3e50c14abe942e014a8a564f7697 commit d6eab9516fda3e50c14abe942e014a8a564f7697 Merge: 95e1bd5 58d6061 Author: Domen Vrankar AuthorDate: Sat Mar 25 19:28:21 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:20 2017 -0400 Stage topic 'cpack-rpm-tests-handle-build-id-links' Topic-id: 23282 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/628 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=95e1bd59d86542f2e73b5f3266e10730e766ca9a commit 95e1bd59d86542f2e73b5f3266e10730e766ca9a Merge: fd61926 f237f5f Author: Domen Vrankar AuthorDate: Sat Mar 25 14:26:35 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:20 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fd61926921afe2920aee3e5a17fc66e5383bf010 commit fd61926921afe2920aee3e5a17fc66e5383bf010 Merge: ed09bd8 e9fc7ff Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:04:21 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:19 2017 -0400 Stage topic 'cm-sys-stat' Topic-id: 23273 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/625 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ed09bd8bad52401ad899a2f3994ef2bbccb738b8 commit ed09bd8bad52401ad899a2f3994ef2bbccb738b8 Merge: 57fa214 ea2a91a Author: Brad King AuthorDate: Fri Mar 24 19:22:04 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:19 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23265 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/624 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=57fa214f883c593f79ef4573b7fad716d3578416 commit 57fa214f883c593f79ef4573b7fad716d3578416 Merge: d6ef21c 70d8f0d Author: Brad King AuthorDate: Fri Mar 24 14:41:54 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 00:01:19 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-test-openmp' Topic-id: 23255 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/623 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 26 18:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 26 Mar 2017 18:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-583-gec5a687 Message-ID: <20170326220503.DFC67FA472@public.kitware.com> 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 ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b (commit) via c6653ec59f510af6ab550065e127e45cf2f4a457 (commit) from 5319e9c2e6631549e9dbe284237e179110082e6c (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=ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b commit ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b Merge: 5319e9c c6653ec Author: Domen Vrankar AuthorDate: Sun Mar 26 21:56:38 2017 +0000 Commit: Kitware Robot CommitDate: Sun Mar 26 17:56:41 2017 -0400 Stage topic 'cpack-rpm-use-current-cmake-policies' Topic-id: 23288 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/631 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c6653ec59f510af6ab550065e127e45cf2f4a457 commit c6653ec59f510af6ab550065e127e45cf2f4a457 Author: Domen Vrankar AuthorDate: Sat Mar 25 21:01:59 2017 +0100 Commit: Domen Vrankar CommitDate: Sun Mar 26 23:55:15 2017 +0200 CPack/RPM: always use current CMake version policies diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index 95263ed..c0f432d 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -898,6 +898,8 @@ # Author: Eric Noulard with the help of Alexander Neundorf. +cmake_policy(VERSION "${CMAKE_VERSION}") + function(get_unix_permissions_octal_notation PERMISSIONS_VAR RETURN_VAR) set(PERMISSIONS ${${PERMISSIONS_VAR}}) list(LENGTH PERMISSIONS PERM_LEN_PRE) @@ -979,12 +981,7 @@ function(cpack_rpm_prepare_relocation_paths) endforeach() # warn about all the paths that are not relocatable - cmake_policy(PUSH) - # Tell file(GLOB_RECURSE) not to follow directory symlinks - # even if the project does not set this policy to NEW. - cmake_policy(SET CMP0009 NEW) - file(GLOB_RECURSE FILE_PATHS_ "${WDIR}/*") - cmake_policy(POP) + file(GLOB_RECURSE FILE_PATHS_ "${WDIR}/*") foreach(TMP_PATH ${FILE_PATHS_}) string(LENGTH "${WDIR}" WDIR_LEN) string(SUBSTRING "${TMP_PATH}" ${WDIR_LEN} -1 TMP_PATH) @@ -1011,10 +1008,7 @@ endfunction() function(cpack_rpm_prepare_content_list) # get files list - cmake_policy(PUSH) - cmake_policy(SET CMP0009 NEW) - file(GLOB_RECURSE CPACK_RPM_INSTALL_FILES LIST_DIRECTORIES true RELATIVE "${WDIR}" "${WDIR}/*") - cmake_policy(POP) + file(GLOB_RECURSE CPACK_RPM_INSTALL_FILES LIST_DIRECTORIES true RELATIVE "${WDIR}" "${WDIR}/*") set(CPACK_RPM_INSTALL_FILES "/${CPACK_RPM_INSTALL_FILES}") string(REPLACE ";" ";/" CPACK_RPM_INSTALL_FILES "${CPACK_RPM_INSTALL_FILES}") @@ -1033,10 +1027,7 @@ function(cpack_rpm_prepare_content_list) set(_DISTINCT_PATH "${_RPM_RELOCATION_PREFIX}") string(REPLACE "/" ";" _CPACK_RPM_PACKAGE_PREFIX_ELEMS " ${_RPM_RELOCATION_PREFIX}") - cmake_policy(PUSH) - cmake_policy(SET CMP0007 NEW) - list(REMOVE_AT _CPACK_RPM_PACKAGE_PREFIX_ELEMS -1) - cmake_policy(POP) + list(REMOVE_AT _CPACK_RPM_PACKAGE_PREFIX_ELEMS -1) unset(_TMP_LIST) # Now generate all of the parent dirs of the relocation path foreach(_PREFIX_PATH_ELEM ${_CPACK_RPM_PACKAGE_PREFIX_ELEMS}) @@ -1878,19 +1869,15 @@ function(cpack_rpm_generate_package) endif() if(DEFINED CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}) - cmake_policy(PUSH) - cmake_policy(SET CMP0057 NEW) - # Prefix can be replaced by Prefixes but the old version stil works so we'll ignore it for now - # Requires* is a special case because it gets transformed to Requires(pre/post/preun/postun) - # Auto* is a special case because the tags can not be queried by querytags rpmbuild flag - set(special_case_tags_ PREFIX REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN AUTOPROV AUTOREQ AUTOREQPROV) - if(NOT _RPM_SPEC_HEADER IN_LIST RPMBUILD_TAG_LIST AND NOT _RPM_SPEC_HEADER IN_LIST special_case_tags_) - cmake_policy(POP) - message(AUTHOR_WARNING "CPackRPM:Warning: ${_RPM_SPEC_HEADER} not " - "supported in provided rpmbuild. Tag will not be used.") - continue() - endif() - cmake_policy(POP) + # Prefix can be replaced by Prefixes but the old version stil works so we'll ignore it for now + # Requires* is a special case because it gets transformed to Requires(pre/post/preun/postun) + # Auto* is a special case because the tags can not be queried by querytags rpmbuild flag + set(special_case_tags_ PREFIX REQUIRES_PRE REQUIRES_POST REQUIRES_PREUN REQUIRES_POSTUN AUTOPROV AUTOREQ AUTOREQPROV) + if(NOT _RPM_SPEC_HEADER IN_LIST RPMBUILD_TAG_LIST AND NOT _RPM_SPEC_HEADER IN_LIST special_case_tags_) + message(AUTHOR_WARNING "CPackRPM:Warning: ${_RPM_SPEC_HEADER} not " + "supported in provided rpmbuild. Tag will not be used.") + continue() + endif() if(CPACK_RPM_PACKAGE_DEBUG) message("CPackRPM:Debug: using CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}") @@ -2182,12 +2169,9 @@ function(cpack_rpm_generate_package) continue() endif() - cmake_policy(PUSH) - cmake_policy(SET CMP0009 NEW) - file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES false RELATIVE - "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}" - "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/*") - cmake_policy(POP) + file(GLOB_RECURSE files_for_move_ LIST_DIRECTORIES false RELATIVE + "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}" + "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}/${component_}/*") foreach(f_ IN LISTS files_for_move_) get_filename_component(dir_path_ "${f_}" DIRECTORY) @@ -2319,13 +2303,9 @@ ${TMP_DEBUGINFO_ADDITIONAL_SOURCES} "CPACK_RPM_FILE_NAME") if(NOT CPACK_RPM_FILE_NAME STREQUAL "RPM-DEFAULT") if(CPACK_RPM_FILE_NAME) - cmake_policy(PUSH) - cmake_policy(SET CMP0010 NEW) - if(NOT CPACK_RPM_FILE_NAME MATCHES ".*\\.rpm") - cmake_policy(POP) - message(FATAL_ERROR "'${CPACK_RPM_FILE_NAME}' is not a valid RPM package file name as it must end with '.rpm'!") - endif() - cmake_policy(POP) + if(NOT CPACK_RPM_FILE_NAME MATCHES ".*\\.rpm") + message(FATAL_ERROR "'${CPACK_RPM_FILE_NAME}' is not a valid RPM package file name as it must end with '.rpm'!") + endif() else() # old file name format for back compatibility string(TOUPPER "${CPACK_RPM_MAIN_COMPONENT}" @@ -2633,13 +2613,8 @@ mv %_topdir/tmpBBroot $RPM_BUILD_ROOT endif() # find generated rpm files and take their names - cmake_policy(PUSH) - # Tell file(GLOB_RECURSE) not to follow directory symlinks - # even if the project does not set this policy to NEW. - cmake_policy(SET CMP0009 NEW) - file(GLOB_RECURSE GENERATED_FILES "${CPACK_RPM_DIRECTORY}/RPMS/*.rpm" - "${CPACK_RPM_DIRECTORY}/SRPMS/*.rpm") - cmake_policy(POP) + file(GLOB_RECURSE GENERATED_FILES "${CPACK_RPM_DIRECTORY}/RPMS/*.rpm" + "${CPACK_RPM_DIRECTORY}/SRPMS/*.rpm") if(NOT GENERATED_FILES) message(FATAL_ERROR "RPM package was not generated! ${CPACK_RPM_DIRECTORY}") ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 69 +++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 47 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 26 21:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 26 Mar 2017 21:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-583-gec5a687 Message-ID: <20170327010505.71222FA6D9@public.kitware.com> 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, nightly has been updated discards e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b (commit) discards a209a3bce2e8bc3100a3de2b36349996fc18adb6 (commit) discards 6d6df438eaa5f0e21591142ba23681661968daf8 (commit) discards 85994c65a43f0a171e5e52afcb6eef0031a87744 (commit) discards 55a5616ac24da31d63744b84f07b531bb7e837f4 (commit) discards 239a17c59f75b0c1294009703ddd6dd0f24b644d (commit) via ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b (commit) via c6653ec59f510af6ab550065e127e45cf2f4a457 (commit) via 5319e9c2e6631549e9dbe284237e179110082e6c (commit) via d6eab9516fda3e50c14abe942e014a8a564f7697 (commit) via 95e1bd59d86542f2e73b5f3266e10730e766ca9a (commit) via fd61926921afe2920aee3e5a17fc66e5383bf010 (commit) via ed09bd8bad52401ad899a2f3994ef2bbccb738b8 (commit) via 57fa214f883c593f79ef4573b7fad716d3578416 (commit) via d6ef21cf702793b8c1ca74e1243c357e651b6adf (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 (e18fda65ab5b5b56c87b89f7c2ba9fc879d87d7b) \ N -- N -- N (ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 69 +++++++++++++++------------------------------ Source/CMakeVersion.cmake | 2 +- 2 files changed, 23 insertions(+), 48 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Sun Mar 26 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Sun, 26 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-565-gd6ef21c Message-ID: <20170327010505.F3825FA6D7@public.kitware.com> 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, nightly-master has been updated via d6ef21cf702793b8c1ca74e1243c357e651b6adf (commit) from 3ac205f7dcbb0e0b0aa058cc9b8d84f0318d02d5 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-566-gdeec891 Message-ID: <20170327040504.5A021FA5A8@public.kitware.com> 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 deec8919ba8e2a0f469346a4a47300e618f6e83c (commit) from d6ef21cf702793b8c1ca74e1243c357e651b6adf (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 00:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 00:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-584-gd46bcf6 Message-ID: <20170327040504.A9B28FA5E7@public.kitware.com> 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 ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b (commit) discards 5319e9c2e6631549e9dbe284237e179110082e6c (commit) discards d6eab9516fda3e50c14abe942e014a8a564f7697 (commit) discards 95e1bd59d86542f2e73b5f3266e10730e766ca9a (commit) discards fd61926921afe2920aee3e5a17fc66e5383bf010 (commit) discards ed09bd8bad52401ad899a2f3994ef2bbccb738b8 (commit) discards 57fa214f883c593f79ef4573b7fad716d3578416 (commit) via d46bcf677806ecc9e7116bd88b3f51954e301e8e (commit) via 839bfaa1b72a3e1482afe27cba8d3d8ea22038ec (commit) via 7c60cc5daae2dbecfe8ddb02142c1fe08935b161 (commit) via 2d6cff418688284b9936e121db5b1d5292e7c0fc (commit) via e0ad6d2d1e872e1c4aecdf0e4e1c16b9cca4c6c2 (commit) via 2bb4956dbfc4408bbc1b1e993a81356d0fd90050 (commit) via 02d721316224bbb9029d6d76956b7824990091a3 (commit) via deec8919ba8e2a0f469346a4a47300e618f6e83c (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 (ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b) \ N -- N -- N (d46bcf677806ecc9e7116bd88b3f51954e301e8e) 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=d46bcf677806ecc9e7116bd88b3f51954e301e8e commit d46bcf677806ecc9e7116bd88b3f51954e301e8e Merge: 839bfaa c6653ec Author: Domen Vrankar AuthorDate: Sun Mar 26 21:56:38 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:28 2017 -0400 Stage topic 'cpack-rpm-use-current-cmake-policies' Topic-id: 23288 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/631 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=839bfaa1b72a3e1482afe27cba8d3d8ea22038ec commit 839bfaa1b72a3e1482afe27cba8d3d8ea22038ec Merge: 7c60cc5 0527046 Author: Domen Vrankar AuthorDate: Sun Mar 26 00:08:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:28 2017 -0400 Stage topic 'cpack-rpm-debuginfo-docs-cleanup' Topic-id: 23284 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/630 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7c60cc5daae2dbecfe8ddb02142c1fe08935b161 commit 7c60cc5daae2dbecfe8ddb02142c1fe08935b161 Merge: 2d6cff4 58d6061 Author: Domen Vrankar AuthorDate: Sat Mar 25 19:28:21 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:28 2017 -0400 Stage topic 'cpack-rpm-tests-handle-build-id-links' Topic-id: 23282 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/628 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2d6cff418688284b9936e121db5b1d5292e7c0fc commit 2d6cff418688284b9936e121db5b1d5292e7c0fc Merge: e0ad6d2 f237f5f Author: Domen Vrankar AuthorDate: Sat Mar 25 14:26:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:27 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e0ad6d2d1e872e1c4aecdf0e4e1c16b9cca4c6c2 commit e0ad6d2d1e872e1c4aecdf0e4e1c16b9cca4c6c2 Merge: 2bb4956 e9fc7ff Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:04:21 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:26 2017 -0400 Stage topic 'cm-sys-stat' Topic-id: 23273 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/625 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2bb4956dbfc4408bbc1b1e993a81356d0fd90050 commit 2bb4956dbfc4408bbc1b1e993a81356d0fd90050 Merge: 02d7213 ea2a91a Author: Brad King AuthorDate: Fri Mar 24 19:22:04 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:26 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23265 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/624 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=02d721316224bbb9029d6d76956b7824990091a3 commit 02d721316224bbb9029d6d76956b7824990091a3 Merge: deec891 70d8f0d Author: Brad King AuthorDate: Fri Mar 24 14:41:54 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 00:01:26 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-test-openmp' Topic-id: 23255 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/623 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 09:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 09:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-575-gba37985 Message-ID: <20170327130504.854F0FA675@public.kitware.com> 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 ba3798555d7e018ddd384f6990645a8407893f54 (commit) via 0ff8f127fbbc6bd1fac84bd6f5118ad1efd0e786 (commit) via bb27f72d676f0e24c97891a9fd4c0ade9b2140f9 (commit) via 1e0fc685010d4b6c656c501908f812bf000251ed (commit) via ea2a91a43279616a602b641d827e07912ac9c0b9 (commit) via fda80fde76c230dda8372bf9d7208520c40f3611 (commit) via 64490637840b05da7f0829aa52cae7f3923b805e (commit) via f1a5583901e051ef4627bf8be08565c4b331e99a (commit) via 70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 (commit) from deec8919ba8e2a0f469346a4a47300e618f6e83c (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 8 -------- Source/kwsys/.gitattributes | 19 +++++++++++-------- Source/kwsys/ConsoleBuf.hxx.in | 3 +-- Source/kwsys/Encoding.hxx.in | 2 +- Source/kwsys/FStream.hxx.in | 2 +- Tests/SimpleInstall/CMakeLists.txt | 1 + Utilities/Scripts/update-kwsys.bash | 1 + Utilities/Scripts/update-third-party.bash | 8 ++++++++ 8 files changed, 24 insertions(+), 20 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 09:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 09:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-584-g7f81bb1 Message-ID: <20170327130504.B5341FA67F@public.kitware.com> 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 d46bcf677806ecc9e7116bd88b3f51954e301e8e (commit) discards 839bfaa1b72a3e1482afe27cba8d3d8ea22038ec (commit) discards 7c60cc5daae2dbecfe8ddb02142c1fe08935b161 (commit) discards 2d6cff418688284b9936e121db5b1d5292e7c0fc (commit) discards e0ad6d2d1e872e1c4aecdf0e4e1c16b9cca4c6c2 (commit) discards 2bb4956dbfc4408bbc1b1e993a81356d0fd90050 (commit) discards 02d721316224bbb9029d6d76956b7824990091a3 (commit) discards 052704682a0173d33ecd285e4b1145daef1f91ab (commit) via 7f81bb18196077678fb6b05114208bf4ab328a05 (commit) via 1d0b7ad70a4ed843e04616fc6e878fe1daa1f5ee (commit) via 0c0daafb3880fe3c120df82a6d2dac164445fc30 (commit) via f03700069c204ca2508e3f2ee5c7c757a078a3ae (commit) via ba3798555d7e018ddd384f6990645a8407893f54 (commit) via 0ff8f127fbbc6bd1fac84bd6f5118ad1efd0e786 (commit) via bb27f72d676f0e24c97891a9fd4c0ade9b2140f9 (commit) via 1e0fc685010d4b6c656c501908f812bf000251ed (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 (d46bcf677806ecc9e7116bd88b3f51954e301e8e) \ N -- N -- N (7f81bb18196077678fb6b05114208bf4ab328a05) 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=7f81bb18196077678fb6b05114208bf4ab328a05 commit 7f81bb18196077678fb6b05114208bf4ab328a05 Merge: 1d0b7ad c6653ec Author: Domen Vrankar AuthorDate: Sun Mar 26 21:56:38 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 09:02:52 2017 -0400 Stage topic 'cpack-rpm-use-current-cmake-policies' Topic-id: 23288 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/631 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1d0b7ad70a4ed843e04616fc6e878fe1daa1f5ee commit 1d0b7ad70a4ed843e04616fc6e878fe1daa1f5ee Merge: 0c0daaf 58d6061 Author: Domen Vrankar AuthorDate: Sat Mar 25 19:28:21 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 09:02:52 2017 -0400 Stage topic 'cpack-rpm-tests-handle-build-id-links' Topic-id: 23282 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/628 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0c0daafb3880fe3c120df82a6d2dac164445fc30 commit 0c0daafb3880fe3c120df82a6d2dac164445fc30 Merge: f037000 f237f5f Author: Domen Vrankar AuthorDate: Sat Mar 25 14:26:35 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 09:02:52 2017 -0400 Stage topic 'cpack-rpm-debuginfo-honor-package-filename' Topic-id: 23243 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/620 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f03700069c204ca2508e3f2ee5c7c757a078a3ae commit f03700069c204ca2508e3f2ee5c7c757a078a3ae Merge: ba37985 e9fc7ff Author: Daniel Pfeifer AuthorDate: Fri Mar 24 22:04:21 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 09:02:52 2017 -0400 Stage topic 'cm-sys-stat' Topic-id: 23273 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/625 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 09:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 09:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-582-g89e2c92 Message-ID: <20170327131502.C8962F51E5@public.kitware.com> 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 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (commit) via 42b7d132a8a20f06fec3a8a7d1dc1820f95e6896 (commit) via 4ba065b22b544a509c76e497306b65e2dc0d5ee7 (commit) via 341b42024b066d4cfcc178f53b2caf2eaacfabb8 (commit) via f237f5f851df64e009f97304e6569f7e259d44e6 (commit) via e9fc7ff5052f3ab40c2b39ba653506c5346d4582 (commit) via 6c09c5d64cad9c7d1c6be414ce918ac2d090b864 (commit) from ba3798555d7e018ddd384f6990645a8407893f54 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: .../cpack-rpm-debuginfo-honor-package-filename.rst | 5 +++ Modules/CPackRPM.cmake | 44 +++++++++++++++++++- Source/CPack/WiX/cmWIXFilesSourceWriter.cxx | 4 +- Source/CPack/cmCPackCygwinSourceGenerator.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 2 +- Source/CPack/cmCPackOSXX11Generator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 5 +-- Source/CTest/cmCTestSubmitHandler.cxx | 2 +- Source/QtDialog/CMakeSetup.cxx | 2 +- Source/cmFileCommand.cxx | 5 +-- Source/cmFileTimeComparison.cxx | 2 +- Source/cmGeneratorExpressionEvaluationFile.h | 7 +--- Source/cmMakefile.cxx | 1 + Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmSystemTools.cxx | 2 +- Source/cmSystemTools.h | 6 --- Source/cmWriteFileCommand.cxx | 5 +-- Source/cm_sys_stat.h | 14 +++++++ Source/cmake.cxx | 5 +-- .../RunCPackVerifyResult.cmake | 8 ++-- Tests/RunCMake/CPack/RPM/Helpers.cmake | 4 ++ .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 8 ++-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 10 +++++ .../CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake | 4 +- 24 files changed, 102 insertions(+), 49 deletions(-) create mode 100644 Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst create mode 100644 Source/cm_sys_stat.h hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 09:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 09:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-584-g66839d5 Message-ID: <20170327131502.EBEB2F560E@public.kitware.com> 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 7f81bb18196077678fb6b05114208bf4ab328a05 (commit) discards 1d0b7ad70a4ed843e04616fc6e878fe1daa1f5ee (commit) discards 0c0daafb3880fe3c120df82a6d2dac164445fc30 (commit) discards f03700069c204ca2508e3f2ee5c7c757a078a3ae (commit) discards 58d6061cd5c42a52184acf0dd97a9f78f5e89fae (commit) via 66839d5a04010d8b42eefdc5a9a1e349816d4c85 (commit) via 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (commit) via 42b7d132a8a20f06fec3a8a7d1dc1820f95e6896 (commit) via 4ba065b22b544a509c76e497306b65e2dc0d5ee7 (commit) via 341b42024b066d4cfcc178f53b2caf2eaacfabb8 (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 (7f81bb18196077678fb6b05114208bf4ab328a05) \ N -- N -- N (66839d5a04010d8b42eefdc5a9a1e349816d4c85) 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=66839d5a04010d8b42eefdc5a9a1e349816d4c85 commit 66839d5a04010d8b42eefdc5a9a1e349816d4c85 Merge: 89e2c92 c6653ec Author: Domen Vrankar AuthorDate: Sun Mar 26 21:56:38 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 09:13:59 2017 -0400 Stage topic 'cpack-rpm-use-current-cmake-policies' Topic-id: 23288 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/631 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 13:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 13:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-586-gb645aac Message-ID: <20170327175503.B8A07FA1F7@public.kitware.com> 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 66839d5a04010d8b42eefdc5a9a1e349816d4c85 (commit) discards c6653ec59f510af6ab550065e127e45cf2f4a457 (commit) via b645aace61d04f73a26faa5496b3ae49f215e1b4 (commit) via 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 (commit) via cf784d9ff5555eda82d6790c359b6d6ea7f88345 (commit) via 082c0375d9f21ada36bdd8fd710720e553bcdbbb (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 (66839d5a04010d8b42eefdc5a9a1e349816d4c85) \ N -- N -- N (b645aace61d04f73a26faa5496b3ae49f215e1b4) 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=b645aace61d04f73a26faa5496b3ae49f215e1b4 commit b645aace61d04f73a26faa5496b3ae49f215e1b4 Merge: 89e2c92 6eb609f Author: Brad King AuthorDate: Mon Mar 27 17:46:54 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 13:47:08 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23302 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/632 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6eb609fd59d989fede93fadfc67b928ee7ab7fc2 commit 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 Author: Brad King AuthorDate: Mon Mar 27 11:42:48 2017 -0400 Commit: Brad King CommitDate: Mon Mar 27 11:43:01 2017 -0400 InstallRequiredSystemLibraries: Find VS 2017 redist directory Use our undocumented `cmake_host_system_information` query to find the VS 2017 installation directory by asking the VS installer tool. Then look relative to that for the redist directory. Fixes: #16737 diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 9750a06..a3478a3 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -196,6 +196,11 @@ if(MSVC) endif() if(NOT vs VERSION_LESS 15) set(_vs_redist_paths "") + cmake_host_system_information(RESULT _vs_dir QUERY VS_${vs}_DIR) # undocumented query + if(IS_DIRECTORY "${_vs_dir}") + file(GLOB _vs_redist_paths "${_vs_dir}/VC/Redist/MSVC/*") + endif() + unset(_vs_dir) else() get_filename_component(_vs_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cf784d9ff5555eda82d6790c359b6d6ea7f88345 commit cf784d9ff5555eda82d6790c359b6d6ea7f88345 Author: Brad King AuthorDate: Mon Mar 27 11:21:22 2017 -0400 Commit: Brad King CommitDate: Mon Mar 27 11:43:01 2017 -0400 Add undocumented CMake language means to find VS 2017 Add a query to the `cmake_host_system_information` command to get the location of a VS 2017 installation. Leave it undocumented and for internal use for now. diff --git a/Source/cmCMakeHostSystemInformationCommand.cxx b/Source/cmCMakeHostSystemInformationCommand.cxx index 7da93ac..e135ac6 100644 --- a/Source/cmCMakeHostSystemInformationCommand.cxx +++ b/Source/cmCMakeHostSystemInformationCommand.cxx @@ -7,6 +7,12 @@ #include "cmMakefile.h" #include "cmsys/SystemInformation.hxx" +#if defined(_WIN32) +#include "cmSystemTools.h" +#include "cmVSSetupHelper.h" +#define HAVE_VS_SETUP_HELPER +#endif + class cmExecutionStatus; // cmCMakeHostSystemInformation @@ -70,6 +76,13 @@ bool cmCMakeHostSystemInformationCommand::GetValue( value = this->ValueToString(info.GetTotalPhysicalMemory()); } else if (key == "AVAILABLE_PHYSICAL_MEMORY") { value = this->ValueToString(info.GetAvailablePhysicalMemory()); +#ifdef HAVE_VS_SETUP_HELPER + } else if (key == "VS_15_DIR") { + cmVSSetupAPIHelper vsSetupAPIHelper; + if (vsSetupAPIHelper.GetVSInstanceInfo(value)) { + cmSystemTools::ConvertToUnixSlashes(value); + } +#endif } else { std::string e = "does not recognize " + key; this->SetError(e); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=082c0375d9f21ada36bdd8fd710720e553bcdbbb commit 082c0375d9f21ada36bdd8fd710720e553bcdbbb Author: Brad King AuthorDate: Mon Mar 27 11:40:47 2017 -0400 Commit: Brad King CommitDate: Mon Mar 27 11:43:01 2017 -0400 InstallRequiredSystemLibraries: Split VS 2017 search paths VS 2017 does not have the same registry entries or other paths we search for other VS versions. Split the search code paths to treat it separately. diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake index 1061da0..9750a06 100644 --- a/Modules/InstallRequiredSystemLibraries.cmake +++ b/Modules/InstallRequiredSystemLibraries.cmake @@ -191,19 +191,26 @@ if(MSVC) set(vs "${_MSVCRT_IDE_VERSION}") # Find the runtime library redistribution directory. - get_filename_component(msvc_install_dir - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE) - set(programfilesx86 "ProgramFiles(x86)") if(vs VERSION_LESS 15 AND DEFINED MSVC${vs}_REDIST_DIR AND EXISTS "${MSVC${vs}_REDIST_DIR}") set(MSVC_REDIST_DIR "${MSVC${vs}_REDIST_DIR}") # use old cache entry endif() - find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT - PATHS - "${msvc_install_dir}/../../VC/redist" + if(NOT vs VERSION_LESS 15) + set(_vs_redist_paths "") + else() + get_filename_component(_vs_dir + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${vs}.0;InstallDir]" ABSOLUTE) + set(programfilesx86 "ProgramFiles(x86)") + set(_vs_redist_paths + "${_vs_dir}/../../VC/redist" "${base_dir}/VC/redist" "$ENV{ProgramFiles}/Microsoft Visual Studio ${vs}.0/VC/redist" "$ENV{${programfilesx86}}/Microsoft Visual Studio ${vs}.0/VC/redist" - ) + ) + unset(_vs_dir) + unset(programfilesx86) + endif() + find_path(MSVC_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT PATHS ${_vs_redist_paths}) + unset(_vs_redist_paths) mark_as_advanced(MSVC_REDIST_DIR) set(MSVC_CRT_DIR "${MSVC_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vs}0.CRT") ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 69 ++++++++++++++++-------- Modules/InstallRequiredSystemLibraries.cmake | 26 ++++++--- Source/cmCMakeHostSystemInformationCommand.cxx | 13 +++++ 3 files changed, 79 insertions(+), 29 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 15:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 15:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-588-gc7df2fb Message-ID: <20170327190502.E0B2DF9FF1@public.kitware.com> 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 c7df2fb6528c884ec69bedce2a4595997adc72ac (commit) via 92fe00d33cb029a583de20a16e5bc17bd337ed57 (commit) from b645aace61d04f73a26faa5496b3ae49f215e1b4 (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=c7df2fb6528c884ec69bedce2a4595997adc72ac commit c7df2fb6528c884ec69bedce2a4595997adc72ac Merge: b645aac 92fe00d Author: Brad King AuthorDate: Mon Mar 27 18:55:12 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 14:56:40 2017 -0400 Stage topic 'ninja-fix-sysconf-non-limit' Topic-id: 23303 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/633 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=92fe00d33cb029a583de20a16e5bc17bd337ed57 commit 92fe00d33cb029a583de20a16e5bc17bd337ed57 Author: Christian Pfeiffer AuthorDate: Mon Mar 27 19:04:50 2017 +0200 Commit: Brad King CommitDate: Mon Mar 27 13:42:19 2017 -0400 Ninja: Fix command line limit when sysconf has no ARG_MAX The `sysconf(3)` manual explains that the return value can be `-1` for limits if there is no definite limit. Recognize this case and skip using the value as a limit candidate. Otherwise we use response files unconditionally on such systems instead of checking other limits. Fixes: #16740 diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 4fc664d..b1374c2 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -550,10 +550,6 @@ static int calculateCommandLineLengthLimit(int linkRuleLength) #ifdef _WIN32 8000, #endif -#if defined(_SC_ARG_MAX) - // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac - ((int)sysconf(_SC_ARG_MAX)) - 1000, -#endif #if defined(__linux) // #define MAX_ARG_STRLEN (PAGE_SIZE * 32) in Linux's binfmts.h ((int)sysconf(_SC_PAGESIZE) * 32) - 1000, @@ -562,7 +558,15 @@ static int calculateCommandLineLengthLimit(int linkRuleLength) }; size_t const arrSz = cmArraySize(limits); - int const sz = *std::min_element(limits, limits + arrSz); + int sz = *std::min_element(limits, limits + arrSz); +#if defined(_SC_ARG_MAX) + // for instance ARG_MAX is 2096152 on Ubuntu or 262144 on Mac + int const szArgMax = static_cast(sysconf(_SC_ARG_MAX)); + // a return value of -1 signifies an unrestricted value + if (szArgMax != -1) { + sz = std::min(sz, szArgMax - 1000); + } +#endif if (sz == std::numeric_limits::max()) { return 0; } ----------------------------------------------------------------------- Summary of changes: Source/cmNinjaNormalTargetGenerator.cxx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 17:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 17:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-590-gc4c307b Message-ID: <20170327210502.BD93CFA2BF@public.kitware.com> 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 c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 (commit) via 9dfccdc227f530997203ab9eb509a861f6718f59 (commit) from c7df2fb6528c884ec69bedce2a4595997adc72ac (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=c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 commit c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 Merge: c7df2fb 9dfccdc Author: Brad King AuthorDate: Mon Mar 27 20:55:08 2017 +0000 Commit: Kitware Robot CommitDate: Mon Mar 27 16:55:11 2017 -0400 Stage topic 'libarchive-backport-zip-dir-fix' Topic-id: 23311 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/634 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9dfccdc227f530997203ab9eb509a861f6718f59 commit 9dfccdc227f530997203ab9eb509a861f6718f59 Author: Brad King AuthorDate: Mon Mar 27 16:49:05 2017 -0400 Commit: Brad King CommitDate: Mon Mar 27 16:53:20 2017 -0400 libarchive: backport zip directory recognition fix Backport upstream libarchive commit 2ecf8d1c1e (Try harder to detect directories in zip archives, 2016-12-23). Fixes: #16741 diff --git a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c index c50ba84..8df52c3 100644 --- a/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c +++ b/Utilities/cmlibarchive/libarchive/archive_read_support_format_zip.c @@ -850,29 +850,33 @@ zip_read_local_file_header(struct archive_read *a, struct archive_entry *entry, zip_entry->mode |= AE_IFREG; } - if ((zip_entry->mode & AE_IFMT) == 0) { - /* Especially in streaming mode, we can end up - here without having seen proper mode information. - Guess from the filename. */ + /* If the mode is totally empty, set some sane default. */ + if (zip_entry->mode == 0) { + zip_entry->mode |= 0664; + } + + /* Make sure that entries with a trailing '/' are marked as directories + * even if the External File Attributes contains bogus values. If this + * is not a directory and there is no type, assume regularfile. */ + if ((zip_entry->mode & AE_IFMT) != AE_IFDIR) { + int has_slash; + wp = archive_entry_pathname_w(entry); if (wp != NULL) { len = wcslen(wp); - if (len > 0 && wp[len - 1] == L'/') - zip_entry->mode |= AE_IFDIR; - else - zip_entry->mode |= AE_IFREG; + has_slash = len > 0 && wp[len - 1] == L'/'; } else { cp = archive_entry_pathname(entry); len = (cp != NULL)?strlen(cp):0; - if (len > 0 && cp[len - 1] == '/') - zip_entry->mode |= AE_IFDIR; - else - zip_entry->mode |= AE_IFREG; + has_slash = len > 0 && cp[len - 1] == '/'; } - if (zip_entry->mode == AE_IFDIR) { - zip_entry->mode |= 0775; - } else if (zip_entry->mode == AE_IFREG) { - zip_entry->mode |= 0664; + /* Correct file type as needed. */ + if (has_slash) { + zip_entry->mode &= ~AE_IFMT; + zip_entry->mode |= AE_IFDIR; + zip_entry->mode |= 0111; + } else if ((zip_entry->mode & AE_IFMT) == 0) { + zip_entry->mode |= AE_IFREG; } } ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 21:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 21:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-582-g89e2c92 Message-ID: <20170328010504.256DCFA64E@public.kitware.com> 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, nightly-master has been updated via 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (commit) via 42b7d132a8a20f06fec3a8a7d1dc1820f95e6896 (commit) via 4ba065b22b544a509c76e497306b65e2dc0d5ee7 (commit) via 341b42024b066d4cfcc178f53b2caf2eaacfabb8 (commit) via ba3798555d7e018ddd384f6990645a8407893f54 (commit) via 0ff8f127fbbc6bd1fac84bd6f5118ad1efd0e786 (commit) via bb27f72d676f0e24c97891a9fd4c0ade9b2140f9 (commit) via 1e0fc685010d4b6c656c501908f812bf000251ed (commit) via deec8919ba8e2a0f469346a4a47300e618f6e83c (commit) via f237f5f851df64e009f97304e6569f7e259d44e6 (commit) via e9fc7ff5052f3ab40c2b39ba653506c5346d4582 (commit) via ea2a91a43279616a602b641d827e07912ac9c0b9 (commit) via fda80fde76c230dda8372bf9d7208520c40f3611 (commit) via 64490637840b05da7f0829aa52cae7f3923b805e (commit) via f1a5583901e051ef4627bf8be08565c4b331e99a (commit) via 6c09c5d64cad9c7d1c6be414ce918ac2d090b864 (commit) via 70d8f0d0f4b85f234902a8ae4f380ca8b1edda85 (commit) from d6ef21cf702793b8c1ca74e1243c357e651b6adf (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: .../cpack-rpm-debuginfo-honor-package-filename.rst | 5 ++ Modules/CPackRPM.cmake | 52 ++++++++++++++++---- Source/CMakeVersion.cmake | 2 +- Source/CPack/WiX/cmWIXFilesSourceWriter.cxx | 4 +- Source/CPack/cmCPackCygwinSourceGenerator.cxx | 2 +- Source/CPack/cmCPackDebGenerator.cxx | 2 +- Source/CPack/cmCPackOSXX11Generator.cxx | 2 +- Source/CPack/cmCPackSTGZGenerator.cxx | 5 +- Source/CTest/cmCTestSubmitHandler.cxx | 2 +- Source/QtDialog/CMakeSetup.cxx | 2 +- Source/cmFileCommand.cxx | 5 +- Source/cmFileTimeComparison.cxx | 2 +- Source/cmGeneratorExpressionEvaluationFile.h | 7 +-- Source/cmMakefile.cxx | 1 + Source/cmQtAutoGeneratorInitializer.cxx | 2 +- Source/cmSystemTools.cxx | 2 +- Source/cmSystemTools.h | 6 --- Source/cmWriteFileCommand.cxx | 5 +- Source/cm_sys_stat.h | 14 ++++++ Source/cmake.cxx | 5 +- Source/kwsys/.gitattributes | 19 ++++--- Source/kwsys/ConsoleBuf.hxx.in | 3 +- Source/kwsys/Encoding.hxx.in | 2 +- Source/kwsys/FStream.hxx.in | 2 +- .../RunCPackVerifyResult.cmake | 8 +-- Tests/RunCMake/CPack/RPM/Helpers.cmake | 4 ++ .../CPack/tests/DEBUGINFO/ExpectedFiles.cmake | 8 +-- Tests/RunCMake/CPack/tests/DEBUGINFO/test.cmake | 10 ++++ .../CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake | 4 +- Tests/SimpleInstall/CMakeLists.txt | 1 + Utilities/Scripts/update-kwsys.bash | 1 + Utilities/Scripts/update-third-party.bash | 8 +++ 32 files changed, 127 insertions(+), 70 deletions(-) create mode 100644 Help/release/dev/cpack-rpm-debuginfo-honor-package-filename.rst create mode 100644 Source/cm_sys_stat.h hooks/post-receive -- CMake From kwrobot at kitware.com Mon Mar 27 21:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Mon, 27 Mar 2017 21:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-590-gc4c307b Message-ID: <20170328010504.2DFDCFA64B@public.kitware.com> 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, nightly has been updated discards ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b (commit) discards c6653ec59f510af6ab550065e127e45cf2f4a457 (commit) discards 5319e9c2e6631549e9dbe284237e179110082e6c (commit) discards d6eab9516fda3e50c14abe942e014a8a564f7697 (commit) discards 95e1bd59d86542f2e73b5f3266e10730e766ca9a (commit) discards fd61926921afe2920aee3e5a17fc66e5383bf010 (commit) discards ed09bd8bad52401ad899a2f3994ef2bbccb738b8 (commit) discards 57fa214f883c593f79ef4573b7fad716d3578416 (commit) discards 052704682a0173d33ecd285e4b1145daef1f91ab (commit) discards 58d6061cd5c42a52184acf0dd97a9f78f5e89fae (commit) via c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 (commit) via 9dfccdc227f530997203ab9eb509a861f6718f59 (commit) via c7df2fb6528c884ec69bedce2a4595997adc72ac (commit) via b645aace61d04f73a26faa5496b3ae49f215e1b4 (commit) via 92fe00d33cb029a583de20a16e5bc17bd337ed57 (commit) via 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 (commit) via cf784d9ff5555eda82d6790c359b6d6ea7f88345 (commit) via 082c0375d9f21ada36bdd8fd710720e553bcdbbb (commit) via 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (commit) via 42b7d132a8a20f06fec3a8a7d1dc1820f95e6896 (commit) via 4ba065b22b544a509c76e497306b65e2dc0d5ee7 (commit) via 341b42024b066d4cfcc178f53b2caf2eaacfabb8 (commit) via ba3798555d7e018ddd384f6990645a8407893f54 (commit) via 0ff8f127fbbc6bd1fac84bd6f5118ad1efd0e786 (commit) via bb27f72d676f0e24c97891a9fd4c0ade9b2140f9 (commit) via 1e0fc685010d4b6c656c501908f812bf000251ed (commit) via deec8919ba8e2a0f469346a4a47300e618f6e83c (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 (ec5a687ebe40567ad8217ab29ba2e5a25ac4a71b) \ N -- N -- N (c4c307b8259c39737019ddd1b7d7ce4b5cf89c15) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 69 ++++++++++++++++-------- Modules/InstallRequiredSystemLibraries.cmake | 26 ++++++--- Source/CMakeVersion.cmake | 2 +- Source/cmCMakeHostSystemInformationCommand.cxx | 13 +++++ Source/cmNinjaNormalTargetGenerator.cxx | 14 +++-- 5 files changed, 89 insertions(+), 35 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 00:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-583-g2149943 Message-ID: <20170328040507.6189DFA0E8@public.kitware.com> 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 21499431e05b0defb134b10b1753488c0516bafd (commit) from 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 00:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-591-g23929b1 Message-ID: <20170328040508.C270AFA1BF@public.kitware.com> 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 c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 (commit) discards c7df2fb6528c884ec69bedce2a4595997adc72ac (commit) discards b645aace61d04f73a26faa5496b3ae49f215e1b4 (commit) via 23929b12ff818429786309261065d03c201a7b87 (commit) via ac6ccb2dadc50de4e1ec102a7165dd1ddf690122 (commit) via f751a822428ef07dc97487790efa5e2946c3c36e (commit) via 21499431e05b0defb134b10b1753488c0516bafd (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 (c4c307b8259c39737019ddd1b7d7ce4b5cf89c15) \ N -- N -- N (23929b12ff818429786309261065d03c201a7b87) 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=23929b12ff818429786309261065d03c201a7b87 commit 23929b12ff818429786309261065d03c201a7b87 Merge: ac6ccb2 9dfccdc Author: Brad King AuthorDate: Mon Mar 27 20:55:08 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 00:01:42 2017 -0400 Stage topic 'libarchive-backport-zip-dir-fix' Topic-id: 23311 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/634 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ac6ccb2dadc50de4e1ec102a7165dd1ddf690122 commit ac6ccb2dadc50de4e1ec102a7165dd1ddf690122 Merge: f751a82 92fe00d Author: Brad King AuthorDate: Mon Mar 27 18:55:12 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 00:01:42 2017 -0400 Stage topic 'ninja-fix-sysconf-non-limit' Topic-id: 23303 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/633 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f751a822428ef07dc97487790efa5e2946c3c36e commit f751a822428ef07dc97487790efa5e2946c3c36e Merge: 2149943 6eb609f Author: Brad King AuthorDate: Mon Mar 27 17:46:54 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 00:01:41 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23302 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/632 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:15:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:15:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-589-g83199f8 Message-ID: <20170328141505.B6366F5A45@public.kitware.com> 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 83199f8daf13328a4fb97c16476c3a0da4228ead (commit) via 4d970868489e7a7a45419ad74444afe2ab8239ee (commit) via 92fe00d33cb029a583de20a16e5bc17bd337ed57 (commit) via 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 (commit) via cf784d9ff5555eda82d6790c359b6d6ea7f88345 (commit) via 082c0375d9f21ada36bdd8fd710720e553bcdbbb (commit) from 21499431e05b0defb134b10b1753488c0516bafd (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=83199f8daf13328a4fb97c16476c3a0da4228ead commit 83199f8daf13328a4fb97c16476c3a0da4228ead Merge: 4d97086 6eb609f Author: Brad King AuthorDate: Tue Mar 28 14:14:46 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 10:14:59 2017 -0400 Merge topic 'InstallRequiredSystemLibraries-vs2017' 6eb609fd InstallRequiredSystemLibraries: Find VS 2017 redist directory cf784d9f Add undocumented CMake language means to find VS 2017 082c0375 InstallRequiredSystemLibraries: Split VS 2017 search paths Acked-by: Kitware Robot Merge-request: !632 ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 26 +++++++++++++++++------- Source/cmCMakeHostSystemInformationCommand.cxx | 13 ++++++++++++ Source/cmNinjaNormalTargetGenerator.cxx | 14 ++++++++----- 3 files changed, 41 insertions(+), 12 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:15:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:15:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-591-g645fc9b Message-ID: <20170328141506.17F25F5AA8@public.kitware.com> 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 23929b12ff818429786309261065d03c201a7b87 (commit) discards ac6ccb2dadc50de4e1ec102a7165dd1ddf690122 (commit) discards f751a822428ef07dc97487790efa5e2946c3c36e (commit) via 645fc9b377931fb0df4360eb7a8dff2073394b6b (commit) via 98486d17f2a925510c8bd3245942f1227c4fbe4c (commit) via 4d970868489e7a7a45419ad74444afe2ab8239ee (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 (23929b12ff818429786309261065d03c201a7b87) \ N -- N -- N (645fc9b377931fb0df4360eb7a8dff2073394b6b) 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=645fc9b377931fb0df4360eb7a8dff2073394b6b commit 645fc9b377931fb0df4360eb7a8dff2073394b6b Merge: 98486d1 9dfccdc Author: Brad King AuthorDate: Mon Mar 27 20:55:08 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 10:14:52 2017 -0400 Stage topic 'libarchive-backport-zip-dir-fix' Topic-id: 23311 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/634 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=98486d17f2a925510c8bd3245942f1227c4fbe4c commit 98486d17f2a925510c8bd3245942f1227c4fbe4c Merge: 4d97086 6eb609f Author: Brad King AuthorDate: Mon Mar 27 17:46:54 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 10:14:52 2017 -0400 Stage topic 'InstallRequiredSystemLibraries-vs2017' Topic-id: 23302 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/632 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-597-gcc4fbda Message-ID: <20170328142503.D4F8BFA5A1@public.kitware.com> 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 cc4fbda1a9fffd8927de870643f167f066b26bcd (commit) via 3d3eacbb6115f39ba40f8c2fa48f9cf84ba210e9 (commit) via 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (commit) via 9dfccdc227f530997203ab9eb509a861f6718f59 (commit) via 8c94f5085d24bbc25f3f7fa421f7a62761a5515c (commit) via 3ed87b7ee1038f11e7d86988aca692c0773209b6 (commit) via 16cd8600683a0e144f31a2e2551013283458f231 (commit) via 2b350775d212835a39cf541bbb46aec0a7bf52cf (commit) from 83199f8daf13328a4fb97c16476c3a0da4228ead (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-600-g3b32fdc Message-ID: <20170328142504.10197FA5A8@public.kitware.com> 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 645fc9b377931fb0df4360eb7a8dff2073394b6b (commit) discards 98486d17f2a925510c8bd3245942f1227c4fbe4c (commit) via 3b32fdc5d1530368b5b05d009f59bca79759d1c1 (commit) via cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b (commit) via e9c5505bf9c51c34dea703b86a293ff04475db54 (commit) via cc4fbda1a9fffd8927de870643f167f066b26bcd (commit) via 3d3eacbb6115f39ba40f8c2fa48f9cf84ba210e9 (commit) via 83199f8daf13328a4fb97c16476c3a0da4228ead (commit) via 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (commit) via 8c94f5085d24bbc25f3f7fa421f7a62761a5515c (commit) via 3ed87b7ee1038f11e7d86988aca692c0773209b6 (commit) via 16cd8600683a0e144f31a2e2551013283458f231 (commit) via 2b350775d212835a39cf541bbb46aec0a7bf52cf (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 (645fc9b377931fb0df4360eb7a8dff2073394b6b) \ N -- N -- N (3b32fdc5d1530368b5b05d009f59bca79759d1c1) 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=3b32fdc5d1530368b5b05d009f59bca79759d1c1 commit 3b32fdc5d1530368b5b05d009f59bca79759d1c1 Merge: cc4fbda cdd2875 Author: Brad King AuthorDate: Tue Mar 28 14:19:54 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 10:19:56 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23322 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/637 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b commit cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b Merge: cc4fbda e9c5505 Author: Brad King AuthorDate: Tue Mar 28 10:18:10 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 10:18:10 2017 -0400 Merge branch 'upstream-KWSys' into update-kwsys * upstream-KWSys: KWSys 2017-03-28 (34999b6a) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e9c5505bf9c51c34dea703b86a293ff04475db54 commit e9c5505bf9c51c34dea703b86a293ff04475db54 Author: KWSys Upstream AuthorDate: Tue Mar 28 09:49:59 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 10:18:09 2017 -0400 KWSys 2017-03-28 (34999b6a) Code extracted from: https://gitlab.kitware.com/utils/kwsys.git at commit 34999b6ab815d1456818f4517338a15be7f89ea0 (master). Upstream Shortlog ----------------- Daniel Pfeifer (1): 6f43bcef FStream: Make (i|o)fstream::is_open function public diff --git a/FStream.hxx.in b/FStream.hxx.in index cf331a5..d4bc6c9 100644 --- a/FStream.hxx.in +++ b/FStream.hxx.in @@ -170,8 +170,6 @@ template > class basic_ifstream : public std::basic_istream, public basic_efilebuf { - using basic_efilebuf::is_open; - public: typedef typename basic_efilebuf::internal_buffer_type internal_buffer_type; @@ -201,6 +199,8 @@ public: void close() { this->_set_state(this->_close(), this, this); } + using basic_efilebuf::is_open; + internal_buffer_type* rdbuf() const { return this->buf_; } ~basic_ifstream() @KWSYS_NAMESPACE at _FStream_NOEXCEPT { close(); } ----------------------------------------------------------------------- Summary of changes: Source/kwsys/FStream.hxx.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc3-12-g85abc5f Message-ID: <20170328142504.2A5D2FA5AB@public.kitware.com> 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, release has been updated via 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (commit) via 9dfccdc227f530997203ab9eb509a861f6718f59 (commit) via 8c94f5085d24bbc25f3f7fa421f7a62761a5515c (commit) via 92fe00d33cb029a583de20a16e5bc17bd337ed57 (commit) via 3ed87b7ee1038f11e7d86988aca692c0773209b6 (commit) via 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 (commit) via cf784d9ff5555eda82d6790c359b6d6ea7f88345 (commit) via 082c0375d9f21ada36bdd8fd710720e553bcdbbb (commit) via 16cd8600683a0e144f31a2e2551013283458f231 (commit) via 4ba065b22b544a509c76e497306b65e2dc0d5ee7 (commit) via 2b350775d212835a39cf541bbb46aec0a7bf52cf (commit) via 1e0fc685010d4b6c656c501908f812bf000251ed (commit) from 3b7f19a72ff2216b4613fdc8c5edf5d56e74d6fc (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CPackRPM.cmake | 8 ----- Modules/InstallRequiredSystemLibraries.cmake | 26 ++++++++++---- Source/cmCMakeHostSystemInformationCommand.cxx | 13 +++++++ Source/cmNinjaNormalTargetGenerator.cxx | 14 +++++--- .../RunCPackVerifyResult.cmake | 8 ++--- Tests/RunCMake/CPack/RPM/Helpers.cmake | 4 +++ .../CPack/tests/SOURCE_PACKAGE/VerifyResult.cmake | 4 ++- .../libarchive/archive_read_support_format_zip.c | 36 +++++++++++--------- 8 files changed, 72 insertions(+), 41 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 10:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 10:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-602-gbc35c1b Message-ID: <20170328144502.23A60F4B70@public.kitware.com> 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 bc35c1bb7b1175e79dd8bc177fb47f8367fae26b (commit) via 7a411dfbf6d9987869fd39e57f38f6a9c3d548aa (commit) from 3b32fdc5d1530368b5b05d009f59bca79759d1c1 (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=bc35c1bb7b1175e79dd8bc177fb47f8367fae26b commit bc35c1bb7b1175e79dd8bc177fb47f8367fae26b Merge: 3b32fdc 7a411df Author: Brad King AuthorDate: Tue Mar 28 14:39:31 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 10:39:33 2017 -0400 Stage topic 'vfproj-object-libs-fix' Topic-id: 23318 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/636 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7a411dfbf6d9987869fd39e57f38f6a9c3d548aa commit 7a411dfbf6d9987869fd39e57f38f6a9c3d548aa Author: Christian Pfeiffer AuthorDate: Tue Mar 28 11:51:35 2017 +0200 Commit: Brad King CommitDate: Tue Mar 28 10:34:26 2017 -0400 VS: Fix OBJECT library support in Intel Fortran projects The `TargetExt` for `.vfproj` object libraries should be `.lib` to match the `OutputFile` value. Otherwise Visual Fortran raises warnings: TargetPath(...) does not match the Library's OutputFile property value (...) diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 7c33821..3117ef3 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -746,11 +746,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( if (this->FortranProject) { // Intel Fortran >= 15.0 uses TargetName property. - std::string targetNameFull = target->GetFullName(configName); - std::string targetName = + std::string const targetNameFull = target->GetFullName(configName); + std::string const targetName = cmSystemTools::GetFilenameWithoutLastExtension(targetNameFull); - std::string targetExt = - cmSystemTools::GetFilenameLastExtension(targetNameFull); + std::string const targetExt = + target->GetType() == cmStateEnums::OBJECT_LIBRARY + ? ".lib" + : cmSystemTools::GetFilenameLastExtension(targetNameFull); /* clang-format off */ fout << "\t\t\tTargetName=\"" << this->EscapeForXML(targetName) << "\"\n" ----------------------------------------------------------------------- Summary of changes: Source/cmLocalVisualStudio7Generator.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 13:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 13:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-604-geb3978b Message-ID: <20170328174502.8746DB0097@public.kitware.com> 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 eb3978b6688c4233a42b890ebc26e278940942b1 (commit) via 62b85c940622bdcc25964ed95bec68a562de59ee (commit) from bc35c1bb7b1175e79dd8bc177fb47f8367fae26b (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=eb3978b6688c4233a42b890ebc26e278940942b1 commit eb3978b6688c4233a42b890ebc26e278940942b1 Merge: bc35c1b 62b85c9 Author: Brad King AuthorDate: Tue Mar 28 17:40:51 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 13:40:53 2017 -0400 Stage topic 'sphinx-cmake-theme' Topic-id: 23330 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/641 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62b85c940622bdcc25964ed95bec68a562de59ee commit 62b85c940622bdcc25964ed95bec68a562de59ee Author: Matthew Woehlke AuthorDate: Tue Mar 28 13:24:47 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:38:42 2017 -0400 Utilities/Sphinx: Use brighter colors for html theme Set Sphinx `html_theme_options` to give the generated documentation a brighter and softer look than the default colors. diff --git a/Utilities/Sphinx/conf.py.in b/Utilities/Sphinx/conf.py.in index e3afc78..7878ad2 100644 --- a/Utilities/Sphinx/conf.py.in +++ b/Utilities/Sphinx/conf.py.in @@ -54,6 +54,26 @@ html_show_sourcelink = True html_static_path = ['@conf_path@/static'] html_style = 'cmake.css' html_theme = 'default' +html_theme_options = { + 'footerbgcolor': '#00182d', + 'footertextcolor': '#ffffff', + 'sidebarbgcolor': '#e4ece8', + 'sidebarbtncolor': '#00a94f', + 'sidebartextcolor': '#333333', + 'sidebarlinkcolor': '#00a94f', + 'relbarbgcolor': '#00529b', + 'relbartextcolor': '#ffffff', + 'relbarlinkcolor': '#ffffff', + 'bgcolor': '#ffffff', + 'textcolor': '#444444', + 'headbgcolor': '#f2f2f2', + 'headtextcolor': '#003564', + 'headlinkcolor': '#3d8ff2', + 'linkcolor': '#2b63a8', + 'visitedlinkcolor': '#2b63a8', + 'codebgcolor': '#eeeeee', + 'codetextcolor': '#333333', +} html_title = 'CMake %s Documentation' % release html_short_title = '%s Documentation' % release html_favicon = '@conf_path@/static/cmake-favicon.ico' ----------------------------------------------------------------------- Summary of changes: Utilities/Sphinx/conf.py.in | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 14:25:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 14:25:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-610-g10a48e6 Message-ID: <20170328182502.D07F5FA522@public.kitware.com> 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 10a48e620ee872e32642ed5ad1e993776be2a694 (commit) via fff34934e70da77c359e47c53ffd04701bcd7611 (commit) via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit) via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit) via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit) via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit) from eb3978b6688c4233a42b890ebc26e278940942b1 (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=10a48e620ee872e32642ed5ad1e993776be2a694 commit 10a48e620ee872e32642ed5ad1e993776be2a694 Merge: eb3978b fff3493 Author: Brad King AuthorDate: Tue Mar 28 18:23:38 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 14:24:54 2017 -0400 Stage topic 'vs-rc-defines' Topic-id: 23329 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/640 diff --cc Source/cmVisualStudioGeneratorOptions.cxx index 1ca6b9c,da6f9a7..abc4924 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@@ -395,16 -259,19 +396,18 @@@ void cmVisualStudioGeneratorOptions::Ou if (!this->Configuration.empty()) { fout << prefix; this->TargetGenerator->WritePlatformConfigTag( - "PreprocessorDefinitions", this->Configuration.c_str(), 0, 0, 0, - &fout); + tag, this->Configuration.c_str(), 0, 0, 0, &fout); } else { - fout << prefix << ""; + fout << prefix << "<" << tag << ">"; } } else { - fout << prefix << "PreprocessorDefinitions=\""; + fout << prefix << tag << "=\""; } const char* sep = ""; + std::vector::const_iterator de = + cmRemoveDuplicates(this->Defines); for (std::vector::const_iterator di = this->Defines.begin(); - di != this->Defines.end(); ++di) { + di != de; ++di) { // Escape the definition for the compiler. std::string define; if (this->Version < cmGlobalVisualStudioGenerator::VS10) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fff34934e70da77c359e47c53ffd04701bcd7611 commit fff34934e70da77c359e47c53ffd04701bcd7611 Author: Brad King AuthorDate: Tue Mar 28 13:04:37 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:10:56 2017 -0400 MSVC: Restore _DEBUG preprocessor definition in RC debug builds In commit v3.8.0-rc1~304^2 (MSVC: Do not define _DEBUG explicitly when using /MDd, 2016-11-15) we removed the `_DEBUG` preprocessor definition from MSVC C and C++ flags because the `cl` compiler automatically defines it in Debug builds anyway. However, the VS generators propagate C preprocessor definitions to the RC (Windows Resource Compiler) tool. This means that we used to explicitly define `_DEBUG` for RC debug builds. Therefore existing project code may expect the definition to be there even though the `rc` compiler itself does not implicitly define `_DEBUG` in debug builds. Add the `_DEBUG` flag to the default `CMAKE_RC_FLAGS_DEBUG` instead to restore this definition for RC debug builds. This also makes it available consistently in VS, Ninja, and Makefile generators. Fixes: #16745 diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake index 31b26b59..e4aca6e 100644 --- a/Modules/Platform/Windows-MSVC.cmake +++ b/Modules/Platform/Windows-MSVC.cmake @@ -310,6 +310,9 @@ macro(__windows_compiler_msvc lang) if(NOT CMAKE_RC_FLAGS_INIT) string(APPEND CMAKE_RC_FLAGS_INIT " ${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_${lang}}") endif() + if(NOT CMAKE_RC_FLAGS_DEBUG_INIT) + string(APPEND CMAKE_RC_FLAGS_DEBUG_INIT " /D_DEBUG") + endif() enable_language(RC) set(CMAKE_NINJA_CMCLDEPS_RC 1) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 commit 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 Author: Brad King AuthorDate: Tue Mar 28 13:03:56 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:10:55 2017 -0400 RC: Add missing CMAKE_RC_FLAGS_ entries to cache diff --git a/Modules/CMakeRCInformation.cmake b/Modules/CMakeRCInformation.cmake index 10f2cfb..7ddd297 100644 --- a/Modules/CMakeRCInformation.cmake +++ b/Modules/CMakeRCInformation.cmake @@ -17,11 +17,26 @@ set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) -string(STRIP "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}" CMAKE_RC_FLAGS_INIT) +set(CMAKE_RC_FLAGS_INIT "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}") + +foreach(c "" _DEBUG _RELEASE _MINSIZEREL _RELWITHDEBINFO) + string(STRIP "${CMAKE_RC_FLAGS${c}_INIT}" CMAKE_RC_FLAGS${c}_INIT) +endforeach() set (CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS_INIT}" CACHE STRING "Flags for Windows Resource Compiler.") +if(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + set (CMAKE_RC_FLAGS_DEBUG "${CMAKE_RC_FLAGS_DEBUG_INIT}" CACHE STRING + "Flags for Windows Resource Compiler during debug builds.") + set (CMAKE_RC_FLAGS_MINSIZEREL "${CMAKE_RC_FLAGS_MINSIZEREL_INIT}" CACHE STRING + "Flags for Windows Resource Compiler during release builds for minimum size.") + set (CMAKE_RC_FLAGS_RELEASE "${CMAKE_RC_FLAGS_RELEASE_INIT}" CACHE STRING + "Flags for Windows Resource Compiler during release builds.") + set (CMAKE_RC_FLAGS_RELWITHDEBINFO "${CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING + "Flags for Windows Resource Compiler during release builds with debug info.") +endif() + # These are the only types of flags that should be passed to the rc # command, if COMPILE_FLAGS is used on a target this will be used # to filter out any other flags https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c77194ec471dd4f039c0c30e05f0b519ab44bc14 commit c77194ec471dd4f039c0c30e05f0b519ab44bc14 Author: Brad King AuthorDate: Tue Mar 28 13:00:59 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:10:55 2017 -0400 VS: Honor preprocessor definitions in RC flags The VS generators use the C (or CXX) preprocessor definitions for the Windows Resource Compiler tool. This causes definitions parsed out of `CMAKE_RC_FLAGS[_]` variables to be dropped. Fix the implementation to preserve both. Issue: #16745 diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 7447821..902fe03 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2346,6 +2346,11 @@ bool cmVisualStudio10TargetGenerator::ComputeRcOptions( std::string(this->Makefile->GetSafeDefinition(rcConfigFlagsVar)); rcOptions.Parse(flags.c_str()); + + // For historical reasons, add the C preprocessor defines to RC. + Options& clOptions = *(this->ClOptions[configName]); + rcOptions.AddDefines(clOptions.GetDefines()); + this->RcOptions[configName] = pOptions.release(); return true; } @@ -2358,12 +2363,9 @@ void cmVisualStudio10TargetGenerator::WriteRCOptions( } this->WriteString("\n", 2); - // Preprocessor definitions and includes are shared with clOptions. - Options& clOptions = *(this->ClOptions[configName]); - clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ", - "\n", "RC"); - Options& rcOptions = *(this->RcOptions[configName]); + rcOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ", + "\n", "RC"); rcOptions.AppendFlag("AdditionalIncludeDirectories", includes); rcOptions.AppendFlag("AdditionalIncludeDirectories", "%(AdditionalIncludeDirectories)"); https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1449f6f63d09f21203b36b3485dd3eb60c73ac17 commit 1449f6f63d09f21203b36b3485dd3eb60c73ac17 Author: Brad King AuthorDate: Tue Mar 28 12:56:29 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:10:55 2017 -0400 cmVisualStudio10TargetGenerator: De-duplicate preprocessor defs diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx index c0913e6..da6f9a7 100644 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@ -1,5 +1,6 @@ #include "cmVisualStudioGeneratorOptions.h" +#include "cmAlgorithms.h" #include "cmLocalVisualStudioGenerator.h" #include "cmOutputConverter.h" #include "cmSystemTools.h" @@ -267,8 +268,10 @@ void cmVisualStudioGeneratorOptions::OutputPreprocessorDefinitions( fout << prefix << "PreprocessorDefinitions=\""; } const char* sep = ""; + std::vector::const_iterator de = + cmRemoveDuplicates(this->Defines); for (std::vector::const_iterator di = this->Defines.begin(); - di != this->Defines.end(); ++di) { + di != de; ++di) { // Escape the definition for the compiler. std::string define; if (this->Version < cmGlobalVisualStudioGenerator::VS10) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8a619e8c85def632e9e7938fc5a3a36bb22f46ff commit 8a619e8c85def632e9e7938fc5a3a36bb22f46ff Author: Brad King AuthorDate: Tue Mar 28 12:55:14 2017 -0400 Commit: Brad King CommitDate: Tue Mar 28 13:10:55 2017 -0400 cmIDEOptions: Add GetDefines method diff --git a/Source/cmIDEOptions.cxx b/Source/cmIDEOptions.cxx index c6c0e05..8d07776 100644 --- a/Source/cmIDEOptions.cxx +++ b/Source/cmIDEOptions.cxx @@ -148,6 +148,11 @@ void cmIDEOptions::AddDefines(const std::vector& defines) this->Defines.insert(this->Defines.end(), defines.begin(), defines.end()); } +std::vector const& cmIDEOptions::GetDefines() const +{ + return this->Defines; +} + void cmIDEOptions::AddFlag(const char* flag, const char* value) { this->FlagMap[flag] = value; diff --git a/Source/cmIDEOptions.h b/Source/cmIDEOptions.h index a0696e1..be2fd6d 100644 --- a/Source/cmIDEOptions.h +++ b/Source/cmIDEOptions.h @@ -24,6 +24,8 @@ public: void AddDefine(const std::string& define); void AddDefines(const char* defines); void AddDefines(const std::vector& defines); + std::vector const& GetDefines() const; + void AddFlag(const char* flag, const char* value); void AddFlag(const char* flag, std::vector const& value); void AppendFlag(std::string const& flag, std::string const& value); ----------------------------------------------------------------------- Summary of changes: Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++- Modules/Platform/Windows-MSVC.cmake | 3 +++ Source/cmIDEOptions.cxx | 5 +++++ Source/cmIDEOptions.h | 2 ++ Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++----- Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++- 6 files changed, 37 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 15:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 15:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-612-g896e195 Message-ID: <20170328195502.9EBCAFA6EA@public.kitware.com> 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 896e195588bde813ad6e0cc8af7fe1594d37907c (commit) via dc5ea8ee24a81a7b5e9a05232c00a4e85528641c (commit) from 10a48e620ee872e32642ed5ad1e993776be2a694 (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=896e195588bde813ad6e0cc8af7fe1594d37907c commit 896e195588bde813ad6e0cc8af7fe1594d37907c Merge: 10a48e6 dc5ea8e Author: Gregor Jasny AuthorDate: Tue Mar 28 19:52:02 2017 +0000 Commit: Kitware Robot CommitDate: Tue Mar 28 15:52:10 2017 -0400 Stage topic '16742-swift-3.0' Topic-id: 23323 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dc5ea8ee24a81a7b5e9a05232c00a4e85528641c commit dc5ea8ee24a81a7b5e9a05232c00a4e85528641c Author: Gregor Jasny AuthorDate: Tue Mar 28 16:04:02 2017 +0200 Commit: Gregor Jasny CommitDate: Tue Mar 28 21:07:52 2017 +0200 Swift: Default to Swift 3.0 with Xcode 8.3 and later Xcode 8.3 has dropped support for Swift 2.3 so that compiler and feature detection failed. Closes #16742 diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 6fce8e2..1abbc01 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -298,7 +298,13 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_toolset "") endif() if("${lang}" STREQUAL "Swift") - set(id_lang_version "SWIFT_VERSION = 2.3;") + if(CMAKE_Swift_LANGUAGE_VERSION) + set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};") + elseif(XCODE_VERSION VERSION_GREATER_EQUAL 8.3) + set(id_lang_version "SWIFT_VERSION = 3.0;") + else() + set(id_lang_version "SWIFT_VERSION = 2.3;") + endif() else() set(id_lang_version "") endif() diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 39f7b8f..42dd997 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3117,10 +3117,14 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects( this->CreateString(this->GeneratorToolset)); } if (this->GetLanguageEnabled("Swift")) { - std::string swiftVersion = "2.3"; + std::string swiftVersion; if (const char* vers = this->CurrentMakefile->GetDefinition( "CMAKE_Swift_LANGUAGE_VERSION")) { swiftVersion = vers; + } else if (this->XcodeVersion >= 83) { + swiftVersion = "3.0"; + } else { + swiftVersion = "2.3"; } buildSettings->AddAttribute("SWIFT_VERSION", this->CreateString(swiftVersion)); diff --git a/Tests/SwiftMix/ObjCMain.m b/Tests/SwiftMix/ObjCMain.m index 7fa90ae..5a8700c 100644 --- a/Tests/SwiftMix/ObjCMain.m +++ b/Tests/SwiftMix/ObjCMain.m @@ -1,4 +1,10 @@ #import "SwiftMix-Swift.h" int ObjCMain(int argc, char const* const argv[]) { - return [SwiftMainClass SwiftMain:argc argv:argv]; + if ([SwiftMainClass respondsToSelector:@selector(SwiftMain:argv:)]) { + return [SwiftMainClass SwiftMain:argc argv:argv]; + } + if ([SwiftMainClass respondsToSelector:@selector(SwiftMainWithArgc:argv:)]) { + return [SwiftMainClass SwiftMainWithArgc:argc argv:argv]; + } + return -1; } diff --git a/Tests/SwiftMix/SwiftMain.swift b/Tests/SwiftMix/SwiftMain.swift index 3629ac8..921439a 100644 --- a/Tests/SwiftMix/SwiftMain.swift +++ b/Tests/SwiftMix/SwiftMain.swift @@ -3,10 +3,17 @@ import Foundation @objc class SwiftMainClass : NSObject { class func SwiftMain(argc:Int, argv:UnsafePointer>) -> Int32 { dump("argc: \(argc)") +#if swift(>=3.0) + for i in 0 ..< argc { + let argi = String(cString:argv[i]); + dump("arg[\(i)]: \(argi)"); + } +#else for (var i = 0; i < argc; ++i) { let argi = String.fromCString(argv[i]) dump("arg[\(i)]: \(argi)"); } +#endif return 0; } } ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +++++++- Source/cmGlobalXCodeGenerator.cxx | 6 +++++- Tests/SwiftMix/ObjCMain.m | 8 +++++++- Tests/SwiftMix/SwiftMain.swift | 7 +++++++ 4 files changed, 26 insertions(+), 3 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 21:05:10 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 21:05:10 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-612-g896e195 Message-ID: <20170329010510.B3921F9B87@public.kitware.com> 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, nightly has been updated discards c4c307b8259c39737019ddd1b7d7ce4b5cf89c15 (commit) discards c7df2fb6528c884ec69bedce2a4595997adc72ac (commit) discards b645aace61d04f73a26faa5496b3ae49f215e1b4 (commit) via 896e195588bde813ad6e0cc8af7fe1594d37907c (commit) via dc5ea8ee24a81a7b5e9a05232c00a4e85528641c (commit) via 10a48e620ee872e32642ed5ad1e993776be2a694 (commit) via eb3978b6688c4233a42b890ebc26e278940942b1 (commit) via 62b85c940622bdcc25964ed95bec68a562de59ee (commit) via fff34934e70da77c359e47c53ffd04701bcd7611 (commit) via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit) via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit) via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit) via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit) via bc35c1bb7b1175e79dd8bc177fb47f8367fae26b (commit) via 7a411dfbf6d9987869fd39e57f38f6a9c3d548aa (commit) via 3b32fdc5d1530368b5b05d009f59bca79759d1c1 (commit) via cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b (commit) via e9c5505bf9c51c34dea703b86a293ff04475db54 (commit) via cc4fbda1a9fffd8927de870643f167f066b26bcd (commit) via 3d3eacbb6115f39ba40f8c2fa48f9cf84ba210e9 (commit) via 83199f8daf13328a4fb97c16476c3a0da4228ead (commit) via 4d970868489e7a7a45419ad74444afe2ab8239ee (commit) via 21499431e05b0defb134b10b1753488c0516bafd (commit) via 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (commit) via 8c94f5085d24bbc25f3f7fa421f7a62761a5515c (commit) via 3ed87b7ee1038f11e7d86988aca692c0773209b6 (commit) via 16cd8600683a0e144f31a2e2551013283458f231 (commit) via 2b350775d212835a39cf541bbb46aec0a7bf52cf (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 (c4c307b8259c39737019ddd1b7d7ce4b5cf89c15) \ N -- N -- N (896e195588bde813ad6e0cc8af7fe1594d37907c) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +++++++- Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++- Modules/Platform/Windows-MSVC.cmake | 3 +++ Source/CMakeVersion.cmake | 2 +- Source/cmGlobalXCodeGenerator.cxx | 6 +++++- Source/cmIDEOptions.cxx | 5 +++++ Source/cmIDEOptions.h | 2 ++ Source/cmLocalVisualStudio7Generator.cxx | 10 ++++++---- Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++----- Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++- Source/kwsys/FStream.hxx.in | 4 ++-- Tests/SwiftMix/ObjCMain.m | 8 +++++++- Tests/SwiftMix/SwiftMain.swift | 7 +++++++ Utilities/Sphinx/conf.py.in | 20 ++++++++++++++++++++ 14 files changed, 92 insertions(+), 17 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Tue Mar 28 21:05:11 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Tue, 28 Mar 2017 21:05:11 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-597-gcc4fbda Message-ID: <20170329010511.A33BCF9AEE@public.kitware.com> 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, nightly-master has been updated via cc4fbda1a9fffd8927de870643f167f066b26bcd (commit) via 3d3eacbb6115f39ba40f8c2fa48f9cf84ba210e9 (commit) via 83199f8daf13328a4fb97c16476c3a0da4228ead (commit) via 4d970868489e7a7a45419ad74444afe2ab8239ee (commit) via 21499431e05b0defb134b10b1753488c0516bafd (commit) via 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (commit) via 9dfccdc227f530997203ab9eb509a861f6718f59 (commit) via 8c94f5085d24bbc25f3f7fa421f7a62761a5515c (commit) via 92fe00d33cb029a583de20a16e5bc17bd337ed57 (commit) via 3ed87b7ee1038f11e7d86988aca692c0773209b6 (commit) via 6eb609fd59d989fede93fadfc67b928ee7ab7fc2 (commit) via cf784d9ff5555eda82d6790c359b6d6ea7f88345 (commit) via 082c0375d9f21ada36bdd8fd710720e553bcdbbb (commit) via 16cd8600683a0e144f31a2e2551013283458f231 (commit) via 2b350775d212835a39cf541bbb46aec0a7bf52cf (commit) from 89e2c92f546c3d1b702b2c0ca206eabfc3f7caab (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/InstallRequiredSystemLibraries.cmake | 26 +++++++++++++++++------- Source/CMakeVersion.cmake | 2 +- Source/cmCMakeHostSystemInformationCommand.cxx | 13 ++++++++++++ Source/cmNinjaNormalTargetGenerator.cxx | 14 ++++++++----- 4 files changed, 42 insertions(+), 13 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 00:05:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 00:05:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-598-g3e4e659 Message-ID: <20170329040507.0CC74FA6F2@public.kitware.com> 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 3e4e6594da5668d7f80a1192594d9ee4fc790eb8 (commit) from cc4fbda1a9fffd8927de870643f167f066b26bcd (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 00:05:08 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 00:05:08 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-613-gae2232a Message-ID: <20170329040508.02A02FA6F1@public.kitware.com> 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 896e195588bde813ad6e0cc8af7fe1594d37907c (commit) discards 10a48e620ee872e32642ed5ad1e993776be2a694 (commit) discards eb3978b6688c4233a42b890ebc26e278940942b1 (commit) discards bc35c1bb7b1175e79dd8bc177fb47f8367fae26b (commit) discards 3b32fdc5d1530368b5b05d009f59bca79759d1c1 (commit) via ae2232a4e86e21e52f73c709feb729bd94271dca (commit) via ccd7ef0b1fafe7581cb110702288cde898e18418 (commit) via 84804eb5b3f33d97f3ecb5902a5df280ec2d4f9e (commit) via 2cc0ea8d610b1b88b4494d0b39da1d6f848758ef (commit) via 62fe278118632236b3adcdbc0717e9f0088d331d (commit) via 3e4e6594da5668d7f80a1192594d9ee4fc790eb8 (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 (896e195588bde813ad6e0cc8af7fe1594d37907c) \ N -- N -- N (ae2232a4e86e21e52f73c709feb729bd94271dca) 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=ae2232a4e86e21e52f73c709feb729bd94271dca commit ae2232a4e86e21e52f73c709feb729bd94271dca Merge: ccd7ef0 dc5ea8e Author: Gregor Jasny AuthorDate: Tue Mar 28 19:52:02 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 00:01:37 2017 -0400 Stage topic '16742-swift-3.0' Topic-id: 23323 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ccd7ef0b1fafe7581cb110702288cde898e18418 commit ccd7ef0b1fafe7581cb110702288cde898e18418 Merge: 84804eb fff3493 Author: Brad King AuthorDate: Tue Mar 28 18:23:38 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 00:01:36 2017 -0400 Stage topic 'vs-rc-defines' Topic-id: 23329 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/640 diff --cc Source/cmVisualStudioGeneratorOptions.cxx index 1ca6b9c,da6f9a7..abc4924 --- a/Source/cmVisualStudioGeneratorOptions.cxx +++ b/Source/cmVisualStudioGeneratorOptions.cxx @@@ -395,16 -259,19 +396,18 @@@ void cmVisualStudioGeneratorOptions::Ou if (!this->Configuration.empty()) { fout << prefix; this->TargetGenerator->WritePlatformConfigTag( - "PreprocessorDefinitions", this->Configuration.c_str(), 0, 0, 0, - &fout); + tag, this->Configuration.c_str(), 0, 0, 0, &fout); } else { - fout << prefix << ""; + fout << prefix << "<" << tag << ">"; } } else { - fout << prefix << "PreprocessorDefinitions=\""; + fout << prefix << tag << "=\""; } const char* sep = ""; + std::vector::const_iterator de = + cmRemoveDuplicates(this->Defines); for (std::vector::const_iterator di = this->Defines.begin(); - di != this->Defines.end(); ++di) { + di != de; ++di) { // Escape the definition for the compiler. std::string define; if (this->Version < cmGlobalVisualStudioGenerator::VS10) { https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=84804eb5b3f33d97f3ecb5902a5df280ec2d4f9e commit 84804eb5b3f33d97f3ecb5902a5df280ec2d4f9e Merge: 2cc0ea8 62b85c9 Author: Brad King AuthorDate: Tue Mar 28 17:40:51 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 00:01:36 2017 -0400 Stage topic 'sphinx-cmake-theme' Topic-id: 23330 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/641 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2cc0ea8d610b1b88b4494d0b39da1d6f848758ef commit 2cc0ea8d610b1b88b4494d0b39da1d6f848758ef Merge: 62fe278 7a411df Author: Brad King AuthorDate: Tue Mar 28 14:39:31 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 00:01:36 2017 -0400 Stage topic 'vfproj-object-libs-fix' Topic-id: 23318 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/636 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62fe278118632236b3adcdbc0717e9f0088d331d commit 62fe278118632236b3adcdbc0717e9f0088d331d Merge: 3e4e659 cdd2875 Author: Brad King AuthorDate: Tue Mar 28 14:19:54 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 00:01:36 2017 -0400 Stage topic 'update-kwsys' Topic-id: 23322 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/637 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 02:25:07 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 02:25:07 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-615-g6543b1b Message-ID: <20170329062507.C29E6FA371@public.kitware.com> 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 6543b1b9b1109f14292a3a63546f44ab22e0ed48 (commit) via 8e8f1118b947905e0e881ea3d9cc881f5fdce89d (commit) from ae2232a4e86e21e52f73c709feb729bd94271dca (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=6543b1b9b1109f14292a3a63546f44ab22e0ed48 commit 6543b1b9b1109f14292a3a63546f44ab22e0ed48 Merge: ae2232a 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 02:22:08 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8e8f1118b947905e0e881ea3d9cc881f5fdce89d commit 8e8f1118b947905e0e881ea3d9cc881f5fdce89d Author: Domen Vrankar AuthorDate: Wed Mar 29 00:22:52 2017 +0200 Commit: Domen Vrankar CommitDate: Wed Mar 29 00:22:52 2017 +0200 handle non-existing symlink creation locations diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index 063aea1..a11e2f9 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -315,6 +315,9 @@ The following ``cmake -E`` commands are available only on UNIX: ``create_symlink `` Create a symbolic link ```` naming ````. +.. note:: + Path to where ```` symbolic link will be created has to exist beforehand. + Windows-specific Command-Line Tools ----------------------------------- diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 97292f9..7207d34 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -1486,6 +1486,9 @@ bool cmFileCopier::InstallSymlink(const char* fromFile, const char* toFile) // Remove the destination file so we can always create the symlink. cmSystemTools::RemoveFile(toFile); + // Create destination directory if it doesn't exist + cmSystemTools::MakeDirectory(cmSystemTools::GetFilenamePath(toFile)); + // Create the symlink. if (!cmSystemTools::CreateSymlink(symlinkTarget, toFile)) { std::ostringstream e; diff --git a/Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt b/Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt new file mode 100644 index 0000000..9fb8e10 --- /dev/null +++ b/Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt @@ -0,0 +1,3 @@ +-- Before Installing +-- Installing: .*/Tests/RunCMake/file/INSTALL-SYMLINK-build/dst/current_dir_symlink +-- After Installing diff --git a/Tests/RunCMake/file/INSTALL-SYMLINK.cmake b/Tests/RunCMake/file/INSTALL-SYMLINK.cmake new file mode 100644 index 0000000..5a4284a --- /dev/null +++ b/Tests/RunCMake/file/INSTALL-SYMLINK.cmake @@ -0,0 +1,13 @@ +set(src "${CMAKE_CURRENT_BINARY_DIR}/src") +set(dst "${CMAKE_CURRENT_BINARY_DIR}/dst") +file(REMOVE RECURSE "${src}") +file(REMOVE RECURSE "${dst}") + +file(MAKE_DIRECTORY "${src}") +execute_process(COMMAND + ${CMAKE_COMMAND} -E create_symlink source "${src}/current_dir_symlink") + +message(STATUS "Before Installing") +file(INSTALL FILES "${src}/current_dir_symlink" + DESTINATION ${dst} TYPE DIRECTORY) +message(STATUS "After Installing") diff --git a/Tests/RunCMake/file/RunCMakeTest.cmake b/Tests/RunCMake/file/RunCMakeTest.cmake index 3f3c0da..63cbdd9 100644 --- a/Tests/RunCMake/file/RunCMakeTest.cmake +++ b/Tests/RunCMake/file/RunCMakeTest.cmake @@ -36,4 +36,5 @@ run_cmake(GLOB-noexp-LIST_DIRECTORIES) if(NOT WIN32 OR CYGWIN) run_cmake(GLOB_RECURSE-cyclic-recursion) + run_cmake(INSTALL-SYMLINK) endif() ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake.1.rst | 3 +++ Source/cmFileCommand.cxx | 3 +++ Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt | 3 +++ Tests/RunCMake/file/INSTALL-SYMLINK.cmake | 13 +++++++++++++ Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 5 files changed, 23 insertions(+) create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-613-gf0932bf Message-ID: <20170329130504.D182EFA66F@public.kitware.com> 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 6543b1b9b1109f14292a3a63546f44ab22e0ed48 (commit) discards ae2232a4e86e21e52f73c709feb729bd94271dca (commit) discards dc5ea8ee24a81a7b5e9a05232c00a4e85528641c (commit) via f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6 (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 (6543b1b9b1109f14292a3a63546f44ab22e0ed48) \ N -- N -- N (f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6) 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=f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6 commit f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6 Merge: ccd7ef0 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:03:04 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +------- Source/cmGlobalXCodeGenerator.cxx | 6 +----- Tests/SwiftMix/ObjCMain.m | 8 +------- Tests/SwiftMix/SwiftMain.swift | 7 ------- 4 files changed, 3 insertions(+), 26 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-611-g6dc7262 Message-ID: <20170329132504.2C00AFA3B9@public.kitware.com> 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 6dc7262bf77f551a7f3c36d7ca3023c63ef20af8 (commit) via 4a6a27ad85a4be666a3bb4260105a54ba1cea0eb (commit) via 2b9086d26614787bbc47b8ee47514583f6814e5d (commit) via ece20f7ae84db12b4ba95768e6aa5cc7e8832585 (commit) via 62b85c940622bdcc25964ed95bec68a562de59ee (commit) via fff34934e70da77c359e47c53ffd04701bcd7611 (commit) via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit) via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit) via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit) via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit) via 7a411dfbf6d9987869fd39e57f38f6a9c3d548aa (commit) via cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b (commit) via e9c5505bf9c51c34dea703b86a293ff04475db54 (commit) from 3e4e6594da5668d7f80a1192594d9ee4fc790eb8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++- Modules/Platform/Windows-MSVC.cmake | 3 +++ Source/cmIDEOptions.cxx | 5 +++++ Source/cmIDEOptions.h | 2 ++ Source/cmLocalVisualStudio7Generator.cxx | 10 ++++++---- Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++----- Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++- Source/kwsys/FStream.hxx.in | 4 ++-- Utilities/Sphinx/conf.py.in | 20 ++++++++++++++++++++ 9 files changed, 65 insertions(+), 13 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-618-g70de638 Message-ID: <20170329132504.76A01FA3C2@public.kitware.com> 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 f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6 (commit) discards ccd7ef0b1fafe7581cb110702288cde898e18418 (commit) discards 84804eb5b3f33d97f3ecb5902a5df280ec2d4f9e (commit) discards 2cc0ea8d610b1b88b4494d0b39da1d6f848758ef (commit) discards 62fe278118632236b3adcdbc0717e9f0088d331d (commit) via 70de6381a92d919c050e2067c54a0943db2c493f (commit) via fcd081d0e83a0d9e681e91ecadbfbb966f611856 (commit) via 6dc7262bf77f551a7f3c36d7ca3023c63ef20af8 (commit) via 4a6a27ad85a4be666a3bb4260105a54ba1cea0eb (commit) via 2b9086d26614787bbc47b8ee47514583f6814e5d (commit) via ece20f7ae84db12b4ba95768e6aa5cc7e8832585 (commit) via 496b845a1e43117d31f33490f14215f8c94ab15d (commit) via 8352de538725f292fea20f54efc10ead173ee3b4 (commit) via 9defe9d63a44d99dadd440b64721f7d518dd31b6 (commit) via eb69cd94446c9e3ce2debf9d1260a6cfad851a1f (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 (f0932bf2b802983f5c6b72c03fbd321bfeb0b6a6) \ N -- N -- N (70de6381a92d919c050e2067c54a0943db2c493f) 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=70de6381a92d919c050e2067c54a0943db2c493f commit 70de6381a92d919c050e2067c54a0943db2c493f Merge: fcd081d 496b845 Author: Brad King AuthorDate: Wed Mar 29 13:23:21 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:23:23 2017 -0400 Stage topic 'FindBoost-1.64-deps' Topic-id: 23283 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/629 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fcd081d0e83a0d9e681e91ecadbfbb966f611856 commit fcd081d0e83a0d9e681e91ecadbfbb966f611856 Merge: 6dc7262 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:15:05 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=496b845a1e43117d31f33490f14215f8c94ab15d commit 496b845a1e43117d31f33490f14215f8c94ab15d Author: Roger Leigh AuthorDate: Sat Mar 25 22:26:31 2017 +0000 Commit: Brad King CommitDate: Tue Mar 28 10:23:16 2017 -0400 FindBoost: Add numpy dependency for 1.63 Note that 1.63 is missing the needed autolink information, so this is a manual addition. Fixes: #16612 diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index b1d90c4..8b21c84 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -738,6 +738,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic) set(_Boost_MPI_DEPENDENCIES serialization) set(_Boost_MPI_PYTHON_DEPENDENCIES python mpi serialization) + set(_Boost_NUMPY_DEPENDENCIES python) set(_Boost_RANDOM_DEPENDENCIES system) set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8352de538725f292fea20f54efc10ead173ee3b4 commit 8352de538725f292fea20f54efc10ead173ee3b4 Author: Roger Leigh AuthorDate: Sat Mar 25 22:24:22 2017 +0000 Commit: Brad King CommitDate: Tue Mar 28 10:23:11 2017 -0400 FindBoost: Update 1.64 dependencies using 1.64 beta1 diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index ef8435e..b1d90c4 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -746,6 +746,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_CHRONO_DEPENDENCIES system) set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time) set(_Boost_COROUTINE_DEPENDENCIES context system) + set(_Boost_COROUTINE2_DEPENDENCIES context fiber thread chrono system date_time) set(_Boost_FIBER_DEPENDENCIES context thread chrono system date_time) set(_Boost_FILESYSTEM_DEPENDENCIES system) set(_Boost_IOSTREAMS_DEPENDENCIES regex) @@ -753,6 +754,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic) set(_Boost_MPI_DEPENDENCIES serialization) set(_Boost_MPI_PYTHON_DEPENDENCIES python mpi serialization) + set(_Boost_NUMPY_DEPENDENCIES python) set(_Boost_RANDOM_DEPENDENCIES system) set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9defe9d63a44d99dadd440b64721f7d518dd31b6 commit 9defe9d63a44d99dadd440b64721f7d518dd31b6 Author: Roger Leigh AuthorDate: Sat Mar 25 22:30:21 2017 +0000 Commit: Brad King CommitDate: Tue Mar 28 10:23:11 2017 -0400 FindBoost: Add numpy header diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index a6f63f5..ef8435e 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -812,6 +812,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs) set(_Boost_PRG_EXEC_MONITOR_HEADERS "boost/test/prg_exec_monitor.hpp") set(_Boost_PROGRAM_OPTIONS_HEADERS "boost/program_options.hpp") set(_Boost_PYTHON_HEADERS "boost/python.hpp") + set(_Boost_NUMPY_HEADERS "boost/python/numpy.hpp") set(_Boost_RANDOM_HEADERS "boost/random.hpp") set(_Boost_REGEX_HEADERS "boost/regex.hpp") set(_Boost_SERIALIZATION_HEADERS "boost/serialization/serialization.hpp") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eb69cd94446c9e3ce2debf9d1260a6cfad851a1f commit eb69cd94446c9e3ce2debf9d1260a6cfad851a1f Author: Roger Leigh AuthorDate: Sat Mar 25 22:22:47 2017 +0000 Commit: Brad King CommitDate: Tue Mar 28 10:23:11 2017 -0400 BoostScanDeps: Add python numpy support Additionally correct indentation. diff --git a/Utilities/Scripts/BoostScanDeps.cmake b/Utilities/Scripts/BoostScanDeps.cmake index 2fd8f86..3d32ee0 100644 --- a/Utilities/Scripts/BoostScanDeps.cmake +++ b/Utilities/Scripts/BoostScanDeps.cmake @@ -35,19 +35,31 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs) # _boost_processed_headers - headers already parsed (or currently being parsed) # _boost_new_headers - new headers discovered for future processing + message(STATUS " Processing component ${component}") + set(library_component FALSE) # Start by finding all headers for the component; header # dependencies via #include will be solved by future passes - # Special-case since it is part of mpi; look only in boost/mpi/python* + # Special-case sub-component headers + file(GLOB_RECURSE _mpi_python_unprocessed_headers + RELATIVE "${includedir}" + "${includedir}/boost/mpi/python.hpp" + "${includedir}/boost/mpi/python/*") + file(GLOB_RECURSE _python_numpy_unprocessed_headers + RELATIVE "${includedir}" + "${includedir}/boost/python/numpy.hpp" + "${includedir}/boost/python/numpy/*") + if(component STREQUAL "mpi_python") set(_boost_DEPS "python") set(library_component TRUE) - file(GLOB_RECURSE _boost_unprocessed_headers - RELATIVE "${includedir}" - "${includedir}/boost/mpi/python/*") - list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/mpi/python.hpp") + set(_boost_unprocessed_headers "${_mpi_python_unprocessed_headers}") + elseif(component STREQUAL "numpy") + set(_boost_DEPS "python") + set(library_component TRUE) + set(_boost_unprocessed_headers "${_python_numpy_unprocessed_headers}") # Special-case since it is a serialization variant; look in boost/serialization elseif(component STREQUAL "wserialization") set(library_component TRUE) @@ -80,6 +92,12 @@ function(_Boost_FIND_COMPONENT_DEPENDENCIES component includedir _ret_libs) RELATIVE "${includedir}" "${includedir}/boost/${component}/*") list(INSERT _boost_unprocessed_headers 0 "${includedir}/boost/${component}.hpp") + if(component STREQUAL "mpi") + list(REMOVE_ITEM _boost_unprocessed_headers ${_mpi_python_unprocessed_headers}) + endif() + if(component STREQUAL "python") + list(REMOVE_ITEM _boost_unprocessed_headers ${_python_numpy_unprocessed_headers}) + endif() endif() while(_boost_unprocessed_headers) @@ -168,22 +186,26 @@ if(IS_DIRECTORY "${BOOST_DIR}/boost/mpi" AND IS_DIRECTORY "${BOOST_DIR}/boost/python") list(APPEND boost_components "mpi_python") endif() +# Special-case numpy, since it's a part of python +if(EXISTS "${BOOST_DIR}/boost/python/numpy.hpp") + list(APPEND boost_components "numpy") +endif() # Special-case wserialization, which is a variant of serialization if(IS_DIRECTORY "${BOOST_DIR}/boost/serialization") - list(APPEND boost_components "wserialization") + list(APPEND boost_components "wserialization") endif() # Special-case math* since there are six libraries, but no actual math # library component. Handle specially when scanning above. # # Special-case separate test libraries, which are all part of test if(EXISTS "${BOOST_DIR}/test/unit_test.hpp") - list(APPEND boost_components "unit_test_framework") + list(APPEND boost_components "unit_test_framework") endif() if(EXISTS "${BOOST_DIR}/test/prg_exec_monitor.hpp") - list(APPEND boost_components "prg_exec_monitor") + list(APPEND boost_components "prg_exec_monitor") endif() if(EXISTS "${BOOST_DIR}/test/test_exec_monitor.hpp") - list(APPEND boost_components "test_exec_monitor") + list(APPEND boost_components "test_exec_monitor") endif() if(boost_components) ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 4 ++++ Utilities/Scripts/BoostScanDeps.cmake | 40 +++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-613-g6a5a214 Message-ID: <20170329133502.A6144FA712@public.kitware.com> 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 6a5a214f43cccc83fbe3dd6de4747aba43088701 (commit) via d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (commit) from 6dc7262bf77f551a7f3c36d7ca3023c63ef20af8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-620-g4f7e913 Message-ID: <20170329133502.E70BDFA716@public.kitware.com> 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 70de6381a92d919c050e2067c54a0943db2c493f (commit) discards fcd081d0e83a0d9e681e91ecadbfbb966f611856 (commit) via 4f7e91331af6c356e91cf01132e2a82cea4bce4a (commit) via 331e44eb8c922143f7956d000bc561c021a16e76 (commit) via 6a5a214f43cccc83fbe3dd6de4747aba43088701 (commit) via d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (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 (70de6381a92d919c050e2067c54a0943db2c493f) \ N -- N -- N (4f7e91331af6c356e91cf01132e2a82cea4bce4a) 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=4f7e91331af6c356e91cf01132e2a82cea4bce4a commit 4f7e91331af6c356e91cf01132e2a82cea4bce4a Merge: 331e44e 496b845 Author: Brad King AuthorDate: Wed Mar 29 13:23:21 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:25:52 2017 -0400 Stage topic 'FindBoost-1.64-deps' Topic-id: 23283 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/629 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=331e44eb8c922143f7956d000bc561c021a16e76 commit 331e44eb8c922143f7956d000bc561c021a16e76 Merge: 6a5a214 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:25:51 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc3-18-gd4a9957 Message-ID: <20170329133503.0A400FA717@public.kitware.com> 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, release has been updated via d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (commit) via fff34934e70da77c359e47c53ffd04701bcd7611 (commit) via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit) via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit) via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit) via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit) from 85abc5f5aa5f8afbca88e7b3e1c919db49756ecb (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++- Modules/Platform/Windows-MSVC.cmake | 3 +++ Source/cmIDEOptions.cxx | 5 +++++ Source/cmIDEOptions.h | 2 ++ Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++----- Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++- 6 files changed, 37 insertions(+), 7 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 09:45:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 09:45:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-623-gbdc5141 Message-ID: <20170329134502.303C5F6981@public.kitware.com> 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 bdc5141f31e33ab4516a46fcee6e612baa583f84 (commit) via 77139e320c8ec7f92e1298cc57fea7276faceb12 (commit) via c03141c04cededf6bf31d51627cd8b29c7668495 (commit) from 4f7e91331af6c356e91cf01132e2a82cea4bce4a (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=bdc5141f31e33ab4516a46fcee6e612baa583f84 commit bdc5141f31e33ab4516a46fcee6e612baa583f84 Merge: 4f7e913 77139e3 Author: Brad King AuthorDate: Wed Mar 29 13:39:21 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 09:39:24 2017 -0400 Stage topic '16742-swift-3.0' Topic-id: 23323 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=77139e320c8ec7f92e1298cc57fea7276faceb12 commit 77139e320c8ec7f92e1298cc57fea7276faceb12 Author: Gregor Jasny AuthorDate: Wed Mar 29 15:32:01 2017 +0200 Commit: Gregor Jasny CommitDate: Wed Mar 29 15:36:05 2017 +0200 Swift: Simplify mixed test case to make it version agnostic Issue: #16742 diff --git a/Tests/SwiftMix/ObjCMain.m b/Tests/SwiftMix/ObjCMain.m index 5a8700c..20f0bf1 100644 --- a/Tests/SwiftMix/ObjCMain.m +++ b/Tests/SwiftMix/ObjCMain.m @@ -1,10 +1,4 @@ #import "SwiftMix-Swift.h" int ObjCMain(int argc, char const* const argv[]) { - if ([SwiftMainClass respondsToSelector:@selector(SwiftMain:argv:)]) { - return [SwiftMainClass SwiftMain:argc argv:argv]; - } - if ([SwiftMainClass respondsToSelector:@selector(SwiftMainWithArgc:argv:)]) { - return [SwiftMainClass SwiftMainWithArgc:argc argv:argv]; - } - return -1; + return [SwiftMainClass SwiftMain]; } diff --git a/Tests/SwiftMix/SwiftMain.swift b/Tests/SwiftMix/SwiftMain.swift index 921439a..a4a0a62 100644 --- a/Tests/SwiftMix/SwiftMain.swift +++ b/Tests/SwiftMix/SwiftMain.swift @@ -1,19 +1,8 @@ import Foundation @objc class SwiftMainClass : NSObject { - class func SwiftMain(argc:Int, argv:UnsafePointer>) -> Int32 { - dump("argc: \(argc)") -#if swift(>=3.0) - for i in 0 ..< argc { - let argi = String(cString:argv[i]); - dump("arg[\(i)]: \(argi)"); - } -#else - for (var i = 0; i < argc; ++i) { - let argi = String.fromCString(argv[i]) - dump("arg[\(i)]: \(argi)"); - } -#endif + class func SwiftMain() -> Int32 { + dump("Hello World!"); return 0; } } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c03141c04cededf6bf31d51627cd8b29c7668495 commit c03141c04cededf6bf31d51627cd8b29c7668495 Author: Gregor Jasny AuthorDate: Tue Mar 28 16:04:02 2017 +0200 Commit: Brad King CommitDate: Tue Mar 28 16:06:29 2017 -0400 Swift: Default to Swift 3.0 with Xcode 8.3 and later Xcode 8.3 has dropped support for Swift 2.3 so that compiler and feature detection failed. Closes #16742 diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index bb34de5..c41a986 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -269,7 +269,13 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} set(id_toolset "") endif() if("${lang}" STREQUAL "Swift") - set(id_lang_version "SWIFT_VERSION = 2.3;") + if(CMAKE_Swift_LANGUAGE_VERSION) + set(id_lang_version "SWIFT_VERSION = ${CMAKE_Swift_LANGUAGE_VERSION};") + elseif(XCODE_VERSION VERSION_GREATER_EQUAL 8.3) + set(id_lang_version "SWIFT_VERSION = 3.0;") + else() + set(id_lang_version "SWIFT_VERSION = 2.3;") + endif() else() set(id_lang_version "") endif() diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 8627cf2..dd771b1 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -3075,10 +3075,14 @@ bool cmGlobalXCodeGenerator::CreateXCodeObjects( this->CreateString(this->GeneratorToolset)); } if (this->GetLanguageEnabled("Swift")) { - std::string swiftVersion = "2.3"; + std::string swiftVersion; if (const char* vers = this->CurrentMakefile->GetDefinition( "CMAKE_Swift_LANGUAGE_VERSION")) { swiftVersion = vers; + } else if (this->XcodeVersion >= 83) { + swiftVersion = "3.0"; + } else { + swiftVersion = "2.3"; } buildSettings->AddAttribute("SWIFT_VERSION", this->CreateString(swiftVersion)); diff --git a/Tests/SwiftMix/ObjCMain.m b/Tests/SwiftMix/ObjCMain.m index 7fa90ae..5a8700c 100644 --- a/Tests/SwiftMix/ObjCMain.m +++ b/Tests/SwiftMix/ObjCMain.m @@ -1,4 +1,10 @@ #import "SwiftMix-Swift.h" int ObjCMain(int argc, char const* const argv[]) { - return [SwiftMainClass SwiftMain:argc argv:argv]; + if ([SwiftMainClass respondsToSelector:@selector(SwiftMain:argv:)]) { + return [SwiftMainClass SwiftMain:argc argv:argv]; + } + if ([SwiftMainClass respondsToSelector:@selector(SwiftMainWithArgc:argv:)]) { + return [SwiftMainClass SwiftMainWithArgc:argc argv:argv]; + } + return -1; } diff --git a/Tests/SwiftMix/SwiftMain.swift b/Tests/SwiftMix/SwiftMain.swift index 3629ac8..921439a 100644 --- a/Tests/SwiftMix/SwiftMain.swift +++ b/Tests/SwiftMix/SwiftMain.swift @@ -3,10 +3,17 @@ import Foundation @objc class SwiftMainClass : NSObject { class func SwiftMain(argc:Int, argv:UnsafePointer>) -> Int32 { dump("argc: \(argc)") +#if swift(>=3.0) + for i in 0 ..< argc { + let argi = String(cString:argv[i]); + dump("arg[\(i)]: \(argi)"); + } +#else for (var i = 0; i < argc; ++i) { let argi = String.fromCString(argv[i]) dump("arg[\(i)]: \(argi)"); } +#endif return 0; } } ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +++++++- Source/cmGlobalXCodeGenerator.cxx | 6 +++++- Tests/SwiftMix/ObjCMain.m | 2 +- Tests/SwiftMix/SwiftMain.swift | 8 ++------ 4 files changed, 15 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 10:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 10:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-626-gc9728d7 Message-ID: <20170329143503.32592FA6E7@public.kitware.com> 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 c9728d7adef051ae309d8dfa3cce1f505936e4cf (commit) via b070947dffd141d50227c59feed4c3d784b39157 (commit) via 42c68aadf81a47d563392421636e14ef77644e03 (commit) from bdc5141f31e33ab4516a46fcee6e612baa583f84 (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=c9728d7adef051ae309d8dfa3cce1f505936e4cf commit c9728d7adef051ae309d8dfa3cce1f505936e4cf Merge: bdc5141 b070947 Author: Brad King AuthorDate: Wed Mar 29 14:31:25 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 10:31:27 2017 -0400 Stage topic 'ctest-disable-tests' Topic-id: 22988 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/571 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b070947dffd141d50227c59feed4c3d784b39157 commit b070947dffd141d50227c59feed4c3d784b39157 Author: Betsy McPhail AuthorDate: Mon Mar 27 14:08:50 2017 -0400 Commit: Brad King CommitDate: Wed Mar 29 10:29:57 2017 -0400 Add 'DISABLED' test property When this property is set, the test is skipped and its status is automatically set to 'Not Run'. A disabled test will not be counted in the total number of tests and its completion status will be 'Disabled'. diff --git a/Help/manual/cmake-properties.7.rst b/Help/manual/cmake-properties.7.rst index 9967d00..072d7c5 100644 --- a/Help/manual/cmake-properties.7.rst +++ b/Help/manual/cmake-properties.7.rst @@ -325,6 +325,7 @@ Properties on Tests /prop_test/ATTACHED_FILES /prop_test/COST /prop_test/DEPENDS + /prop_test/DISABLED /prop_test/ENVIRONMENT /prop_test/FAIL_REGULAR_EXPRESSION /prop_test/FIXTURES_CLEANUP diff --git a/Help/prop_test/DISABLED.rst b/Help/prop_test/DISABLED.rst new file mode 100644 index 0000000..c18ae7f --- /dev/null +++ b/Help/prop_test/DISABLED.rst @@ -0,0 +1,15 @@ +DISABLED +-------- + +If set to true, the test will be skipped and its status will be 'Not Run'. A +DISABLED test will not be counted in the total number of tests and its +completion status will be reported to CDash as 'Disabled'. + +A DISABLED test does not participate in test fixture dependency resolution. +If a DISABLED test has fixture requirements defined in its +:prop_test:`FIXTURES_REQUIRED` property, it will not cause setup or cleanup +tests for those fixtures to be added to the test set. + +If a test with the :prop_test:`FIXTURES_SETUP` property set is DISABLED, the +fixture behavior will be as though that setup test was passing and any test +case requiring that fixture will still run. diff --git a/Help/release/dev/ctest-disable-tests.rst b/Help/release/dev/ctest-disable-tests.rst new file mode 100644 index 0000000..9208f0c --- /dev/null +++ b/Help/release/dev/ctest-disable-tests.rst @@ -0,0 +1,5 @@ +ctest-disable-tests +------------------- + +* A :prop_test:`DISABLED` test property was added to mark tests that + are configured but explicitly disabled so they do not run. diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index ff465ab..2d4726c 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -163,7 +163,9 @@ void cmCTestMultiProcessHandler::StartTestProcess(int test) this->TestRunningMap[test] = false; this->RunningCount -= GetProcessorsUsed(test); testRun->EndTest(this->Completed, this->Total, false); - this->Failed->push_back(this->Properties[test]->Name); + if (!this->Properties[test]->Disabled) { + this->Failed->push_back(this->Properties[test]->Name); + } delete testRun; } } diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index be2b59e..94aa4bd 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -256,6 +256,8 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) cmCTestLog(this->CTest, HANDLER_OUTPUT, "Other"); this->TestResult.Status = cmCTestTestHandler::OTHER_FAULT; } + } else if ("Disabled" == this->TestResult.CompletionStatus) { + cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Not Run (Disabled) "); } else // cmsysProcess_State_Error { cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Not Run "); @@ -416,6 +418,24 @@ bool cmCTestRunTest::StartTest(size_t total) << this->TestProperties->Index << ": " << this->TestProperties->Name << std::endl); this->ProcessOutput.clear(); + + // Return immediately if test is disabled + if (this->TestProperties->Disabled) { + this->TestResult.Properties = this->TestProperties; + this->TestResult.ExecutionTime = 0; + this->TestResult.CompressOutput = false; + this->TestResult.ReturnValue = -1; + this->TestResult.CompletionStatus = "Disabled"; + this->TestResult.Status = cmCTestTestHandler::NOT_RUN; + this->TestResult.TestCount = this->TestProperties->Index; + this->TestResult.Name = this->TestProperties->Name; + this->TestResult.Path = this->TestProperties->Directory; + this->TestProcess = new cmProcess; + this->TestResult.Output = "Disabled"; + this->TestResult.FullCommandLine = ""; + return false; + } + this->ComputeArguments(); std::vector& args = this->TestProperties->Args; this->TestResult.Properties = this->TestProperties; diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index f377de1..814b310 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -487,6 +487,19 @@ int cmCTestTestHandler::ProcessHandler() } } + typedef std::set + SetOfTests; + SetOfTests resultsSet(this->TestResults.begin(), this->TestResults.end()); + std::vector disabledTests; + + for (SetOfTests::iterator ftit = resultsSet.begin(); + ftit != resultsSet.end(); ++ftit) { + if (ftit->CompletionStatus == "Disabled") { + disabledTests.push_back(*ftit); + } + } + float percent = float(passed.size()) * 100.0f / float(total); if (!failed.empty() && percent > 99) { percent = 99; @@ -505,21 +518,33 @@ int cmCTestTestHandler::ProcessHandler() "\nTotal Test time (real) = " << realBuf << "\n", this->Quiet); + if (!disabledTests.empty()) { + cmGeneratedFileStream ofs; + cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl + << "The following tests are disabled and did not run:" + << std::endl); + this->StartLogFile("TestsDisabled", ofs); + + for (std::vector::iterator dtit = + disabledTests.begin(); + dtit != disabledTests.end(); ++dtit) { + ofs << dtit->TestCount << ":" << dtit->Name << std::endl; + cmCTestLog(this->CTest, HANDLER_OUTPUT, "\t" + << std::setw(3) << dtit->TestCount << " - " << dtit->Name + << std::endl); + } + } + if (!failed.empty()) { cmGeneratedFileStream ofs; cmCTestLog(this->CTest, HANDLER_OUTPUT, std::endl << "The following tests FAILED:" << std::endl); this->StartLogFile("TestsFailed", ofs); - typedef std::set - SetOfTests; - SetOfTests resultsSet(this->TestResults.begin(), - this->TestResults.end()); - for (SetOfTests::iterator ftit = resultsSet.begin(); ftit != resultsSet.end(); ++ftit) { - if (ftit->Status != cmCTestTestHandler::COMPLETED) { + if (ftit->Status != cmCTestTestHandler::COMPLETED && + ftit->CompletionStatus != "Disabled") { ofs << ftit->TestCount << ":" << ftit->Name << std::endl; cmCTestLog( this->CTest, HANDLER_OUTPUT, "\t" @@ -841,6 +866,11 @@ void cmCTestTestHandler::UpdateForFixtures(ListOfTests& tests) const size_t fixtureTestsAdded = 0; std::set addedFixtures; for (size_t i = 0; i < tests.size(); ++i) { + // Skip disabled tests + if (tests[i].Disabled) { + continue; + } + // There are two things to do for each test: // 1. For every fixture required by this test, record that fixture as // being required and create dependencies on that fixture's setup @@ -1200,6 +1230,7 @@ void cmCTestTestHandler::GenerateDartOutput(cmXMLWriter& xml) cmCTestTestResult* result = &this->TestResults[cc]; this->WriteTestResultHeader(xml, result); xml.StartElement("Results"); + if (result->Status != cmCTestTestHandler::NOT_RUN) { if (result->Status != cmCTestTestHandler::COMPLETED || result->ReturnValue) { @@ -1208,6 +1239,7 @@ void cmCTestTestHandler::GenerateDartOutput(cmXMLWriter& xml) xml.Attribute("name", "Exit Code"); xml.Element("Value", this->GetTestStatus(result->Status)); xml.EndElement(); // NamedMeasurement + xml.StartElement("NamedMeasurement"); xml.Attribute("type", "text/string"); xml.Attribute("name", "Exit Value"); @@ -2001,6 +2033,9 @@ bool cmCTestTestHandler::SetTestsProperties( if (key == "WILL_FAIL") { rtit->WillFail = cmSystemTools::IsOn(val.c_str()); } + if (key == "DISABLED") { + rtit->Disabled = cmSystemTools::IsOn(val.c_str()); + } if (key == "ATTACHED_FILES") { cmSystemTools::ExpandListArgument(val, rtit->AttachedFiles); } @@ -2179,6 +2214,7 @@ bool cmCTestTestHandler::AddTest(const std::vector& args) test.IsInBasedOnREOptions = true; test.WillFail = false; + test.Disabled = false; test.RunSerial = false; test.Timeout = 0; test.ExplicitTimeout = false; diff --git a/Source/CTest/cmCTestTestHandler.h b/Source/CTest/cmCTestTestHandler.h index 5b07e98..a95f088 100644 --- a/Source/CTest/cmCTestTestHandler.h +++ b/Source/CTest/cmCTestTestHandler.h @@ -114,6 +114,7 @@ public: std::map Measurements; bool IsInBasedOnREOptions; bool WillFail; + bool Disabled; float Cost; int PreviousRuns; bool RunSerial; diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 217f0d5..e2dc128 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -202,6 +202,7 @@ endif() add_RunCMake_test(ctest_start) add_RunCMake_test(ctest_submit) add_RunCMake_test(ctest_test) +add_RunCMake_test(ctest_disabled_test) add_RunCMake_test(ctest_upload) add_RunCMake_test(ctest_fixtures) add_RunCMake_test(file) diff --git a/Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in b/Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in new file mode 100644 index 0000000..d34fcac --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.7) +project(@CASE_NAME@ NONE) +include(CTest) + +add_test(NAME SuccessfulTest COMMAND "${CMAKE_COMMAND}" --version) + at CASE_CMAKELISTS_SUFFIX_CODE@ diff --git a/Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in b/Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in new file mode 100644 index 0000000..c0d7e42 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in @@ -0,0 +1 @@ +set(CTEST_PROJECT_NAME "@CASE_NAME@") diff --git a/Tests/RunCMake/ctest_disabled_test/DisableAllTests-result.txt b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-result.txt new file mode 100644 index 0000000..b57e2de --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-result.txt @@ -0,0 +1 @@ +(-1|255) diff --git a/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stderr.txt b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stderr.txt new file mode 100644 index 0000000..eafba1c --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stderr.txt @@ -0,0 +1 @@ +No tests were found!!! diff --git a/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt new file mode 100644 index 0000000..6c824f6 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt @@ -0,0 +1,2 @@ + Start 1: SuccessfulTest +1/1 Test #1: SuccessfulTest ...................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec diff --git a/Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt new file mode 100644 index 0000000..ee0dc51 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt @@ -0,0 +1,11 @@ + Start 1: SuccessfulTest +1/2 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec + Start 2: CleanupTest +2/2 Test #2: CleanupTest ......................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec ++ +100% tests passed, 0 tests failed out of 1 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*2 \- CleanupTest diff --git a/Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt new file mode 100644 index 0000000..e2c9f92 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt @@ -0,0 +1,9 @@ +50% tests passed, 1 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*3 \- DisabledFailingTest ++ +The following tests FAILED: +.*2 \- FailingTest \(Failed\) diff --git a/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-result.txt b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-result.txt new file mode 100644 index 0000000..b57e2de --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-result.txt @@ -0,0 +1 @@ +(-1|255) diff --git a/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt new file mode 100644 index 0000000..83c332b --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt @@ -0,0 +1 @@ +Unable to find executable: invalidCommand diff --git a/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt new file mode 100644 index 0000000..d8bf966 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt @@ -0,0 +1,17 @@ + Start 1: SuccessfulTest +1/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec + Start 2: DisabledTest +2/3 Test #2: DisabledTest .....................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec + Start 3: NotRunTest +.* +3/3 Test #3: NotRunTest .......................\*\*\*\Not Run +[0-9.]+ sec ++ +50% tests passed, 1 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*2 \- DisabledTest ++ +The following tests FAILED: +.*3 - NotRunTest \(Not Run\) diff --git a/Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt new file mode 100644 index 0000000..886efb8 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt @@ -0,0 +1,13 @@ + Start 1: SuccessfulTest +1/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec + Start 2: DisabledTest +2/3 Test #2: DisabledTest .....................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec + Start 3: SuccessfulCleanupTest +3/3 Test #3: SuccessfulCleanupTest ............ Passed +[0-9.]+ sec ++ +100% tests passed, 0 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*2 \- DisabledTest diff --git a/Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt new file mode 100644 index 0000000..dc27950 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt @@ -0,0 +1,13 @@ + Start 2: DisabledTest +1/3 Test #2: DisabledTest .....................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec + Start 1: SuccessfulTest +2/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec + Start 3: SuccessfulCleanupTest +3/3 Test #3: SuccessfulCleanupTest ............ Passed +[0-9.]+ sec ++ +100% tests passed, 0 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*2 \- DisabledTest diff --git a/Tests/RunCMake/ctest_disabled_test/DisabledTest-result.txt b/Tests/RunCMake/ctest_disabled_test/DisabledTest-result.txt new file mode 100644 index 0000000..b57e2de --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisabledTest-result.txt @@ -0,0 +1 @@ +(-1|255) diff --git a/Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt b/Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt new file mode 100644 index 0000000..83c332b --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt @@ -0,0 +1 @@ +Unable to find executable: invalidCommand diff --git a/Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt b/Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt new file mode 100644 index 0000000..d8bf966 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt @@ -0,0 +1,17 @@ + Start 1: SuccessfulTest +1/3 Test #1: SuccessfulTest ................... Passed +[0-9.]+ sec + Start 2: DisabledTest +2/3 Test #2: DisabledTest .....................\*\*\*\Not Run \(Disabled\) +[0-9.]+ sec + Start 3: NotRunTest +.* +3/3 Test #3: NotRunTest .......................\*\*\*\Not Run +[0-9.]+ sec ++ +50% tests passed, 1 tests failed out of 2 ++ +Total Test time \(real\) = +[0-9.]+ sec ++ +The following tests are disabled and did not run: +.*2 \- DisabledTest ++ +The following tests FAILED: +.*3 - NotRunTest \(Not Run\) diff --git a/Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake b/Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake new file mode 100644 index 0000000..12541c4 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake @@ -0,0 +1,89 @@ +include(RunCTest) + +function(run_DisableNotRunTest) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +add_test(NAME DisabledTest COMMAND notACommand --version) +add_test(NAME NotRunTest COMMAND invalidCommand --version) + +set_tests_properties(SuccessfulTest PROPERTIES DISABLED false) +set_tests_properties(DisabledTest PROPERTIES DISABLED true) + ]]) + run_ctest(DisableNotRunTest) +endfunction() +run_DisableNotRunTest() + +function(run_DisableFailingTest) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +set(someFile "${CMAKE_CURRENT_SOURCE_DIR}/test.cmake") +add_test(NAME FailingTest + COMMAND ${CMAKE_COMMAND} -E compare_files "${someFile}" "${someFile}xxx") +add_test(NAME DisabledFailingTest + COMMAND ${CMAKE_COMMAND} -E compare_files "${someFile}" "${someFile}xxx") + +set_tests_properties(FailingTest PROPERTIES DISABLED false) +set_tests_properties(DisabledFailingTest PROPERTIES DISABLED true) + ]]) + run_ctest(DisableFailingTest) +endfunction() +run_DisableFailingTest() + +function(run_DisableSetupTest) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +add_test(NAME DisabledTest COMMAND "${CMAKE_COMMAND}" --version) +add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version) + +set_tests_properties(DisabledTest PROPERTIES DISABLED true + FIXTURES_SETUP "Foo") +set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo") +set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") + ]]) +run_ctest(DisableSetupTest) +endfunction() +run_DisableSetupTest() + +function(run_DisableRequiredTest) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +add_test(NAME DisabledTest COMMAND "${CMAKE_COMMAND}" --version) +add_test(NAME SuccessfulCleanupTest COMMAND "${CMAKE_COMMAND}" --version) + +set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_SETUP "Foo") +set_tests_properties(DisabledTest PROPERTIES DISABLED true + FIXTURES_REQUIRED "Foo") +set_tests_properties(SuccessfulCleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") + ]]) +run_ctest(DisableRequiredTest) +endfunction() +run_DisableRequiredTest() + +function(run_DisableCleanupTest) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +add_test(NAME CleanupTest COMMAND "${CMAKE_COMMAND}" --version) + +set_tests_properties(SuccessfulTest PROPERTIES FIXTURES_REQUIRED "Foo") +set_tests_properties(CleanupTest PROPERTIES DISABLED true + FIXTURES_CLEANUP "Foo") + ]]) +run_ctest(DisableCleanupTest) +endfunction() +run_DisableCleanupTest() + +# Consider a fixture that has a setup test, a cleanup test and a disabled test +# which requires that fixture. Limit the test list with a regular expression +# that matches the disabled test but not the setup or cleanup tests, so the +# initial set of tests to be executed contains just the disabled test. Since +# the only test requiring the fixture is disabled, CTest should not +# automatically add in the setup and cleanup tests for the fixture, since no +# enabled test requires them. +function(run_DisableAllTests) + set(CASE_CMAKELISTS_SUFFIX_CODE [[ +add_test(NAME SetupTest COMMAND "${CMAKE_COMMAND}" --version) +add_test(NAME CleanupTest COMMAND "${CMAKE_COMMAND}" --version) + +set_tests_properties(SetupTest PROPERTIES FIXTURES_SETUP "Foo") +set_tests_properties(SuccessfulTest PROPERTIES DISABLED true + FIXTURES_REQUIRED "Foo") +set_tests_properties(CleanupTest PROPERTIES FIXTURES_CLEANUP "Foo") + ]]) +run_ctest(DisableAllTests -R Successful) +endfunction() +run_DisableAllTests() diff --git a/Tests/RunCMake/ctest_disabled_test/test.cmake.in b/Tests/RunCMake/ctest_disabled_test/test.cmake.in new file mode 100644 index 0000000..ca23c83 --- /dev/null +++ b/Tests/RunCMake/ctest_disabled_test/test.cmake.in @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.7) + +set(CTEST_SITE "test-site") +set(CTEST_BUILD_NAME "test-build-name") +set(CTEST_SOURCE_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@") +set(CTEST_BINARY_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME at -build") +set(CTEST_CMAKE_GENERATOR "@RunCMake_GENERATOR@") +set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@") +set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@") +set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") + +set(ctest_test_args "@CASE_CTEST_TEST_ARGS@") +ctest_start(Experimental) +ctest_configure() +ctest_build() +ctest_test(${ctest_test_args}) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42c68aadf81a47d563392421636e14ef77644e03 commit 42c68aadf81a47d563392421636e14ef77644e03 Author: Betsy McPhail AuthorDate: Mon Mar 13 12:50:14 2017 -0400 Commit: Betsy McPhail CommitDate: Mon Mar 27 14:21:21 2017 -0400 CTest: Improve 'Completion Status' reported to CDash for 'Not Run' tests Previously, the completion status of not run tests was always set to "Not Run". Make it more descriptive. This value is written to `Test.xml` and then displayed as 'Test Details' in CDash. diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx index f148f30..be2b59e 100644 --- a/Source/CTest/cmCTestRunTest.cxx +++ b/Source/CTest/cmCTestRunTest.cxx @@ -215,6 +215,9 @@ bool cmCTestRunTest::EndTest(size_t completed, size_t total, bool started) if (this->TestProperties->SkipReturnCode >= 0 && this->TestProperties->SkipReturnCode == retVal) { this->TestResult.Status = cmCTestTestHandler::NOT_RUN; + std::ostringstream s; + s << "SKIP_RETURN_CODE=" << this->TestProperties->SkipReturnCode; + this->TestResult.CompletionStatus = s.str(); cmCTestLog(this->CTest, HANDLER_OUTPUT, "***Skipped "); } else if ((success && !this->TestProperties->WillFail) || (!success && this->TestProperties->WillFail)) { @@ -437,7 +440,7 @@ bool cmCTestRunTest::StartTest(size_t total) cmCTestLog(this->CTest, HANDLER_OUTPUT, msg << std::endl); this->TestResult.Output = msg; this->TestResult.FullCommandLine = ""; - this->TestResult.CompletionStatus = "Not Run"; + this->TestResult.CompletionStatus = "Fixture dependency failed"; this->TestResult.Status = cmCTestTestHandler::NOT_RUN; return false; } @@ -457,7 +460,7 @@ bool cmCTestRunTest::StartTest(size_t total) cmCTestLog(this->CTest, ERROR_MESSAGE, msg << std::endl); this->TestResult.Output = msg; this->TestResult.FullCommandLine = ""; - this->TestResult.CompletionStatus = "Not Run"; + this->TestResult.CompletionStatus = "Missing Configuration"; this->TestResult.Status = cmCTestTestHandler::NOT_RUN; return false; } @@ -477,7 +480,7 @@ bool cmCTestRunTest::StartTest(size_t total) "Unable to find required file: " << file << std::endl); this->TestResult.Output = "Unable to find required file: " + file; this->TestResult.FullCommandLine = ""; - this->TestResult.CompletionStatus = "Not Run"; + this->TestResult.CompletionStatus = "Required Files Missing"; this->TestResult.Status = cmCTestTestHandler::NOT_RUN; return false; } @@ -493,7 +496,7 @@ bool cmCTestRunTest::StartTest(size_t total) "Unable to find executable: " << args[1] << std::endl); this->TestResult.Output = "Unable to find executable: " + args[1]; this->TestResult.FullCommandLine = ""; - this->TestResult.CompletionStatus = "Not Run"; + this->TestResult.CompletionStatus = "Unable to find executable"; this->TestResult.Status = cmCTestTestHandler::NOT_RUN; return false; } diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx index 9d22065..f377de1 100644 --- a/Source/CTest/cmCTestTestHandler.cxx +++ b/Source/CTest/cmCTestTestHandler.cxx @@ -1222,8 +1222,7 @@ void cmCTestTestHandler::GenerateDartOutput(cmXMLWriter& xml) xml.EndElement(); // NamedMeasurement if (!result->Reason.empty()) { const char* reasonType = "Pass Reason"; - if (result->Status != cmCTestTestHandler::COMPLETED && - result->Status != cmCTestTestHandler::NOT_RUN) { + if (result->Status != cmCTestTestHandler::COMPLETED) { reasonType = "Fail Reason"; } xml.StartElement("NamedMeasurement"); @@ -1232,12 +1231,14 @@ void cmCTestTestHandler::GenerateDartOutput(cmXMLWriter& xml) xml.Element("Value", result->Reason); xml.EndElement(); // NamedMeasurement } - xml.StartElement("NamedMeasurement"); - xml.Attribute("type", "text/string"); - xml.Attribute("name", "Completion Status"); - xml.Element("Value", result->CompletionStatus); - xml.EndElement(); // NamedMeasurement } + + xml.StartElement("NamedMeasurement"); + xml.Attribute("type", "text/string"); + xml.Attribute("name", "Completion Status"); + xml.Element("Value", result->CompletionStatus); + xml.EndElement(); // NamedMeasurement + xml.StartElement("NamedMeasurement"); xml.Attribute("type", "text/string"); xml.Attribute("name", "Command Line"); ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/prop_test/DISABLED.rst | 15 ++++ Help/release/dev/ctest-disable-tests.rst | 5 ++ Source/CTest/cmCTestMultiProcessHandler.cxx | 4 +- Source/CTest/cmCTestRunTest.cxx | 31 ++++++- Source/CTest/cmCTestTestHandler.cxx | 65 +++++++++++--- Source/CTest/cmCTestTestHandler.h | 1 + Tests/RunCMake/CMakeLists.txt | 1 + .../RunCMake/ctest_disabled_test/CMakeLists.txt.in | 6 ++ .../ctest_disabled_test/CTestConfig.cmake.in | 1 + .../DisableAllTests-result.txt} | 0 .../DisableAllTests-stderr.txt} | 0 .../ctest_disabled_test/DisableAllTests-stdout.txt | 2 + .../DisableCleanupTest-stdout.txt | 11 +++ .../DisableFailingTest-stdout.txt | 9 ++ .../DisableNotRunTest-result.txt} | 0 .../DisableNotRunTest-stderr.txt | 1 + .../DisableNotRunTest-stdout.txt | 17 ++++ .../DisableRequiredTest-stdout.txt | 13 +++ .../DisableSetupTest-stdout.txt | 13 +++ .../DisabledTest-result.txt} | 0 .../ctest_disabled_test/DisabledTest-stderr.txt | 1 + .../ctest_disabled_test/DisabledTest-stdout.txt | 17 ++++ .../ctest_disabled_test/RunCMakeTest.cmake | 89 ++++++++++++++++++++ Tests/RunCMake/ctest_disabled_test/test.cmake.in | 16 ++++ 25 files changed, 300 insertions(+), 19 deletions(-) create mode 100644 Help/prop_test/DISABLED.rst create mode 100644 Help/release/dev/ctest-disable-tests.rst create mode 100644 Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in create mode 100644 Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableAllTests-result.txt} (100%) copy Tests/RunCMake/{CTestCommandLine/test-load-fail-stderr.txt => ctest_disabled_test/DisableAllTests-stderr.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableNotRunTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisabledTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/ctest_disabled_test/test.cmake.in hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 13:25:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 13:25:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-634-gaf34df7 Message-ID: <20170329172503.4B7A4FA2C2@public.kitware.com> 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 af34df7415c288c64b816938992e5b9ecfe5d312 (commit) via 48cfb295a2810e541bd286f352d77d840be345f7 (commit) via 90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 (commit) via ab5f4e81f305e48234546583a2c8c4334cea78f0 (commit) via f8ed8bef84dcd4746ee223bd34f05b7c995cb363 (commit) via 8647c6cd6825764b8cd69828c185bad14ffc8a7e (commit) via 21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 (commit) via a2275bdd636987abcf002fad000c4f02d615d219 (commit) from c9728d7adef051ae309d8dfa3cce1f505936e4cf (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=af34df7415c288c64b816938992e5b9ecfe5d312 commit af34df7415c288c64b816938992e5b9ecfe5d312 Merge: c9728d7 48cfb29 Author: Daniel Pfeifer AuthorDate: Wed Mar 29 17:17:18 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 13:17:21 2017 -0400 Stage topic 'iwyu' Topic-id: 23274 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/626 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=48cfb295a2810e541bd286f352d77d840be345f7 commit 48cfb295a2810e541bd286f352d77d840be345f7 Author: Daniel Pfeifer AuthorDate: Sat Mar 25 00:03:48 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:48 2017 +0200 cmFortranParser: remove unnecessary typedef diff --git a/Source/cmFortranParser.h b/Source/cmFortranParser.h index e8273fb..024b00a 100644 --- a/Source/cmFortranParser.h +++ b/Source/cmFortranParser.h @@ -54,8 +54,7 @@ void cmFortranParser_RuleElse(cmFortranParser* parser); void cmFortranParser_RuleEndif(cmFortranParser* parser); /* Define the parser stack element type. */ -typedef union cmFortran_yystype_u cmFortran_yystype; -union cmFortran_yystype_u +struct cmFortran_yystype { char* string; }; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 commit 90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 Author: Daniel Pfeifer AuthorDate: Sat Mar 25 00:00:29 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 cmCommandArgumentParserHelper: remove unnecessary include diff --git a/Source/cmCommandArgumentParserHelper.cxx b/Source/cmCommandArgumentParserHelper.cxx index 2d66344..1222d5a 100644 --- a/Source/cmCommandArgumentParserHelper.cxx +++ b/Source/cmCommandArgumentParserHelper.cxx @@ -2,8 +2,6 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmCommandArgumentParserHelper.h" -#include - #include "cmCommandArgumentLexer.h" #include "cmMakefile.h" #include "cmState.h" https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ab5f4e81f305e48234546583a2c8c4334cea78f0 commit ab5f4e81f305e48234546583a2c8c4334cea78f0 Author: Daniel Pfeifer AuthorDate: Fri Mar 24 23:59:53 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 cmFortranParserImpl: remove unnecessary include diff --git a/Source/cmFortranParserImpl.cxx b/Source/cmFortranParserImpl.cxx index 1a5e6c5..1abe673 100644 --- a/Source/cmFortranParserImpl.cxx +++ b/Source/cmFortranParserImpl.cxx @@ -1,7 +1,6 @@ /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmFortranParser.h" -#include "cmFortranLexer.h" #include "cmSystemTools.h" #include https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f8ed8bef84dcd4746ee223bd34f05b7c995cb363 commit f8ed8bef84dcd4746ee223bd34f05b7c995cb363 Author: Daniel Pfeifer AuthorDate: Fri Mar 24 23:58:37 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 testEncoding: use cmsys::ifstream diff --git a/Tests/CMakeLib/testEncoding.cxx b/Tests/CMakeLib/testEncoding.cxx index 20ba9e3..403c896 100644 --- a/Tests/CMakeLib/testEncoding.cxx +++ b/Tests/CMakeLib/testEncoding.cxx @@ -1,4 +1,4 @@ -#include +#include #include #include @@ -39,7 +39,7 @@ int main(int argc, char* argv[]) setEncoding(consoleOut, CP_OEMCP); } // else AUTO #endif - std::ifstream file(argv[2]); + cmsys::ifstream file(argv[2]); if (!file.is_open()) { std::cout << "Failed to open file: " << argv[2] << std::endl; return 2; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8647c6cd6825764b8cd69828c185bad14ffc8a7e commit 8647c6cd6825764b8cd69828c185bad14ffc8a7e Author: Daniel Pfeifer AuthorDate: Fri Mar 24 23:57:42 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 testEncoding: include on Windows only diff --git a/Tests/CMakeLib/testEncoding.cxx b/Tests/CMakeLib/testEncoding.cxx index 88743b0..20ba9e3 100644 --- a/Tests/CMakeLib/testEncoding.cxx +++ b/Tests/CMakeLib/testEncoding.cxx @@ -2,7 +2,9 @@ #include #include +#ifdef _WIN32 #include +#endif #ifdef _WIN32 void setEncoding(cmsys::ConsoleBuf::Manager& buf, UINT codepage) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 commit 21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 Author: Daniel Pfeifer AuthorDate: Fri Mar 24 23:56:00 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 cmFileCommand: add include diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 7a6e2b7..f78b764 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -37,6 +37,7 @@ #if defined(CMAKE_BUILD_WITH_CMAKE) #include "cmCurl.h" #include "cmFileLockResult.h" +#include #endif #if defined(CMAKE_USE_ELF_PARSER) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a2275bdd636987abcf002fad000c4f02d615d219 commit a2275bdd636987abcf002fad000c4f02d615d219 Author: Daniel Pfeifer AuthorDate: Fri Mar 24 23:54:58 2017 +0100 Commit: Daniel Pfeifer CommitDate: Wed Mar 29 18:48:47 2017 +0200 cmFileCommand: remove unnecessary friend declaration diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 97292f9..7a6e2b7 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -1028,8 +1028,6 @@ protected: { } }; - struct MatchRule; - friend struct MatchRule; struct MatchRule { cmsys::RegularExpression Regex; ----------------------------------------------------------------------- Summary of changes: Source/cmCommandArgumentParserHelper.cxx | 2 -- Source/cmFileCommand.cxx | 3 +-- Source/cmFortranParser.h | 3 +-- Source/cmFortranParserImpl.cxx | 1 - Tests/CMakeLib/testEncoding.cxx | 6 ++++-- 5 files changed, 6 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 13:35:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 13:35:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-636-g0e71929 Message-ID: <20170329173504.E961EFA647@public.kitware.com> 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 0e71929e43279e3a806d476786a58d1c4e948083 (commit) via 5695558f4a5f0d68cd1c200258b89d1524ff230f (commit) from af34df7415c288c64b816938992e5b9ecfe5d312 (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=0e71929e43279e3a806d476786a58d1c4e948083 commit 0e71929e43279e3a806d476786a58d1c4e948083 Merge: af34df7 5695558 Author: Brad King AuthorDate: Wed Mar 29 17:31:32 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 13:31:52 2017 -0400 Stage topic 'sdcc-compiler-id' Topic-id: 23359 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/644 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5695558f4a5f0d68cd1c200258b89d1524ff230f commit 5695558f4a5f0d68cd1c200258b89d1524ff230f Author: Brad King AuthorDate: Wed Mar 29 11:51:31 2017 -0400 Commit: Brad King CommitDate: Wed Mar 29 13:21:49 2017 -0400 SDCC: Fix identification of current sdcc compiler The sdcc compiler no longer defines the `SDCC` preprocessor macro. Instead `__SDCC_VERSION_MAJOR` and similar component-wise macros are defined. Use them instead if defined. Issue: #16746 diff --git a/Modules/Compiler/SDCC-C-DetermineCompiler.cmake b/Modules/Compiler/SDCC-C-DetermineCompiler.cmake index 1d7dd78..4c70c5e 100644 --- a/Modules/Compiler/SDCC-C-DetermineCompiler.cmake +++ b/Modules/Compiler/SDCC-C-DetermineCompiler.cmake @@ -1,10 +1,16 @@ # sdcc, the small devices C compiler for embedded systems, # http://sdcc.sourceforge.net */ -set(_compiler_id_pp_test "defined(SDCC)") +set(_compiler_id_pp_test "defined(__SDCC_VERSION_MAJOR) || defined(SDCC)") set(_compiler_id_version_compute " +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR @MACRO_DEC@(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR @MACRO_DEC@(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH @MACRO_DEC@(__SDCC_VERSION_PATCH) +# else /* SDCC = VRP */ # define COMPILER_VERSION_MAJOR @MACRO_DEC@(SDCC/100) # define COMPILER_VERSION_MINOR @MACRO_DEC@(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH @MACRO_DEC@(SDCC % 10)") +# define COMPILER_VERSION_PATCH @MACRO_DEC@(SDCC % 10) +# endif") ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/SDCC-C-DetermineCompiler.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 16:35:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 16:35:01 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-638-gfcb2d3e Message-ID: <20170329203501.DFE4EFA541@public.kitware.com> 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 fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 (commit) via 01a8a201a7549369ea331516f8c6caa459074a8a (commit) from 0e71929e43279e3a806d476786a58d1c4e948083 (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=fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 commit fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 Merge: 0e71929 01a8a20 Author: Brad King AuthorDate: Wed Mar 29 20:27:58 2017 +0000 Commit: Kitware Robot CommitDate: Wed Mar 29 16:28:06 2017 -0400 Stage topic '10749-aix-version' Topic-id: 23363 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/645 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=01a8a201a7549369ea331516f8c6caa459074a8a commit 01a8a201a7549369ea331516f8c6caa459074a8a Author: Gregor Jasny AuthorDate: Wed Mar 29 21:14:36 2017 +0200 Commit: Gregor Jasny CommitDate: Wed Mar 29 21:20:23 2017 +0200 AIX: Properly detect host system version CMakeDetermineSystem.cmake uses "uname -r" to get CMAKE_HOST_SYSTEM_VERSION on AIX. AIX uses "uname -v" for the major version and "uname -r" for the minor version. Thanks to Chris Taylor for the suggested patch. Closes #10749 diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake index f34ec5d..20dcf1b 100644 --- a/Modules/CMakeDetermineSystem.cmake +++ b/Modules/CMakeDetermineSystem.cmake @@ -35,7 +35,15 @@ if(CMAKE_HOST_UNIX) find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) if(CMAKE_UNAME) - exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) + if(CMAKE_HOST_SYSTEM_NAME STREQUAL "AIX") + exec_program(${CMAKE_UNAME} ARGS -v OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MAJOR_VERSION) + exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE _CMAKE_HOST_SYSTEM_MINOR_VERSION) + set(CMAKE_HOST_SYSTEM_VERSION "${_CMAKE_HOST_SYSTEM_MAJOR_VERSION}.${_CMAKE_HOST_SYSTEM_MINOR_VERSION}") + unset(_CMAKE_HOST_SYSTEM_MAJOR_VERSION) + unset(_CMAKE_HOST_SYSTEM_MINOR_VERSION) + else() + exec_program(${CMAKE_UNAME} ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) + endif() if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*|Darwin|^GNU$") exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR RETURN_VALUE val) ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineSystem.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc3-638-gfcb2d3e Message-ID: <20170330010505.9FDBDFA6DB@public.kitware.com> 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, nightly has been updated discards 896e195588bde813ad6e0cc8af7fe1594d37907c (commit) discards dc5ea8ee24a81a7b5e9a05232c00a4e85528641c (commit) discards 10a48e620ee872e32642ed5ad1e993776be2a694 (commit) discards eb3978b6688c4233a42b890ebc26e278940942b1 (commit) discards bc35c1bb7b1175e79dd8bc177fb47f8367fae26b (commit) discards 3b32fdc5d1530368b5b05d009f59bca79759d1c1 (commit) via fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 (commit) via 01a8a201a7549369ea331516f8c6caa459074a8a (commit) via 0e71929e43279e3a806d476786a58d1c4e948083 (commit) via 5695558f4a5f0d68cd1c200258b89d1524ff230f (commit) via af34df7415c288c64b816938992e5b9ecfe5d312 (commit) via 48cfb295a2810e541bd286f352d77d840be345f7 (commit) via 90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 (commit) via ab5f4e81f305e48234546583a2c8c4334cea78f0 (commit) via f8ed8bef84dcd4746ee223bd34f05b7c995cb363 (commit) via 8647c6cd6825764b8cd69828c185bad14ffc8a7e (commit) via 21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 (commit) via a2275bdd636987abcf002fad000c4f02d615d219 (commit) via c9728d7adef051ae309d8dfa3cce1f505936e4cf (commit) via b070947dffd141d50227c59feed4c3d784b39157 (commit) via bdc5141f31e33ab4516a46fcee6e612baa583f84 (commit) via 77139e320c8ec7f92e1298cc57fea7276faceb12 (commit) via 4f7e91331af6c356e91cf01132e2a82cea4bce4a (commit) via 331e44eb8c922143f7956d000bc561c021a16e76 (commit) via 6a5a214f43cccc83fbe3dd6de4747aba43088701 (commit) via d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (commit) via 6dc7262bf77f551a7f3c36d7ca3023c63ef20af8 (commit) via 4a6a27ad85a4be666a3bb4260105a54ba1cea0eb (commit) via 2b9086d26614787bbc47b8ee47514583f6814e5d (commit) via ece20f7ae84db12b4ba95768e6aa5cc7e8832585 (commit) via 3e4e6594da5668d7f80a1192594d9ee4fc790eb8 (commit) via 8e8f1118b947905e0e881ea3d9cc881f5fdce89d (commit) via c03141c04cededf6bf31d51627cd8b29c7668495 (commit) via 496b845a1e43117d31f33490f14215f8c94ab15d (commit) via 8352de538725f292fea20f54efc10ead173ee3b4 (commit) via 9defe9d63a44d99dadd440b64721f7d518dd31b6 (commit) via eb69cd94446c9e3ce2debf9d1260a6cfad851a1f (commit) via 42c68aadf81a47d563392421636e14ef77644e03 (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 (896e195588bde813ad6e0cc8af7fe1594d37907c) \ N -- N -- N (fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/manual/cmake.1.rst | 3 + Help/prop_test/DISABLED.rst | 15 ++++ Help/release/dev/ctest-disable-tests.rst | 5 ++ Modules/CMakeDetermineSystem.cmake | 10 ++- Modules/Compiler/SDCC-C-DetermineCompiler.cmake | 10 ++- Modules/FindBoost.cmake | 4 + Source/CMakeVersion.cmake | 2 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 4 +- Source/CTest/cmCTestRunTest.cxx | 31 ++++++- Source/CTest/cmCTestTestHandler.cxx | 65 +++++++++++--- Source/CTest/cmCTestTestHandler.h | 1 + Source/cmCommandArgumentParserHelper.cxx | 2 - Source/cmFileCommand.cxx | 6 +- Source/cmFortranParser.h | 3 +- Source/cmFortranParserImpl.cxx | 1 - Tests/CMakeLib/testEncoding.cxx | 6 +- Tests/RunCMake/CMakeLists.txt | 1 + .../RunCMake/ctest_disabled_test/CMakeLists.txt.in | 6 ++ .../ctest_disabled_test/CTestConfig.cmake.in | 1 + .../DisableAllTests-result.txt} | 0 .../DisableAllTests-stderr.txt} | 0 .../ctest_disabled_test/DisableAllTests-stdout.txt | 2 + .../DisableCleanupTest-stdout.txt | 11 +++ .../DisableFailingTest-stdout.txt | 9 ++ .../DisableNotRunTest-result.txt} | 0 .../DisableNotRunTest-stderr.txt | 1 + .../DisableNotRunTest-stdout.txt | 17 ++++ .../DisableRequiredTest-stdout.txt | 13 +++ .../DisableSetupTest-stdout.txt | 13 +++ .../DisabledTest-result.txt} | 0 .../ctest_disabled_test/DisabledTest-stderr.txt | 1 + .../ctest_disabled_test/DisabledTest-stdout.txt | 17 ++++ .../ctest_disabled_test/RunCMakeTest.cmake | 89 ++++++++++++++++++++ Tests/RunCMake/ctest_disabled_test/test.cmake.in | 16 ++++ Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt | 3 + Tests/RunCMake/file/INSTALL-SYMLINK.cmake | 13 +++ Tests/RunCMake/file/RunCMakeTest.cmake | 1 + Tests/SwiftMix/ObjCMain.m | 8 +- Tests/SwiftMix/SwiftMain.swift | 15 +--- Utilities/Scripts/BoostScanDeps.cmake | 40 +++++++-- 41 files changed, 385 insertions(+), 61 deletions(-) create mode 100644 Help/prop_test/DISABLED.rst create mode 100644 Help/release/dev/ctest-disable-tests.rst create mode 100644 Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in create mode 100644 Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableAllTests-result.txt} (100%) copy Tests/RunCMake/{CTestCommandLine/test-load-fail-stderr.txt => ctest_disabled_test/DisableAllTests-stderr.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableNotRunTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisabledTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/ctest_disabled_test/test.cmake.in create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Wed Mar 29 21:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Wed, 29 Mar 2017 21:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc3-613-g6a5a214 Message-ID: <20170330010506.78A4EFA6E7@public.kitware.com> 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, nightly-master has been updated via 6a5a214f43cccc83fbe3dd6de4747aba43088701 (commit) via d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (commit) via 6dc7262bf77f551a7f3c36d7ca3023c63ef20af8 (commit) via 4a6a27ad85a4be666a3bb4260105a54ba1cea0eb (commit) via 2b9086d26614787bbc47b8ee47514583f6814e5d (commit) via ece20f7ae84db12b4ba95768e6aa5cc7e8832585 (commit) via 3e4e6594da5668d7f80a1192594d9ee4fc790eb8 (commit) via 62b85c940622bdcc25964ed95bec68a562de59ee (commit) via fff34934e70da77c359e47c53ffd04701bcd7611 (commit) via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit) via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit) via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit) via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit) via 7a411dfbf6d9987869fd39e57f38f6a9c3d548aa (commit) via cdd2875ad2f1d5e0b0bc92ca1dff4f0c14d3424b (commit) via e9c5505bf9c51c34dea703b86a293ff04475db54 (commit) from cc4fbda1a9fffd8927de870643f167f066b26bcd (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++- Modules/Platform/Windows-MSVC.cmake | 3 +++ Source/CMakeVersion.cmake | 2 +- Source/cmIDEOptions.cxx | 5 +++++ Source/cmIDEOptions.h | 2 ++ Source/cmLocalVisualStudio7Generator.cxx | 10 ++++++---- Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++----- Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++- Source/kwsys/FStream.hxx.in | 4 ++-- Utilities/Sphinx/conf.py.in | 20 ++++++++++++++++++++ 10 files changed, 66 insertions(+), 14 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-614-gf6d802b Message-ID: <20170330040505.381EEFA5DB@public.kitware.com> 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 f6d802b5bcd201f48c7af47f27ec9e1dd0062171 (commit) from 6a5a214f43cccc83fbe3dd6de4747aba43088701 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-639-g8484d6e Message-ID: <20170330040505.F3CA8FA5E7@public.kitware.com> 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 fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 (commit) discards 0e71929e43279e3a806d476786a58d1c4e948083 (commit) discards af34df7415c288c64b816938992e5b9ecfe5d312 (commit) discards c9728d7adef051ae309d8dfa3cce1f505936e4cf (commit) discards bdc5141f31e33ab4516a46fcee6e612baa583f84 (commit) discards 4f7e91331af6c356e91cf01132e2a82cea4bce4a (commit) discards 331e44eb8c922143f7956d000bc561c021a16e76 (commit) via 8484d6edc18a7f269be41f2f7adca80f2a0c369e (commit) via 3ee9f77955119027fa12818738d300dc1a960cec (commit) via abb1f72c377f5a69133ef3dc9ff9f65e9b900e42 (commit) via 7f74589f2e9ac77969e79edfc9f325faa066d3a8 (commit) via 7e6ce4eca5523c986109093599cf5ba95f81b03c (commit) via 9dc40c3713658207ba0ff11ff79c3a12a83619ca (commit) via 1cd27c31feef05b7be776758670e3c2f18acbf35 (commit) via f6d802b5bcd201f48c7af47f27ec9e1dd0062171 (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 (fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541) \ N -- N -- N (8484d6edc18a7f269be41f2f7adca80f2a0c369e) 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=8484d6edc18a7f269be41f2f7adca80f2a0c369e commit 8484d6edc18a7f269be41f2f7adca80f2a0c369e Merge: 3ee9f77 01a8a20 Author: Brad King AuthorDate: Wed Mar 29 20:27:58 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:27 2017 -0400 Stage topic '10749-aix-version' Topic-id: 23363 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/645 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3ee9f77955119027fa12818738d300dc1a960cec commit 3ee9f77955119027fa12818738d300dc1a960cec Merge: abb1f72 5695558 Author: Brad King AuthorDate: Wed Mar 29 17:31:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:27 2017 -0400 Stage topic 'sdcc-compiler-id' Topic-id: 23359 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/644 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=abb1f72c377f5a69133ef3dc9ff9f65e9b900e42 commit abb1f72c377f5a69133ef3dc9ff9f65e9b900e42 Merge: 7f74589 48cfb29 Author: Daniel Pfeifer AuthorDate: Wed Mar 29 17:17:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:26 2017 -0400 Stage topic 'iwyu' Topic-id: 23274 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/626 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7f74589f2e9ac77969e79edfc9f325faa066d3a8 commit 7f74589f2e9ac77969e79edfc9f325faa066d3a8 Merge: 7e6ce4e b070947 Author: Brad King AuthorDate: Wed Mar 29 14:31:25 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:25 2017 -0400 Stage topic 'ctest-disable-tests' Topic-id: 22988 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/571 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e6ce4eca5523c986109093599cf5ba95f81b03c commit 7e6ce4eca5523c986109093599cf5ba95f81b03c Merge: 9dc40c3 77139e3 Author: Brad King AuthorDate: Wed Mar 29 13:39:21 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:23 2017 -0400 Stage topic '16742-swift-3.0' Topic-id: 23323 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9dc40c3713658207ba0ff11ff79c3a12a83619ca commit 9dc40c3713658207ba0ff11ff79c3a12a83619ca Merge: 1cd27c3 496b845 Author: Brad King AuthorDate: Wed Mar 29 13:23:21 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:23 2017 -0400 Stage topic 'FindBoost-1.64-deps' Topic-id: 23283 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/629 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1cd27c31feef05b7be776758670e3c2f18acbf35 commit 1cd27c31feef05b7be776758670e3c2f18acbf35 Merge: f6d802b 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 00:01:23 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 06:45:24 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 06:45:24 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-634-g9da9936 Message-ID: <20170330104524.F0089E4742@public.kitware.com> 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 8484d6edc18a7f269be41f2f7adca80f2a0c369e (commit) discards 3ee9f77955119027fa12818738d300dc1a960cec (commit) discards abb1f72c377f5a69133ef3dc9ff9f65e9b900e42 (commit) discards 7f74589f2e9ac77969e79edfc9f325faa066d3a8 (commit) discards 7e6ce4eca5523c986109093599cf5ba95f81b03c (commit) discards 9dc40c3713658207ba0ff11ff79c3a12a83619ca (commit) discards 496b845a1e43117d31f33490f14215f8c94ab15d (commit) discards 8352de538725f292fea20f54efc10ead173ee3b4 (commit) discards 9defe9d63a44d99dadd440b64721f7d518dd31b6 (commit) discards eb69cd94446c9e3ce2debf9d1260a6cfad851a1f (commit) via 9da9936ec88418db8ff9e3c24dd9cef555bf4e1b (commit) via 4365fba40c780f02e7efe9dda34e165c7668b83f (commit) via 9b870ce1707a6bda6e443f5e80526dbbf7d84552 (commit) via 3daa07f0dbcf2902d3ebc2b2b72c92123ffae670 (commit) via 0126907cb88cadde3bb627a88d3f9484a1462cae (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 (8484d6edc18a7f269be41f2f7adca80f2a0c369e) \ N -- N -- N (9da9936ec88418db8ff9e3c24dd9cef555bf4e1b) 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=9da9936ec88418db8ff9e3c24dd9cef555bf4e1b commit 9da9936ec88418db8ff9e3c24dd9cef555bf4e1b Merge: 4365fba 01a8a20 Author: Brad King AuthorDate: Wed Mar 29 20:27:58 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 06:43:57 2017 -0400 Stage topic '10749-aix-version' Topic-id: 23363 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/645 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4365fba40c780f02e7efe9dda34e165c7668b83f commit 4365fba40c780f02e7efe9dda34e165c7668b83f Merge: 9b870ce 5695558 Author: Brad King AuthorDate: Wed Mar 29 17:31:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 06:43:57 2017 -0400 Stage topic 'sdcc-compiler-id' Topic-id: 23359 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/644 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9b870ce1707a6bda6e443f5e80526dbbf7d84552 commit 9b870ce1707a6bda6e443f5e80526dbbf7d84552 Merge: 3daa07f 48cfb29 Author: Daniel Pfeifer AuthorDate: Wed Mar 29 17:17:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 06:43:56 2017 -0400 Stage topic 'iwyu' Topic-id: 23274 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/626 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3daa07f0dbcf2902d3ebc2b2b72c92123ffae670 commit 3daa07f0dbcf2902d3ebc2b2b72c92123ffae670 Merge: 0126907 b070947 Author: Brad King AuthorDate: Wed Mar 29 14:31:25 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 06:43:56 2017 -0400 Stage topic 'ctest-disable-tests' Topic-id: 22988 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/571 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0126907cb88cadde3bb627a88d3f9484a1462cae commit 0126907cb88cadde3bb627a88d3f9484a1462cae Merge: 1cd27c3 77139e3 Author: Brad King AuthorDate: Wed Mar 29 13:39:21 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 06:43:55 2017 -0400 Stage topic '16742-swift-3.0' Topic-id: 23323 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/638 ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 4 ---- Utilities/Scripts/BoostScanDeps.cmake | 40 ++++++++------------------------- 2 files changed, 9 insertions(+), 35 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 08:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 08:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-617-g7bb8b38 Message-ID: <20170330125503.4B4C6FA64E@public.kitware.com> 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 7bb8b38cce0715c758aa3eb252a9dfc0bda1e2c7 (commit) via 77139e320c8ec7f92e1298cc57fea7276faceb12 (commit) via c03141c04cededf6bf31d51627cd8b29c7668495 (commit) from f6d802b5bcd201f48c7af47f27ec9e1dd0062171 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +++++++- Source/cmGlobalXCodeGenerator.cxx | 6 +++++- Tests/SwiftMix/ObjCMain.m | 2 +- Tests/SwiftMix/SwiftMain.swift | 8 ++------ 4 files changed, 15 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 08:55:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 08:55:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-634-gbd55c2b Message-ID: <20170330125503.92EADFA654@public.kitware.com> 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 9da9936ec88418db8ff9e3c24dd9cef555bf4e1b (commit) discards 4365fba40c780f02e7efe9dda34e165c7668b83f (commit) discards 9b870ce1707a6bda6e443f5e80526dbbf7d84552 (commit) discards 3daa07f0dbcf2902d3ebc2b2b72c92123ffae670 (commit) discards 0126907cb88cadde3bb627a88d3f9484a1462cae (commit) discards 1cd27c31feef05b7be776758670e3c2f18acbf35 (commit) via bd55c2b5e748d753817f0079994fe38f2d1a6366 (commit) via a3f9c7a118e268c649a3e830759530fad4625382 (commit) via 73b6a318ebe01dedaf3ca39a6ddf3a05adb5141b (commit) via e790535b8212c1ab4eb6c4096ebd8f049e0a75d6 (commit) via db4f732fd356fcf5b86bc125db459f3371bb1175 (commit) via 7bb8b38cce0715c758aa3eb252a9dfc0bda1e2c7 (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 (9da9936ec88418db8ff9e3c24dd9cef555bf4e1b) \ N -- N -- N (bd55c2b5e748d753817f0079994fe38f2d1a6366) 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=bd55c2b5e748d753817f0079994fe38f2d1a6366 commit bd55c2b5e748d753817f0079994fe38f2d1a6366 Merge: a3f9c7a 01a8a20 Author: Brad King AuthorDate: Wed Mar 29 20:27:58 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 08:53:00 2017 -0400 Stage topic '10749-aix-version' Topic-id: 23363 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/645 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3f9c7a118e268c649a3e830759530fad4625382 commit a3f9c7a118e268c649a3e830759530fad4625382 Merge: 73b6a31 5695558 Author: Brad King AuthorDate: Wed Mar 29 17:31:32 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 08:53:00 2017 -0400 Stage topic 'sdcc-compiler-id' Topic-id: 23359 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/644 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=73b6a318ebe01dedaf3ca39a6ddf3a05adb5141b commit 73b6a318ebe01dedaf3ca39a6ddf3a05adb5141b Merge: e790535 48cfb29 Author: Daniel Pfeifer AuthorDate: Wed Mar 29 17:17:18 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 08:53:00 2017 -0400 Stage topic 'iwyu' Topic-id: 23274 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/626 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e790535b8212c1ab4eb6c4096ebd8f049e0a75d6 commit e790535b8212c1ab4eb6c4096ebd8f049e0a75d6 Merge: db4f732 b070947 Author: Brad King AuthorDate: Wed Mar 29 14:31:25 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 08:52:59 2017 -0400 Stage topic 'ctest-disable-tests' Topic-id: 22988 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/571 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=db4f732fd356fcf5b86bc125db459f3371bb1175 commit db4f732fd356fcf5b86bc125db459f3371bb1175 Merge: 7bb8b38 8e8f111 Author: Domen Vrankar AuthorDate: Wed Mar 29 06:21:41 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 08:52:59 2017 -0400 Stage topic 'cmake-file-install-symlink-on-nonexistng-path' Topic-id: 23338 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/642 ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-634-g1cc918a Message-ID: <20170330130505.35EADFA716@public.kitware.com> 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 1cc918a770bf6dc763b593df39946667dc572c7d (commit) via a820327d1ae7c32df46cfa5b3caf56184d46eb72 (commit) via d66081b546c55c2066da0eac473b7a1d1d040936 (commit) via 2f359787f6a5d6da20621fb1a161c8cac49902bc (commit) via 7a6ab42f4712adf788156f127aacdad3e1c49cab (commit) via 556d98da3ba01f774ca79907478ef3130c95d2c5 (commit) via 5695558f4a5f0d68cd1c200258b89d1524ff230f (commit) via 48cfb295a2810e541bd286f352d77d840be345f7 (commit) via 90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 (commit) via ab5f4e81f305e48234546583a2c8c4334cea78f0 (commit) via f8ed8bef84dcd4746ee223bd34f05b7c995cb363 (commit) via 8647c6cd6825764b8cd69828c185bad14ffc8a7e (commit) via 21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 (commit) via a2275bdd636987abcf002fad000c4f02d615d219 (commit) via b070947dffd141d50227c59feed4c3d784b39157 (commit) via 8e8f1118b947905e0e881ea3d9cc881f5fdce89d (commit) via 42c68aadf81a47d563392421636e14ef77644e03 (commit) from 7bb8b38cce0715c758aa3eb252a9dfc0bda1e2c7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/manual/cmake.1.rst | 3 + Help/prop_test/DISABLED.rst | 15 ++++ Help/release/dev/ctest-disable-tests.rst | 5 ++ Modules/Compiler/SDCC-C-DetermineCompiler.cmake | 10 ++- Modules/FindBoost.cmake | 1 + Source/CTest/cmCTestMultiProcessHandler.cxx | 4 +- Source/CTest/cmCTestRunTest.cxx | 31 ++++++- Source/CTest/cmCTestTestHandler.cxx | 65 +++++++++++--- Source/CTest/cmCTestTestHandler.h | 1 + Source/cmCommandArgumentParserHelper.cxx | 2 - Source/cmFileCommand.cxx | 6 +- Source/cmFortranParser.h | 3 +- Source/cmFortranParserImpl.cxx | 1 - Tests/CMakeLib/testEncoding.cxx | 6 +- Tests/RunCMake/CMakeLists.txt | 1 + .../RunCMake/ctest_disabled_test/CMakeLists.txt.in | 6 ++ .../ctest_disabled_test/CTestConfig.cmake.in | 1 + .../DisableAllTests-result.txt} | 0 .../DisableAllTests-stderr.txt} | 0 .../ctest_disabled_test/DisableAllTests-stdout.txt | 2 + .../DisableCleanupTest-stdout.txt | 11 +++ .../DisableFailingTest-stdout.txt | 9 ++ .../DisableNotRunTest-result.txt} | 0 .../DisableNotRunTest-stderr.txt | 1 + .../DisableNotRunTest-stdout.txt | 17 ++++ .../DisableRequiredTest-stdout.txt | 13 +++ .../DisableSetupTest-stdout.txt | 13 +++ .../DisabledTest-result.txt} | 0 .../ctest_disabled_test/DisabledTest-stderr.txt | 1 + .../ctest_disabled_test/DisabledTest-stdout.txt | 17 ++++ .../ctest_disabled_test/RunCMakeTest.cmake | 89 ++++++++++++++++++++ Tests/RunCMake/ctest_disabled_test/test.cmake.in | 16 ++++ Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt | 3 + Tests/RunCMake/file/INSTALL-SYMLINK.cmake | 13 +++ Tests/RunCMake/file/RunCMakeTest.cmake | 1 + 36 files changed, 338 insertions(+), 30 deletions(-) create mode 100644 Help/prop_test/DISABLED.rst create mode 100644 Help/release/dev/ctest-disable-tests.rst create mode 100644 Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in create mode 100644 Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableAllTests-result.txt} (100%) copy Tests/RunCMake/{CTestCommandLine/test-load-fail-stderr.txt => ctest_disabled_test/DisableAllTests-stderr.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableNotRunTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisabledTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/ctest_disabled_test/test.cmake.in create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-636-gce9c4b4 Message-ID: <20170330130505.5E1A8FA718@public.kitware.com> 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 bd55c2b5e748d753817f0079994fe38f2d1a6366 (commit) discards a3f9c7a118e268c649a3e830759530fad4625382 (commit) discards 73b6a318ebe01dedaf3ca39a6ddf3a05adb5141b (commit) discards e790535b8212c1ab4eb6c4096ebd8f049e0a75d6 (commit) discards db4f732fd356fcf5b86bc125db459f3371bb1175 (commit) via ce9c4b4d2867c9704fb75020b4f310c6db25a431 (commit) via 1cc918a770bf6dc763b593df39946667dc572c7d (commit) via a820327d1ae7c32df46cfa5b3caf56184d46eb72 (commit) via d66081b546c55c2066da0eac473b7a1d1d040936 (commit) via 2f359787f6a5d6da20621fb1a161c8cac49902bc (commit) via 7a6ab42f4712adf788156f127aacdad3e1c49cab (commit) via 556d98da3ba01f774ca79907478ef3130c95d2c5 (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 (bd55c2b5e748d753817f0079994fe38f2d1a6366) \ N -- N -- N (ce9c4b4d2867c9704fb75020b4f310c6db25a431) 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=ce9c4b4d2867c9704fb75020b4f310c6db25a431 commit ce9c4b4d2867c9704fb75020b4f310c6db25a431 Merge: 1cc918a 01a8a20 Author: Brad King AuthorDate: Wed Mar 29 20:27:58 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 09:01:15 2017 -0400 Stage topic '10749-aix-version' Topic-id: 23363 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/645 ----------------------------------------------------------------------- Summary of changes: Modules/FindBoost.cmake | 1 + 1 file changed, 1 insertion(+) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-640-gc268850 Message-ID: <20170330131503.31FCDE644E@public.kitware.com> 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 c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (commit) via cb0f3cbb8e2e34e1948598355e151aee4953f7f6 (commit) via 18eeed41948b265168497ea3360e7b0d56e8e8a9 (commit) via 01a8a201a7549369ea331516f8c6caa459074a8a (commit) via cb4e731347e255f2bbb1f2d9593d8080c8718c5b (commit) via 6ca509e7c65a94f4b486bacef766bac717f5308f (commit) from 1cc918a770bf6dc763b593df39946667dc572c7d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineSystem.cmake | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-640-gc268850 Message-ID: <20170330131503.48AA7E644F@public.kitware.com> 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 ce9c4b4d2867c9704fb75020b4f310c6db25a431 (commit) via c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (commit) via cb0f3cbb8e2e34e1948598355e151aee4953f7f6 (commit) via 18eeed41948b265168497ea3360e7b0d56e8e8a9 (commit) via cb4e731347e255f2bbb1f2d9593d8080c8718c5b (commit) via 6ca509e7c65a94f4b486bacef766bac717f5308f (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 (ce9c4b4d2867c9704fb75020b4f310c6db25a431) \ N -- N -- N (c26885066b2a7a76e5ae97f2bfc7282f8182bed8) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:15:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:15:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc3-25-g18eeed4 Message-ID: <20170330131503.61190F1FEC@public.kitware.com> 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, release has been updated via 18eeed41948b265168497ea3360e7b0d56e8e8a9 (commit) via 556d98da3ba01f774ca79907478ef3130c95d2c5 (commit) via cb4e731347e255f2bbb1f2d9593d8080c8718c5b (commit) via 5695558f4a5f0d68cd1c200258b89d1524ff230f (commit) via 6ca509e7c65a94f4b486bacef766bac717f5308f (commit) via 77139e320c8ec7f92e1298cc57fea7276faceb12 (commit) via c03141c04cededf6bf31d51627cd8b29c7668495 (commit) from d4a995750a1e3101f943a0d2e91fc9688f5e23f7 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeDetermineCompilerId.cmake | 8 +++++++- Modules/Compiler/SDCC-C-DetermineCompiler.cmake | 10 ++++++++-- Modules/FindBoost.cmake | 1 + Source/cmGlobalXCodeGenerator.cxx | 6 +++++- Tests/SwiftMix/ObjCMain.m | 2 +- Tests/SwiftMix/SwiftMain.swift | 8 ++------ 6 files changed, 24 insertions(+), 11 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 09:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 09:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-643-gbcaac6a Message-ID: <20170330133502.C0949FA74E@public.kitware.com> 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 bcaac6a864e64fe3b6900051cc6b0fbf241fb6fb (commit) via 0c899e8d4d620b5aeca4979eb1fb4ac906942d6f (commit) via 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) from c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (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=bcaac6a864e64fe3b6900051cc6b0fbf241fb6fb commit bcaac6a864e64fe3b6900051cc6b0fbf241fb6fb Merge: c268850 0c899e8 Author: Brad King AuthorDate: Thu Mar 30 13:26:15 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 09:26:19 2017 -0400 Stage topic 'stage-release' Topic-id: 23252 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/622 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0c899e8d4d620b5aeca4979eb1fb4ac906942d6f commit 0c899e8d4d620b5aeca4979eb1fb4ac906942d6f Merge: c268850 9e32b88 Author: Brad King AuthorDate: Thu Mar 30 09:17:53 2017 -0400 Commit: Brad King CommitDate: Thu Mar 30 09:17:53 2017 -0400 Merge branch 'release' into stage-release https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9e32b88784e5e0f14258597fde162fcaf6290fea commit 9e32b88784e5e0f14258597fde162fcaf6290fea Author: Brad King AuthorDate: Thu Mar 30 09:16:41 2017 -0400 Commit: Brad King CommitDate: Thu Mar 30 09:16:41 2017 -0400 CMake 3.8.0-rc4 diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 8ae8b33..58497b3 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 3) +set(CMake_VERSION_RC 4) ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 10:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 10:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc3-642-g3e2f6bd Message-ID: <20170330143502.B3F19FA73F@public.kitware.com> 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 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (commit) via 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) from c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 10:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 10:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-642-g3e2f6bd Message-ID: <20170330143502.E29F0FA740@public.kitware.com> 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 bcaac6a864e64fe3b6900051cc6b0fbf241fb6fb (commit) discards 0c899e8d4d620b5aeca4979eb1fb4ac906942d6f (commit) via 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (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 (bcaac6a864e64fe3b6900051cc6b0fbf241fb6fb) \ N -- N -- N (3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 10:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 10:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, release, updated. v3.8.0-rc3-26-g9e32b88 Message-ID: <20170330143503.02576FA741@public.kitware.com> 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, release has been updated via 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) from 18eeed41948b265168497ea3360e7b0d56e8e8a9 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 10:45:01 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 10:45:01 -0400 (EDT) Subject: [Cmake-commits] CMake annotated tag, v3.8.0-rc4, created. v3.8.0-rc4 Message-ID: <20170330144501.B8F85F5DD8@public.kitware.com> 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 annotated tag, v3.8.0-rc4 has been created at 52edf05b496638c949c9daec3aef51da33793ca5 (tag) tagging 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) replaces v3.8.0-rc3 tagged by Brad King on Thu Mar 30 10:28:49 2017 -0400 - Log ----------------------------------------------------------------- CMake 3.8.0-rc4 -----BEGIN PGP SIGNATURE----- iQJKBAABCAA0FiEExsJlMku+vcNQtRPQLSzvEDSSFoQFAljdFiEWHGJyYWQua2lu Z0BraXR3YXJlLmNvbQAKCRAtLO8QNJIWhNeMEACs/fZeATfF1AeGcmY5gH83N2Q1 ceJW1yjMoKhd7zH1IJSbahSqJMyCyVD9JdQCkxBupOkKcwa+gcdclhbcJ7HjBieM LC+ZOXJUaerlAApnXUgnNXBhWR55Ox/O0Q6BUQcL1Q0g7IvjrG6uEIFyJo/h4Cww tzXTX6T2m8Mu0T/ig9qxH+PLYU8NSPlpdzyCCcQ7pq+mYZNhTmU9Xq72SgUaLi3X AZCDWSzTUchIX9WxqYMtvM6T8brUdMu+VTOjAVdPxXmuiqnBIjNQ0Lu+hY7lfIXQ G/1fC0Tc466ASSAnrT8qhIgDyXeqIuAs7UIanZZjDibnJO3fTxp2ucpzW+nr2Dko pUNeR/t2+TnsAUrVLoJ5m/h8DRSFJyFAu7fmJvbyU9wcwLVNeSy7EheBp6UMdwXI 6AEpKJ2LcQ1/nIbJTIDOwNwRVrh00/3pXU4UU2hoGpHFtNLEKAs6l1uG/nv7tZP0 ATvu6RWmrwDUcMIXQNBVpdH8qaKxyyPWNEJi0pJsXyGR90HKKQNo3zEpMLtgG/mg G4o9MD4RBng2rW7rdHv7T/KtnM+ewKeOl0fsf+Cg5+Nd2UIx9CpgylgnZCz81Xju gCSX076Qr+TeQNxSYReFJpW3SbOmKOl9W09HZ5MvwqIrmX+0y5edo3FwQsO2Q2yb V2HmLGPtg6byLHaaNA== =O0Mh -----END PGP SIGNATURE----- Brad King (20): Merge branch 'cpack-rpm-debuginfo-docs-cleanup' into release Merge branch 'cpack-rpm-tests-handle-build-id-links' into release InstallRequiredSystemLibraries: Split VS 2017 search paths Add undocumented CMake language means to find VS 2017 InstallRequiredSystemLibraries: Find VS 2017 redist directory Merge branch 'InstallRequiredSystemLibraries-vs2017' into release Merge branch 'ninja-fix-sysconf-non-limit' into release libarchive: backport zip directory recognition fix Merge branch 'libarchive-backport-zip-dir-fix' into release cmIDEOptions: Add GetDefines method cmVisualStudio10TargetGenerator: De-duplicate preprocessor defs VS: Honor preprocessor definitions in RC flags RC: Add missing CMAKE_RC_FLAGS_ entries to cache MSVC: Restore _DEBUG preprocessor definition in RC debug builds Merge branch 'vs-rc-defines' into release Merge branch '16742-swift-3.0' into release SDCC: Fix identification of current sdcc compiler Merge branch 'sdcc-compiler-id' into release Merge branch 'FindBoost-1.64-deps' into release CMake 3.8.0-rc4 Christian Pfeiffer (1): Ninja: Fix command line limit when sysconf has no ARG_MAX Domen Vrankar (2): CPack/RPM can now generate a single debuginfo package CPack/RPM tests: handle build-id links Gregor Jasny (2): Swift: Default to Swift 3.0 with Xcode 8.3 and later Swift: Simplify mixed test case to make it version agnostic Roger Leigh (1): FindBoost: Update 1.64 dependencies using 1.64 beta1 ----------------------------------------------------------------------- hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 11:05:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 11:05:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-621-gb68e609 Message-ID: <20170330150503.4850AFA78D@public.kitware.com> 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 b68e609a9c620ecfd64b51e4d86aa70ec641aa70 (commit) via 03fa5c84f012b35422f73dd47cc137fb7276452a (commit) via d7c6345c57b0c03c07f4c2456ccdf91dda52243e (commit) via a75757004bda0ff32a152a0d9d6379c02b1338ce (commit) via e05835c35b5d31f31e1a55baf415c075b24a27ad (commit) from 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (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=b68e609a9c620ecfd64b51e4d86aa70ec641aa70 commit b68e609a9c620ecfd64b51e4d86aa70ec641aa70 Merge: 3e2f6bd 03fa5c8 Author: Brad King AuthorDate: Thu Mar 30 15:01:11 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 11:01:14 2017 -0400 Stage topic 'ipo-policy-CMP0069' Topic-id: 22963 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/568 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=03fa5c84f012b35422f73dd47cc137fb7276452a commit 03fa5c84f012b35422f73dd47cc137fb7276452a Author: Ruslan Baratov AuthorDate: Tue Mar 28 14:47:42 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 10:16:47 2017 -0400 Implement interprocedural optimization for GNU compilers Honor the `INTERPROCEDURAL_OPTIMIZATION` target property for GNU compilers by activating their link-time-optimization (LTO) flags. diff --git a/Help/release/dev/gcc-ipo.rst b/Help/release/dev/gcc-ipo.rst new file mode 100644 index 0000000..ebc5c0d --- /dev/null +++ b/Help/release/dev/gcc-ipo.rst @@ -0,0 +1,7 @@ +GCC IPO +------- + +* Interprocedural optimization (IPO) is now supported for GNU + compilers using link time optimization (LTO) flags. See the + :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and + :module:`CheckIPOSupported` module. diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index 96263fc..6b99a08 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -27,5 +27,13 @@ else() set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=") set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() endif() diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index b67002c..4b1c598 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -45,4 +45,43 @@ macro(__compiler_gnu lang) if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462 set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + # '-flto' introduced since GCC 4.5: + # * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes) + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(__lto_flags -flto) + + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7) + # '-ffat-lto-objects' introduced since GCC 4.7: + # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes) + list(APPEND __lto_flags -fno-fat-lto-objects) + endif() + + set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags}) + + # Need to use version of 'ar'/'ranlib' with plugin support. + # Quote from [documentation][1]: + # + # To create static libraries suitable for LTO, + # use gcc-ar and gcc-ranlib instead of ar and ranlib + # + # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html + set(CMAKE_${lang}_ARCHIVE_CREATE_IPO + "${CMAKE_GCC_AR} cr " + ) + + set(CMAKE_${lang}_ARCHIVE_APPEND_IPO + "${CMAKE_GCC_AR} r " + ) + + set(CMAKE_${lang}_ARCHIVE_FINISH_IPO + "${CMAKE_GCC_RANLIB} " + ) + endif() endmacro() diff --git a/Modules/Compiler/QCC.cmake b/Modules/Compiler/QCC.cmake index 2d7e881..695a138 100644 --- a/Modules/Compiler/QCC.cmake +++ b/Modules/Compiler/QCC.cmake @@ -12,4 +12,12 @@ macro(__compiler_qcc lang) set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,") set(CMAKE_DEPFILE_FLAGS_${lang} "-Wc,-MD,,-MT,,-MF,") + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 326a49f..5d78dd3 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2472,19 +2472,28 @@ void cmGeneratorTarget::GetAppleArchs(const std::string& config, } } +//---------------------------------------------------------------------------- +std::string cmGeneratorTarget::GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const +{ + if (this->IsIPOEnabled(config)) { + std::string varIPO = var + "_IPO"; + if (this->Makefile->IsDefinitionSet(varIPO)) { + return varIPO; + } + } + + return var; +} + +//---------------------------------------------------------------------------- std::string cmGeneratorTarget::GetCreateRuleVariable( std::string const& lang, std::string const& config) const { switch (this->GetType()) { case cmStateEnums::STATIC_LIBRARY: { std::string var = "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; - if (this->IsIPOEnabled(config)) { - std::string varIPO = var + "_IPO"; - if (this->Makefile->GetDefinition(varIPO)) { - return varIPO; - } - } - return var; + return this->GetFeatureSpecificLinkRuleVariable(var, config); } case cmStateEnums::SHARED_LIBRARY: return "CMAKE_" + lang + "_CREATE_SHARED_LIBRARY"; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 80bccd5..2510407 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -309,6 +309,9 @@ public: void GetAppleArchs(const std::string& config, std::vector& archVec) const; + std::string GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const; + /** Return the rule variable used to create this type of target. */ std::string GetCreateRuleVariable(std::string const& lang, std::string const& config) const; diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 9ce13ec..cc8a6b3 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -129,14 +129,9 @@ void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() { std::string linkLanguage = this->GeneratorTarget->GetLinkerLanguage(this->ConfigName); - std::string linkRuleVar = "CMAKE_"; - linkRuleVar += linkLanguage; - linkRuleVar += "_CREATE_STATIC_LIBRARY"; - if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName) && - this->Makefile->GetDefinition(linkRuleVar + "_IPO")) { - linkRuleVar += "_IPO"; - } + std::string linkRuleVar = this->GeneratorTarget->GetCreateRuleVariable( + linkLanguage, this->ConfigName); std::string extraFlags; this->LocalGenerator->GetStaticLibraryFlags( @@ -676,18 +671,30 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules( std::string arCreateVar = "CMAKE_"; arCreateVar += linkLanguage; arCreateVar += "_ARCHIVE_CREATE"; + + arCreateVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arCreateVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arCreateVar)) { cmSystemTools::ExpandListArgument(rule, archiveCreateCommands); } std::string arAppendVar = "CMAKE_"; arAppendVar += linkLanguage; arAppendVar += "_ARCHIVE_APPEND"; + + arAppendVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arAppendVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arAppendVar)) { cmSystemTools::ExpandListArgument(rule, archiveAppendCommands); } std::string arFinishVar = "CMAKE_"; arFinishVar += linkLanguage; arFinishVar += "_ARCHIVE_FINISH"; + + arFinishVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arFinishVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arFinishVar)) { cmSystemTools::ExpandListArgument(rule, archiveFinishCommands); } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 5552fa9..eac3ecf 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -516,6 +516,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_CREATE"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } @@ -523,6 +527,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_FINISH"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d7c6345c57b0c03c07f4c2456ccdf91dda52243e commit d7c6345c57b0c03c07f4c2456ccdf91dda52243e Author: Ruslan Baratov AuthorDate: Thu Mar 9 21:05:19 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 10:16:44 2017 -0400 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was honored only for the Intel compiler on Linux and otherwise ignored. In order to add support for more compilers incrementally without changing behavior in the future, add a new policy whose NEW behavior enforces the `INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported compilers and otherwise produce an error. diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 0c9ee2d..7b85817 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -57,6 +57,7 @@ Policies Introduced by CMake 3.9 .. toctree:: :maxdepth: 1 + CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. CMP0068: RPATH settings on macOS do not affect install_name. Policies Introduced by CMake 3.8 diff --git a/Help/policy/CMP0069.rst b/Help/policy/CMP0069.rst new file mode 100644 index 0000000..b8f5d80 --- /dev/null +++ b/Help/policy/CMP0069.rst @@ -0,0 +1,92 @@ +CMP0069 +------- + +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` is enforced when enabled. + +CMake 3.9 and newer prefer to add IPO flags whenever the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is enabled and +produce an error if flags are not known to CMake for the current compiler. +Since a given compiler may not support IPO flags in all environments in which +it is used, it is now the project's responsibility to use the +:module:`CheckIPOSupported` module to check for support before enabling the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property. This approach +allows a project to conditionally activate IPO when supported. It also +allows an end user to set the :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` +variable in an environment known to support IPO even if the project does +not enable the property. + +Since CMake 3.8 and lower only honored :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` +for the Intel compiler on Linux, some projects may unconditionally enable the +target property. Policy ``CMP0069`` provides compatibility with such projects. + +This policy takes effect whenever the IPO property is enabled. The ``OLD`` +behavior for this policy is to add IPO flags only for Intel compiler on Linux. +The ``NEW`` behavior for this policy is to add IPO flags for the current +compiler or produce an error if CMake does not know the flags. + +This policy was introduced in CMake version 3.9. CMake version +|release| warns when the policy is not set and uses ``OLD`` behavior. +Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` +explicitly. + +.. include:: DEPRECATED.txt + +Examples +^^^^^^^^ + +Behave like CMake 3.8 and do not apply any IPO flags except for Intel compiler +on Linux: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.8) + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Use the :module:`CheckIPOSupported` module to detect whether IPO is +supported by the current compiler, environment, and CMake version. +Produce a fatal error if support is not available: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + check_ipo_support() + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Apply IPO flags only if compiler supports it: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + + # ... + + check_ipo_support(RESULT result) + if(result) + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + endif() + +Apply IPO flags without any checks. This may lead to build errors if IPO +is not supported by the compiler in the current environment. Produce an +error if CMake does not know IPO flags for the current compiler: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Help/release/dev/interprocedural_optimization_policy.rst b/Help/release/dev/interprocedural_optimization_policy.rst new file mode 100644 index 0000000..93a9d68 --- /dev/null +++ b/Help/release/dev/interprocedural_optimization_policy.rst @@ -0,0 +1,8 @@ +interprocedural_optimization_policy +----------------------------------- + +* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced + when enabled. CMake will add IPO flags unconditionally or produce an error + if it does not know the flags for the current compiler. The project is now + responsible to use the :module:`CheckIPOSupported` module to check for IPO + support before enabling the target property. See policy :policy:`CMP0069`. diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake index 55c8901..31c1bd3 100644 --- a/Modules/CheckIPOSupported.cmake +++ b/Modules/CheckIPOSupported.cmake @@ -28,6 +28,9 @@ property. Specify languages whose compilers to check. Languages ``C`` and ``CXX`` are supported. +It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so +module will return error in this case. See policy :policy:`CMP0069` for details. + Examples ^^^^^^^^ @@ -125,7 +128,17 @@ macro(_ipo_run_language_check language) endmacro() function(check_ipo_supported) - # TODO: IPO policy + cmake_policy(GET CMP0069 x) + + string(COMPARE EQUAL "${x}" "" not_set) + if(not_set) + message(FATAL_ERROR "Policy CMP0069 is not set") + endif() + + string(COMPARE EQUAL "${x}" "OLD" is_old) + if(is_old) + message(FATAL_ERROR "Policy CMP0069 set to OLD") + endif() set(optional) set(one RESULT OUTPUT) diff --git a/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/Modules/CheckIPOSupported/CMakeLists-C.txt.in index d20f31f..5a3b8ee 100644 --- a/Modules/CheckIPOSupported/CMakeLists-C.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-C.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES C) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.c) add_executable(boo main.c) diff --git a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in index 4b55c70..30993fa 100644 --- a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES CXX) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.cpp) add_executable(boo main.cpp) diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake index 45dc36f..6e2978a 100644 --- a/Modules/Platform/Linux-Intel.cmake +++ b/Modules/Platform/Linux-Intel.cmake @@ -39,6 +39,7 @@ macro(__linux_compiler_intel lang) "${XIAR} cr " "${XIAR} -s ") set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(_CMAKE_IPO_LEGACY_BEHAVIOR YES) else() set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) endif() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 2199e4a..326a49f 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -286,6 +286,7 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg) , FortranModuleDirectoryCreated(false) , SourceFileFlagsConstructed(false) , PolicyWarnedCMP0022(false) + , PolicyReportedCMP0069(false) , DebugIncludesDone(false) , DebugCompileOptionsDone(false) , DebugCompileFeaturesDone(false) @@ -659,7 +660,68 @@ const char* cmGeneratorTarget::GetFeature(const std::string& feature, bool cmGeneratorTarget::IsIPOEnabled(const std::string& config) const { const char* feature = "INTERPROCEDURAL_OPTIMIZATION"; - return cmSystemTools::IsOn(this->GetFeature(feature, config)); + const bool result = cmSystemTools::IsOn(this->GetFeature(feature, config)); + + if (!result) { + // 'INTERPROCEDURAL_OPTIMIZATION' is off, no need to check policies + return false; + } + + cmPolicies::PolicyStatus cmp0069 = this->GetPolicyStatusCMP0069(); + + if (cmp0069 == cmPolicies::OLD || cmp0069 == cmPolicies::WARN) { + const char* legacy = + this->Makefile->GetDefinition("_CMAKE_IPO_LEGACY_BEHAVIOR"); + if (cmSystemTools::IsOn(legacy)) { + return true; + } + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + if (cmp0069 == cmPolicies::WARN) { + std::ostringstream w; + w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0069) << "\n"; + w << "INTERPROCEDURAL_OPTIMIZATION property will be ignored for target " + << "'" << this->GetName() << "'."; + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::AUTHOR_WARNING, w.str(), this->GetBacktrace()); + + this->PolicyReportedCMP0069 = true; + } + return false; + } + + const char* supportedByCMake = + this->Makefile->GetDefinition("_CMAKE_IPO_SUPPORTED_BY_CMAKE"); + const char* mayBeSupportedByCompiler = + this->Makefile->GetDefinition("_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER"); + + // Note: check consistency with messages from CheckIPOSupported + const char* message = 0; + if (!cmSystemTools::IsOn(supportedByCMake)) { + message = "CMake doesn't support IPO for current compiler"; + } else if (!cmSystemTools::IsOn(mayBeSupportedByCompiler)) { + message = "Compiler doesn't support IPO"; + } else if (!this->GlobalGenerator->IsIPOSupported()) { + message = "CMake doesn't support IPO for current generator"; + } + + if (!message) { + // No error/warning messages + return true; + } + + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + + this->PolicyReportedCMP0069 = true; + + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, message, this->GetBacktrace()); + return false; } const std::string& cmGeneratorTarget::GetObjectName(cmSourceFile const* file) diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 0ec7389..80bccd5 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -743,6 +743,7 @@ private: mutable std::set UtilityItems; cmPolicies::PolicyMap PolicyMap; mutable bool PolicyWarnedCMP0022; + mutable bool PolicyReportedCMP0069; mutable bool DebugIncludesDone; mutable bool DebugCompileOptionsDone; mutable bool DebugCompileFeaturesDone; diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b3cb41f..6432538 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -333,6 +333,8 @@ public: virtual bool UseFolderProperty() const; + virtual bool IsIPOSupported() const { return false; } + /** Return whether the generator should use EFFECTIVE_PLATFORM_NAME. This is relevant for mixed macOS and iOS builds. */ virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index a51e919..b378369 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -99,6 +99,8 @@ public: */ static bool SupportsPlatform() { return false; } + virtual bool IsIPOSupported() const CM_OVERRIDE { return true; } + /** * Write a build statement to @a os with the @a comment using * the @a rule the list of @a outputs files and inputs. diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 67d7bc9..1019721 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -149,6 +149,8 @@ public: /** Does the make tool tolerate .DELETE_ON_ERROR? */ virtual bool AllowDeleteOnError() const { return true; } + virtual bool IsIPOSupported() const CM_OVERRIDE { return true; } + void ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const CM_OVERRIDE; std::string IncludeDirective; diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 77f3408..45993ce 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1664,6 +1664,9 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, return; } + // Check IPO related warning/error. + gtgt->IsIPOEnabled(configName); + // Add define flags this->CurrentLocalGenerator->AppendFlags( defFlags, this->CurrentMakefile->GetDefineFlags()); diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 7c33821..cd5b46b 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -670,6 +670,9 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( // Add the target-specific flags. this->AddCompileOptions(flags, target, linkLanguage, configName); + + // Check IPO related warning/error. + target->IsIPOEnabled(configName); } if (this->FortranProject) { diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index ecf06b3..72dcc4f 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -203,6 +203,9 @@ class cmMakefile; 3, 8, 0, cmPolicies::WARN) \ SELECT(POLICY, CMP0068, \ "RPATH settings on macOS do not affect install_name.", 3, 9, 0, \ + cmPolicies::WARN) \ + SELECT(POLICY, CMP0069, \ + "INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.", 3, 9, 0, \ cmPolicies::WARN) #define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1) @@ -225,7 +228,8 @@ class cmMakefile; F(CMP0060) \ F(CMP0063) \ F(CMP0065) \ - F(CMP0068) + F(CMP0068) \ + F(CMP0069) /** \class cmPolicies * \brief Handles changes in CMake behavior and policies diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 84767a8..2ab72dc 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2239,6 +2239,9 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( linkLanguage, configName.c_str()); } + // Check IPO related warning/error. + this->GeneratorTarget->IsIPOEnabled(configName); + // Get preprocessor definitions for this directory. std::string defineFlags = this->GeneratorTarget->Target->GetMakefile()->GetDefineFlags(); diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt new file mode 100644 index 0000000..ddb3cae --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-cmake\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current compiler +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake new file mode 100644 index 0000000..23fae13 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake @@ -0,0 +1,6 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt new file mode 100644 index 0000000..8decfab --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-compiler\.cmake:[0-9]+ \(add_executable\): + Compiler doesn't support IPO +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake new file mode 100644 index 0000000..24b409a --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt new file mode 100644 index 0000000..0e05ee7 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-generator\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current generator +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake new file mode 100644 index 0000000..df2a888 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake new file mode 100644 index 0000000..cfe1e9d --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake @@ -0,0 +1,4 @@ +cmake_policy(SET CMP0069 OLD) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt new file mode 100644 index 0000000..314e180 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt @@ -0,0 +1,9 @@ +^CMake Warning \(dev\) at CMP0069-WARN\.cmake:[0-9]+ \(add_executable\): + Policy CMP0069 is not set: INTERPROCEDURAL_OPTIMIZATION is enforced when + enabled. Run "cmake --help-policy CMP0069" for policy details\. Use the + cmake_policy command to set the policy and suppress this warning\. + + INTERPROCEDURAL_OPTIMIZATION property will be ignored for target 'foo'\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) +This warning is for project developers\. Use -Wno-dev to suppress it\.$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake new file mode 100644 index 0000000..0e3e670 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake @@ -0,0 +1,4 @@ +set(_CMAKE_IPO_LEGACY_BEHAVIOR NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMakeLists.txt b/Tests/RunCMake/CMP0069/CMakeLists.txt new file mode 100644 index 0000000..375cbdb --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.8) +project(${RunCMake_TEST} CXX) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CMP0069/RunCMakeTest.cmake b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake new file mode 100644 index 0000000..61ba458 --- /dev/null +++ b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake @@ -0,0 +1,11 @@ +include(RunCMake) + +run_cmake(CMP0069-OLD) +run_cmake(CMP0069-NEW-cmake) +run_cmake(CMP0069-NEW-compiler) +run_cmake(CMP0069-WARN) + +string(COMPARE EQUAL "${RunCMake_GENERATOR}" "Xcode" is_xcode) +if(is_xcode OR RunCMake_GENERATOR MATCHES "^Visual Studio ") + run_cmake(CMP0069-NEW-generator) +endif() diff --git a/Tests/RunCMake/CMP0069/main.cpp b/Tests/RunCMake/CMP0069/main.cpp new file mode 100644 index 0000000..5047a34 --- /dev/null +++ b/Tests/RunCMake/CMP0069/main.cpp @@ -0,0 +1,3 @@ +int main() +{ +} diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 217f0d5..0715a1a 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -107,6 +107,7 @@ add_RunCMake_test(CMP0064) if(CMAKE_SYSTEM_NAME MATCHES Darwin AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) add_RunCMake_test(CMP0068) endif() +add_RunCMake_test(CMP0069) # The test for Policy 65 requires the use of the # CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS variable, which both the VS and Xcode diff --git a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt index a0effc9..4a13d29 100644 --- a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt +++ b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt @@ -1,4 +1,7 @@ cmake_minimum_required(VERSION 3.0) project(${RunCMake_TEST} NONE) + +cmake_policy(SET CMP0069 NEW) + include(CheckIPOSupported) include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake index 2815037..812f79b 100644 --- a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -7,6 +7,7 @@ run_cmake(default-lang-none) run_cmake(not-supported-by-cmake) run_cmake(not-supported-by-compiler) run_cmake(save-to-result) +run_cmake(cmp0069-is-old) if(RunCMake_GENERATOR MATCHES "^(Visual Studio |Xcode$)") run_cmake(not-supported-by-generator) diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt new file mode 100644 index 0000000..f183594 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + Policy CMP0069 set to OLD +Call Stack \(most recent call first\): + cmp0069-is-old\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake new file mode 100644 index 0000000..14fed04 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake @@ -0,0 +1,6 @@ +project(${RunCMake_TEST} LANGUAGES C CXX) + +cmake_policy(SET CMP0069 OLD) + +include(CheckIPOSupported) +check_ipo_supported() diff --git a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt index 78657ef..5f6be87 100644 --- a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt +++ b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt @@ -21,6 +21,7 @@ \* CMP0063 \* CMP0065 \* CMP0068 + \* CMP0069 Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a75757004bda0ff32a152a0d9d6379c02b1338ce commit a75757004bda0ff32a152a0d9d6379c02b1338ce Author: Ruslan Baratov AuthorDate: Tue Mar 28 14:06:05 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 10:16:30 2017 -0400 Refactoring: s,GetFeatureAsBool,IsIPOEnabled, Method 'GetFeatureAsBool' is used only with 'INTERPROCEDURAL_OPTIMIZATION' feature. Substituting 'GetFeatureAsBool' with 'IsIPOEnabled'. diff --git a/Source/cmCommonTargetGenerator.cxx b/Source/cmCommonTargetGenerator.cxx index fd1ad36..fe2c0fe 100644 --- a/Source/cmCommonTargetGenerator.cxx +++ b/Source/cmCommonTargetGenerator.cxx @@ -43,18 +43,13 @@ const char* cmCommonTargetGenerator::GetFeature(const std::string& feature) return this->GeneratorTarget->GetFeature(feature, this->ConfigName); } -bool cmCommonTargetGenerator::GetFeatureAsBool(const std::string& feature) -{ - return this->GeneratorTarget->GetFeatureAsBool(feature, this->ConfigName); -} - void cmCommonTargetGenerator::AddFeatureFlags(std::string& flags, const std::string& lang) { // Add language-specific flags. this->LocalGenerator->AddLanguageFlags(flags, lang, this->ConfigName); - if (this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION")) { + if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName)) { this->LocalGenerator->AppendFeatureOptions(flags, lang, "IPO"); } } diff --git a/Source/cmCommonTargetGenerator.h b/Source/cmCommonTargetGenerator.h index 8d68123..425ff91 100644 --- a/Source/cmCommonTargetGenerator.h +++ b/Source/cmCommonTargetGenerator.h @@ -32,7 +32,6 @@ protected: // Feature query methods. const char* GetFeature(const std::string& feature); - bool GetFeatureAsBool(const std::string& feature); // Helper to add flag for windows .def file. void AddModuleDefinitionFlag(cmLinkLineComputer* linkLineComputer, diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index e27424f..2199e4a 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -656,9 +656,9 @@ const char* cmGeneratorTarget::GetFeature(const std::string& feature, return this->LocalGenerator->GetFeature(feature, config); } -bool cmGeneratorTarget::GetFeatureAsBool(const std::string& feature, - const std::string& config) const +bool cmGeneratorTarget::IsIPOEnabled(const std::string& config) const { + const char* feature = "INTERPROCEDURAL_OPTIMIZATION"; return cmSystemTools::IsOn(this->GetFeature(feature, config)); } @@ -2416,7 +2416,7 @@ std::string cmGeneratorTarget::GetCreateRuleVariable( switch (this->GetType()) { case cmStateEnums::STATIC_LIBRARY: { std::string var = "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; - if (this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION", config)) { + if (this->IsIPOEnabled(config)) { std::string varIPO = var + "_IPO"; if (this->Makefile->GetDefinition(varIPO)) { return varIPO; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 68d6ef8..0ec7389 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -112,8 +112,8 @@ public: const char* GetFeature(const std::string& feature, const std::string& config) const; - bool GetFeatureAsBool(const std::string& feature, - const std::string& config) const; + + bool IsIPOEnabled(const std::string& config) const; bool IsLinkInterfaceDependentBoolProperty(const std::string& p, const std::string& config) const; diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 82bf0b9..9333ed7 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1052,7 +1052,7 @@ void cmLocalGenerator::GetTargetCompileFlags(cmGeneratorTarget* target, // Add language-specific flags. this->AddLanguageFlags(flags, lang, config); - if (target->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION", config)) { + if (target->IsIPOEnabled(config)) { this->AppendFeatureOptions(flags, lang, "IPO"); } diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index e5fae13..9ce13ec 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -133,7 +133,7 @@ void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() linkRuleVar += linkLanguage; linkRuleVar += "_CREATE_STATIC_LIBRARY"; - if (this->GetFeatureAsBool("INTERPROCEDURAL_OPTIMIZATION") && + if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName) && this->Makefile->GetDefinition(linkRuleVar + "_IPO")) { linkRuleVar += "_IPO"; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e05835c35b5d31f31e1a55baf415c075b24a27ad commit e05835c35b5d31f31e1a55baf415c075b24a27ad Author: Ruslan Baratov AuthorDate: Thu Mar 30 10:57:01 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 10:16:10 2017 -0400 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake index 6f7bc82..55c8901 100644 --- a/Modules/CheckIPOSupported.cmake +++ b/Modules/CheckIPOSupported.cmake @@ -203,7 +203,12 @@ function(check_ipo_supported) endif() if(NOT _CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER) - _ipo_not_supported("compiler doesn't support IPO") + _ipo_not_supported("Compiler doesn't support IPO") + return() + endif() + + if(CMAKE_GENERATOR MATCHES "^(Visual Studio |Xcode$)") + _ipo_not_supported("CMake doesn't support IPO for current generator") return() endif() diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake index e304c61..2815037 100644 --- a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -7,3 +7,7 @@ run_cmake(default-lang-none) run_cmake(not-supported-by-cmake) run_cmake(not-supported-by-compiler) run_cmake(save-to-result) + +if(RunCMake_GENERATOR MATCHES "^(Visual Studio |Xcode$)") + run_cmake(not-supported-by-generator) +endif() diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt index 73e2f26..5f5f410 100644 --- a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): - IPO is not supported \(compiler doesn't support IPO\)\. + IPO is not supported \(Compiler doesn't support IPO\)\. Call Stack \(most recent call first\): .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) not-supported-by-compiler\.cmake:[0-9]+ \(check_ipo_supported\) diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-result.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-stderr.txt similarity index 60% copy from Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt copy to Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-stderr.txt index 73e2f26..a2aa58c 100644 --- a/Tests/RunCMake/CheckIPOSupported/not-supported-by-compiler-stderr.txt +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator-stderr.txt @@ -1,6 +1,6 @@ ^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): - IPO is not supported \(compiler doesn't support IPO\)\. + IPO is not supported \(CMake doesn't support IPO for current generator\)\. Call Stack \(most recent call first\): .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(_ipo_not_supported\) - not-supported-by-compiler\.cmake:[0-9]+ \(check_ipo_supported\) + not-supported-by-generator\.cmake:[0-9]+ \(check_ipo_supported\) CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake new file mode 100644 index 0000000..dc0fa09 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake @@ -0,0 +1,6 @@ +project(${RunCMake_TEST} LANGUAGES C) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + +check_ipo_supported() ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-policies.7.rst | 1 + Help/policy/CMP0069.rst | 92 ++++++++++++++++++++ Help/release/dev/gcc-ipo.rst | 7 ++ .../dev/interprocedural_optimization_policy.rst | 8 ++ Modules/CheckIPOSupported.cmake | 22 ++++- Modules/CheckIPOSupported/CMakeLists-C.txt.in | 2 +- Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 2 +- Modules/Compiler/Clang.cmake | 8 ++ Modules/Compiler/GNU.cmake | 39 +++++++++ Modules/Compiler/QCC.cmake | 8 ++ Modules/Platform/Linux-Intel.cmake | 1 + Source/cmCommonTargetGenerator.cxx | 7 +- Source/cmCommonTargetGenerator.h | 1 - Source/cmGeneratorTarget.cxx | 91 ++++++++++++++++--- Source/cmGeneratorTarget.h | 8 +- Source/cmGlobalGenerator.h | 2 + Source/cmGlobalNinjaGenerator.h | 2 + Source/cmGlobalUnixMakefileGenerator3.h | 2 + Source/cmGlobalXCodeGenerator.cxx | 3 + Source/cmLocalGenerator.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 3 + Source/cmMakefileLibraryTargetGenerator.cxx | 21 +++-- Source/cmNinjaNormalTargetGenerator.cxx | 8 ++ Source/cmPolicies.h | 6 +- Source/cmVisualStudio10TargetGenerator.cxx | 3 + .../CMP0069-NEW-cmake-result.txt} | 0 .../RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake | 6 ++ .../CMP0069-NEW-compiler-result.txt} | 0 .../CMP0069/CMP0069-NEW-compiler-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake | 7 ++ .../CMP0069-NEW-generator-result.txt} | 0 .../CMP0069/CMP0069-NEW-generator-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake | 7 ++ Tests/RunCMake/CMP0069/CMP0069-OLD.cmake | 4 + Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt | 9 ++ Tests/RunCMake/CMP0069/CMP0069-WARN.cmake | 4 + Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt | 0 Tests/RunCMake/CMP0069/RunCMakeTest.cmake | 11 +++ .../TestProject => RunCMake/CMP0069}/main.cpp | 0 Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 3 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 5 ++ .../cmp0069-is-old-result.txt} | 0 .../CheckIPOSupported/cmp0069-is-old-stderr.txt | 5 ++ .../CheckIPOSupported/cmp0069-is-old.cmake | 6 ++ .../not-supported-by-compiler-stderr.txt | 2 +- .../not-supported-by-generator-result.txt} | 0 ...r.txt => not-supported-by-generator-stderr.txt} | 4 +- .../not-supported-by-generator.cmake | 6 ++ .../RunCMake/TargetPolicies/PolicyList-stderr.txt | 1 + 51 files changed, 407 insertions(+), 35 deletions(-) create mode 100644 Help/policy/CMP0069.rst create mode 100644 Help/release/dev/gcc-ipo.rst create mode 100644 Help/release/dev/interprocedural_optimization_policy.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-generator-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-OLD.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN.cmake copy Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/CMP0069/RunCMakeTest.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject => RunCMake/CMP0069}/main.cpp (100%) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/cmp0069-is-old-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-generator-result.txt} (100%) copy Tests/RunCMake/CheckIPOSupported/{not-supported-by-compiler-stderr.txt => not-supported-by-generator-stderr.txt} (60%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 13:25:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 13:25:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-625-g31343f9 Message-ID: <20170330172504.1C094FA664@public.kitware.com> 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 b68e609a9c620ecfd64b51e4d86aa70ec641aa70 (commit) discards 03fa5c84f012b35422f73dd47cc137fb7276452a (commit) discards d7c6345c57b0c03c07f4c2456ccdf91dda52243e (commit) via 31343f9a91b19a4015b4decd56b757cb2109718a (commit) via e85568593abc94f695dd335abd8af2f4f680cdf0 (commit) via 2c9f35789d4955bf77436091d1535ed8761a15d2 (commit) via f7e2a8f314825e02f46b5d792bb1e1777a6996e1 (commit) via 46435880d0e0caf41f92ce40597b7db914658a36 (commit) via 9788ee4f1e2dc4ba901c1d46c427edf02d867f9a (commit) via ec670408969b1abcce6acead9b062c7f0c59683e (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 (b68e609a9c620ecfd64b51e4d86aa70ec641aa70) \ N -- N -- N (31343f9a91b19a4015b4decd56b757cb2109718a) 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=31343f9a91b19a4015b4decd56b757cb2109718a commit 31343f9a91b19a4015b4decd56b757cb2109718a Merge: e855685 ec67040 Author: Brad King AuthorDate: Thu Mar 30 17:24:41 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 13:24:43 2017 -0400 Stage topic 'libuv-name-fix' Topic-id: 23394 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/647 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e85568593abc94f695dd335abd8af2f4f680cdf0 commit e85568593abc94f695dd335abd8af2f4f680cdf0 Merge: f7e2a8f 2c9f357 Author: Brad King AuthorDate: Thu Mar 30 17:23:29 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 13:23:31 2017 -0400 Stage topic 'vfort-object-linker-lang' Topic-id: 23341 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/643 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2c9f35789d4955bf77436091d1535ed8761a15d2 commit 2c9f35789d4955bf77436091d1535ed8761a15d2 Author: Christian Pfeiffer AuthorDate: Thu Mar 30 18:10:28 2017 +0200 Commit: Brad King CommitDate: Thu Mar 30 13:22:02 2017 -0400 VS: Decide project type by linker lang as fallback Fixes: #16738 diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 32579aa..eb92b83 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -729,12 +729,26 @@ bool cmGlobalVisualStudioGenerator::TargetIsFortranOnly( return false; } } + // If there's only one source language, Fortran has to be used + // in order for the sources to compile. + // Note: Via linker propagation, LINKER_LANGUAGE could become CXX in + // this situation and mismatch from the actual language of the linker. gt->GetLanguages(languages, ""); if (languages.size() == 1) { if (*languages.begin() == "Fortran") { return true; } } + + // In the case of mixed object files or sources mixed with objects, + // decide the language based on the value of LINKER_LANGUAGE. + // This will not make it possible to mix source files of different + // languages, but object libraries will be linked together in the + // same fashion as other generators do. + if (gt->GetLinkerLanguage("") == "Fortran") { + return true; + } + return false; } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f7e2a8f314825e02f46b5d792bb1e1777a6996e1 commit f7e2a8f314825e02f46b5d792bb1e1777a6996e1 Merge: 3e2f6bd 4643588 Author: Brad King AuthorDate: Thu Mar 30 17:19:04 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 13:19:08 2017 -0400 Stage topic 'ipo-policy-CMP0069' Topic-id: 22963 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/568 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=46435880d0e0caf41f92ce40597b7db914658a36 commit 46435880d0e0caf41f92ce40597b7db914658a36 Author: Ruslan Baratov AuthorDate: Tue Mar 28 14:47:42 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 13:18:11 2017 -0400 Implement interprocedural optimization for GNU compilers Honor the `INTERPROCEDURAL_OPTIMIZATION` target property for GNU compilers by activating their link-time-optimization (LTO) flags. diff --git a/Help/release/dev/gcc-ipo.rst b/Help/release/dev/gcc-ipo.rst new file mode 100644 index 0000000..ebc5c0d --- /dev/null +++ b/Help/release/dev/gcc-ipo.rst @@ -0,0 +1,7 @@ +GCC IPO +------- + +* Interprocedural optimization (IPO) is now supported for GNU + compilers using link time optimization (LTO) flags. See the + :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and + :module:`CheckIPOSupported` module. diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index 96263fc..6b99a08 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -27,5 +27,13 @@ else() set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=") set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() endif() diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index b67002c..4b1c598 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -45,4 +45,43 @@ macro(__compiler_gnu lang) if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462 set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + # '-flto' introduced since GCC 4.5: + # * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes) + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(__lto_flags -flto) + + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7) + # '-ffat-lto-objects' introduced since GCC 4.7: + # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes) + list(APPEND __lto_flags -fno-fat-lto-objects) + endif() + + set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags}) + + # Need to use version of 'ar'/'ranlib' with plugin support. + # Quote from [documentation][1]: + # + # To create static libraries suitable for LTO, + # use gcc-ar and gcc-ranlib instead of ar and ranlib + # + # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html + set(CMAKE_${lang}_ARCHIVE_CREATE_IPO + "${CMAKE_GCC_AR} cr " + ) + + set(CMAKE_${lang}_ARCHIVE_APPEND_IPO + "${CMAKE_GCC_AR} r " + ) + + set(CMAKE_${lang}_ARCHIVE_FINISH_IPO + "${CMAKE_GCC_RANLIB} " + ) + endif() endmacro() diff --git a/Modules/Compiler/QCC.cmake b/Modules/Compiler/QCC.cmake index 2d7e881..695a138 100644 --- a/Modules/Compiler/QCC.cmake +++ b/Modules/Compiler/QCC.cmake @@ -12,4 +12,12 @@ macro(__compiler_qcc lang) set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,") set(CMAKE_DEPFILE_FLAGS_${lang} "-Wc,-MD,,-MT,,-MF,") + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index bc7d392..75cccdd 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2466,19 +2466,28 @@ void cmGeneratorTarget::GetAppleArchs(const std::string& config, } } +//---------------------------------------------------------------------------- +std::string cmGeneratorTarget::GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const +{ + if (this->IsIPOEnabled(config)) { + std::string varIPO = var + "_IPO"; + if (this->Makefile->IsDefinitionSet(varIPO)) { + return varIPO; + } + } + + return var; +} + +//---------------------------------------------------------------------------- std::string cmGeneratorTarget::GetCreateRuleVariable( std::string const& lang, std::string const& config) const { switch (this->GetType()) { case cmStateEnums::STATIC_LIBRARY: { std::string var = "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; - if (this->IsIPOEnabled(config)) { - std::string varIPO = var + "_IPO"; - if (this->Makefile->GetDefinition(varIPO)) { - return varIPO; - } - } - return var; + return this->GetFeatureSpecificLinkRuleVariable(var, config); } case cmStateEnums::SHARED_LIBRARY: return "CMAKE_" + lang + "_CREATE_SHARED_LIBRARY"; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 80bccd5..2510407 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -309,6 +309,9 @@ public: void GetAppleArchs(const std::string& config, std::vector& archVec) const; + std::string GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const; + /** Return the rule variable used to create this type of target. */ std::string GetCreateRuleVariable(std::string const& lang, std::string const& config) const; diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 9ce13ec..cc8a6b3 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -129,14 +129,9 @@ void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() { std::string linkLanguage = this->GeneratorTarget->GetLinkerLanguage(this->ConfigName); - std::string linkRuleVar = "CMAKE_"; - linkRuleVar += linkLanguage; - linkRuleVar += "_CREATE_STATIC_LIBRARY"; - if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName) && - this->Makefile->GetDefinition(linkRuleVar + "_IPO")) { - linkRuleVar += "_IPO"; - } + std::string linkRuleVar = this->GeneratorTarget->GetCreateRuleVariable( + linkLanguage, this->ConfigName); std::string extraFlags; this->LocalGenerator->GetStaticLibraryFlags( @@ -676,18 +671,30 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules( std::string arCreateVar = "CMAKE_"; arCreateVar += linkLanguage; arCreateVar += "_ARCHIVE_CREATE"; + + arCreateVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arCreateVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arCreateVar)) { cmSystemTools::ExpandListArgument(rule, archiveCreateCommands); } std::string arAppendVar = "CMAKE_"; arAppendVar += linkLanguage; arAppendVar += "_ARCHIVE_APPEND"; + + arAppendVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arAppendVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arAppendVar)) { cmSystemTools::ExpandListArgument(rule, archiveAppendCommands); } std::string arFinishVar = "CMAKE_"; arFinishVar += linkLanguage; arFinishVar += "_ARCHIVE_FINISH"; + + arFinishVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arFinishVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arFinishVar)) { cmSystemTools::ExpandListArgument(rule, archiveFinishCommands); } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 5552fa9..eac3ecf 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -516,6 +516,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_CREATE"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } @@ -523,6 +527,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_FINISH"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9788ee4f1e2dc4ba901c1d46c427edf02d867f9a commit 9788ee4f1e2dc4ba901c1d46c427edf02d867f9a Author: Ruslan Baratov AuthorDate: Thu Mar 9 21:05:19 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 13:16:00 2017 -0400 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was honored only for the Intel compiler on Linux and otherwise ignored. In order to add support for more compilers incrementally without changing behavior in the future, add a new policy whose NEW behavior enforces the `INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported compilers and otherwise produce an error. diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 0c9ee2d..7b85817 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -57,6 +57,7 @@ Policies Introduced by CMake 3.9 .. toctree:: :maxdepth: 1 + CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. CMP0068: RPATH settings on macOS do not affect install_name. Policies Introduced by CMake 3.8 diff --git a/Help/policy/CMP0069.rst b/Help/policy/CMP0069.rst new file mode 100644 index 0000000..b8f5d80 --- /dev/null +++ b/Help/policy/CMP0069.rst @@ -0,0 +1,92 @@ +CMP0069 +------- + +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` is enforced when enabled. + +CMake 3.9 and newer prefer to add IPO flags whenever the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is enabled and +produce an error if flags are not known to CMake for the current compiler. +Since a given compiler may not support IPO flags in all environments in which +it is used, it is now the project's responsibility to use the +:module:`CheckIPOSupported` module to check for support before enabling the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property. This approach +allows a project to conditionally activate IPO when supported. It also +allows an end user to set the :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` +variable in an environment known to support IPO even if the project does +not enable the property. + +Since CMake 3.8 and lower only honored :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` +for the Intel compiler on Linux, some projects may unconditionally enable the +target property. Policy ``CMP0069`` provides compatibility with such projects. + +This policy takes effect whenever the IPO property is enabled. The ``OLD`` +behavior for this policy is to add IPO flags only for Intel compiler on Linux. +The ``NEW`` behavior for this policy is to add IPO flags for the current +compiler or produce an error if CMake does not know the flags. + +This policy was introduced in CMake version 3.9. CMake version +|release| warns when the policy is not set and uses ``OLD`` behavior. +Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` +explicitly. + +.. include:: DEPRECATED.txt + +Examples +^^^^^^^^ + +Behave like CMake 3.8 and do not apply any IPO flags except for Intel compiler +on Linux: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.8) + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Use the :module:`CheckIPOSupported` module to detect whether IPO is +supported by the current compiler, environment, and CMake version. +Produce a fatal error if support is not available: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + check_ipo_support() + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Apply IPO flags only if compiler supports it: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + + # ... + + check_ipo_support(RESULT result) + if(result) + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + endif() + +Apply IPO flags without any checks. This may lead to build errors if IPO +is not supported by the compiler in the current environment. Produce an +error if CMake does not know IPO flags for the current compiler: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Help/release/dev/interprocedural_optimization_policy.rst b/Help/release/dev/interprocedural_optimization_policy.rst new file mode 100644 index 0000000..93a9d68 --- /dev/null +++ b/Help/release/dev/interprocedural_optimization_policy.rst @@ -0,0 +1,8 @@ +interprocedural_optimization_policy +----------------------------------- + +* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced + when enabled. CMake will add IPO flags unconditionally or produce an error + if it does not know the flags for the current compiler. The project is now + responsible to use the :module:`CheckIPOSupported` module to check for IPO + support before enabling the target property. See policy :policy:`CMP0069`. diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake index 55c8901..31c1bd3 100644 --- a/Modules/CheckIPOSupported.cmake +++ b/Modules/CheckIPOSupported.cmake @@ -28,6 +28,9 @@ property. Specify languages whose compilers to check. Languages ``C`` and ``CXX`` are supported. +It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so +module will return error in this case. See policy :policy:`CMP0069` for details. + Examples ^^^^^^^^ @@ -125,7 +128,17 @@ macro(_ipo_run_language_check language) endmacro() function(check_ipo_supported) - # TODO: IPO policy + cmake_policy(GET CMP0069 x) + + string(COMPARE EQUAL "${x}" "" not_set) + if(not_set) + message(FATAL_ERROR "Policy CMP0069 is not set") + endif() + + string(COMPARE EQUAL "${x}" "OLD" is_old) + if(is_old) + message(FATAL_ERROR "Policy CMP0069 set to OLD") + endif() set(optional) set(one RESULT OUTPUT) diff --git a/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/Modules/CheckIPOSupported/CMakeLists-C.txt.in index d20f31f..5a3b8ee 100644 --- a/Modules/CheckIPOSupported/CMakeLists-C.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-C.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES C) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.c) add_executable(boo main.c) diff --git a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in index 4b55c70..30993fa 100644 --- a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES CXX) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.cpp) add_executable(boo main.cpp) diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake index 45dc36f..6e2978a 100644 --- a/Modules/Platform/Linux-Intel.cmake +++ b/Modules/Platform/Linux-Intel.cmake @@ -39,6 +39,7 @@ macro(__linux_compiler_intel lang) "${XIAR} cr " "${XIAR} -s ") set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(_CMAKE_IPO_LEGACY_BEHAVIOR YES) else() set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) endif() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 2199e4a..bc7d392 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -286,6 +286,7 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg) , FortranModuleDirectoryCreated(false) , SourceFileFlagsConstructed(false) , PolicyWarnedCMP0022(false) + , PolicyReportedCMP0069(false) , DebugIncludesDone(false) , DebugCompileOptionsDone(false) , DebugCompileFeaturesDone(false) @@ -659,7 +660,62 @@ const char* cmGeneratorTarget::GetFeature(const std::string& feature, bool cmGeneratorTarget::IsIPOEnabled(const std::string& config) const { const char* feature = "INTERPROCEDURAL_OPTIMIZATION"; - return cmSystemTools::IsOn(this->GetFeature(feature, config)); + const bool result = cmSystemTools::IsOn(this->GetFeature(feature, config)); + + if (!result) { + // 'INTERPROCEDURAL_OPTIMIZATION' is off, no need to check policies + return false; + } + + cmPolicies::PolicyStatus cmp0069 = this->GetPolicyStatusCMP0069(); + + if (cmp0069 == cmPolicies::OLD || cmp0069 == cmPolicies::WARN) { + if (this->Makefile->IsOn("_CMAKE_IPO_LEGACY_BEHAVIOR")) { + return true; + } + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + if (cmp0069 == cmPolicies::WARN) { + std::ostringstream w; + w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0069) << "\n"; + w << "INTERPROCEDURAL_OPTIMIZATION property will be ignored for target " + << "'" << this->GetName() << "'."; + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::AUTHOR_WARNING, w.str(), this->GetBacktrace()); + + this->PolicyReportedCMP0069 = true; + } + return false; + } + + // Note: check consistency with messages from CheckIPOSupported + const char* message = 0; + if (!this->Makefile->IsOn("_CMAKE_IPO_SUPPORTED_BY_CMAKE")) { + message = "CMake doesn't support IPO for current compiler"; + } else if (!this->Makefile->IsOn( + "_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER")) { + message = "Compiler doesn't support IPO"; + } else if (!this->GlobalGenerator->IsIPOSupported()) { + message = "CMake doesn't support IPO for current generator"; + } + + if (!message) { + // No error/warning messages + return true; + } + + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + + this->PolicyReportedCMP0069 = true; + + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, message, this->GetBacktrace()); + return false; } const std::string& cmGeneratorTarget::GetObjectName(cmSourceFile const* file) diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 0ec7389..80bccd5 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -743,6 +743,7 @@ private: mutable std::set UtilityItems; cmPolicies::PolicyMap PolicyMap; mutable bool PolicyWarnedCMP0022; + mutable bool PolicyReportedCMP0069; mutable bool DebugIncludesDone; mutable bool DebugCompileOptionsDone; mutable bool DebugCompileFeaturesDone; diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b3cb41f..6432538 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -333,6 +333,8 @@ public: virtual bool UseFolderProperty() const; + virtual bool IsIPOSupported() const { return false; } + /** Return whether the generator should use EFFECTIVE_PLATFORM_NAME. This is relevant for mixed macOS and iOS builds. */ virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index a51e919..956af51 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -99,6 +99,8 @@ public: */ static bool SupportsPlatform() { return false; } + bool IsIPOSupported() const CM_OVERRIDE { return true; } + /** * Write a build statement to @a os with the @a comment using * the @a rule the list of @a outputs files and inputs. diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 67d7bc9..bbf9f0f 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -149,6 +149,8 @@ public: /** Does the make tool tolerate .DELETE_ON_ERROR? */ virtual bool AllowDeleteOnError() const { return true; } + bool IsIPOSupported() const CM_OVERRIDE { return true; } + void ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const CM_OVERRIDE; std::string IncludeDirective; diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 77f3408..45993ce 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1664,6 +1664,9 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, return; } + // Check IPO related warning/error. + gtgt->IsIPOEnabled(configName); + // Add define flags this->CurrentLocalGenerator->AppendFlags( defFlags, this->CurrentMakefile->GetDefineFlags()); diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 7c33821..cd5b46b 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -670,6 +670,9 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( // Add the target-specific flags. this->AddCompileOptions(flags, target, linkLanguage, configName); + + // Check IPO related warning/error. + target->IsIPOEnabled(configName); } if (this->FortranProject) { diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index ecf06b3..72dcc4f 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -203,6 +203,9 @@ class cmMakefile; 3, 8, 0, cmPolicies::WARN) \ SELECT(POLICY, CMP0068, \ "RPATH settings on macOS do not affect install_name.", 3, 9, 0, \ + cmPolicies::WARN) \ + SELECT(POLICY, CMP0069, \ + "INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.", 3, 9, 0, \ cmPolicies::WARN) #define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1) @@ -225,7 +228,8 @@ class cmMakefile; F(CMP0060) \ F(CMP0063) \ F(CMP0065) \ - F(CMP0068) + F(CMP0068) \ + F(CMP0069) /** \class cmPolicies * \brief Handles changes in CMake behavior and policies diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 84767a8..2ab72dc 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2239,6 +2239,9 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( linkLanguage, configName.c_str()); } + // Check IPO related warning/error. + this->GeneratorTarget->IsIPOEnabled(configName); + // Get preprocessor definitions for this directory. std::string defineFlags = this->GeneratorTarget->Target->GetMakefile()->GetDefineFlags(); diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt new file mode 100644 index 0000000..ddb3cae --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-cmake\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current compiler +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake new file mode 100644 index 0000000..23fae13 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake @@ -0,0 +1,6 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt new file mode 100644 index 0000000..8decfab --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-compiler\.cmake:[0-9]+ \(add_executable\): + Compiler doesn't support IPO +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake new file mode 100644 index 0000000..24b409a --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt new file mode 100644 index 0000000..0e05ee7 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-generator\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current generator +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake new file mode 100644 index 0000000..df2a888 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake new file mode 100644 index 0000000..cfe1e9d --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake @@ -0,0 +1,4 @@ +cmake_policy(SET CMP0069 OLD) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt new file mode 100644 index 0000000..314e180 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt @@ -0,0 +1,9 @@ +^CMake Warning \(dev\) at CMP0069-WARN\.cmake:[0-9]+ \(add_executable\): + Policy CMP0069 is not set: INTERPROCEDURAL_OPTIMIZATION is enforced when + enabled. Run "cmake --help-policy CMP0069" for policy details\. Use the + cmake_policy command to set the policy and suppress this warning\. + + INTERPROCEDURAL_OPTIMIZATION property will be ignored for target 'foo'\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) +This warning is for project developers\. Use -Wno-dev to suppress it\.$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake new file mode 100644 index 0000000..0e3e670 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake @@ -0,0 +1,4 @@ +set(_CMAKE_IPO_LEGACY_BEHAVIOR NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMakeLists.txt b/Tests/RunCMake/CMP0069/CMakeLists.txt new file mode 100644 index 0000000..375cbdb --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.8) +project(${RunCMake_TEST} CXX) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CMP0069/RunCMakeTest.cmake b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake new file mode 100644 index 0000000..61ba458 --- /dev/null +++ b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake @@ -0,0 +1,11 @@ +include(RunCMake) + +run_cmake(CMP0069-OLD) +run_cmake(CMP0069-NEW-cmake) +run_cmake(CMP0069-NEW-compiler) +run_cmake(CMP0069-WARN) + +string(COMPARE EQUAL "${RunCMake_GENERATOR}" "Xcode" is_xcode) +if(is_xcode OR RunCMake_GENERATOR MATCHES "^Visual Studio ") + run_cmake(CMP0069-NEW-generator) +endif() diff --git a/Tests/RunCMake/CMP0069/main.cpp b/Tests/RunCMake/CMP0069/main.cpp new file mode 100644 index 0000000..5047a34 --- /dev/null +++ b/Tests/RunCMake/CMP0069/main.cpp @@ -0,0 +1,3 @@ +int main() +{ +} diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 217f0d5..0715a1a 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -107,6 +107,7 @@ add_RunCMake_test(CMP0064) if(CMAKE_SYSTEM_NAME MATCHES Darwin AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) add_RunCMake_test(CMP0068) endif() +add_RunCMake_test(CMP0069) # The test for Policy 65 requires the use of the # CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS variable, which both the VS and Xcode diff --git a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt index a0effc9..4a13d29 100644 --- a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt +++ b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt @@ -1,4 +1,7 @@ cmake_minimum_required(VERSION 3.0) project(${RunCMake_TEST} NONE) + +cmake_policy(SET CMP0069 NEW) + include(CheckIPOSupported) include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake index 2815037..812f79b 100644 --- a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -7,6 +7,7 @@ run_cmake(default-lang-none) run_cmake(not-supported-by-cmake) run_cmake(not-supported-by-compiler) run_cmake(save-to-result) +run_cmake(cmp0069-is-old) if(RunCMake_GENERATOR MATCHES "^(Visual Studio |Xcode$)") run_cmake(not-supported-by-generator) diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt new file mode 100644 index 0000000..f183594 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + Policy CMP0069 set to OLD +Call Stack \(most recent call first\): + cmp0069-is-old\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake new file mode 100644 index 0000000..14fed04 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake @@ -0,0 +1,6 @@ +project(${RunCMake_TEST} LANGUAGES C CXX) + +cmake_policy(SET CMP0069 OLD) + +include(CheckIPOSupported) +check_ipo_supported() diff --git a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt index 78657ef..5f6be87 100644 --- a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt +++ b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt @@ -21,6 +21,7 @@ \* CMP0063 \* CMP0065 \* CMP0068 + \* CMP0069 Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ec670408969b1abcce6acead9b062c7f0c59683e commit ec670408969b1abcce6acead9b062c7f0c59683e Author: Christian Pfeiffer AuthorDate: Thu Mar 30 18:53:57 2017 +0200 Commit: Christian Pfeiffer CommitDate: Thu Mar 30 18:53:57 2017 +0200 FindLibUV: Add Windows library name diff --git a/Source/Modules/FindLibUV.cmake b/Source/Modules/FindLibUV.cmake index b8cb365..ba13d75 100644 --- a/Source/Modules/FindLibUV.cmake +++ b/Source/Modules/FindLibUV.cmake @@ -49,7 +49,7 @@ They may be set by end users to point at libuv components. #----------------------------------------------------------------------------- find_library(LibUV_LIBRARY - NAMES uv + NAMES uv libuv ) mark_as_advanced(LibUV_LIBRARY) ----------------------------------------------------------------------- Summary of changes: Source/Modules/FindLibUV.cmake | 2 +- Source/cmGeneratorTarget.cxx | 14 ++++---------- Source/cmGlobalNinjaGenerator.h | 2 +- Source/cmGlobalUnixMakefileGenerator3.h | 2 +- Source/cmGlobalVisualStudioGenerator.cxx | 14 ++++++++++++++ 5 files changed, 21 insertions(+), 13 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 15:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 15:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-625-g83fb339 Message-ID: <20170330190506.7E52FFA7A7@public.kitware.com> 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 31343f9a91b19a4015b4decd56b757cb2109718a (commit) discards e85568593abc94f695dd335abd8af2f4f680cdf0 (commit) discards f7e2a8f314825e02f46b5d792bb1e1777a6996e1 (commit) discards 46435880d0e0caf41f92ce40597b7db914658a36 (commit) discards 9788ee4f1e2dc4ba901c1d46c427edf02d867f9a (commit) via 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 (commit) via c84c233c802d69b4404d064fc40bc16cbea8b5d6 (commit) via 1399748bd856ce8f5a24e30990c536c77cfc768e (commit) via dfa8263f4be4f1413b73c81649fdc4567a71e56a (commit) via 1588a577d16cfb1a689a444b1db1df3ccff2cc3d (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 (31343f9a91b19a4015b4decd56b757cb2109718a) \ N -- N -- N (83fb3398df43d9ea22fcc462ff56c60ac2be4d87) 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=83fb3398df43d9ea22fcc462ff56c60ac2be4d87 commit 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 Merge: c84c233 dfa8263 Author: Brad King AuthorDate: Thu Mar 30 19:00:01 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 15:00:08 2017 -0400 Stage topic 'ipo-policy-CMP0069' Topic-id: 22963 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/568 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c84c233c802d69b4404d064fc40bc16cbea8b5d6 commit c84c233c802d69b4404d064fc40bc16cbea8b5d6 Merge: 1399748 ec67040 Author: Brad King AuthorDate: Thu Mar 30 17:24:41 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 14:59:47 2017 -0400 Stage topic 'libuv-name-fix' Topic-id: 23394 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/647 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1399748bd856ce8f5a24e30990c536c77cfc768e commit 1399748bd856ce8f5a24e30990c536c77cfc768e Merge: 3e2f6bd 2c9f357 Author: Brad King AuthorDate: Thu Mar 30 17:23:29 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 14:59:47 2017 -0400 Stage topic 'vfort-object-linker-lang' Topic-id: 23341 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/643 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=dfa8263f4be4f1413b73c81649fdc4567a71e56a commit dfa8263f4be4f1413b73c81649fdc4567a71e56a Author: Ruslan Baratov AuthorDate: Tue Mar 28 14:47:42 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 14:56:52 2017 -0400 Implement interprocedural optimization for GNU compilers Honor the `INTERPROCEDURAL_OPTIMIZATION` target property for GNU compilers by activating their link-time-optimization (LTO) flags. diff --git a/Help/release/dev/gcc-ipo.rst b/Help/release/dev/gcc-ipo.rst new file mode 100644 index 0000000..ebc5c0d --- /dev/null +++ b/Help/release/dev/gcc-ipo.rst @@ -0,0 +1,7 @@ +GCC IPO +------- + +* Interprocedural optimization (IPO) is now supported for GNU + compilers using link time optimization (LTO) flags. See the + :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property and + :module:`CheckIPOSupported` module. diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index 96263fc..6b99a08 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -27,5 +27,13 @@ else() set(CMAKE_${lang}_COMPILE_OPTIONS_TARGET "--target=") set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() endif() diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index b67002c..4b1c598 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -45,4 +45,43 @@ macro(__compiler_gnu lang) if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462 set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") endif() + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + # '-flto' introduced since GCC 4.5: + # * https://gcc.gnu.org/onlinedocs/gcc-4.4.7/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.5.4/gcc/Option-Summary.html (yes) + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.5) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(__lto_flags -flto) + + if(NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4.7) + # '-ffat-lto-objects' introduced since GCC 4.7: + # * https://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Option-Summary.html (no) + # * https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Option-Summary.html (yes) + list(APPEND __lto_flags -fno-fat-lto-objects) + endif() + + set(CMAKE_${lang}_COMPILE_OPTIONS_IPO ${__lto_flags}) + + # Need to use version of 'ar'/'ranlib' with plugin support. + # Quote from [documentation][1]: + # + # To create static libraries suitable for LTO, + # use gcc-ar and gcc-ranlib instead of ar and ranlib + # + # [1]: https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Optimize-Options.html + set(CMAKE_${lang}_ARCHIVE_CREATE_IPO + "${CMAKE_GCC_AR} cr " + ) + + set(CMAKE_${lang}_ARCHIVE_APPEND_IPO + "${CMAKE_GCC_AR} r " + ) + + set(CMAKE_${lang}_ARCHIVE_FINISH_IPO + "${CMAKE_GCC_RANLIB} " + ) + endif() endmacro() diff --git a/Modules/Compiler/QCC.cmake b/Modules/Compiler/QCC.cmake index 2d7e881..695a138 100644 --- a/Modules/Compiler/QCC.cmake +++ b/Modules/Compiler/QCC.cmake @@ -12,4 +12,12 @@ macro(__compiler_qcc lang) set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-Wp,-isystem,") set(CMAKE_DEPFILE_FLAGS_${lang} "-Wc,-MD,,-MT,,-MF,") + + set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + + unset(CMAKE_${lang}_COMPILE_OPTIONS_IPO) + unset(CMAKE_${lang}_ARCHIVE_CREATE_IPO) + unset(CMAKE_${lang}_ARCHIVE_APPEND_IPO) + unset(CMAKE_${lang}_ARCHIVE_FINISH_IPO) endmacro() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index bb79050..c8422d4 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -2466,19 +2466,28 @@ void cmGeneratorTarget::GetAppleArchs(const std::string& config, } } +//---------------------------------------------------------------------------- +std::string cmGeneratorTarget::GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const +{ + if (this->IsIPOEnabled(config)) { + std::string varIPO = var + "_IPO"; + if (this->Makefile->IsDefinitionSet(varIPO)) { + return varIPO; + } + } + + return var; +} + +//---------------------------------------------------------------------------- std::string cmGeneratorTarget::GetCreateRuleVariable( std::string const& lang, std::string const& config) const { switch (this->GetType()) { case cmStateEnums::STATIC_LIBRARY: { std::string var = "CMAKE_" + lang + "_CREATE_STATIC_LIBRARY"; - if (this->IsIPOEnabled(config)) { - std::string varIPO = var + "_IPO"; - if (this->Makefile->GetDefinition(varIPO)) { - return varIPO; - } - } - return var; + return this->GetFeatureSpecificLinkRuleVariable(var, config); } case cmStateEnums::SHARED_LIBRARY: return "CMAKE_" + lang + "_CREATE_SHARED_LIBRARY"; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 80bccd5..2510407 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -309,6 +309,9 @@ public: void GetAppleArchs(const std::string& config, std::vector& archVec) const; + std::string GetFeatureSpecificLinkRuleVariable( + std::string const& var, std::string const& config) const; + /** Return the rule variable used to create this type of target. */ std::string GetCreateRuleVariable(std::string const& lang, std::string const& config) const; diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx index 9ce13ec..cc8a6b3 100644 --- a/Source/cmMakefileLibraryTargetGenerator.cxx +++ b/Source/cmMakefileLibraryTargetGenerator.cxx @@ -129,14 +129,9 @@ void cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules() { std::string linkLanguage = this->GeneratorTarget->GetLinkerLanguage(this->ConfigName); - std::string linkRuleVar = "CMAKE_"; - linkRuleVar += linkLanguage; - linkRuleVar += "_CREATE_STATIC_LIBRARY"; - if (this->GeneratorTarget->IsIPOEnabled(this->ConfigName) && - this->Makefile->GetDefinition(linkRuleVar + "_IPO")) { - linkRuleVar += "_IPO"; - } + std::string linkRuleVar = this->GeneratorTarget->GetCreateRuleVariable( + linkLanguage, this->ConfigName); std::string extraFlags; this->LocalGenerator->GetStaticLibraryFlags( @@ -676,18 +671,30 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules( std::string arCreateVar = "CMAKE_"; arCreateVar += linkLanguage; arCreateVar += "_ARCHIVE_CREATE"; + + arCreateVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arCreateVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arCreateVar)) { cmSystemTools::ExpandListArgument(rule, archiveCreateCommands); } std::string arAppendVar = "CMAKE_"; arAppendVar += linkLanguage; arAppendVar += "_ARCHIVE_APPEND"; + + arAppendVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arAppendVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arAppendVar)) { cmSystemTools::ExpandListArgument(rule, archiveAppendCommands); } std::string arFinishVar = "CMAKE_"; arFinishVar += linkLanguage; arFinishVar += "_ARCHIVE_FINISH"; + + arFinishVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + arFinishVar, this->ConfigName); + if (const char* rule = this->Makefile->GetDefinition(arFinishVar)) { cmSystemTools::ExpandListArgument(rule, archiveFinishCommands); } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 5552fa9..eac3ecf 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -516,6 +516,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_CREATE"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } @@ -523,6 +527,10 @@ std::vector cmNinjaNormalTargetGenerator::ComputeLinkCmd() std::string linkCmdVar = "CMAKE_"; linkCmdVar += this->TargetLinkLanguage; linkCmdVar += "_ARCHIVE_FINISH"; + + linkCmdVar = this->GeneratorTarget->GetFeatureSpecificLinkRuleVariable( + linkCmdVar, this->GetConfigName()); + const char* linkCmd = mf->GetRequiredDefinition(linkCmdVar); cmSystemTools::ExpandListArgument(linkCmd, linkCmds); } https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1588a577d16cfb1a689a444b1db1df3ccff2cc3d commit 1588a577d16cfb1a689a444b1db1df3ccff2cc3d Author: Ruslan Baratov AuthorDate: Thu Mar 9 21:05:19 2017 +0800 Commit: Brad King CommitDate: Thu Mar 30 14:56:46 2017 -0400 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was honored only for the Intel compiler on Linux and otherwise ignored. In order to add support for more compilers incrementally without changing behavior in the future, add a new policy whose NEW behavior enforces the `INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported compilers and otherwise produce an error. diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 0c9ee2d..7b85817 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -57,6 +57,7 @@ Policies Introduced by CMake 3.9 .. toctree:: :maxdepth: 1 + CMP0069: INTERPROCEDURAL_OPTIMIZATION is enforced when enabled. CMP0068: RPATH settings on macOS do not affect install_name. Policies Introduced by CMake 3.8 diff --git a/Help/policy/CMP0069.rst b/Help/policy/CMP0069.rst new file mode 100644 index 0000000..b8f5d80 --- /dev/null +++ b/Help/policy/CMP0069.rst @@ -0,0 +1,92 @@ +CMP0069 +------- + +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` is enforced when enabled. + +CMake 3.9 and newer prefer to add IPO flags whenever the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is enabled and +produce an error if flags are not known to CMake for the current compiler. +Since a given compiler may not support IPO flags in all environments in which +it is used, it is now the project's responsibility to use the +:module:`CheckIPOSupported` module to check for support before enabling the +:prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property. This approach +allows a project to conditionally activate IPO when supported. It also +allows an end user to set the :variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION` +variable in an environment known to support IPO even if the project does +not enable the property. + +Since CMake 3.8 and lower only honored :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` +for the Intel compiler on Linux, some projects may unconditionally enable the +target property. Policy ``CMP0069`` provides compatibility with such projects. + +This policy takes effect whenever the IPO property is enabled. The ``OLD`` +behavior for this policy is to add IPO flags only for Intel compiler on Linux. +The ``NEW`` behavior for this policy is to add IPO flags for the current +compiler or produce an error if CMake does not know the flags. + +This policy was introduced in CMake version 3.9. CMake version +|release| warns when the policy is not set and uses ``OLD`` behavior. +Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` +explicitly. + +.. include:: DEPRECATED.txt + +Examples +^^^^^^^^ + +Behave like CMake 3.8 and do not apply any IPO flags except for Intel compiler +on Linux: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.8) + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Use the :module:`CheckIPOSupported` module to detect whether IPO is +supported by the current compiler, environment, and CMake version. +Produce a fatal error if support is not available: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + check_ipo_support() + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + +Apply IPO flags only if compiler supports it: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + include(CheckIPOSupport) + + # ... + + check_ipo_support(RESULT result) + if(result) + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) + endif() + +Apply IPO flags without any checks. This may lead to build errors if IPO +is not supported by the compiler in the current environment. Produce an +error if CMake does not know IPO flags for the current compiler: + +.. code-block:: cmake + + cmake_minimum_required(VERSION 3.9) # CMP0069 NEW + project(foo) + + # ... + + set_property(TARGET ... PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Help/release/dev/interprocedural_optimization_policy.rst b/Help/release/dev/interprocedural_optimization_policy.rst new file mode 100644 index 0000000..93a9d68 --- /dev/null +++ b/Help/release/dev/interprocedural_optimization_policy.rst @@ -0,0 +1,8 @@ +interprocedural_optimization_policy +----------------------------------- + +* The :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION` target property is now enforced + when enabled. CMake will add IPO flags unconditionally or produce an error + if it does not know the flags for the current compiler. The project is now + responsible to use the :module:`CheckIPOSupported` module to check for IPO + support before enabling the target property. See policy :policy:`CMP0069`. diff --git a/Modules/CheckIPOSupported.cmake b/Modules/CheckIPOSupported.cmake index 55c8901..31c1bd3 100644 --- a/Modules/CheckIPOSupported.cmake +++ b/Modules/CheckIPOSupported.cmake @@ -28,6 +28,9 @@ property. Specify languages whose compilers to check. Languages ``C`` and ``CXX`` are supported. +It makes no sense to use this module when :policy:`CMP0069` is set to ``OLD`` so +module will return error in this case. See policy :policy:`CMP0069` for details. + Examples ^^^^^^^^ @@ -125,7 +128,17 @@ macro(_ipo_run_language_check language) endmacro() function(check_ipo_supported) - # TODO: IPO policy + cmake_policy(GET CMP0069 x) + + string(COMPARE EQUAL "${x}" "" not_set) + if(not_set) + message(FATAL_ERROR "Policy CMP0069 is not set") + endif() + + string(COMPARE EQUAL "${x}" "OLD" is_old) + if(is_old) + message(FATAL_ERROR "Policy CMP0069 set to OLD") + endif() set(optional) set(one RESULT OUTPUT) diff --git a/Modules/CheckIPOSupported/CMakeLists-C.txt.in b/Modules/CheckIPOSupported/CMakeLists-C.txt.in index d20f31f..5a3b8ee 100644 --- a/Modules/CheckIPOSupported/CMakeLists-C.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-C.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES C) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.c) add_executable(boo main.c) diff --git a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in index 4b55c70..30993fa 100644 --- a/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in +++ b/Modules/CheckIPOSupported/CMakeLists-CXX.txt.in @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION "@CMAKE_VERSION@") project("@TRY_COMPILE_PROJECT_NAME@" LANGUAGES CXX) -# TODO: IPO policy +cmake_policy(SET CMP0069 NEW) add_library(foo foo.cpp) add_executable(boo main.cpp) diff --git a/Modules/Platform/Linux-Intel.cmake b/Modules/Platform/Linux-Intel.cmake index 45dc36f..6e2978a 100644 --- a/Modules/Platform/Linux-Intel.cmake +++ b/Modules/Platform/Linux-Intel.cmake @@ -39,6 +39,7 @@ macro(__linux_compiler_intel lang) "${XIAR} cr " "${XIAR} -s ") set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + set(_CMAKE_IPO_LEGACY_BEHAVIOR YES) else() set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) endif() diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 2199e4a..bb79050 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -286,6 +286,7 @@ cmGeneratorTarget::cmGeneratorTarget(cmTarget* t, cmLocalGenerator* lg) , FortranModuleDirectoryCreated(false) , SourceFileFlagsConstructed(false) , PolicyWarnedCMP0022(false) + , PolicyReportedCMP0069(false) , DebugIncludesDone(false) , DebugCompileOptionsDone(false) , DebugCompileFeaturesDone(false) @@ -659,7 +660,62 @@ const char* cmGeneratorTarget::GetFeature(const std::string& feature, bool cmGeneratorTarget::IsIPOEnabled(const std::string& config) const { const char* feature = "INTERPROCEDURAL_OPTIMIZATION"; - return cmSystemTools::IsOn(this->GetFeature(feature, config)); + const bool result = cmSystemTools::IsOn(this->GetFeature(feature, config)); + + if (!result) { + // 'INTERPROCEDURAL_OPTIMIZATION' is off, no need to check policies + return false; + } + + cmPolicies::PolicyStatus cmp0069 = this->GetPolicyStatusCMP0069(); + + if (cmp0069 == cmPolicies::OLD || cmp0069 == cmPolicies::WARN) { + if (this->Makefile->IsOn("_CMAKE_IPO_LEGACY_BEHAVIOR")) { + return true; + } + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + if (cmp0069 == cmPolicies::WARN) { + std::ostringstream w; + w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0069) << "\n"; + w << "INTERPROCEDURAL_OPTIMIZATION property will be ignored for target " + << "'" << this->GetName() << "'."; + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::AUTHOR_WARNING, w.str(), this->GetBacktrace()); + + this->PolicyReportedCMP0069 = true; + } + return false; + } + + // Note: check consistency with messages from CheckIPOSupported + const char* message = CM_NULLPTR; + if (!this->Makefile->IsOn("_CMAKE_IPO_SUPPORTED_BY_CMAKE")) { + message = "CMake doesn't support IPO for current compiler"; + } else if (!this->Makefile->IsOn( + "_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER")) { + message = "Compiler doesn't support IPO"; + } else if (!this->GlobalGenerator->IsIPOSupported()) { + message = "CMake doesn't support IPO for current generator"; + } + + if (!message) { + // No error/warning messages + return true; + } + + if (this->PolicyReportedCMP0069) { + // problem is already reported, no need to issue a message + return false; + } + + this->PolicyReportedCMP0069 = true; + + this->LocalGenerator->GetCMakeInstance()->IssueMessage( + cmake::FATAL_ERROR, message, this->GetBacktrace()); + return false; } const std::string& cmGeneratorTarget::GetObjectName(cmSourceFile const* file) diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 0ec7389..80bccd5 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -743,6 +743,7 @@ private: mutable std::set UtilityItems; cmPolicies::PolicyMap PolicyMap; mutable bool PolicyWarnedCMP0022; + mutable bool PolicyReportedCMP0069; mutable bool DebugIncludesDone; mutable bool DebugCompileOptionsDone; mutable bool DebugCompileFeaturesDone; diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index b3cb41f..6432538 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -333,6 +333,8 @@ public: virtual bool UseFolderProperty() const; + virtual bool IsIPOSupported() const { return false; } + /** Return whether the generator should use EFFECTIVE_PLATFORM_NAME. This is relevant for mixed macOS and iOS builds. */ virtual bool UseEffectivePlatformName(cmMakefile*) const { return false; } diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index a51e919..956af51 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -99,6 +99,8 @@ public: */ static bool SupportsPlatform() { return false; } + bool IsIPOSupported() const CM_OVERRIDE { return true; } + /** * Write a build statement to @a os with the @a comment using * the @a rule the list of @a outputs files and inputs. diff --git a/Source/cmGlobalUnixMakefileGenerator3.h b/Source/cmGlobalUnixMakefileGenerator3.h index 67d7bc9..bbf9f0f 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.h +++ b/Source/cmGlobalUnixMakefileGenerator3.h @@ -149,6 +149,8 @@ public: /** Does the make tool tolerate .DELETE_ON_ERROR? */ virtual bool AllowDeleteOnError() const { return true; } + bool IsIPOSupported() const CM_OVERRIDE { return true; } + void ComputeTargetObjectDirectory(cmGeneratorTarget* gt) const CM_OVERRIDE; std::string IncludeDirective; diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 77f3408..45993ce 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1664,6 +1664,9 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, return; } + // Check IPO related warning/error. + gtgt->IsIPOEnabled(configName); + // Add define flags this->CurrentLocalGenerator->AppendFlags( defFlags, this->CurrentMakefile->GetDefineFlags()); diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 7c33821..cd5b46b 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -670,6 +670,9 @@ void cmLocalVisualStudio7Generator::WriteConfiguration( // Add the target-specific flags. this->AddCompileOptions(flags, target, linkLanguage, configName); + + // Check IPO related warning/error. + target->IsIPOEnabled(configName); } if (this->FortranProject) { diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h index ecf06b3..72dcc4f 100644 --- a/Source/cmPolicies.h +++ b/Source/cmPolicies.h @@ -203,6 +203,9 @@ class cmMakefile; 3, 8, 0, cmPolicies::WARN) \ SELECT(POLICY, CMP0068, \ "RPATH settings on macOS do not affect install_name.", 3, 9, 0, \ + cmPolicies::WARN) \ + SELECT(POLICY, CMP0069, \ + "INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.", 3, 9, 0, \ cmPolicies::WARN) #define CM_SELECT_ID(F, A1, A2, A3, A4, A5, A6) F(A1) @@ -225,7 +228,8 @@ class cmMakefile; F(CMP0060) \ F(CMP0063) \ F(CMP0065) \ - F(CMP0068) + F(CMP0068) \ + F(CMP0069) /** \class cmPolicies * \brief Handles changes in CMake behavior and policies diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 84767a8..2ab72dc 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2239,6 +2239,9 @@ bool cmVisualStudio10TargetGenerator::ComputeClOptions( linkLanguage, configName.c_str()); } + // Check IPO related warning/error. + this->GeneratorTarget->IsIPOEnabled(configName); + // Get preprocessor definitions for this directory. std::string defineFlags = this->GeneratorTarget->Target->GetMakefile()->GetDefineFlags(); diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt new file mode 100644 index 0000000..ddb3cae --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-cmake\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current compiler +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake new file mode 100644 index 0000000..23fae13 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake @@ -0,0 +1,6 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt new file mode 100644 index 0000000..8decfab --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-compiler\.cmake:[0-9]+ \(add_executable\): + Compiler doesn't support IPO +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake new file mode 100644 index 0000000..24b409a --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt new file mode 100644 index 0000000..0e05ee7 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt @@ -0,0 +1,4 @@ +^CMake Error at CMP0069-NEW-generator\.cmake:[0-9]+ \(add_executable\): + CMake doesn't support IPO for current generator +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake new file mode 100644 index 0000000..df2a888 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake @@ -0,0 +1,7 @@ +cmake_policy(SET CMP0069 NEW) + +set(_CMAKE_IPO_SUPPORTED_BY_CMAKE YES) +set(_CMAKE_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake new file mode 100644 index 0000000..cfe1e9d --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-OLD.cmake @@ -0,0 +1,4 @@ +cmake_policy(SET CMP0069 OLD) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt new file mode 100644 index 0000000..314e180 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt @@ -0,0 +1,9 @@ +^CMake Warning \(dev\) at CMP0069-WARN\.cmake:[0-9]+ \(add_executable\): + Policy CMP0069 is not set: INTERPROCEDURAL_OPTIMIZATION is enforced when + enabled. Run "cmake --help-policy CMP0069" for policy details\. Use the + cmake_policy command to set the policy and suppress this warning\. + + INTERPROCEDURAL_OPTIMIZATION property will be ignored for target 'foo'\. +Call Stack \(most recent call first\): + CMakeLists\.txt:[0-9]+ \(include\) +This warning is for project developers\. Use -Wno-dev to suppress it\.$ diff --git a/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake new file mode 100644 index 0000000..0e3e670 --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMP0069-WARN.cmake @@ -0,0 +1,4 @@ +set(_CMAKE_IPO_LEGACY_BEHAVIOR NO) + +add_executable(foo main.cpp) +set_target_properties(foo PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE) diff --git a/Tests/RunCMake/CMP0069/CMakeLists.txt b/Tests/RunCMake/CMP0069/CMakeLists.txt new file mode 100644 index 0000000..375cbdb --- /dev/null +++ b/Tests/RunCMake/CMP0069/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.8) +project(${RunCMake_TEST} CXX) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CMP0069/RunCMakeTest.cmake b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake new file mode 100644 index 0000000..61ba458 --- /dev/null +++ b/Tests/RunCMake/CMP0069/RunCMakeTest.cmake @@ -0,0 +1,11 @@ +include(RunCMake) + +run_cmake(CMP0069-OLD) +run_cmake(CMP0069-NEW-cmake) +run_cmake(CMP0069-NEW-compiler) +run_cmake(CMP0069-WARN) + +string(COMPARE EQUAL "${RunCMake_GENERATOR}" "Xcode" is_xcode) +if(is_xcode OR RunCMake_GENERATOR MATCHES "^Visual Studio ") + run_cmake(CMP0069-NEW-generator) +endif() diff --git a/Tests/RunCMake/CMP0069/main.cpp b/Tests/RunCMake/CMP0069/main.cpp new file mode 100644 index 0000000..5047a34 --- /dev/null +++ b/Tests/RunCMake/CMP0069/main.cpp @@ -0,0 +1,3 @@ +int main() +{ +} diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 217f0d5..0715a1a 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -107,6 +107,7 @@ add_RunCMake_test(CMP0064) if(CMAKE_SYSTEM_NAME MATCHES Darwin AND CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG) add_RunCMake_test(CMP0068) endif() +add_RunCMake_test(CMP0069) # The test for Policy 65 requires the use of the # CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS variable, which both the VS and Xcode diff --git a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt index a0effc9..4a13d29 100644 --- a/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt +++ b/Tests/RunCMake/CheckIPOSupported/CMakeLists.txt @@ -1,4 +1,7 @@ cmake_minimum_required(VERSION 3.0) project(${RunCMake_TEST} NONE) + +cmake_policy(SET CMP0069 NEW) + include(CheckIPOSupported) include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake index 2815037..812f79b 100644 --- a/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake +++ b/Tests/RunCMake/CheckIPOSupported/RunCMakeTest.cmake @@ -7,6 +7,7 @@ run_cmake(default-lang-none) run_cmake(not-supported-by-cmake) run_cmake(not-supported-by-compiler) run_cmake(save-to-result) +run_cmake(cmp0069-is-old) if(RunCMake_GENERATOR MATCHES "^(Visual Studio |Xcode$)") run_cmake(not-supported-by-generator) diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt new file mode 100644 index 0000000..f183594 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt @@ -0,0 +1,5 @@ +^CMake Error at .*/Modules/CheckIPOSupported\.cmake:[0-9]+ \(message\): + Policy CMP0069 set to OLD +Call Stack \(most recent call first\): + cmp0069-is-old\.cmake:[0-9]+ \(check_ipo_supported\) + CMakeLists\.txt:[0-9]+ \(include\)$ diff --git a/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake new file mode 100644 index 0000000..14fed04 --- /dev/null +++ b/Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake @@ -0,0 +1,6 @@ +project(${RunCMake_TEST} LANGUAGES C CXX) + +cmake_policy(SET CMP0069 OLD) + +include(CheckIPOSupported) +check_ipo_supported() diff --git a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt index 78657ef..5f6be87 100644 --- a/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt +++ b/Tests/RunCMake/TargetPolicies/PolicyList-stderr.txt @@ -21,6 +21,7 @@ \* CMP0063 \* CMP0065 \* CMP0068 + \* CMP0069 Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) ----------------------------------------------------------------------- Summary of changes: Source/cmGeneratorTarget.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 18:15:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 18:15:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-630-gbaa8c9c Message-ID: <20170330221504.2358EBB2AC@public.kitware.com> 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 baa8c9c3568c808b6217c6548a1d927cf85475ab (commit) via d1dac1acc502af2f2b766cc9b262a4f1294be39b (commit) via d02709d7f76624d9ec5e178d79cf3658d551f197 (commit) via 013ffe76e7d67fdb05fe29c82421b0a000feb468 (commit) via 32e9d0ca233439c0381abc5acee8a5acd30be494 (commit) from 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 (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=baa8c9c3568c808b6217c6548a1d927cf85475ab commit baa8c9c3568c808b6217c6548a1d927cf85475ab Merge: 83fb339 d1dac1a Author: Gregor Jasny AuthorDate: Thu Mar 30 22:06:14 2017 +0000 Commit: Kitware Robot CommitDate: Thu Mar 30 18:06:26 2017 -0400 Stage topic '16733-bundle-genex' Topic-id: 23316 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/635 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1dac1acc502af2f2b766cc9b262a4f1294be39b commit d1dac1acc502af2f2b766cc9b262a4f1294be39b Author: Gregor Jasny AuthorDate: Fri Mar 24 12:28:57 2017 +0100 Commit: Gregor Jasny CommitDate: Thu Mar 30 22:24:54 2017 +0200 Xcode: Execute RunCMake.Framework also for Xcode generator diff --git a/Tests/RunCMake/Framework/FrameworkLayout.cmake b/Tests/RunCMake/Framework/FrameworkLayout.cmake index dcfbd2d..3d62a8a 100644 --- a/Tests/RunCMake/Framework/FrameworkLayout.cmake +++ b/Tests/RunCMake/Framework/FrameworkLayout.cmake @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 3.4) enable_language(C) +set(CMAKE_CONFIGURATION_TYPES "Debug" CACHE INTERNAL "Supported configuration types") +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) # get rid of ${EFFECTIVE_PLATFORM_NAME} + add_library(Framework ${FRAMEWORK_TYPE} foo.c foo.h @@ -18,3 +21,5 @@ set_source_files_properties(some.txt PROPERTIES MACOSX_PACKAGE_LOCATION somedir) add_custom_command(TARGET Framework POST_BUILD COMMAND /usr/bin/file $) + +file(GENERATE OUTPUT FrameworkName.cmake CONTENT "set(framework-dir \"$\")\n") diff --git a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake index 1a543d8..eb71394 100644 --- a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake @@ -1,4 +1,4 @@ -set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") +include("${RunCMake_TEST_BINARY_DIR}/FrameworkName.cmake") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-resources}/res.txt") set(framework-flat-resource-file "${framework-resources}/flatresource.txt") diff --git a/Tests/RunCMake/Framework/RunCMakeTest.cmake b/Tests/RunCMake/Framework/RunCMakeTest.cmake index e64892d..4fc83f8 100644 --- a/Tests/RunCMake/Framework/RunCMakeTest.cmake +++ b/Tests/RunCMake/Framework/RunCMakeTest.cmake @@ -13,13 +13,10 @@ function(framework_layout_test Name Toolchain Type) run_cmake_command(${Name} ${CMAKE_COMMAND} --build .) endfunction() -# build check cannot cope with multi-configuration generators directory layout -if(NOT RunCMake_GENERATOR STREQUAL "Xcode") - framework_layout_test(iOSFrameworkLayout-build ios SHARED) - framework_layout_test(iOSFrameworkLayout-build ios STATIC) - framework_layout_test(OSXFrameworkLayout-build osx SHARED) - framework_layout_test(OSXFrameworkLayout-build osx STATIC) -endif() +framework_layout_test(iOSFrameworkLayout-build ios SHARED) +framework_layout_test(iOSFrameworkLayout-build ios STATIC) +framework_layout_test(OSXFrameworkLayout-build osx SHARED) +framework_layout_test(OSXFrameworkLayout-build osx STATIC) function(framework_type_test Toolchain Type) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${Toolchain}${Type}FrameworkType-build) diff --git a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake index e068a3a..2da60d2 100644 --- a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake +++ b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake @@ -1,4 +1,4 @@ -set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework") +include("${RunCMake_TEST_BINARY_DIR}/FrameworkName.cmake") set(framework-resources "${framework-dir}/Resources") set(framework-resource-file "${framework-dir}/res.txt") set(framework-flat-resource-file "${framework-dir}/flatresource.txt") https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d02709d7f76624d9ec5e178d79cf3658d551f197 commit d02709d7f76624d9ec5e178d79cf3658d551f197 Author: Gregor Jasny AuthorDate: Mon Mar 27 20:54:22 2017 +0200 Commit: Gregor Jasny CommitDate: Thu Mar 30 22:24:54 2017 +0200 Genex: Add `TARGET_BUNDLE_[CONTENT_]_DIR` generator expressions Closes #16733 diff --git a/Help/manual/cmake-generator-expressions.7.rst b/Help/manual/cmake-generator-expressions.7.rst index 3a225ad..645be1d 100644 --- a/Help/manual/cmake-generator-expressions.7.rst +++ b/Help/manual/cmake-generator-expressions.7.rst @@ -205,6 +205,15 @@ Available informational expressions are: Name of the linker generated program database file (.pdb). ``$`` Directory of the linker generated program database file (.pdb). +``$`` + Full path to the bundle directory (``my.app``, ``my.framework``, or + ``my.bundle``) where ``tgt`` is the name of a target. +``$`` + Full path to the bundle content directory where ``tgt`` is the name of a + target. For the macOS SDK it leads to ``my.app/Contents``, ``my.framework``, + or ``my.bundle/Contents``. For all other SDKs (e.g. iOS) it leads to + ``my.app``, ``my.framework``, or ``my.bundle`` due to the flat bundle + structure. ``$`` Value of the property ``prop`` on the target ``tgt``. diff --git a/Help/release/dev/bundle-genex.rst b/Help/release/dev/bundle-genex.rst new file mode 100644 index 0000000..e79b84c --- /dev/null +++ b/Help/release/dev/bundle-genex.rst @@ -0,0 +1,12 @@ +bundle-genex +------------ + +* Two new informational generator expressions to retrieve Apple Bundle + directories have been added. The first one ``$`` + outputs the full path to the Bundle directory, the other one + ``$`` outputs the full path to the + ``Contents`` directory of macOS Bundles and App Bundles. For all other + bundle types and SDKs it is identical with ``$``. + + Those new expressions are helpful to query Bundle locations independent of + the different Bundle types and layouts on macOS and iOS. diff --git a/Source/cmGeneratorExpressionNode.cxx b/Source/cmGeneratorExpressionNode.cxx index 66202df..4443499 100644 --- a/Source/cmGeneratorExpressionNode.cxx +++ b/Source/cmGeneratorExpressionNode.cxx @@ -1504,6 +1504,8 @@ class ArtifactNameTag; class ArtifactPathTag; class ArtifactPdbTag; class ArtifactSonameTag; +class ArtifactBundleDirTag; +class ArtifactBundleContentDirTag; template struct TargetFilesystemArtifactResultCreator @@ -1600,6 +1602,56 @@ struct TargetFilesystemArtifactResultCreator }; template <> +struct TargetFilesystemArtifactResultCreator +{ + static std::string Create(cmGeneratorTarget* target, + cmGeneratorExpressionContext* context, + const GeneratorExpressionContent* content) + { + if (target->IsImported()) { + ::reportError(context, content->GetOriginalExpression(), + "TARGET_BUNDLE_DIR not allowed for IMPORTED targets."); + return std::string(); + } + if (!target->IsBundleOnApple()) { + ::reportError(context, content->GetOriginalExpression(), + "TARGET_BUNDLE_DIR is allowed only for Bundle targets."); + return std::string(); + } + + std::string outpath = target->GetDirectory(context->Config) + '/'; + return target->BuildBundleDirectory(outpath, context->Config, + cmGeneratorTarget::BundleDirLevel); + } +}; + +template <> +struct TargetFilesystemArtifactResultCreator +{ + static std::string Create(cmGeneratorTarget* target, + cmGeneratorExpressionContext* context, + const GeneratorExpressionContent* content) + { + if (target->IsImported()) { + ::reportError( + context, content->GetOriginalExpression(), + "TARGET_BUNDLE_CONTENT_DIR not allowed for IMPORTED targets."); + return std::string(); + } + if (!target->IsBundleOnApple()) { + ::reportError( + context, content->GetOriginalExpression(), + "TARGET_BUNDLE_CONTENT_DIR is allowed only for Bundle targets."); + return std::string(); + } + + std::string outpath = target->GetDirectory(context->Config) + '/'; + return target->BuildBundleDirectory(outpath, context->Config, + cmGeneratorTarget::ContentLevel); + } +}; + +template <> struct TargetFilesystemArtifactResultCreator { static std::string Create(cmGeneratorTarget* target, @@ -1716,6 +1768,13 @@ static const TargetFilesystemArtifactNodeGroup static const TargetFilesystemArtifactNodeGroup targetPdbNodeGroup; +static const TargetFilesystemArtifact + targetBundleDirNode; + +static const TargetFilesystemArtifact + targetBundleContentDirNode; + static const struct ShellPathNode : public cmGeneratorExpressionNode { ShellPathNode() {} @@ -1772,6 +1831,8 @@ const cmGeneratorExpressionNode* cmGeneratorExpressionNode::GetNode( nodeMap["TARGET_LINKER_FILE_DIR"] = &targetLinkerNodeGroup.FileDir; nodeMap["TARGET_SONAME_FILE_DIR"] = &targetSoNameNodeGroup.FileDir; nodeMap["TARGET_PDB_FILE_DIR"] = &targetPdbNodeGroup.FileDir; + nodeMap["TARGET_BUNDLE_DIR"] = &targetBundleDirNode; + nodeMap["TARGET_BUNDLE_CONTENT_DIR"] = &targetBundleContentDirNode; nodeMap["STREQUAL"] = &strEqualNode; nodeMap["EQUAL"] = &equalNode; nodeMap["LOWER_CASE"] = &lowerCaseNode; diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 2938fde..7797508 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1493,6 +1493,12 @@ static bool shouldAddFullLevel(cmGeneratorTarget::BundleDirectoryLevel level) return level == cmGeneratorTarget::FullLevel; } +static bool shouldAddContentLevel( + cmGeneratorTarget::BundleDirectoryLevel level) +{ + return level == cmGeneratorTarget::ContentLevel || shouldAddFullLevel(level); +} + std::string cmGeneratorTarget::GetAppBundleDirectory( const std::string& config, BundleDirectoryLevel level) const { @@ -1503,7 +1509,7 @@ std::string cmGeneratorTarget::GetAppBundleDirectory( ext = "app"; } fpath += ext; - if (!this->Makefile->PlatformIsAppleIos()) { + if (shouldAddContentLevel(level) && !this->Makefile->PlatformIsAppleIos()) { fpath += "/Contents"; if (shouldAddFullLevel(level)) { fpath += "/MacOS"; @@ -1533,7 +1539,7 @@ std::string cmGeneratorTarget::GetCFBundleDirectory( } } fpath += ext; - if (!this->Makefile->PlatformIsAppleIos()) { + if (shouldAddContentLevel(level) && !this->Makefile->PlatformIsAppleIos()) { fpath += "/Contents"; if (shouldAddFullLevel(level)) { fpath += "/MacOS"; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 07a59ae..7ceaab6 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -163,6 +163,7 @@ public: /** What hierarchy level should the reported directory contain */ enum BundleDirectoryLevel { + BundleDirLevel, ContentLevel, FullLevel }; diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt new file mode 100644 index 0000000..854447f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt @@ -0,0 +1,8 @@ +CMake Error at ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake:[0-9]* \(add_custom_target\): + Error evaluating generator expression: + + \$ + + TARGET_BUNDLE_CONTENT_DIR not allowed for IMPORTED targets. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]* \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake new file mode 100644 index 0000000..ac2d3ce --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake @@ -0,0 +1,2 @@ +add_library(empty UNKNOWN IMPORTED) +add_custom_target(custom COMMAND echo $) diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt new file mode 100644 index 0000000..9b97df1 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt @@ -0,0 +1,8 @@ +CMake Error at ImportedTarget-TARGET_BUNDLE_DIR.cmake:[0-9]* \(add_custom_target\): + Error evaluating generator expression: + + \$ + + TARGET_BUNDLE_DIR not allowed for IMPORTED targets. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]* \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake new file mode 100644 index 0000000..17c8128 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake @@ -0,0 +1,2 @@ +add_library(empty UNKNOWN IMPORTED) +add_custom_target(custom COMMAND echo $) diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt new file mode 100644 index 0000000..03c02d9 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt @@ -0,0 +1,8 @@ +CMake Error at NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake:[0-9]* \(file\): + Error evaluating generator expression: + + \$ + + TARGET_BUNDLE_CONTENT_DIR is allowed only for Bundle targets. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]* \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake new file mode 100644 index 0000000..63b3b1b --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake @@ -0,0 +1,9 @@ + +enable_language(C) + +add_library(empty STATIC empty.c) + +file(GENERATE + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/test.txt" + CONTENT "[$]" +) diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt @@ -0,0 +1 @@ +1 diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt new file mode 100644 index 0000000..f895c88 --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt @@ -0,0 +1,8 @@ +CMake Error at NonValidTarget-TARGET_BUNDLE_DIR.cmake:[0-9]* \(file\): + Error evaluating generator expression: + + \$ + + TARGET_BUNDLE_DIR is allowed only for Bundle targets. +Call Stack \(most recent call first\): + CMakeLists.txt:[0-9]* \(include\) diff --git a/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake new file mode 100644 index 0000000..19f333a --- /dev/null +++ b/Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake @@ -0,0 +1,9 @@ + +enable_language(C) + +add_library(empty STATIC empty.c) + +file(GENERATE + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/test.txt" + CONTENT "[$]" +) diff --git a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake index 084b5c3..63cd2da 100644 --- a/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake +++ b/Tests/RunCMake/GeneratorExpression/RunCMakeTest.cmake @@ -17,6 +17,8 @@ run_cmake(NonValidTarget-C_COMPILER_ID) run_cmake(NonValidTarget-CXX_COMPILER_ID) run_cmake(NonValidTarget-C_COMPILER_VERSION) run_cmake(NonValidTarget-CXX_COMPILER_VERSION) +run_cmake(NonValidTarget-TARGET_BUNDLE_DIR) +run_cmake(NonValidTarget-TARGET_BUNDLE_CONTENT_DIR) run_cmake(NonValidTarget-TARGET_PROPERTY) run_cmake(NonValidTarget-TARGET_POLICY) run_cmake(COMPILE_LANGUAGE-add_custom_target) @@ -32,6 +34,8 @@ run_cmake(OUTPUT_NAME-recursion) run_cmake(TARGET_PROPERTY-LOCATION) run_cmake(LINK_ONLY-not-linking) +run_cmake(ImportedTarget-TARGET_BUNDLE_DIR) +run_cmake(ImportedTarget-TARGET_BUNDLE_CONTENT_DIR) run_cmake(ImportedTarget-TARGET_PDB_FILE) if(LINKER_SUPPORTS_PDB) run_cmake(NonValidTarget-TARGET_PDB_FILE) diff --git a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake index 833eb85..0b854d8 100644 --- a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake @@ -58,6 +58,10 @@ if(NOT TEST_IOS OR NOT XCODE_VERSION VERSION_LESS 6) add_custom_target(SharedFrameworkTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(SharedFrameworkTest SharedFramework) @@ -71,6 +75,10 @@ if(NOT TEST_IOS OR NOT XCODE_VERSION VERSION_LESS 6) add_custom_target(SharedFrameworkExtTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(SharedFrameworkExtTest SharedFrameworkExt) @@ -84,6 +92,10 @@ if(NOT XCODE_VERSION VERSION_LESS 6) add_custom_target(StaticFrameworkTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(StaticFrameworkTest StaticFramework) @@ -97,6 +109,10 @@ if(NOT XCODE_VERSION VERSION_LESS 6) add_custom_target(StaticFrameworkExtTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(StaticFrameworkExtTest StaticFrameworkExt) @@ -110,6 +126,10 @@ if(NOT CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE) add_custom_target(BundleTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(BundleTest Bundle) @@ -123,6 +143,10 @@ if(NOT CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE) add_custom_target(BundleExtTest ALL COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy + "$" "$.old" + COMMAND ${CMAKE_COMMAND} -E copy "$" "$.old") add_dependencies(BundleExtTest BundleExt) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=013ffe76e7d67fdb05fe29c82421b0a000feb468 commit 013ffe76e7d67fdb05fe29c82421b0a000feb468 Author: Gregor Jasny AuthorDate: Tue Mar 28 09:49:40 2017 +0200 Commit: Gregor Jasny CommitDate: Thu Mar 30 22:24:54 2017 +0200 cmGeneratorTarget: Call GetFrameworkDirectory in GetFullNameInternal diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 95f447f..2938fde 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3222,13 +3222,7 @@ void cmGeneratorTarget::GetFullNameInternal(const std::string& config, // frameworks have directory prefix but no suffix std::string fw_prefix; if (this->IsFrameworkOnApple()) { - fw_prefix = this->GetOutputName(config, false); - fw_prefix += "."; - const char* ext = this->GetProperty("BUNDLE_EXTENSION"); - if (!ext) { - ext = "framework"; - } - fw_prefix += ext; + fw_prefix = this->GetFrameworkDirectory(config, ContentLevel); fw_prefix += "/"; targetPrefix = fw_prefix.c_str(); targetSuffix = CM_NULLPTR; https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=32e9d0ca233439c0381abc5acee8a5acd30be494 commit 32e9d0ca233439c0381abc5acee8a5acd30be494 Author: Gregor Jasny AuthorDate: Tue Mar 28 09:43:38 2017 +0200 Commit: Gregor Jasny CommitDate: Thu Mar 30 22:24:54 2017 +0200 cmGeneratorTarget: Use enum to describe bundle directory query level diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index f78a933..95f447f 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -858,7 +858,7 @@ const char* cmGeneratorTarget::GetLocationForBuild() const } if (this->IsAppBundleOnApple()) { - std::string macdir = this->BuildMacContentDirectory("", "", false); + std::string macdir = this->BuildBundleDirectory("", "", FullLevel); if (!macdir.empty()) { location += "/"; location += macdir; @@ -1488,8 +1488,13 @@ std::string cmGeneratorTarget::GetSOName(const std::string& config) const return soName; } -std::string cmGeneratorTarget::GetAppBundleDirectory(const std::string& config, - bool contentOnly) const +static bool shouldAddFullLevel(cmGeneratorTarget::BundleDirectoryLevel level) +{ + return level == cmGeneratorTarget::FullLevel; +} + +std::string cmGeneratorTarget::GetAppBundleDirectory( + const std::string& config, BundleDirectoryLevel level) const { std::string fpath = this->GetFullName(config, false); fpath += "."; @@ -1500,7 +1505,7 @@ std::string cmGeneratorTarget::GetAppBundleDirectory(const std::string& config, fpath += ext; if (!this->Makefile->PlatformIsAppleIos()) { fpath += "/Contents"; - if (!contentOnly) { + if (shouldAddFullLevel(level)) { fpath += "/MacOS"; } } @@ -1513,8 +1518,8 @@ bool cmGeneratorTarget::IsBundleOnApple() const this->IsCFBundleOnApple(); } -std::string cmGeneratorTarget::GetCFBundleDirectory(const std::string& config, - bool contentOnly) const +std::string cmGeneratorTarget::GetCFBundleDirectory( + const std::string& config, BundleDirectoryLevel level) const { std::string fpath; fpath += this->GetOutputName(config, false); @@ -1530,15 +1535,15 @@ std::string cmGeneratorTarget::GetCFBundleDirectory(const std::string& config, fpath += ext; if (!this->Makefile->PlatformIsAppleIos()) { fpath += "/Contents"; - if (!contentOnly) { + if (shouldAddFullLevel(level)) { fpath += "/MacOS"; } } return fpath; } -std::string cmGeneratorTarget::GetFrameworkDirectory(const std::string& config, - bool rootDir) const +std::string cmGeneratorTarget::GetFrameworkDirectory( + const std::string& config, BundleDirectoryLevel level) const { std::string fpath; fpath += this->GetOutputName(config, false); @@ -1548,7 +1553,7 @@ std::string cmGeneratorTarget::GetFrameworkDirectory(const std::string& config, ext = "framework"; } fpath += ext; - if (!rootDir && !this->Makefile->PlatformIsAppleIos()) { + if (shouldAddFullLevel(level) && !this->Makefile->PlatformIsAppleIos()) { fpath += "/Versions/"; fpath += this->GetFrameworkVersion(); } @@ -1863,18 +1868,19 @@ void cmGeneratorTarget::GetFullNameComponents(std::string& prefix, this->GetFullNameInternal(config, implib, prefix, base, suffix); } -std::string cmGeneratorTarget::BuildMacContentDirectory( - const std::string& base, const std::string& config, bool contentOnly) const +std::string cmGeneratorTarget::BuildBundleDirectory( + const std::string& base, const std::string& config, + BundleDirectoryLevel level) const { std::string fpath = base; if (this->IsAppBundleOnApple()) { - fpath += this->GetAppBundleDirectory(config, contentOnly); + fpath += this->GetAppBundleDirectory(config, level); } if (this->IsFrameworkOnApple()) { - fpath += this->GetFrameworkDirectory(config, contentOnly); + fpath += this->GetFrameworkDirectory(config, level); } if (this->IsCFBundleOnApple()) { - fpath += this->GetCFBundleDirectory(config, contentOnly); + fpath += this->GetCFBundleDirectory(config, level); } return fpath; } @@ -1885,13 +1891,13 @@ std::string cmGeneratorTarget::GetMacContentDirectory( // Start with the output directory for the target. std::string fpath = this->GetDirectory(config, implib); fpath += "/"; - bool contentOnly = true; + BundleDirectoryLevel level = ContentLevel; if (this->IsFrameworkOnApple()) { // additional files with a framework go into the version specific // directory - contentOnly = false; + level = FullLevel; } - fpath = this->BuildMacContentDirectory(fpath, config, contentOnly); + fpath = this->BuildBundleDirectory(fpath, config, level); return fpath; } @@ -2932,7 +2938,7 @@ std::string cmGeneratorTarget::NormalGetFullPath(const std::string& config, std::string fpath = this->GetDirectory(config, implib); fpath += "/"; if (this->IsAppBundleOnApple()) { - fpath = this->BuildMacContentDirectory(fpath, config, false); + fpath = this->BuildBundleDirectory(fpath, config, FullLevel); fpath += "/"; } @@ -3229,7 +3235,7 @@ void cmGeneratorTarget::GetFullNameInternal(const std::string& config, } if (this->IsCFBundleOnApple()) { - fw_prefix = this->GetCFBundleDirectory(config, false); + fw_prefix = this->GetCFBundleDirectory(config, FullLevel); fw_prefix += "/"; targetPrefix = fw_prefix.c_str(); targetSuffix = CM_NULLPTR; diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index d60ad24..07a59ae 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -160,9 +160,16 @@ public: bool realname) const; std::string NormalGetRealName(const std::string& config) const; + /** What hierarchy level should the reported directory contain */ + enum BundleDirectoryLevel + { + ContentLevel, + FullLevel + }; + /** @return the Mac App directory without the base */ std::string GetAppBundleDirectory(const std::string& config, - bool contentOnly) const; + BundleDirectoryLevel level) const; /** Return whether this target is an executable Bundle, a framework or CFBundle on Apple. */ @@ -175,7 +182,7 @@ public: /** @return the Mac framework directory without the base. */ std::string GetFrameworkDirectory(const std::string& config, - bool rootDir) const; + BundleDirectoryLevel level) const; /** Return the framework version string. Undefined if IsFrameworkOnApple returns false. */ @@ -183,7 +190,7 @@ public: /** @return the Mac CFBundle directory without the base */ std::string GetCFBundleDirectory(const std::string& config, - bool contentOnly) const; + BundleDirectoryLevel level) const; /** Return the install name directory for the target in the * build tree. For example: "\@rpath/", "\@loader_path/", @@ -218,10 +225,11 @@ public: const std::string& config = "", bool implib = false) const; - /** Append to @a base the mac content directory and return it. */ - std::string BuildMacContentDirectory(const std::string& base, - const std::string& config = "", - bool contentOnly = true) const; + /** Append to @a base the bundle directory hierarchy up to a certain @a level + * and return it. */ + std::string BuildBundleDirectory(const std::string& base, + const std::string& config, + BundleDirectoryLevel level) const; /** @return the mac content directory for this target. */ std::string GetMacContentDirectory(const std::string& config = CM_NULLPTR, diff --git a/Source/cmOSXBundleGenerator.cxx b/Source/cmOSXBundleGenerator.cxx index 8139be4..c9f6ceb 100644 --- a/Source/cmOSXBundleGenerator.cxx +++ b/Source/cmOSXBundleGenerator.cxx @@ -42,7 +42,8 @@ void cmOSXBundleGenerator::CreateAppBundle(const std::string& targetName, // Compute bundle directory names. std::string out = outpath; out += "/"; - out += this->GT->GetAppBundleDirectory(this->ConfigName, false); + out += this->GT->GetAppBundleDirectory(this->ConfigName, + cmGeneratorTarget::FullLevel); cmSystemTools::MakeDirectory(out.c_str()); this->Makefile->AddCMakeOutputFile(out); @@ -52,7 +53,8 @@ void cmOSXBundleGenerator::CreateAppBundle(const std::string& targetName, // to be set. std::string plist = outpath; plist += "/"; - plist += this->GT->GetAppBundleDirectory(this->ConfigName, true); + plist += this->GT->GetAppBundleDirectory(this->ConfigName, + cmGeneratorTarget::ContentLevel); plist += "/Info.plist"; this->LocalGenerator->GenerateAppleInfoPList(this->GT, targetName, plist.c_str()); @@ -70,12 +72,14 @@ void cmOSXBundleGenerator::CreateFramework(const std::string& targetName, assert(this->MacContentFolders); // Compute the location of the top-level foo.framework directory. - std::string contentdir = - outpath + "/" + this->GT->GetFrameworkDirectory(this->ConfigName, true); + std::string contentdir = outpath + "/" + + this->GT->GetFrameworkDirectory(this->ConfigName, + cmGeneratorTarget::ContentLevel); contentdir += "/"; - std::string newoutpath = - outpath + "/" + this->GT->GetFrameworkDirectory(this->ConfigName, false); + std::string newoutpath = outpath + "/" + + this->GT->GetFrameworkDirectory(this->ConfigName, + cmGeneratorTarget::FullLevel); std::string frameworkVersion = this->GT->GetFrameworkVersion(); @@ -170,14 +174,16 @@ void cmOSXBundleGenerator::CreateCFBundle(const std::string& targetName, // Compute bundle directory names. std::string out = root; out += "/"; - out += this->GT->GetCFBundleDirectory(this->ConfigName, false); + out += this->GT->GetCFBundleDirectory(this->ConfigName, + cmGeneratorTarget::FullLevel); cmSystemTools::MakeDirectory(out.c_str()); this->Makefile->AddCMakeOutputFile(out); // Configure the Info.plist file. Note that it needs the executable name // to be set. - std::string plist = - root + "/" + this->GT->GetCFBundleDirectory(this->ConfigName, true); + std::string plist = root + "/" + + this->GT->GetCFBundleDirectory(this->ConfigName, + cmGeneratorTarget::ContentLevel); plist += "/Info.plist"; std::string name = cmSystemTools::GetFilenameName(targetName); this->LocalGenerator->GenerateAppleInfoPList(this->GT, name, plist.c_str()); ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-generator-expressions.7.rst | 9 +++ Help/release/dev/bundle-genex.rst | 12 ++++ Source/cmGeneratorExpressionNode.cxx | 61 +++++++++++++++++++ Source/cmGeneratorTarget.cxx | 64 +++++++++++--------- Source/cmGeneratorTarget.h | 23 ++++--- Source/cmOSXBundleGenerator.cxx | 24 +++++--- Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 ++ .../Framework/OSXFrameworkLayout-build-check.cmake | 2 +- Tests/RunCMake/Framework/RunCMakeTest.cmake | 11 ++-- .../Framework/iOSFrameworkLayout-build-check.cmake | 2 +- ...tedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...rtedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 +++ .../ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 2 + .../ImportedTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 +++ .../ImportedTarget-TARGET_BUNDLE_DIR.cmake | 2 + ...lidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...alidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 +++ ...NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake} | 2 +- .../NonValidTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 +++ ...make => NonValidTarget-TARGET_BUNDLE_DIR.cmake} | 2 +- .../GeneratorExpression/RunCMakeTest.cmake | 4 ++ Tests/RunCMake/XcodeProject/XcodeBundles.cmake | 24 ++++++++ 24 files changed, 225 insertions(+), 56 deletions(-) create mode 100644 Help/release/dev/bundle-genex.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt copy Tests/RunCMake/GeneratorExpression/{NonValidCompiler-TARGET_PDB_FILE.cmake => NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake} (71%) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt copy Tests/RunCMake/GeneratorExpression/{NonValidCompiler-TARGET_PDB_FILE.cmake => NonValidTarget-TARGET_BUNDLE_DIR.cmake} (74%) hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 21:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 21:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc4-630-gbaa8c9c Message-ID: <20170331010504.F19C9FA716@public.kitware.com> 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, nightly has been updated discards fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541 (commit) discards 0e71929e43279e3a806d476786a58d1c4e948083 (commit) discards af34df7415c288c64b816938992e5b9ecfe5d312 (commit) discards c9728d7adef051ae309d8dfa3cce1f505936e4cf (commit) discards bdc5141f31e33ab4516a46fcee6e612baa583f84 (commit) discards 4f7e91331af6c356e91cf01132e2a82cea4bce4a (commit) discards 331e44eb8c922143f7956d000bc561c021a16e76 (commit) discards 496b845a1e43117d31f33490f14215f8c94ab15d (commit) discards 8352de538725f292fea20f54efc10ead173ee3b4 (commit) discards 9defe9d63a44d99dadd440b64721f7d518dd31b6 (commit) discards eb69cd94446c9e3ce2debf9d1260a6cfad851a1f (commit) via baa8c9c3568c808b6217c6548a1d927cf85475ab (commit) via d1dac1acc502af2f2b766cc9b262a4f1294be39b (commit) via d02709d7f76624d9ec5e178d79cf3658d551f197 (commit) via 013ffe76e7d67fdb05fe29c82421b0a000feb468 (commit) via 32e9d0ca233439c0381abc5acee8a5acd30be494 (commit) via 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 (commit) via c84c233c802d69b4404d064fc40bc16cbea8b5d6 (commit) via 1399748bd856ce8f5a24e30990c536c77cfc768e (commit) via dfa8263f4be4f1413b73c81649fdc4567a71e56a (commit) via 1588a577d16cfb1a689a444b1db1df3ccff2cc3d (commit) via 2c9f35789d4955bf77436091d1535ed8761a15d2 (commit) via ec670408969b1abcce6acead9b062c7f0c59683e (commit) via 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (commit) via a75757004bda0ff32a152a0d9d6379c02b1338ce (commit) via e05835c35b5d31f31e1a55baf415c075b24a27ad (commit) via 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) via c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (commit) via cb0f3cbb8e2e34e1948598355e151aee4953f7f6 (commit) via 1cc918a770bf6dc763b593df39946667dc572c7d (commit) via a820327d1ae7c32df46cfa5b3caf56184d46eb72 (commit) via d66081b546c55c2066da0eac473b7a1d1d040936 (commit) via 2f359787f6a5d6da20621fb1a161c8cac49902bc (commit) via 7a6ab42f4712adf788156f127aacdad3e1c49cab (commit) via 18eeed41948b265168497ea3360e7b0d56e8e8a9 (commit) via 7bb8b38cce0715c758aa3eb252a9dfc0bda1e2c7 (commit) via 556d98da3ba01f774ca79907478ef3130c95d2c5 (commit) via f6d802b5bcd201f48c7af47f27ec9e1dd0062171 (commit) via cb4e731347e255f2bbb1f2d9593d8080c8718c5b (commit) via 6ca509e7c65a94f4b486bacef766bac717f5308f (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 (fcb2d3e17b5cfc3c0a98dad59a56e0022ba92541) \ N -- N -- N (baa8c9c3568c808b6217c6548a1d927cf85475ab) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-generator-expressions.7.rst | 9 ++ Help/manual/cmake-policies.7.rst | 1 + Help/policy/CMP0069.rst | 92 ++++++++++++ Help/release/dev/bundle-genex.rst | 12 ++ Help/release/dev/gcc-ipo.rst | 7 + .../dev/interprocedural_optimization_policy.rst | 8 ++ Modules/CheckIPOSupported.cmake | 22 ++- Modules/CheckIPOSupported/CMakeLists-C.txt.in | 2 +- Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 2 +- Modules/Compiler/Clang.cmake | 8 ++ Modules/Compiler/GNU.cmake | 39 +++++ Modules/Compiler/QCC.cmake | 8 ++ Modules/FindBoost.cmake | 3 - Modules/Platform/Linux-Intel.cmake | 1 + Source/CMakeVersion.cmake | 2 +- Source/Modules/FindLibUV.cmake | 2 +- Source/cmCommonTargetGenerator.cxx | 7 +- Source/cmCommonTargetGenerator.h | 1 - Source/cmGeneratorExpressionNode.cxx | 61 ++++++++ Source/cmGeneratorTarget.cxx | 149 +++++++++++++++----- Source/cmGeneratorTarget.h | 31 ++-- Source/cmGlobalGenerator.h | 2 + Source/cmGlobalNinjaGenerator.h | 2 + Source/cmGlobalUnixMakefileGenerator3.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 14 ++ Source/cmGlobalXCodeGenerator.cxx | 3 + Source/cmLocalGenerator.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 3 + Source/cmMakefileLibraryTargetGenerator.cxx | 21 ++- Source/cmNinjaNormalTargetGenerator.cxx | 8 ++ Source/cmOSXBundleGenerator.cxx | 24 ++-- Source/cmPolicies.h | 6 +- Source/cmVisualStudio10TargetGenerator.cxx | 3 + .../CMP0069-NEW-cmake-result.txt} | 0 .../RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake | 6 + .../CMP0069-NEW-compiler-result.txt} | 0 .../CMP0069/CMP0069-NEW-compiler-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake | 7 + .../CMP0069-NEW-generator-result.txt} | 0 .../CMP0069/CMP0069-NEW-generator-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake | 7 + Tests/RunCMake/CMP0069/CMP0069-OLD.cmake | 4 + Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt | 9 ++ Tests/RunCMake/CMP0069/CMP0069-WARN.cmake | 4 + Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt | 0 Tests/RunCMake/CMP0069/RunCMakeTest.cmake | 11 ++ .../TestProject => RunCMake/CMP0069}/main.cpp | 0 Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 3 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 5 + .../cmp0069-is-old-result.txt} | 0 .../CheckIPOSupported/cmp0069-is-old-stderr.txt | 5 + .../CheckIPOSupported/cmp0069-is-old.cmake | 6 + .../not-supported-by-compiler-stderr.txt | 2 +- .../not-supported-by-generator-result.txt} | 0 ...r.txt => not-supported-by-generator-stderr.txt} | 4 +- .../not-supported-by-generator.cmake | 6 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 + .../Framework/OSXFrameworkLayout-build-check.cmake | 2 +- Tests/RunCMake/Framework/RunCMakeTest.cmake | 11 +- .../Framework/iOSFrameworkLayout-build-check.cmake | 2 +- ...tedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...rtedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 2 + .../ImportedTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_DIR.cmake | 2 + ...lidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...alidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 9 ++ .../NonValidTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_DIR.cmake | 9 ++ .../GeneratorExpression/RunCMakeTest.cmake | 4 + .../RunCMake/TargetPolicies/PolicyList-stderr.txt | 1 + Tests/RunCMake/XcodeProject/XcodeBundles.cmake | 24 ++++ Utilities/Scripts/BoostScanDeps.cmake | 40 ++---- 78 files changed, 667 insertions(+), 125 deletions(-) create mode 100644 Help/policy/CMP0069.rst create mode 100644 Help/release/dev/bundle-genex.rst create mode 100644 Help/release/dev/gcc-ipo.rst create mode 100644 Help/release/dev/interprocedural_optimization_policy.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-generator-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-OLD.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN.cmake copy Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/CMP0069/RunCMakeTest.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject => RunCMake/CMP0069}/main.cpp (100%) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/cmp0069-is-old-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-generator-result.txt} (100%) copy Tests/RunCMake/CheckIPOSupported/{not-supported-by-compiler-stderr.txt => not-supported-by-generator-stderr.txt} (60%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Thu Mar 30 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Thu, 30 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc4-616-g3e2f6bd Message-ID: <20170331010505.61258FA728@public.kitware.com> 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, nightly-master has been updated via 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (commit) via 9e32b88784e5e0f14258597fde162fcaf6290fea (commit) via c26885066b2a7a76e5ae97f2bfc7282f8182bed8 (commit) via cb0f3cbb8e2e34e1948598355e151aee4953f7f6 (commit) via 1cc918a770bf6dc763b593df39946667dc572c7d (commit) via a820327d1ae7c32df46cfa5b3caf56184d46eb72 (commit) via d66081b546c55c2066da0eac473b7a1d1d040936 (commit) via 2f359787f6a5d6da20621fb1a161c8cac49902bc (commit) via 7a6ab42f4712adf788156f127aacdad3e1c49cab (commit) via 18eeed41948b265168497ea3360e7b0d56e8e8a9 (commit) via 7bb8b38cce0715c758aa3eb252a9dfc0bda1e2c7 (commit) via 556d98da3ba01f774ca79907478ef3130c95d2c5 (commit) via f6d802b5bcd201f48c7af47f27ec9e1dd0062171 (commit) via 01a8a201a7549369ea331516f8c6caa459074a8a (commit) via cb4e731347e255f2bbb1f2d9593d8080c8718c5b (commit) via 5695558f4a5f0d68cd1c200258b89d1524ff230f (commit) via 48cfb295a2810e541bd286f352d77d840be345f7 (commit) via 90bb5f64a48265cee1ec6c1f57c5ac57b632fd68 (commit) via ab5f4e81f305e48234546583a2c8c4334cea78f0 (commit) via f8ed8bef84dcd4746ee223bd34f05b7c995cb363 (commit) via 8647c6cd6825764b8cd69828c185bad14ffc8a7e (commit) via 21a6ed49f2d06982e080eb5fc2f0a7d1c2ea0846 (commit) via a2275bdd636987abcf002fad000c4f02d615d219 (commit) via 6ca509e7c65a94f4b486bacef766bac717f5308f (commit) via b070947dffd141d50227c59feed4c3d784b39157 (commit) via 77139e320c8ec7f92e1298cc57fea7276faceb12 (commit) via 8e8f1118b947905e0e881ea3d9cc881f5fdce89d (commit) via c03141c04cededf6bf31d51627cd8b29c7668495 (commit) via 42c68aadf81a47d563392421636e14ef77644e03 (commit) from 6a5a214f43cccc83fbe3dd6de4747aba43088701 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-properties.7.rst | 1 + Help/manual/cmake.1.rst | 3 + Help/prop_test/DISABLED.rst | 15 ++++ Help/release/dev/ctest-disable-tests.rst | 5 ++ Modules/CMakeDetermineCompilerId.cmake | 8 +- Modules/CMakeDetermineSystem.cmake | 10 ++- Modules/Compiler/SDCC-C-DetermineCompiler.cmake | 10 ++- Modules/FindBoost.cmake | 1 + Source/CMakeVersion.cmake | 2 +- Source/CTest/cmCTestMultiProcessHandler.cxx | 4 +- Source/CTest/cmCTestRunTest.cxx | 31 ++++++- Source/CTest/cmCTestTestHandler.cxx | 65 +++++++++++--- Source/CTest/cmCTestTestHandler.h | 1 + Source/cmCommandArgumentParserHelper.cxx | 2 - Source/cmFileCommand.cxx | 6 +- Source/cmFortranParser.h | 3 +- Source/cmFortranParserImpl.cxx | 1 - Source/cmGlobalXCodeGenerator.cxx | 6 +- Tests/CMakeLib/testEncoding.cxx | 6 +- Tests/RunCMake/CMakeLists.txt | 1 + .../RunCMake/ctest_disabled_test/CMakeLists.txt.in | 6 ++ .../ctest_disabled_test/CTestConfig.cmake.in | 1 + .../DisableAllTests-result.txt} | 0 .../DisableAllTests-stderr.txt} | 0 .../ctest_disabled_test/DisableAllTests-stdout.txt | 2 + .../DisableCleanupTest-stdout.txt | 11 +++ .../DisableFailingTest-stdout.txt | 9 ++ .../DisableNotRunTest-result.txt} | 0 .../DisableNotRunTest-stderr.txt | 1 + .../DisableNotRunTest-stdout.txt | 17 ++++ .../DisableRequiredTest-stdout.txt | 13 +++ .../DisableSetupTest-stdout.txt | 13 +++ .../DisabledTest-result.txt} | 0 .../ctest_disabled_test/DisabledTest-stderr.txt | 1 + .../ctest_disabled_test/DisabledTest-stdout.txt | 17 ++++ .../ctest_disabled_test/RunCMakeTest.cmake | 89 ++++++++++++++++++++ Tests/RunCMake/ctest_disabled_test/test.cmake.in | 16 ++++ Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt | 3 + Tests/RunCMake/file/INSTALL-SYMLINK.cmake | 13 +++ Tests/RunCMake/file/RunCMakeTest.cmake | 1 + Tests/SwiftMix/ObjCMain.m | 2 +- Tests/SwiftMix/SwiftMain.swift | 8 +- 42 files changed, 363 insertions(+), 41 deletions(-) create mode 100644 Help/prop_test/DISABLED.rst create mode 100644 Help/release/dev/ctest-disable-tests.rst create mode 100644 Tests/RunCMake/ctest_disabled_test/CMakeLists.txt.in create mode 100644 Tests/RunCMake/ctest_disabled_test/CTestConfig.cmake.in copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableAllTests-result.txt} (100%) copy Tests/RunCMake/{CTestCommandLine/test-load-fail-stderr.txt => ctest_disabled_test/DisableAllTests-stderr.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableAllTests-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableCleanupTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableFailingTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisableNotRunTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableNotRunTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableRequiredTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisableSetupTest-stdout.txt copy Tests/RunCMake/{ctest_build/BuildFailure-result.txt => ctest_disabled_test/DisabledTest-result.txt} (100%) create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stderr.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/DisabledTest-stdout.txt create mode 100644 Tests/RunCMake/ctest_disabled_test/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/ctest_disabled_test/test.cmake.in create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK-stdout.txt create mode 100644 Tests/RunCMake/file/INSTALL-SYMLINK.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 00:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 00:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc4-617-g60dde28 Message-ID: <20170331040505.D6759FA817@public.kitware.com> 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 60dde287e71efbad71b107902991098a6c77556d (commit) from 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 00:05:06 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 00:05:06 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-631-geddbd87 Message-ID: <20170331040506.6BFBEFA820@public.kitware.com> 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 baa8c9c3568c808b6217c6548a1d927cf85475ab (commit) discards 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 (commit) discards c84c233c802d69b4404d064fc40bc16cbea8b5d6 (commit) discards 1399748bd856ce8f5a24e30990c536c77cfc768e (commit) via eddbd8729d37dd4a4c0ada538868576ff1fe518c (commit) via 45146a43e3b855b41320dcc7b4da1271048c63a3 (commit) via 25e3b0b810e6e0c81890ef55c22ca40100757efd (commit) via d545708715c4bdc623ca68f2a0f6f848c6e87194 (commit) via 60dde287e71efbad71b107902991098a6c77556d (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 (baa8c9c3568c808b6217c6548a1d927cf85475ab) \ N -- N -- N (eddbd8729d37dd4a4c0ada538868576ff1fe518c) 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=eddbd8729d37dd4a4c0ada538868576ff1fe518c commit eddbd8729d37dd4a4c0ada538868576ff1fe518c Merge: 45146a4 d1dac1a Author: Gregor Jasny AuthorDate: Thu Mar 30 22:06:14 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 00:01:24 2017 -0400 Stage topic '16733-bundle-genex' Topic-id: 23316 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/635 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=45146a43e3b855b41320dcc7b4da1271048c63a3 commit 45146a43e3b855b41320dcc7b4da1271048c63a3 Merge: 25e3b0b dfa8263 Author: Brad King AuthorDate: Thu Mar 30 19:00:01 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 00:01:24 2017 -0400 Stage topic 'ipo-policy-CMP0069' Topic-id: 22963 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/568 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=25e3b0b810e6e0c81890ef55c22ca40100757efd commit 25e3b0b810e6e0c81890ef55c22ca40100757efd Merge: d545708 ec67040 Author: Brad King AuthorDate: Thu Mar 30 17:24:41 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 00:01:23 2017 -0400 Stage topic 'libuv-name-fix' Topic-id: 23394 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/647 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d545708715c4bdc623ca68f2a0f6f848c6e87194 commit d545708715c4bdc623ca68f2a0f6f848c6e87194 Merge: 60dde28 2c9f357 Author: Brad King AuthorDate: Thu Mar 30 17:23:29 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 00:01:22 2017 -0400 Stage topic 'vfort-object-linker-lang' Topic-id: 23341 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/643 ----------------------------------------------------------------------- Summary of changes: Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 10:45:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 10:45:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, master, updated. v3.8.0-rc4-631-gc791fb1 Message-ID: <20170331144505.5F319F3E82@public.kitware.com> 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 c791fb12544926bc5870a61735dc2ec62940a6f6 (commit) via 4a553ecb8e52dfd3ca605cd94ef8033e5febe937 (commit) via a466d6f60abe13ddf5eb6bad7cca9743ef67f2f5 (commit) via 8772fc81c4ab745eb5abbae58c6a69706f610429 (commit) via d1dac1acc502af2f2b766cc9b262a4f1294be39b (commit) via d02709d7f76624d9ec5e178d79cf3658d551f197 (commit) via 013ffe76e7d67fdb05fe29c82421b0a000feb468 (commit) via 32e9d0ca233439c0381abc5acee8a5acd30be494 (commit) via dfa8263f4be4f1413b73c81649fdc4567a71e56a (commit) via 1588a577d16cfb1a689a444b1db1df3ccff2cc3d (commit) via 2c9f35789d4955bf77436091d1535ed8761a15d2 (commit) via ec670408969b1abcce6acead9b062c7f0c59683e (commit) via a75757004bda0ff32a152a0d9d6379c02b1338ce (commit) via e05835c35b5d31f31e1a55baf415c075b24a27ad (commit) from 60dde287e71efbad71b107902991098a6c77556d (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-generator-expressions.7.rst | 9 ++ Help/manual/cmake-policies.7.rst | 1 + Help/policy/CMP0069.rst | 92 ++++++++++++ Help/release/dev/bundle-genex.rst | 12 ++ Help/release/dev/gcc-ipo.rst | 7 + .../dev/interprocedural_optimization_policy.rst | 8 ++ Modules/CheckIPOSupported.cmake | 22 ++- Modules/CheckIPOSupported/CMakeLists-C.txt.in | 2 +- Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 2 +- Modules/Compiler/Clang.cmake | 8 ++ Modules/Compiler/GNU.cmake | 39 +++++ Modules/Compiler/QCC.cmake | 8 ++ Modules/Platform/Linux-Intel.cmake | 1 + Source/Modules/FindLibUV.cmake | 2 +- Source/cmCommonTargetGenerator.cxx | 7 +- Source/cmCommonTargetGenerator.h | 1 - Source/cmGeneratorExpressionNode.cxx | 61 ++++++++ Source/cmGeneratorTarget.cxx | 149 +++++++++++++++----- Source/cmGeneratorTarget.h | 31 ++-- Source/cmGlobalGenerator.h | 2 + Source/cmGlobalNinjaGenerator.h | 2 + Source/cmGlobalUnixMakefileGenerator3.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 14 ++ Source/cmGlobalXCodeGenerator.cxx | 3 + Source/cmLocalGenerator.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 3 + Source/cmMakefileLibraryTargetGenerator.cxx | 21 ++- Source/cmNinjaNormalTargetGenerator.cxx | 8 ++ Source/cmOSXBundleGenerator.cxx | 24 ++-- Source/cmPolicies.h | 6 +- Source/cmVisualStudio10TargetGenerator.cxx | 3 + .../CMP0069-NEW-cmake-result.txt} | 0 .../RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake | 6 + .../CMP0069-NEW-compiler-result.txt} | 0 .../CMP0069/CMP0069-NEW-compiler-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake | 7 + .../CMP0069-NEW-generator-result.txt} | 0 .../CMP0069/CMP0069-NEW-generator-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake | 7 + Tests/RunCMake/CMP0069/CMP0069-OLD.cmake | 4 + Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt | 9 ++ Tests/RunCMake/CMP0069/CMP0069-WARN.cmake | 4 + Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt | 0 Tests/RunCMake/CMP0069/RunCMakeTest.cmake | 11 ++ .../TestProject => RunCMake/CMP0069}/main.cpp | 0 Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 3 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 5 + .../cmp0069-is-old-result.txt} | 0 .../CheckIPOSupported/cmp0069-is-old-stderr.txt | 5 + .../CheckIPOSupported/cmp0069-is-old.cmake | 6 + .../not-supported-by-compiler-stderr.txt | 2 +- .../not-supported-by-generator-result.txt} | 0 ...r.txt => not-supported-by-generator-stderr.txt} | 4 +- .../not-supported-by-generator.cmake | 6 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 + .../Framework/OSXFrameworkLayout-build-check.cmake | 2 +- Tests/RunCMake/Framework/RunCMakeTest.cmake | 11 +- .../Framework/iOSFrameworkLayout-build-check.cmake | 2 +- ...tedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...rtedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 2 + .../ImportedTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_DIR.cmake | 2 + ...lidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...alidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 9 ++ .../NonValidTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_DIR.cmake | 9 ++ .../GeneratorExpression/RunCMakeTest.cmake | 4 + .../RunCMake/TargetPolicies/PolicyList-stderr.txt | 1 + Tests/RunCMake/XcodeProject/XcodeBundles.cmake | 24 ++++ 75 files changed, 657 insertions(+), 90 deletions(-) create mode 100644 Help/policy/CMP0069.rst create mode 100644 Help/release/dev/bundle-genex.rst create mode 100644 Help/release/dev/gcc-ipo.rst create mode 100644 Help/release/dev/interprocedural_optimization_policy.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-generator-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-OLD.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN.cmake copy Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/CMP0069/RunCMakeTest.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject => RunCMake/CMP0069}/main.cpp (100%) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/cmp0069-is-old-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-generator-result.txt} (100%) copy Tests/RunCMake/CheckIPOSupported/{not-supported-by-compiler-stderr.txt => not-supported-by-generator-stderr.txt} (60%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 10:45:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 10:45:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-631-gc791fb1 Message-ID: <20170331144505.98B57F3F9E@public.kitware.com> 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 eddbd8729d37dd4a4c0ada538868576ff1fe518c (commit) discards 45146a43e3b855b41320dcc7b4da1271048c63a3 (commit) discards 25e3b0b810e6e0c81890ef55c22ca40100757efd (commit) discards d545708715c4bdc623ca68f2a0f6f848c6e87194 (commit) via c791fb12544926bc5870a61735dc2ec62940a6f6 (commit) via 4a553ecb8e52dfd3ca605cd94ef8033e5febe937 (commit) via a466d6f60abe13ddf5eb6bad7cca9743ef67f2f5 (commit) via 8772fc81c4ab745eb5abbae58c6a69706f610429 (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 (eddbd8729d37dd4a4c0ada538868576ff1fe518c) \ N -- N -- N (c791fb12544926bc5870a61735dc2ec62940a6f6) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 13:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 13:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-633-g20e7a6d Message-ID: <20170331170502.C63B7FA77C@public.kitware.com> 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 20e7a6dcda2c9e214b8998a7124c3ac2f6471507 (commit) via 6f3838c034e652b90d9c2571851729313880a328 (commit) from c791fb12544926bc5870a61735dc2ec62940a6f6 (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=20e7a6dcda2c9e214b8998a7124c3ac2f6471507 commit 20e7a6dcda2c9e214b8998a7124c3ac2f6471507 Merge: c791fb1 6f3838c Author: Brad King AuthorDate: Fri Mar 31 17:01:44 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 13:01:52 2017 -0400 Stage topic 'ExternalProject-fix-remote-branch' Topic-id: 23427 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/649 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6f3838c034e652b90d9c2571851729313880a328 commit 6f3838c034e652b90d9c2571851729313880a328 Author: Brad King AuthorDate: Fri Mar 31 12:53:51 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 12:59:53 2017 -0400 ExternalProject: Fix regression in GIT_TAG with remote branch name The change in commit v3.8.0-rc2~7^2 (ExternalProject: Run `git checkout` with `--` to clarify arguments, 2017-02-24) broke the case of `GIT_TAG some-remote-branch` because an explicit `--` means that the preceding argument is a tree-ish instead of a branch. Revert the change and leave a comment. Fixes: #16763 diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 00781d6..b42d2dd 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -600,8 +600,11 @@ if(error_code) message(FATAL_ERROR \"Failed to clone repository: '${git_repository}'\") endif() +# Use `git checkout ` even though this risks ambiguity with a +# local path. Unfortunately we cannot use `git checkout --` +# because that will not search for remote branch names, a common use case. execute_process( - COMMAND \"${git_EXECUTABLE}\" \${git_options} checkout ${git_tag} -- + COMMAND \"${git_EXECUTABLE}\" \${git_options} checkout ${git_tag} WORKING_DIRECTORY \"${work_dir}/${src_name}\" RESULT_VARIABLE error_code ) ----------------------------------------------------------------------- Summary of changes: Modules/ExternalProject.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 13:15:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 13:15:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-635-gcb99a24 Message-ID: <20170331171502.91343BC7F1@public.kitware.com> 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 cb99a240757033952b8aeaed2a1839c06ed9fd22 (commit) via a1221905092c09603c0b59dd0ed05bfe9f1f22ef (commit) from 20e7a6dcda2c9e214b8998a7124c3ac2f6471507 (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=cb99a240757033952b8aeaed2a1839c06ed9fd22 commit cb99a240757033952b8aeaed2a1839c06ed9fd22 Merge: 20e7a6d a122190 Author: Brad King AuthorDate: Fri Mar 31 17:12:26 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 13:12:38 2017 -0400 Stage topic 'xcode-current-arch' Topic-id: 23422 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/648 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a1221905092c09603c0b59dd0ed05bfe9f1f22ef commit a1221905092c09603c0b59dd0ed05bfe9f1f22ef Author: Brad King AuthorDate: Fri Mar 31 11:26:08 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 11:26:08 2017 -0400 Xcode: Detect CURRENT_ARCH for use by generator During compiler identification, extract the Xcode `CURRENT_ARCH` value and save it for later use by the Xcode generator in an internal compiler information variable. This will be useful to know the locations of object files when only one architecture is built. diff --git a/Modules/CMakeCCompiler.cmake.in b/Modules/CMakeCCompiler.cmake.in index ab068a2..102ab69 100644 --- a/Modules/CMakeCCompiler.cmake.in +++ b/Modules/CMakeCCompiler.cmake.in @@ -13,6 +13,7 @@ set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@") set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@") set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@") @SET_MSVC_C_ARCHITECTURE_ID@ + at SET_CMAKE_XCODE_CURRENT_ARCH@ set(CMAKE_AR "@CMAKE_AR@") set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") diff --git a/Modules/CMakeCXXCompiler.cmake.in b/Modules/CMakeCXXCompiler.cmake.in index 27c8881..3dae035 100644 --- a/Modules/CMakeCXXCompiler.cmake.in +++ b/Modules/CMakeCXXCompiler.cmake.in @@ -14,6 +14,7 @@ set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@") set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@") set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@") @SET_MSVC_CXX_ARCHITECTURE_ID@ + at SET_CMAKE_XCODE_CURRENT_ARCH@ set(CMAKE_AR "@CMAKE_AR@") set(CMAKE_GCC_AR "@CMAKE_GCC_AR@") set(CMAKE_RANLIB "@CMAKE_RANLIB@") diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake index 5d9850d..3caccde 100644 --- a/Modules/CMakeDetermineCCompiler.cmake +++ b/Modules/CMakeDetermineCCompiler.cmake @@ -175,6 +175,11 @@ if(MSVC_C_ARCHITECTURE_ID) "set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})") endif() +if(CMAKE_C_XCODE_CURRENT_ARCH) + set(SET_CMAKE_XCODE_CURRENT_ARCH + "set(CMAKE_XCODE_CURRENT_ARCH ${CMAKE_C_XCODE_CURRENT_ARCH})") +endif() + # configure variables set in this file for fast reload later on configure_file(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in ${CMAKE_PLATFORM_INFO_DIR}/CMakeCCompiler.cmake diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake index 4d85150..9150962 100644 --- a/Modules/CMakeDetermineCXXCompiler.cmake +++ b/Modules/CMakeDetermineCXXCompiler.cmake @@ -170,6 +170,11 @@ if(MSVC_CXX_ARCHITECTURE_ID) "set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})") endif() +if(CMAKE_CXX_XCODE_CURRENT_ARCH) + set(SET_CMAKE_XCODE_CURRENT_ARCH + "set(CMAKE_XCODE_CURRENT_ARCH ${CMAKE_CXX_XCODE_CURRENT_ARCH})") +endif() + # configure all variables set in this file configure_file(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in ${CMAKE_PLATFORM_INFO_DIR}/CMakeCXXCompiler.cmake diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 1abbc01..687263a 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -104,6 +104,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE) set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}" PARENT_SCOPE) + set(CMAKE_${lang}_XCODE_CURRENT_ARCH "${CMAKE_${lang}_XCODE_CURRENT_ARCH}" PARENT_SCOPE) set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX}" PARENT_SCOPE) set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE) set(CMAKE_${lang}_COMPILER_WRAPPER "${CMAKE_${lang}_COMPILER_WRAPPER}" PARENT_SCOPE) @@ -358,6 +359,9 @@ Id flags: ${testflags} ${CMAKE_${lang}_COMPILER_ID_FLAGS_ALWAYS} endif() endif() endif() + if("${CMAKE_${lang}_COMPILER_ID_OUTPUT}" MATCHES "CURRENT_ARCH=([^%\r\n]+)[\r\n]") + set(CMAKE_${lang}_XCODE_CURRENT_ARCH "${CMAKE_MATCH_1}" PARENT_SCOPE) + endif() else() execute_process( COMMAND "${CMAKE_${lang}_COMPILER}" diff --git a/Modules/CompilerId/Xcode-3.pbxproj.in b/Modules/CompilerId/Xcode-3.pbxproj.in index 22ad4f6..84f48ae 100644 --- a/Modules/CompilerId/Xcode-3.pbxproj.in +++ b/Modules/CompilerId/Xcode-3.pbxproj.in @@ -58,7 +58,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "echo \"GCC_VERSION=$GCC_VERSION\""; + shellScript = "echo \"GCC_VERSION=$GCC_VERSION\" ; echo \"CURRENT_ARCH=$CURRENT_ARCH\""; showEnvVarsInLog = 0; }; 2C18F0B515DC1DCE00593670 = { ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompiler.cmake.in | 1 + Modules/CMakeCXXCompiler.cmake.in | 1 + Modules/CMakeDetermineCCompiler.cmake | 5 +++++ Modules/CMakeDetermineCXXCompiler.cmake | 5 +++++ Modules/CMakeDetermineCompilerId.cmake | 4 ++++ Modules/CompilerId/Xcode-3.pbxproj.in | 2 +- 6 files changed, 17 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 13:55:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 13:55:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-637-g38bbe41 Message-ID: <20170331175502.9E294FA1DA@public.kitware.com> 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 38bbe4194727fc94415c44be41fe8270ef12e0e9 (commit) via 72d0f947136f535fe7486f9b02caddb33f66eea1 (commit) from cb99a240757033952b8aeaed2a1839c06ed9fd22 (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=38bbe4194727fc94415c44be41fe8270ef12e0e9 commit 38bbe4194727fc94415c44be41fe8270ef12e0e9 Merge: cb99a24 72d0f94 Author: Brad King AuthorDate: Fri Mar 31 17:51:25 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 13:51:29 2017 -0400 Stage topic 'test-fix-CTestTestChecksum-dir' Topic-id: 23428 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/650 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=72d0f947136f535fe7486f9b02caddb33f66eea1 commit 72d0f947136f535fe7486f9b02caddb33f66eea1 Author: Brad King AuthorDate: Fri Mar 31 13:43:44 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 13:46:08 2017 -0400 Tests: Fix spurious CTestTestParallel failures If `CTestTestParallel` was run at the same time as `CTestTestChecksum` (e.g. during parallel testing) then the former fails due to the latter stepping on its directory. Fix the directory used for the latter to avoid the conflict. diff --git a/Tests/CTestTestChecksum/test.cmake.in b/Tests/CTestTestChecksum/test.cmake.in index 32d62bb..2a435d2 100644 --- a/Tests/CTestTestChecksum/test.cmake.in +++ b/Tests/CTestTestChecksum/test.cmake.in @@ -5,8 +5,8 @@ set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTest") set(CTEST_SITE "@SITE@") set(CTEST_BUILD_NAME "CTestTest- at BUILDNAME@-Checksum") -set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestParallel") -set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestParallel") +set(CTEST_SOURCE_DIRECTORY "@CMake_SOURCE_DIR@/Tests/CTestTestChecksum") +set(CTEST_BINARY_DIRECTORY "@CMake_BINARY_DIR@/Tests/CTestTestChecksum") set(CTEST_CVS_COMMAND "@CVSCOMMAND@") set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@") ----------------------------------------------------------------------- Summary of changes: Tests/CTestTestChecksum/test.cmake.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 14:05:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 14:05:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-639-g9ec9018 Message-ID: <20170331180502.BEE5BFA77F@public.kitware.com> 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 9ec90185a7b3f26951c87318808752d590028d9b (commit) via 716f8c88c9c94dc58f22ae770d613a4fec51c276 (commit) from 38bbe4194727fc94415c44be41fe8270ef12e0e9 (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=9ec90185a7b3f26951c87318808752d590028d9b commit 9ec90185a7b3f26951c87318808752d590028d9b Merge: 38bbe41 716f8c8 Author: Brad King AuthorDate: Fri Mar 31 18:00:26 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 14:00:28 2017 -0400 Stage topic 'test-LinkInterfaceLoop-custom-timeout' Topic-id: 23430 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/651 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=716f8c88c9c94dc58f22ae770d613a4fec51c276 commit 716f8c88c9c94dc58f22ae770d613a4fec51c276 Author: Brad King AuthorDate: Fri Mar 31 13:56:49 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 13:56:49 2017 -0400 Tests: Add option to customize LinkInterfaceLoop timeout This test has a timeout in case CMake gets into an infinite loop. The default of 90 seconds should be plenty of time for the test to run correctly since it does not actually do a build. However, busy machines that run lots of tests in parallel may need a longer timeout. Give them an option to extend it. diff --git a/Tests/CMakeOnly/CMakeLists.txt b/Tests/CMakeOnly/CMakeLists.txt index c692cbd..d44c836 100644 --- a/Tests/CMakeOnly/CMakeLists.txt +++ b/Tests/CMakeOnly/CMakeLists.txt @@ -9,7 +9,14 @@ macro(add_CMakeOnly_test test) endmacro() add_CMakeOnly_test(LinkInterfaceLoop) -set_property(TEST CMakeOnly.LinkInterfaceLoop PROPERTY TIMEOUT 90) +# If a bug is introduced in CMake that causes an infinite loop while +# analyzing LinkInterfaceLoop then don't let the test run too long. +# Use an option to customize it so that the timeout can be extended +# on busy machines. +if(NOT DEFINED CMake_TEST_CMakeOnly.LinkInterfaceLoop_TIMEOUT) + set(CMake_TEST_CMakeOnly.LinkInterfaceLoop_TIMEOUT 90) +endif() +set_property(TEST CMakeOnly.LinkInterfaceLoop PROPERTY TIMEOUT ${CMake_TEST_CMakeOnly.LinkInterfaceLoop_TIMEOUT}) add_CMakeOnly_test(CheckSymbolExists) ----------------------------------------------------------------------- Summary of changes: Tests/CMakeOnly/CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 14:35:02 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 14:35:02 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-641-g5aa11aa Message-ID: <20170331183502.B3D36FA7C5@public.kitware.com> 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 5aa11aa1711543fdc55126798edd39626f30cb23 (commit) via 4af0c9daf41dfe08c776e77f5b19aebd81469479 (commit) from 9ec90185a7b3f26951c87318808752d590028d9b (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=5aa11aa1711543fdc55126798edd39626f30cb23 commit 5aa11aa1711543fdc55126798edd39626f30cb23 Merge: 9ec9018 4af0c9d Author: Brad King AuthorDate: Fri Mar 31 18:31:41 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 14:31:52 2017 -0400 Stage topic 'intel-compile-features' Topic-id: 23431 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/652 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4af0c9daf41dfe08c776e77f5b19aebd81469479 commit 4af0c9daf41dfe08c776e77f5b19aebd81469479 Author: Brad King AuthorDate: Fri Mar 31 14:19:17 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 14:29:18 2017 -0400 Features: Update features for Intel C++ 17.0.2 on UNIX Intel 17.0.2 on UNIX introduced a regression from 17.0.1 in its definition of `__cpp_constexpr` in `-std=c++14` mode. It incorrectly defines it as `200704` instead of the expected `201304`. Fix our feature detection table to account for this. diff --git a/Modules/Compiler/Intel-CXX-FeatureTests.cmake b/Modules/Compiler/Intel-CXX-FeatureTests.cmake index e370647..929a7c6 100644 --- a/Modules/Compiler/Intel-CXX-FeatureTests.cmake +++ b/Modules/Compiler/Intel-CXX-FeatureTests.cmake @@ -13,7 +13,6 @@ # - __cpp_variadic_templates 200704 set(_cmake_feature_test_cxx_variable_templates "__cpp_variable_templates >= 201304") -set(_cmake_feature_test_cxx_relaxed_constexpr "__cpp_constexpr >= 201304") set(_cmake_oldestSupported "__INTEL_COMPILER >= 1210") set(DETECT_CXX11 "((__cplusplus >= 201103L) || defined(__INTEL_CXX11_MODE__) || defined(__GXX_EXPERIMENTAL_CXX0X__))") @@ -24,6 +23,9 @@ set(DETECT_BUGGY_ICC15 "((__INTEL_COMPILER == 1500) && (__INTEL_COMPILER_UPDATE set(DETECT_CXX14 "((__cplusplus >= 201300L) || ((__cplusplus == 201103L) && !defined(__INTEL_CXX11_MODE__)) || ((${DETECT_BUGGY_ICC15}) && defined(__GXX_EXPERIMENTAL_CXX0X__) && !defined(__INTEL_CXX11_MODE__) ) || (defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)) )") unset(DETECT_BUGGY_ICC15) +set(Intel17_CXX14 "__INTEL_COMPILER >= 1700 && ${DETECT_CXX14}") +set(_cmake_feature_test_cxx_relaxed_constexpr "__cpp_constexpr >= 201304 || (${Intel17_CXX14} && !defined(_MSC_VER))") + set(Intel16_CXX14 "__INTEL_COMPILER >= 1600 && ${DETECT_CXX14}") set(_cmake_feature_test_cxx_aggregate_default_initializers "${Intel16_CXX14}") set(_cmake_feature_test_cxx_contextual_conversions "${Intel16_CXX14}") ----------------------------------------------------------------------- Summary of changes: Modules/Compiler/Intel-CXX-FeatureTests.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 15:35:03 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 15:35:03 -0400 (EDT) Subject: [Cmake-commits] CMake branch, next, updated. v3.8.0-rc4-643-ged76ca4 Message-ID: <20170331193503.D8B7BFA561@public.kitware.com> 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 ed76ca4476a04a553ffd8e04388c4e91123d04c7 (commit) via 8206c28bd6e6d7849e80a68cdfef79ff5a1031a3 (commit) from 5aa11aa1711543fdc55126798edd39626f30cb23 (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=ed76ca4476a04a553ffd8e04388c4e91123d04c7 commit ed76ca4476a04a553ffd8e04388c4e91123d04c7 Merge: 5aa11aa 8206c28 Author: Brad King AuthorDate: Fri Mar 31 19:29:20 2017 +0000 Commit: Kitware Robot CommitDate: Fri Mar 31 15:29:23 2017 -0400 Stage topic 'test-CMake.GetPrerequisites-config-message' Topic-id: 23435 Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/654 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8206c28bd6e6d7849e80a68cdfef79ff5a1031a3 commit 8206c28bd6e6d7849e80a68cdfef79ff5a1031a3 Author: Brad King AuthorDate: Fri Mar 31 15:20:01 2017 -0400 Commit: Brad King CommitDate: Fri Mar 31 15:20:01 2017 -0400 Tests: Fix CMake.GetPrerequisites test config message Since commit v2.8.11~239^2~1 (ProcessorCount test: fix path to cmsysTestsCxx executable, 2013-01-24) we accidentally printed a literal `${CTEST_CONFIGURATION_TYPE}` instead of the actual build configuration. Update the message to use the `$` generator expression to get the real build configuration used. diff --git a/Tests/CMakeTests/CMakeLists.txt b/Tests/CMakeTests/CMakeLists.txt index d5524c3..aa7ae25 100644 --- a/Tests/CMakeTests/CMakeLists.txt +++ b/Tests/CMakeTests/CMakeLists.txt @@ -53,10 +53,7 @@ set(EndStuff_PreArgs ) AddCMakeTest(EndStuff "${EndStuff_PreArgs}") -set(GetPrerequisites_PreArgs - "-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}" - ) -AddCMakeTest(GetPrerequisites "${GetPrerequisites_PreArgs}") +AddCMakeTest(GetPrerequisites "-DConfiguration:STRING=$") if(GIT_EXECUTABLE) set(PolicyCheck_PreArgs diff --git a/Tests/CMakeTests/GetPrerequisitesTest.cmake.in b/Tests/CMakeTests/GetPrerequisitesTest.cmake.in index 89ca735..7325b87 100644 --- a/Tests/CMakeTests/GetPrerequisitesTest.cmake.in +++ b/Tests/CMakeTests/GetPrerequisitesTest.cmake.in @@ -2,18 +2,15 @@ # include(GetPrerequisites) -set(CMAKE_BUILD_TYPE "@CMAKE_BUILD_TYPE@") -set(CMAKE_CONFIGURATION_TYPES "@CMAKE_CONFIGURATION_TYPES@") set(CMAKE_EXECUTABLE_SUFFIX "@CMAKE_EXECUTABLE_SUFFIX@") message(STATUS "=============================================================================") message(STATUS "CTEST_FULL_OUTPUT (Avoid ctest truncation of output)") message(STATUS "") -message(STATUS "CMAKE_BUILD_TYPE='${CMAKE_BUILD_TYPE}'") -message(STATUS "CMAKE_CONFIGURATION_TYPES='${CMAKE_CONFIGURATION_TYPES}'") +message(STATUS "Configuration '${Configuration}'") +message(STATUS "CMAKE_COMMAND='${CMAKE_COMMAND}'") message(STATUS "CMAKE_EXECUTABLE_SUFFIX='${CMAKE_EXECUTABLE_SUFFIX}'") -message(STATUS "CTEST_CONFIGURATION_TYPE='${CTEST_CONFIGURATION_TYPE}'") message(STATUS "") ----------------------------------------------------------------------- Summary of changes: Tests/CMakeTests/CMakeLists.txt | 5 +---- Tests/CMakeTests/GetPrerequisitesTest.cmake.in | 7 ++----- 2 files changed, 3 insertions(+), 9 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 21:05:04 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 21:05:04 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly, updated. v3.8.0-rc4-643-ged76ca4 Message-ID: <20170401010504.EA966FA769@public.kitware.com> 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, nightly has been updated discards baa8c9c3568c808b6217c6548a1d927cf85475ab (commit) discards 83fb3398df43d9ea22fcc462ff56c60ac2be4d87 (commit) discards c84c233c802d69b4404d064fc40bc16cbea8b5d6 (commit) discards 1399748bd856ce8f5a24e30990c536c77cfc768e (commit) via ed76ca4476a04a553ffd8e04388c4e91123d04c7 (commit) via 8206c28bd6e6d7849e80a68cdfef79ff5a1031a3 (commit) via 5aa11aa1711543fdc55126798edd39626f30cb23 (commit) via 4af0c9daf41dfe08c776e77f5b19aebd81469479 (commit) via 9ec90185a7b3f26951c87318808752d590028d9b (commit) via 716f8c88c9c94dc58f22ae770d613a4fec51c276 (commit) via 38bbe4194727fc94415c44be41fe8270ef12e0e9 (commit) via 72d0f947136f535fe7486f9b02caddb33f66eea1 (commit) via cb99a240757033952b8aeaed2a1839c06ed9fd22 (commit) via 20e7a6dcda2c9e214b8998a7124c3ac2f6471507 (commit) via 6f3838c034e652b90d9c2571851729313880a328 (commit) via a1221905092c09603c0b59dd0ed05bfe9f1f22ef (commit) via c791fb12544926bc5870a61735dc2ec62940a6f6 (commit) via 4a553ecb8e52dfd3ca605cd94ef8033e5febe937 (commit) via a466d6f60abe13ddf5eb6bad7cca9743ef67f2f5 (commit) via 8772fc81c4ab745eb5abbae58c6a69706f610429 (commit) via 60dde287e71efbad71b107902991098a6c77556d (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 (baa8c9c3568c808b6217c6548a1d927cf85475ab) \ N -- N -- N (ed76ca4476a04a553ffd8e04388c4e91123d04c7) 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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Modules/CMakeCCompiler.cmake.in | 1 + Modules/CMakeCXXCompiler.cmake.in | 1 + Modules/CMakeDetermineCCompiler.cmake | 5 +++++ Modules/CMakeDetermineCXXCompiler.cmake | 5 +++++ Modules/CMakeDetermineCompilerId.cmake | 4 ++++ Modules/Compiler/Intel-CXX-FeatureTests.cmake | 4 +++- Modules/CompilerId/Xcode-3.pbxproj.in | 2 +- Modules/ExternalProject.cmake | 5 ++++- Source/CMakeVersion.cmake | 2 +- Tests/CMakeOnly/CMakeLists.txt | 9 ++++++++- Tests/CMakeTests/CMakeLists.txt | 5 +---- Tests/CMakeTests/GetPrerequisitesTest.cmake.in | 7 ++----- Tests/CTestTestChecksum/test.cmake.in | 4 ++-- 13 files changed, 38 insertions(+), 16 deletions(-) hooks/post-receive -- CMake From kwrobot at kitware.com Fri Mar 31 21:05:05 2017 From: kwrobot at kitware.com (Kitware Robot) Date: Fri, 31 Mar 2017 21:05:05 -0400 (EDT) Subject: [Cmake-commits] CMake branch, nightly-master, updated. v3.8.0-rc4-631-gc791fb1 Message-ID: <20170401010505.7DB1FFA767@public.kitware.com> 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, nightly-master has been updated via c791fb12544926bc5870a61735dc2ec62940a6f6 (commit) via 4a553ecb8e52dfd3ca605cd94ef8033e5febe937 (commit) via a466d6f60abe13ddf5eb6bad7cca9743ef67f2f5 (commit) via 8772fc81c4ab745eb5abbae58c6a69706f610429 (commit) via 60dde287e71efbad71b107902991098a6c77556d (commit) via d1dac1acc502af2f2b766cc9b262a4f1294be39b (commit) via d02709d7f76624d9ec5e178d79cf3658d551f197 (commit) via 013ffe76e7d67fdb05fe29c82421b0a000feb468 (commit) via 32e9d0ca233439c0381abc5acee8a5acd30be494 (commit) via dfa8263f4be4f1413b73c81649fdc4567a71e56a (commit) via 1588a577d16cfb1a689a444b1db1df3ccff2cc3d (commit) via 2c9f35789d4955bf77436091d1535ed8761a15d2 (commit) via ec670408969b1abcce6acead9b062c7f0c59683e (commit) via a75757004bda0ff32a152a0d9d6379c02b1338ce (commit) via e05835c35b5d31f31e1a55baf415c075b24a27ad (commit) from 3e2f6bd96219ac096826fbc2ea6bc8fe8f0b4a88 (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 ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: Help/manual/cmake-generator-expressions.7.rst | 9 ++ Help/manual/cmake-policies.7.rst | 1 + Help/policy/CMP0069.rst | 92 ++++++++++++ Help/release/dev/bundle-genex.rst | 12 ++ Help/release/dev/gcc-ipo.rst | 7 + .../dev/interprocedural_optimization_policy.rst | 8 ++ Modules/CheckIPOSupported.cmake | 22 ++- Modules/CheckIPOSupported/CMakeLists-C.txt.in | 2 +- Modules/CheckIPOSupported/CMakeLists-CXX.txt.in | 2 +- Modules/Compiler/Clang.cmake | 8 ++ Modules/Compiler/GNU.cmake | 39 +++++ Modules/Compiler/QCC.cmake | 8 ++ Modules/Platform/Linux-Intel.cmake | 1 + Source/CMakeVersion.cmake | 2 +- Source/Modules/FindLibUV.cmake | 2 +- Source/cmCommonTargetGenerator.cxx | 7 +- Source/cmCommonTargetGenerator.h | 1 - Source/cmGeneratorExpressionNode.cxx | 61 ++++++++ Source/cmGeneratorTarget.cxx | 149 +++++++++++++++----- Source/cmGeneratorTarget.h | 31 ++-- Source/cmGlobalGenerator.h | 2 + Source/cmGlobalNinjaGenerator.h | 2 + Source/cmGlobalUnixMakefileGenerator3.h | 2 + Source/cmGlobalVisualStudioGenerator.cxx | 14 ++ Source/cmGlobalXCodeGenerator.cxx | 3 + Source/cmLocalGenerator.cxx | 2 +- Source/cmLocalVisualStudio7Generator.cxx | 3 + Source/cmMakefileLibraryTargetGenerator.cxx | 21 ++- Source/cmNinjaNormalTargetGenerator.cxx | 8 ++ Source/cmOSXBundleGenerator.cxx | 24 ++-- Source/cmPolicies.h | 6 +- Source/cmVisualStudio10TargetGenerator.cxx | 3 + .../CMP0069-NEW-cmake-result.txt} | 0 .../RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake | 6 + .../CMP0069-NEW-compiler-result.txt} | 0 .../CMP0069/CMP0069-NEW-compiler-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake | 7 + .../CMP0069-NEW-generator-result.txt} | 0 .../CMP0069/CMP0069-NEW-generator-stderr.txt | 4 + Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake | 7 + Tests/RunCMake/CMP0069/CMP0069-OLD.cmake | 4 + Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt | 9 ++ Tests/RunCMake/CMP0069/CMP0069-WARN.cmake | 4 + Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt | 0 Tests/RunCMake/CMP0069/RunCMakeTest.cmake | 11 ++ .../TestProject => RunCMake/CMP0069}/main.cpp | 0 Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/CheckIPOSupported/CMakeLists.txt | 3 + .../RunCMake/CheckIPOSupported/RunCMakeTest.cmake | 5 + .../cmp0069-is-old-result.txt} | 0 .../CheckIPOSupported/cmp0069-is-old-stderr.txt | 5 + .../CheckIPOSupported/cmp0069-is-old.cmake | 6 + .../not-supported-by-compiler-stderr.txt | 2 +- .../not-supported-by-generator-result.txt} | 0 ...r.txt => not-supported-by-generator-stderr.txt} | 4 +- .../not-supported-by-generator.cmake | 6 + Tests/RunCMake/Framework/FrameworkLayout.cmake | 5 + .../Framework/OSXFrameworkLayout-build-check.cmake | 2 +- Tests/RunCMake/Framework/RunCMakeTest.cmake | 11 +- .../Framework/iOSFrameworkLayout-build-check.cmake | 2 +- ...tedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...rtedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 2 + .../ImportedTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../ImportedTarget-TARGET_BUNDLE_DIR.cmake | 2 + ...lidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} | 0 ...alidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake | 9 ++ .../NonValidTarget-TARGET_BUNDLE_DIR-result.txt} | 0 .../NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt | 8 ++ .../NonValidTarget-TARGET_BUNDLE_DIR.cmake | 9 ++ .../GeneratorExpression/RunCMakeTest.cmake | 4 + .../RunCMake/TargetPolicies/PolicyList-stderr.txt | 1 + Tests/RunCMake/XcodeProject/XcodeBundles.cmake | 24 ++++ 76 files changed, 658 insertions(+), 91 deletions(-) create mode 100644 Help/policy/CMP0069.rst create mode 100644 Help/release/dev/bundle-genex.rst create mode 100644 Help/release/dev/gcc-ipo.rst create mode 100644 Help/release/dev/interprocedural_optimization_policy.rst copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-cmake-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-cmake.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-compiler-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-compiler.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CMP0069/CMP0069-NEW-generator-result.txt} (100%) create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-NEW-generator.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-OLD.cmake create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN-stderr.txt create mode 100644 Tests/RunCMake/CMP0069/CMP0069-WARN.cmake copy Tests/RunCMake/{CMP0068 => CMP0069}/CMakeLists.txt (100%) create mode 100644 Tests/RunCMake/CMP0069/RunCMakeTest.cmake copy Tests/{CTestCoverageCollectGCOV/TestProject => RunCMake/CMP0069}/main.cpp (100%) copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/cmp0069-is-old-result.txt} (100%) create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old-stderr.txt create mode 100644 Tests/RunCMake/CheckIPOSupported/cmp0069-is-old.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => CheckIPOSupported/not-supported-by-generator-result.txt} (100%) copy Tests/RunCMake/CheckIPOSupported/{not-supported-by-compiler-stderr.txt => not-supported-by-generator-stderr.txt} (60%) create mode 100644 Tests/RunCMake/CheckIPOSupported/not-supported-by-generator.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/ImportedTarget-TARGET_BUNDLE_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_CONTENT_DIR.cmake copy Tests/RunCMake/{Android/BadSYSROOT-result.txt => GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-result.txt} (100%) create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR-stderr.txt create mode 100644 Tests/RunCMake/GeneratorExpression/NonValidTarget-TARGET_BUNDLE_DIR.cmake hooks/post-receive -- CMake