From 1b63f25c4cd58a699df0beb39474e62b2efc14a1 Mon Sep 17 00:00:00 2001 From: WangWeiLin-MV <156736127+WangWeiLin-MV@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:32:19 +0800 Subject: [PATCH] [pcl] Backport MSVC optimizer workaround of openNURBS (#41606) --- .../pcl/0012-msvc-optimizer-workaround.patch | 28 +++++++++++++++++++ ports/pcl/portfile.cmake | 1 + ports/pcl/vcpkg.json | 2 +- versions/baseline.json | 2 +- versions/p-/pcl.json | 5 ++++ 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 ports/pcl/0012-msvc-optimizer-workaround.patch diff --git a/ports/pcl/0012-msvc-optimizer-workaround.patch b/ports/pcl/0012-msvc-optimizer-workaround.patch new file mode 100644 index 0000000000..3941157d1d --- /dev/null +++ b/ports/pcl/0012-msvc-optimizer-workaround.patch @@ -0,0 +1,28 @@ +diff --git a/surface/src/3rdparty/opennurbs/opennurbs_lookup.cpp b/surface/src/3rdparty/opennurbs/opennurbs_lookup.cpp +index 13584fbbdb3..e006d3a5667 100644 +--- a/surface/src/3rdparty/opennurbs/opennurbs_lookup.cpp ++++ b/surface/src/3rdparty/opennurbs/opennurbs_lookup.cpp +@@ -666,9 +666,13 @@ std::size_t ON_SerialNumberMap::ActiveIdCount() const + return m_active_id_count; + } + +-#if (_MSC_VER >= 1930 && _MSC_VER <= 1939) ++#if (_MSC_VER >= 1930 && _MSC_VER <= 1949) + // Solves internal compiler error on MSVC 2022 + // (see https://github.com/microsoft/vcpkg/issues/19561) ++#define ON_VS2022_COMPILER_CRASH ++#endif ++ ++#if defined(ON_VS2022_COMPILER_CRASH) + #pragma optimize("", off) + #endif + struct ON_SerialNumberMap::SN_ELEMENT* ON_SerialNumberMap::FirstElement() const +@@ -722,7 +726,7 @@ struct ON_SerialNumberMap::SN_ELEMENT* ON_SerialNumberMap::FirstElement() const + } + return e; + } +-#if (_MSC_VER >= 1930 && _MSC_VER <= 1939) ++#if defined(ON_VS2022_COMPILER_CRASH) + #pragma optimize("", on) + #endif + diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake index 0c11bb9c1f..5c310395f4 100644 --- a/ports/pcl/portfile.cmake +++ b/ports/pcl/portfile.cmake @@ -15,6 +15,7 @@ vcpkg_from_github( io_ply.patch 6053.diff # https://github.com/PointCloudLibrary/pcl/pull/6053 6990a3b0d7dd3c1ca04a1a473cc172a937418060.diff # https://github.com/PointCloudLibrary/pcl/pull/6105 + 0012-msvc-optimizer-workaround.patch # backport pcl #6143 and #6154 ) string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS) diff --git a/ports/pcl/vcpkg.json b/ports/pcl/vcpkg.json index 69e9facc6d..7fe2f3151f 100644 --- a/ports/pcl/vcpkg.json +++ b/ports/pcl/vcpkg.json @@ -1,7 +1,7 @@ { "name": "pcl", "version": "1.14.1", - "port-version": 2, + "port-version": 3, "description": "Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.", "homepage": "https://github.com/PointCloudLibrary/pcl", "license": "BSD-3-Clause", diff --git a/versions/baseline.json b/versions/baseline.json index 9675584b87..677023ffad 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -6894,7 +6894,7 @@ }, "pcl": { "baseline": "1.14.1", - "port-version": 2 + "port-version": 3 }, "pcre": { "baseline": "8.45", diff --git a/versions/p-/pcl.json b/versions/p-/pcl.json index 6fa1e8fbe1..affe46029e 100644 --- a/versions/p-/pcl.json +++ b/versions/p-/pcl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "57795e21c0c37576db6bfb1df3b134de461d10e0", + "version": "1.14.1", + "port-version": 3 + }, { "git-tree": "00b339d9b6b61b9f0742cfea4c482e70e9ac5ad8", "version": "1.14.1",