mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-25 12:00:26 +08:00
326d8b43e3
<!-- If your PR fixes issues, please note that here by adding "Fixes #NNNNNN." for each fixed issue on separate lines. --> <!-- If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/. --> - [x] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [x] SHA512s are updated for each updated download. - [ ] ~~The "supports" clause reflects platforms that may be fixed by this new version.~~ - [ ] ~~Any fixed [CI baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt) entries are removed from that file.~~ - [x] Any patches that are no longer applied are deleted from the port's directory. - [x] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [x] Only one version is added to each modified port's versions file. Updated io_ply.patch so that it applies cleanly. Additionally, the setting `-DWITH_OPENMP=OFF` is removed because there does not seem to be a specific reason for it, and in my tests PCL still built fine if it was removed, see https://github.com/microsoft/vcpkg/pull/21276#issuecomment-2044492937 <!-- If this PR adds a new port, please uncomment and fill out this checklist: - [ ] Changes comply with the [maintainer guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md). - [ ] The name of the port matches an existing name for this component on https://repology.org/ if possible, and/or is strongly associated with that component on search engines. - [ ] Optional dependencies are resolved in exactly one way. For example, if the component is built with CMake, all `find_package` calls are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or disabled with [CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html). - [ ] The versioning scheme in `vcpkg.json` matches what upstream says. - [ ] The license declaration in `vcpkg.json` matches what upstream says. - [ ] The installed as the "copyright" file matches what upstream says. - [ ] The source code of the component installed comes from an authoritative source. - [ ] The generated "usage text" is accurate. See [adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md) for context. - [ ] The version database is fixed by rerunning `./vcpkg x-add-version --all` and committing the result. - [ ] Only one version is in the new port's versions file. - [ ] Only one version is added to each modified port's versions file. END OF NEW PORT CHECKLIST (delete this line) -->
131 lines
5.0 KiB
CMake
131 lines
5.0 KiB
CMake
vcpkg_from_github(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
REPO PointCloudLibrary/pcl
|
|
REF "pcl-${VERSION}"
|
|
SHA512 8e2d2839fe73a955d49b9a72861de2becf2da9a0dc906bd10ab8a3518e270a2f1900d801922d02871d704f2ed380273d35c2d0e04d8da7e24a21eb351c43c00b
|
|
HEAD_REF master
|
|
PATCHES
|
|
add-gcc-version-check.patch
|
|
fix-check-sse.patch
|
|
fix-numeric-literals-flag.patch
|
|
install-layout.patch
|
|
install-examples.patch
|
|
fix-clang-cl.patch
|
|
gh-5985-inline.patch
|
|
io_ply.patch
|
|
)
|
|
|
|
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" PCL_SHARED_LIBS)
|
|
|
|
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
|
FEATURES
|
|
apps BUILD_apps
|
|
cuda WITH_CUDA
|
|
cuda BUILD_CUDA
|
|
cuda BUILD_GPU
|
|
examples BUILD_examples
|
|
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
|
|
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
|
|
# 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
|
|
# 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")
|