Skip to content

Commit

Permalink
[pcl] Add feature and fix find libusb, fix pkgconfig (#21276)
Browse files Browse the repository at this point in the history
* [pcl] Add feature and fix find libusb, fix pkgconfig

* version

* Re-fix libusb

* version

* Re-fix libusb

* version

* Add space to libs

* version

* Disable OPENNI, fix more pkgconfigs

* Disable more options

* Re-make patch

* version
  • Loading branch information
JackBoosY committed Nov 22, 2021
1 parent 8b4ff54 commit ff5233a
Show file tree
Hide file tree
Showing 6 changed files with 145 additions and 14 deletions.
56 changes: 56 additions & 0 deletions ports/pcl/fix-find-libusb.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
diff --git a/cmake/Modules/FindOpenNI.cmake b/cmake/Modules/FindOpenNI.cmake
index 249e896..eff0b95 100644
--- a/cmake/Modules/FindOpenNI.cmake
+++ b/cmake/Modules/FindOpenNI.cmake
@@ -51,9 +51,9 @@ if(OPENNI_INCLUDE_DIR AND OPENNI_LIBRARY)
mark_as_advanced(OPENNI_INCLUDE_DIRS)

# Libraries
- if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- find_package(libusb REQUIRED)
- set(OPENNI_LIBRARIES ${OPENNI_LIBRARY} libusb::libusb)
+ if(NOT WIN32)
+ find_package(libusb CONFIG REQUIRED)
+ set(OPENNI_LIBRARIES ${OPENNI_LIBRARIES} ${LIBUSB_LIBRARIES})
else()
set(OPENNI_LIBRARIES ${OPENNI_LIBRARY})
endif()
diff --git a/cmake/Modules/FindOpenNI2.cmake b/cmake/Modules/FindOpenNI2.cmake
index 14ca206..8471067 100644
--- a/cmake/Modules/FindOpenNI2.cmake
+++ b/cmake/Modules/FindOpenNI2.cmake
@@ -41,9 +41,9 @@ if(OPENNI2_INCLUDE_DIR AND OPENNI2_LIBRARY)
mark_as_advanced(OPENNI2_INCLUDE_DIRS)

# Libraries
- if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- find_package(libusb REQUIRED)
- set(OPENNI2_LIBRARIES ${OPENNI2_LIBRARY} libusb::libusb)
+ if(NOT WIN32)
+ find_package(libusb CONFIG REQUIRED)
+ set(OPENNI2_LIBRARIES ${OPENNI2_LIBRARY} ${LIBUSB_LIBRARIES})
else()
set(OPENNI2_LIBRARIES ${OPENNI2_LIBRARY})
endif()
diff --git a/io/CMakeLists.txt b/io/CMakeLists.txt
index ab91842..189063c 100644
--- a/io/CMakeLists.txt
+++ b/io/CMakeLists.txt
@@ -334,7 +334,7 @@ set(LIB_NAME "pcl_${SUBSYS_NAME}")

add_definitions(${VTK_DEFINES})

-PCL_ADD_LIBRARY(${LIB_NAME} COMPONENT ${SUBSYS_NAME} SOURCES ${srcs} ${incs} ${compression_incs} ${impl_incs} ${OPENNI_INCLUDES} ${OPENNI2_INCLUDES})
+PCL_ADD_LIBRARY(${LIB_NAME} COMPONENT ${SUBSYS_NAME} SOURCES ${srcs} ${incs} ${compression_incs} ${impl_incs} ${OPENNI_INCLUDES} ${OPENNI2_INCLUDES} ${LIBUSB_INCLUDE_DIRS})

target_include_directories(${LIB_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")

@@ -356,7 +356,7 @@ if(PNG_FOUND)
endif()

if(LIBUSB_FOUND)
- target_link_libraries("${LIB_NAME}" libusb::libusb)
+ target_link_libraries("${LIB_NAME}" ${LIBUSB_LIBRARIES})
endif()

if(WITH_OPENNI2)
18 changes: 18 additions & 0 deletions ports/pcl/fix-pkgconfig.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
diff --git a/cuda/common/CMakeLists.txt b/cuda/common/CMakeLists.txt
index b5775af..e7a2ff2 100644
--- a/cuda/common/CMakeLists.txt
+++ b/cuda/common/CMakeLists.txt
@@ -29,10 +29,10 @@ set(common_incs
)

include_directories(./include)
-#set(LIB_NAME pcl_${SUBSYS_NAME})
+set(LIB_NAME "pcl_${SUBSYS_NAME}")
set(EXT_DEPS CUDA)
-#PCL_MAKE_PKGCONFIG(${LIB_NAME} ${SUBSYS_NAME} "${SUBSYS_DESC}"
-# "${SUBSYS_DEPS}" "${EXT_DEPS}" "" "" "")
+PCL_MAKE_PKGCONFIG(${LIB_NAME} COMPONENT ${SUBSYS_NAME} DESC "${SUBSYS_DESC}"
+ PCL_DEPS "${SUBSYS_DEPS}" EXT_DEPS "" HEADER_ONLY)

# Install include files
PCL_ADD_INCLUDES(${SUBSYS_NAME} "cuda" ${incs})
61 changes: 49 additions & 12 deletions ports/pcl/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ vcpkg_from_github(
pcl_utils.patch
remove-broken-targets.patch
fix-cmake_find_library_suffixes.patch
fix-pkgconfig.patch # Remove this patch in the next update
fix-find-libusb.patch
)

file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindQhull.cmake)
file(REMOVE "${SOURCE_PATH}/cmake/Modules/FindQhull.cmake"
"${SOURCE_PATH}/cmake/Modules/Findlibusb.cmake"
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS)

if ("cuda" IN_LIST FEATURES AND VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
Expand All @@ -37,10 +41,11 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
tools BUILD_tools
opengl WITH_OPENGL
vtk WITH_VTK
libusb WITH_LIBUSB
)

vcpkg_cmake_configure(
SOURCE_PATH ${SOURCE_PATH}
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
# BUILD
-DBUILD_surface_on_nurbs=ON
Expand All @@ -50,28 +55,60 @@ vcpkg_cmake_configure(
-DPCL_BUILD_WITH_QHULL_DYNAMIC_LINKING_WIN32=${PCL_SHARED_LIBS}
-DPCL_SHARED_LIBS=${PCL_SHARED_LIBS}
# WITH
-DWITH_LIBUSB=OFF
-DWITH_PNG=ON
-DWITH_QHULL=ON
-DWITH_OPENNI=OFF
-DWITH_ENSENSO=OFF
-DWITH_DAVIDSDK=OFF
-DWITH_DSSDK=OFF
-DWITH_RSSDK=OFF
-DWITH_RSSDK2=OFF
-DWITH_OPENMP=OFF
# FEATURES
${FEATURE_OPTIONS}
MAYBE_UNUSED_VARIABLES
PCL_BUILD_WITH_FLANN_DYNAMIC_LINKING_WIN32
)

vcpkg_cmake_install()
vcpkg_cmake_config_fixup()
vcpkg_copy_pdbs()

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
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("tools" IN_LIST FEATURES)
file(GLOB EXEFILES_RELEASE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
file(GLOB EXEFILES_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
file(COPY ${EXEFILES_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/pcl)
file(GLOB EXEFILES_RELEASE "${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
file(GLOB EXEFILES_DEBUG "${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
file(COPY ${EXEFILES_RELEASE} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/pcl")
file(REMOVE ${EXEFILES_RELEASE} ${EXEFILES_DEBUG})
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/pcl)
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/pcl")
endif()

file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

vcpkg_fixup_pkgconfig()
file(INSTALL "${SOURCE_PATH}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
17 changes: 16 additions & 1 deletion ports/pcl/vcpkg.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "pcl",
"version": "1.12.0",
"port-version": 1,
"description": "Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.",
"homepage": "https://github.com/PointCloudLibrary/pcl",
"supports": "!(arm64 & windows)",
Expand Down Expand Up @@ -42,13 +43,27 @@
"cuda"
]
},
"libusb": {
"description": "Build USB RGBD-Camera drivers",
"dependencies": [
"libusb"
]
},
"opengl": {
"description": "OpenGL support for PCL"
},
"openni2": {
"description": "OpenNI2 support for PCL",
"dependencies": [
"openni2"
"openni2",
{
"name": "pcl",
"default-features": false,
"features": [
"libusb"
],
"platform": "!windows"
}
]
},
"pcap": {
Expand Down
2 changes: 1 addition & 1 deletion versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -5150,7 +5150,7 @@
},
"pcl": {
"baseline": "1.12.0",
"port-version": 0
"port-version": 1
},
"pcre": {
"baseline": "8.45",
Expand Down
5 changes: 5 additions & 0 deletions versions/p-/pcl.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a2eb47fa4d7f959d9c8712f0d0925c2af94bcc80",
"version": "1.12.0",
"port-version": 1
},
{
"git-tree": "6a65773e049bbdfef835781a6a61ee6a3a94dd27",
"version": "1.12.0",
Expand Down

0 comments on commit ff5233a

Please sign in to comment.