aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/pcl
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/pcl
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/pcl')
-rw-r--r--vcpkg/ports/pcl/fix-check-sse.patch25
-rw-r--r--vcpkg/ports/pcl/fix-clang-cl.patch13
-rw-r--r--vcpkg/ports/pcl/fix-numeric-literals-flag.patch26
-rw-r--r--vcpkg/ports/pcl/install-examples.patch13
-rw-r--r--vcpkg/ports/pcl/install-layout.patch70
-rw-r--r--vcpkg/ports/pcl/portfile.cmake144
-rw-r--r--vcpkg/ports/pcl/usage4
-rw-r--r--vcpkg/ports/pcl/vcpkg.json177
8 files changed, 472 insertions, 0 deletions
diff --git a/vcpkg/ports/pcl/fix-check-sse.patch b/vcpkg/ports/pcl/fix-check-sse.patch
new file mode 100644
index 0000000..a8bc786
--- /dev/null
+++ b/vcpkg/ports/pcl/fix-check-sse.patch
@@ -0,0 +1,25 @@
+From c65e034afb538932f4ff55a93332f875ae43a578 Mon Sep 17 00:00:00 2001
+From: raahilsha-z <raahil.sha@zimaging.io>
+Date: Wed, 7 Jul 2021 15:54:33 -0400
+Subject: [PATCH] fix check sse
+
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 29f79d31b..a1d9bb58f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -86,7 +86,7 @@ endif()
+
+ # check for SSE flags
+ include("${PCL_SOURCE_DIR}/cmake/pcl_find_sse.cmake")
+-if(PCL_ENABLE_SSE AND "${CMAKE_CXX_FLAGS}" STREQUAL "${CMAKE_CXX_FLAGS_DEFAULT}")
++if(PCL_ENABLE_SSE)
+ PCL_CHECK_FOR_SSE()
+ endif()
+
+--
+2.32.0.windows.1
+
diff --git a/vcpkg/ports/pcl/fix-clang-cl.patch b/vcpkg/ports/pcl/fix-clang-cl.patch
new file mode 100644
index 0000000..31d2b02
--- /dev/null
+++ b/vcpkg/ports/pcl/fix-clang-cl.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index fad95c9..b4ca305 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -51,7 +51,7 @@ set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
+ # Compiler identification
+ # Define a variable CMAKE_COMPILER_IS_X where X is the compiler short name.
+ # Note: CMake automatically defines one for GNUCXX, nothing to do in this case.
+-if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
++if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT MSVC)
+ set(CMAKE_COMPILER_IS_CLANG 1)
+ elseif(__COMPILER_PATHSCALE)
+ set(CMAKE_COMPILER_IS_PATHSCALE 1)
diff --git a/vcpkg/ports/pcl/fix-numeric-literals-flag.patch b/vcpkg/ports/pcl/fix-numeric-literals-flag.patch
new file mode 100644
index 0000000..69a1223
--- /dev/null
+++ b/vcpkg/ports/pcl/fix-numeric-literals-flag.patch
@@ -0,0 +1,26 @@
+From 3ea8aa5ded2782cfb10577348fc9f56144c72d7b Mon Sep 17 00:00:00 2001
+From: raahilsha-z <raahil.sha@zimaging.io>
+Date: Wed, 7 Jul 2021 15:57:46 -0400
+Subject: [PATCH] fix numeric literals flag
+
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7cf86f74b..e07fd430a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -420,6 +420,9 @@ endif()
+
+ # Boost (required)
+ include("${PCL_SOURCE_DIR}/cmake/pcl_find_boost.cmake")
++if (NOT APPLE AND NOT WIN32 AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
++ add_definitions(-fext-numeric-literals)
++endif()
+
+ # System zlib (for nurbs on surface)
+ option(WITH_SYSTEM_ZLIB "Use system zlib" TRUE)
+--
+2.32.0.windows.1
+
diff --git a/vcpkg/ports/pcl/install-examples.patch b/vcpkg/ports/pcl/install-examples.patch
new file mode 100644
index 0000000..136a4ce
--- /dev/null
+++ b/vcpkg/ports/pcl/install-examples.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/pcl_targets.cmake b/cmake/pcl_targets.cmake
+index 91f2404..18f5a24 100644
+--- a/cmake/pcl_targets.cmake
++++ b/cmake/pcl_targets.cmake
+@@ -473,6 +473,8 @@ macro(PCL_ADD_EXAMPLE _name)
+ # add target to list of example targets created at the parent scope
+ list(APPEND PCL_EXAMPLES_ALL_TARGETS ${_name})
+ set(PCL_EXAMPLES_ALL_TARGETS "${PCL_EXAMPLES_ALL_TARGETS}" PARENT_SCOPE)
++
++ install(TARGETS ${_name} RUNTIME DESTINATION ${BIN_INSTALL_DIR})
+ endmacro()
+
+ ###############################################################################
diff --git a/vcpkg/ports/pcl/install-layout.patch b/vcpkg/ports/pcl/install-layout.patch
new file mode 100644
index 0000000..a6c58c5
--- /dev/null
+++ b/vcpkg/ports/pcl/install-layout.patch
@@ -0,0 +1,70 @@
+diff --git a/PCLConfig.cmake.in b/PCLConfig.cmake.in
+index cf21c44..1463514 100644
+--- a/PCLConfig.cmake.in
++++ b/PCLConfig.cmake.in
+@@ -403,7 +403,7 @@ endif()
+ find_package(PkgConfig QUIET)
+
+ file(TO_CMAKE_PATH "${PCL_DIR}" PCL_DIR)
+-if(WIN32 AND NOT MINGW)
++if(0)
+ # PCLConfig.cmake is installed to PCL_ROOT/cmake
+ get_filename_component(PCL_ROOT "${PCL_DIR}" PATH)
+ if(EXISTS "${PCL_ROOT}/3rdParty")
+@@ -425,6 +425,10 @@ elseif(EXISTS "${PCL_ROOT}/include/pcl/pcl_config.h")
+ # pcl_message("Found a PCL installation")
+ set(PCL_CONF_INCLUDE_DIR "${PCL_ROOT}/include")
+ set(PCL_LIBRARY_DIRS "${PCL_ROOT}/lib")
++ list(APPEND PCL_LIBRARY_DIRS "${PCL_ROOT}/debug/lib")
++ if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$")
++ list(REVERSE PCL_LIBRARY_DIRS)
++ endif()
+ elseif(EXISTS "${PCL_DIR}/include/pcl/pcl_config.h")
+ # Found PCLConfig.cmake in a build tree of PCL
+ # pcl_message("PCL found into a build tree.")
+diff --git a/cmake/Modules/FindFLANN.cmake b/cmake/Modules/FindFLANN.cmake
+index f42bca3..faca969 100644
+--- a/cmake/Modules/FindFLANN.cmake
++++ b/cmake/Modules/FindFLANN.cmake
+@@ -85,7 +85,7 @@ if(flann_FOUND)
+
+ # Determine FLANN installation root based on the path to the processed Config file
+ get_filename_component(_config_dir "${flann_CONFIG}" DIRECTORY)
+- get_filename_component(FLANN_ROOT "${_config_dir}/../../.." ABSOLUTE)
++ get_filename_component(FLANN_ROOT "${_config_dir}/../.." ABSOLUTE)
+ unset(_config_dir)
+ message(STATUS "Found flann version ${flann_VERSION}")
+ return()
+diff --git a/cmake/pcl_utils.cmake b/cmake/pcl_utils.cmake
+index d87d02d..9c0ede1 100644
+--- a/cmake/pcl_utils.cmake
++++ b/cmake/pcl_utils.cmake
+@@ -100,6 +100,7 @@ macro(SET_INSTALL_DIRS)
+ else()
+ set(INCLUDE_INSTALL_ROOT "include") # Android, don't put into subdir
+ endif()
++ set(INCLUDE_INSTALL_ROOT "include")
+ set(INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_ROOT}/pcl")
+ set(DOC_INSTALL_DIR "share/doc/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
+ set(BIN_INSTALL_DIR "bin")
+@@ -109,6 +110,7 @@ macro(SET_INSTALL_DIRS)
+ else()
+ set(PCLCONFIG_INSTALL_DIR "share/${PROJECT_NAME_LOWER}-${PCL_VERSION_MAJOR}.${PCL_VERSION_MINOR}")
+ endif()
++ set(PCLCONFIG_INSTALL_DIR "share/pcl")
+ endmacro()
+
+
+diff --git a/cmake/pkgconfig.cmake.in b/cmake/pkgconfig.cmake.in
+index c351e44..b10577a 100644
+--- a/cmake/pkgconfig.cmake.in
++++ b/cmake/pkgconfig.cmake.in
+@@ -3,7 +3,7 @@ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+ libdir=${prefix}/@LIB_INSTALL_DIR@
+ #includedir=${prefix}/@INCLUDE_INSTALL_DIR@
+-includedir=${prefix}/include/@PROJECT_NAME_LOWER@-@PCL_VERSION_MAJOR@.@PCL_VERSION_MINOR@
++includedir=${prefix}/@INCLUDE_INSTALL_DIR@
+ Name: @PKG_NAME@
+ Description: @PKG_DESC@
+ Version: @PCL_VERSION@
diff --git a/vcpkg/ports/pcl/portfile.cmake b/vcpkg/ports/pcl/portfile.cmake
new file mode 100644
index 0000000..77b6322
--- /dev/null
+++ b/vcpkg/ports/pcl/portfile.cmake
@@ -0,0 +1,144 @@
+vcpkg_download_distfile(BOOST_1_89_0_COMPAT_PATCH
+ URLS https://github.com/PointCloudLibrary/pcl/commit/99333442ac63971297b4cdd05fab9d2bd2ff57a4.patch?full_index=1
+ FILENAME PointCloudLibrary-pcl-boost-1-89-0-compat.patch
+ SHA512 2fefaeaeda9fe423b481cddf4de85eff58418286f24f065be8610216e87d8faeb869406b72b3a7158abd22d17e25742b54f6b9eb3c81f82a1718f938bb8e0d26
+)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO PointCloudLibrary/pcl
+ REF "pcl-${VERSION}"
+ SHA512 ca9e742bc24b38f31c42c9ea08e19054e18d045f487269b64a7b831dada89936445d90a5b46870d8c24c2d25b33a59df2d904fe7e51bc0b231317cdb319951e9
+ HEAD_REF master
+ PATCHES
+ fix-check-sse.patch
+ fix-numeric-literals-flag.patch
+ install-layout.patch
+ install-examples.patch
+ fix-clang-cl.patch
+ "${BOOST_1_89_0_COMPAT_PATCH}"
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(PCL_DONT_TRY_SSE "-DPCL_ENABLE_SSE=OFF")
+endif()
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ apps BUILD_apps
+ cuda WITH_CUDA
+ cuda BUILD_CUDA
+ cuda BUILD_GPU
+ examples BUILD_examples
+ examples VCPKG_LOCK_FIND_PACKAGE_cJSON
+ libusb WITH_LIBUSB
+ opengl WITH_OPENGL
+ openni2 WITH_OPENNI2
+ pcap WITH_PCAP
+ qt WITH_QT
+ simulation BUILD_simulation
+ surface-on-nurbs BUILD_surface_on_nurbs
+ surface-on-nurbs VCPKG_LOCK_FIND_PACKAGE_ZLIB
+ tools BUILD_tools
+ visualization WITH_VTK
+ visualization BUILD_visualization
+ # These 2 apps need openni1
+ #apps BUILD_apps_in_hand_scanner
+ #apps BUILD_apps_3d_rec_framework
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ # PCL
+ -DPCL_ALLOW_BOTH_SHARED_AND_STATIC_DEPENDENCIES=ON
+ -DPCL_BUILD_WITH_BOOST_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
+ -DPCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
+ -DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
+ -DPCL_SHARED_LIBS=${PCL_SHARED_LIBS}
+ -DPCL_ENABLE_MARCHNATIVE=OFF
+ ${PCL_DONT_TRY_SSE}
+ -DUSE_HOMEBREW_FALLBACK=OFF
+ # WITH
+ -DWITH_DAVIDSDK=OFF
+ -DWITH_DOCS=OFF
+ -DWITH_DSSDK=OFF
+ -DWITH_ENSENSO=OFF
+ -DWITH_OPENNI=OFF
+ -DWITH_PNG=ON
+ -DWITH_QHULL=ON
+ -DWITH_RSSDK=OFF
+ -DWITH_RSSDK2=OFF
+ # Misc
+ -DVCPKG_LOCK_FIND_PACKAGE_ClangFormat=OFF
+ # FEATURES
+ ${FEATURE_OPTIONS}
+ OPTIONS_DEBUG
+ -DBUILD_apps=OFF
+ -DBUILD_examples=OFF
+ -DBUILD_tools=OFF
+ MAYBE_UNUSED_VARIABLES
+ PCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32
+ PCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32
+)
+
+if(NOT EXISTS "${CURRENT_INSTALLED_DIR}/lib/pkgconfig/vtk.pc")
+ file(REMOVE "${CURRENT_PACKAGE_DIR}/lib/pkgconfig/pcl_gpu_kinfu_large_scale.pc" "${CURRENT_PACKAGE_DIR}/debug/lib/pkgconfig/pcl_gpu_kinfu_large_scale.pc")
+endif()
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup()
+vcpkg_copy_pdbs()
+
+if (WITH_OPENNI2)
+ if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(GLOB PCL_PKGCONFIG_DBGS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/*.pc")
+ foreach (PCL_PKGCONFIG IN LISTS PCL_PKGCONFIG_DBGS)
+ file(READ "${PCL_PKGCONFIG}" PCL_PC_DBG)
+ if (PCL_PC_DBG MATCHES "libopenni2")
+ string(REPLACE "libopenni2" "" PCL_PC_DBG "${PCL_PC_DBG}")
+ string(REPLACE "Libs: " "Libs: -lKinect10 -lOpenNI2 " PCL_PC_DBG "${PCL_PC_DBG}")
+ file(WRITE "${PCL_PKGCONFIG}" "${PCL_PC_DBG}")
+ endif()
+ endforeach()
+ endif()
+ if (NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ file(GLOB PCL_PKGCONFIG_RELS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc")
+ foreach (PCL_PKGCONFIG IN LISTS PCL_PKGCONFIG_RELS)
+ file(READ "${PCL_PKGCONFIG}" PCL_PC_REL)
+ if (PCL_PC_REL MATCHES "libopenni2")
+ string(REPLACE "libopenni2" "" PCL_PC_REL "${PCL_PC_REL}")
+ string(REPLACE "Libs: " "Libs: -lKinect10 -lOpenNI2 " PCL_PC_REL "${PCL_PC_REL}")
+ file(WRITE "${PCL_PKGCONFIG}" "${PCL_PC_REL}")
+ endif()
+ endforeach()
+ endif()
+endif()
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+if(BUILD_tools OR BUILD_apps OR BUILD_examples)
+ file(GLOB tool_names
+ LIST_DIRECTORIES false
+ RELATIVE "${CURRENT_PACKAGES_DIR}/bin"
+ "${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}"
+ )
+ if(VCPKG_TARGET_EXECUTABLE_SUFFIX)
+ string(REPLACE "." "[.]" suffix "${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
+ list(TRANSFORM tool_names REPLACE "${suffix}\$" "")
+ endif()
+ vcpkg_copy_tools(TOOL_NAMES ${tool_names} AUTO_CLEAN)
+endif()
+
+# pcl_apps.dll is only build for release but not used at all since BUILD_apps_3d_rec_framework is OFF.
+# Because it is not copied to the tool folder and there is no debug variant, we get an post build check error.
+# Since the lib is not needed. Delete it:
+file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/pcl_apps.dll" "${CURRENT_PACKAGES_DIR}/bin/pcl_apps.pdb"
+ "${CURRENT_PACKAGES_DIR}/lib/pcl_apps.lib" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/pcl_apps.pc")
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt")
diff --git a/vcpkg/ports/pcl/usage b/vcpkg/ports/pcl/usage
new file mode 100644
index 0000000..60aecd4
--- /dev/null
+++ b/vcpkg/ports/pcl/usage
@@ -0,0 +1,4 @@
+The package pcl provides CMake targets:
+
+ find_package(PCL CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE ${PCL_LIBRARIES})
diff --git a/vcpkg/ports/pcl/vcpkg.json b/vcpkg/ports/pcl/vcpkg.json
new file mode 100644
index 0000000..3ee0750
--- /dev/null
+++ b/vcpkg/ports/pcl/vcpkg.json
@@ -0,0 +1,177 @@
+{
+ "name": "pcl",
+ "version": "1.15.1",
+ "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",
+ "dependencies": [
+ "boost-asio",
+ "boost-date-time",
+ "boost-dynamic-bitset",
+ "boost-filesystem",
+ "boost-foreach",
+ "boost-graph",
+ "boost-interprocess",
+ "boost-iostreams",
+ "boost-multi-array",
+ "boost-property-map",
+ "boost-ptr-container",
+ "boost-random",
+ "boost-signals2",
+ "boost-sort",
+ "boost-system",
+ "boost-thread",
+ "boost-uuid",
+ "eigen3",
+ "flann",
+ "libpng",
+ "nanoflann",
+ "qhull",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "apps": {
+ "description": "Build application examples/samples that show how PCL works",
+ "dependencies": [
+ {
+ "name": "pcl",
+ "default-features": false,
+ "features": [
+ "opengl",
+ "openni2",
+ "qt",
+ "vtk"
+ ]
+ }
+ ]
+ },
+ "cuda": {
+ "description": "CUDA support for PCL",
+ "supports": "x64",
+ "dependencies": [
+ "cuda"
+ ]
+ },
+ "examples": {
+ "description": "Build PCL examples",
+ "dependencies": [
+ "boost-format",
+ "cjson",
+ {
+ "name": "pcl",
+ "features": [
+ "visualization"
+ ]
+ }
+ ]
+ },
+ "libusb": {
+ "description": "Build USB RGBD-Camera drivers",
+ "dependencies": [
+ "libusb"
+ ]
+ },
+ "opengl": {
+ "description": "OpenGL support for PCL",
+ "dependencies": [
+ "opengl"
+ ]
+ },
+ "openni2": {
+ "description": "OpenNI2 support for PCL",
+ "dependencies": [
+ "openni2",
+ {
+ "name": "pcl",
+ "default-features": false,
+ "features": [
+ "libusb"
+ ],
+ "platform": "!windows"
+ }
+ ]
+ },
+ "pcap": {
+ "description": "PCAP support for PCL",
+ "dependencies": [
+ {
+ "name": "libpcap",
+ "platform": "!windows"
+ },
+ {
+ "name": "winpcap",
+ "platform": "windows"
+ }
+ ]
+ },
+ "qt": {
+ "description": "Qt support for PCL",
+ "dependencies": [
+ {
+ "name": "vtk",
+ "default-features": false,
+ "features": [
+ "qt"
+ ]
+ }
+ ]
+ },
+ "simulation": {
+ "description": "Build Point Cloud Library Simulation",
+ "dependencies": [
+ "glew",
+ {
+ "name": "pcl",
+ "default-features": false,
+ "features": [
+ "opengl"
+ ]
+ }
+ ]
+ },
+ "surface-on-nurbs": {
+ "description": "Fitting NURBS to point clouds",
+ "dependencies": [
+ "zlib"
+ ]
+ },
+ "tools": {
+ "description": "Build PCL utilities",
+ "supports": "!static",
+ "dependencies": [
+ "boost-accumulators"
+ ]
+ },
+ "visualization": {
+ "description": "Build visualization",
+ "dependencies": [
+ {
+ "name": "vtk",
+ "default-features": false,
+ "features": [
+ "opengl"
+ ]
+ }
+ ]
+ },
+ "vtk": {
+ "description": "An alias for visualization",
+ "dependencies": [
+ {
+ "name": "pcl",
+ "default-features": false,
+ "features": [
+ "visualization"
+ ]
+ }
+ ]
+ }
+ }
+}