Hello community,

here is the log from the commit of package cmake for openSUSE:Factory checked 
in at 2020-12-18 19:56:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cmake (Old)
 and      /work/SRC/openSUSE:Factory/.cmake.new.5145 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cmake"

Fri Dec 18 19:56:51 2020 rev:185 rq:856062 version:3.19.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/cmake/cmake.changes      2020-11-26 
23:13:21.188970008 +0100
+++ /work/SRC/openSUSE:Factory/.cmake.new.5145/cmake.changes    2020-12-18 
19:56:52.965901800 +0100
@@ -1,0 +2,7 @@
+Tue Dec 15 15:58:39 UTC 2020 - Dominique Leuenberger <dims...@opensuse.org>
+
+- Add 5556.patch: export: Do not fail generation for separate
+  namelink only case. Fixes regression, blocking other packages
+  from build,
+
+-------------------------------------------------------------------

New:
----
  5556.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cmake.spec ++++++
--- /var/tmp/diff_new_pack.4X2X7H/_old  2020-12-18 19:56:53.817902711 +0100
+++ /var/tmp/diff_new_pack.4X2X7H/_new  2020-12-18 19:56:53.821902715 +0100
@@ -55,6 +55,8 @@
 # Search for python interpreters from newest to oldest rather then picking up 
/usr/bin/python as first choice
 Patch1:         feature-suse-python-interp-search-order.patch
 Patch2:         cmake-fix-png-include-dir.patch
+# PATCH-FIX-UPSTREAM 5556.patch dims...@opensuse.org -- export: Do not fail 
generation for separate namelink only case
+Patch3:         
https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5556.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig

++++++ 5556.patch ++++++
From 38bcb5c0a3accd2dd29fb7632c6b3bf31b990d82 Mon Sep 17 00:00:00 2001
From: Deniz Bahadir <dbaha...@benocs.com>
Date: Tue, 1 Dec 2020 00:25:39 +0100
Subject: [PATCH] export: Do not fail generation for separate namelink only
 case

Update the change from commit 64690f6df0 (export: Do not fail generation
for namelink-only case, 2020-10-09, v3.19.0-rc1~7^2) to also handle
separate namelink-only and namelink-skip calls.

Fixes: #21529
---
 Source/cmExportBuildFileGenerator.cxx         |  3 +++
 Source/cmExportInstallFileGenerator.cxx       |  3 +++
 Source/cmInstallCommand.cxx                   | 19 +++++++++++--------
 Source/cmTargetExport.h                       |  2 ++
 Tests/RunCMake/export/RunCMakeTest.cmake      |  1 +
 .../export/SeparateNamelinkExport.cmake       | 16 ++++++++++++++++
 .../install/EXPORT-SeparateNamelink.cmake     | 19 +++++++++++++++++++
 Tests/RunCMake/install/RunCMakeTest.cmake     |  1 +
 8 files changed, 56 insertions(+), 8 deletions(-)
 create mode 100644 Tests/RunCMake/export/SeparateNamelinkExport.cmake
 create mode 100644 Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake

diff --git a/Source/cmExportBuildFileGenerator.cxx 
b/Source/cmExportBuildFileGenerator.cxx
index dd700c5edf..1a31ae4afd 100644
--- a/Source/cmExportBuildFileGenerator.cxx
+++ b/Source/cmExportBuildFileGenerator.cxx
@@ -288,6 +288,9 @@ void cmExportBuildFileGenerator::GetTargets(
   if (this->ExportSet) {
     for (std::unique_ptr<cmTargetExport> const& te :
          this->ExportSet->GetTargetExports()) {
+      if (te->NamelinkOnly) {
+        continue;
+      }
       targets.push_back(te->TargetName);
     }
     return;
diff --git a/Source/cmExportInstallFileGenerator.cxx 
b/Source/cmExportInstallFileGenerator.cxx
index 987ec9ea7b..0b9b183d54 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -42,6 +42,9 @@ bool 
cmExportInstallFileGenerator::GenerateMainFile(std::ostream& os)
     std::string sep;
     for (std::unique_ptr<cmTargetExport> const& te :
          this->IEGen->GetExportSet()->GetTargetExports()) {
+      if (te->NamelinkOnly) {
+        continue;
+      }
       expectedTargets += sep + this->Namespace + te->Target->GetExportName();
       sep = " ";
       if (this->ExportedTargets.insert(te->Target).second) {
diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx
index b99e6a3c6c..ff08ee41ef 100644
--- a/Source/cmInstallCommand.cxx
+++ b/Source/cmInstallCommand.cxx
@@ -461,6 +461,13 @@ bool HandleTargetsMode(std::vector<std::string> const& 
args,
     std::unique_ptr<cmInstallFilesGenerator> publicHeaderGenerator;
     std::unique_ptr<cmInstallFilesGenerator> resourceGenerator;
 
+    // Avoid selecting default destinations for PUBLIC_HEADER and
+    // PRIVATE_HEADER if any artifacts are specified.
+    bool artifactsSpecified = false;
+
+    // Track whether this is a namelink-only rule.
+    bool namelinkOnly = false;
+
     auto addTargetExport = [&]() {
       // Add this install rule to an export if one was specified.
       if (!exports.empty()) {
@@ -475,20 +482,13 @@ bool HandleTargetsMode(std::vector<std::string> const& 
args,
         te->ObjectsGenerator = objectGenerator.get();
         te->InterfaceIncludeDirectories =
           cmJoin(includesArgs.GetIncludeDirs(), ";");
-
+        te->NamelinkOnly = namelinkOnly;
         helper.Makefile->GetGlobalGenerator()
           ->GetExportSets()[exports]
           .AddTargetExport(std::move(te));
       }
     };
 
-    // Avoid selecting default destinations for PUBLIC_HEADER and
-    // PRIVATE_HEADER if any artifacts are specified.
-    bool artifactsSpecified = false;
-
-    // Track whether this is a namelink-only rule.
-    bool namelinkOnly = false;
-
     switch (target.GetType()) {
       case cmStateEnums::SHARED_LIBRARY: {
         // Shared libraries are handled differently on DLL and non-DLL
@@ -497,6 +497,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
         if (target.IsDLLPlatform()) {
           // When in namelink only mode skip all libraries on Windows.
           if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
+            namelinkOnly = true;
             addTargetExport();
             continue;
           }
@@ -529,6 +530,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
           if (target.IsFrameworkOnApple()) {
             // When in namelink only mode skip frameworks.
             if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
+              namelinkOnly = true;
               addTargetExport();
               continue;
             }
@@ -574,6 +576,7 @@ bool HandleTargetsMode(std::vector<std::string> const& args,
         if (target.IsFrameworkOnApple()) {
           // When in namelink only mode skip frameworks.
           if (namelinkMode == cmInstallTargetGenerator::NamelinkModeOnly) {
+            namelinkOnly = true;
             addTargetExport();
             continue;
           }
diff --git a/Source/cmTargetExport.h b/Source/cmTargetExport.h
index cb4d8dae44..1e38d84923 100644
--- a/Source/cmTargetExport.h
+++ b/Source/cmTargetExport.h
@@ -31,4 +31,6 @@ public:
   cmInstallFilesGenerator* HeaderGenerator;
   std::string InterfaceIncludeDirectories;
   ///@}
+
+  bool NamelinkOnly = false;
 };
diff --git a/Tests/RunCMake/export/RunCMakeTest.cmake 
b/Tests/RunCMake/export/RunCMakeTest.cmake
index 95c8d5cf45..0e6020f0f4 100644
--- a/Tests/RunCMake/export/RunCMakeTest.cmake
+++ b/Tests/RunCMake/export/RunCMakeTest.cmake
@@ -17,3 +17,4 @@ run_cmake(DependOnNotExport)
 run_cmake(DependOnDoubleExport)
 run_cmake(UnknownExport)
 run_cmake(NamelinkOnlyExport)
+run_cmake(SeparateNamelinkExport)
diff --git a/Tests/RunCMake/export/SeparateNamelinkExport.cmake 
b/Tests/RunCMake/export/SeparateNamelinkExport.cmake
new file mode 100644
index 0000000000..b006aea128
--- /dev/null
+++ b/Tests/RunCMake/export/SeparateNamelinkExport.cmake
@@ -0,0 +1,16 @@
+enable_language(CXX)
+add_library(foo SHARED empty.cpp)
+install(TARGETS foo EXPORT fooExport
+  RUNTIME DESTINATION bin
+  LIBRARY
+     DESTINATION lib
+     COMPONENT runtime
+     NAMELINK_SKIP
+)
+install(TARGETS foo EXPORT fooExport
+  LIBRARY
+     DESTINATION lib
+     COMPONENT development
+     NAMELINK_ONLY
+)
+export(EXPORT fooExport FILE "${CMAKE_CURRENT_BINARY_DIR}/foo.cmake")
diff --git a/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake 
b/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake
new file mode 100644
index 0000000000..5c6fa10d18
--- /dev/null
+++ b/Tests/RunCMake/install/EXPORT-SeparateNamelink.cmake
@@ -0,0 +1,19 @@
+enable_language(C)
+add_library(foo SHARED empty.c)
+install(TARGETS foo EXPORT fooExport
+  RUNTIME DESTINATION bin
+  LIBRARY
+     DESTINATION lib
+     COMPONENT runtime
+     NAMELINK_SKIP
+)
+install(TARGETS foo EXPORT fooExport
+  LIBRARY
+     DESTINATION lib
+     COMPONENT development
+     NAMELINK_ONLY
+)
+install(EXPORT fooExport
+    DESTINATION "lib/cmake/"
+    FILE "foo.cmake"
+)
diff --git a/Tests/RunCMake/install/RunCMakeTest.cmake 
b/Tests/RunCMake/install/RunCMakeTest.cmake
index 5aab88ca80..d64d88b770 100644
--- a/Tests/RunCMake/install/RunCMakeTest.cmake
+++ b/Tests/RunCMake/install/RunCMakeTest.cmake
@@ -78,6 +78,7 @@ run_cmake(TARGETS-DESTINATION-bad)
 run_cmake(EXPORT-OldIFace)
 run_cmake(EXPORT-UnknownExport)
 run_cmake(EXPORT-NamelinkOnly)
+run_cmake(EXPORT-SeparateNamelink)
 run_cmake(CMP0062-OLD)
 run_cmake(CMP0062-NEW)
 run_cmake(CMP0062-WARN)
-- 
GitLab
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to