aboutsummaryrefslogtreecommitdiff
path: root/ports/pangolin
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2021-09-11 04:41:46 +0800
committerGitHub <noreply@github.com>2021-09-10 13:41:46 -0700
commite8e660a36c6aabc788d0cb03c5b38b7df6edbb22 (patch)
tree4efcd3b6e85e33e451321d39fe3229398aaf86d0 /ports/pangolin
parente0aee0ddcfdab86b4f7d28371f7923fa948599d3 (diff)
downloadvcpkg-e8e660a36c6aabc788d0cb03c5b38b7df6edbb22.tar.gz
vcpkg-e8e660a36c6aabc788d0cb03c5b38b7df6edbb22.zip
[vcpkg baseline][pangolin] Add features, fix dependency pybind11 (#20006)
* [vcpkg baseline][pangolin] Add features, fix dependency pybind11 * Fix dependency name realsense2 * Remove default-feature gles * Re-generated patch, add MAYBE_UNUSED_VARIABLES, fix build with core * version * Fix desc, add more MAYBE_UNUSED_VARIABLES * version * more MAYBE_UNUSED_VARIABLES * version * Remove some CMAKE_DISABLE_FIND_PACKAGE_* * version * Remove more CMAKE_DISABLE_FIND_* since they are disabled * Remove BUILD_FOR_GLES_2 * version * Restore BUILD_FOR_GLES_2 * version * Fix more dependencies * [libuvc]Fix build type, fix usage * version * Re-make patch * version * Use libjpeg macros instead of target name to avoid use `find_dependency` * version * Fix usage on non-Windows * version * commit suggestions * version * Apply suggestion * version * Re-fix JPEG * version * typo * format * version Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
Diffstat (limited to 'ports/pangolin')
-rw-r--r--ports/pangolin/add-definition.patch12
-rw-r--r--ports/pangolin/fix-dependencies.patch97
-rw-r--r--ports/pangolin/fix-dependency-python.patch15
-rw-r--r--ports/pangolin/portfile.cmake49
-rw-r--r--ports/pangolin/vcpkg.json111
5 files changed, 232 insertions, 52 deletions
diff --git a/ports/pangolin/add-definition.patch b/ports/pangolin/add-definition.patch
deleted file mode 100644
index ce27d4b33..000000000
--- a/ports/pangolin/add-definition.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 49dcf02..d448928 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -384,6 +384,7 @@ endif()
-
- option(BUILD_PANGOLIN_FFMPEG "Build support for ffmpeg video input" ON)
- if(BUILD_PANGOLIN_FFMPEG AND BUILD_PANGOLIN_VIDEO)
-+ add_definitions(-DHAVE_FFMPEG_AVPIXELFORMAT)
- find_package(FFMPEG QUIET)
- if(FFMPEG_FOUND)
- set(HAVE_FFMPEG 1)
diff --git a/ports/pangolin/fix-dependencies.patch b/ports/pangolin/fix-dependencies.patch
new file mode 100644
index 000000000..e3ced434e
--- /dev/null
+++ b/ports/pangolin/fix-dependencies.patch
@@ -0,0 +1,97 @@
+diff --git a/include/pangolin/gl/colour.h b/include/pangolin/gl/colour.h
+index 92bedf4..8c3e542 100644
+--- a/include/pangolin/gl/colour.h
++++ b/include/pangolin/gl/colour.h
+@@ -28,6 +28,7 @@
+ #pragma once
+
+ #include <cmath>
++#include <limits>
+
+ #include <stdexcept>
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ddeb144..ee27d57 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -299,7 +299,9 @@ if(BUILD_PANGOLIN_PYTHON AND BUILD_PANGOLIN_GUI AND BUILD_PANGOLIN_VARS AND NOT
+
+ if(pybind11_FOUND)
+ set(HAVE_PYTHON 1)
+-
++ if (UNIX)
++ set(PYTHON_LIBRARY ${PYTHON_LIBRARY} dl util)
++ endif()
+ file(GLOB pypangolin_SRC "python/pypangolin/*.cpp" )
+ file(GLOB pypangolin_HDR "python/pypangolin/*.hpp" )
+ list(APPEND HEADERS
+@@ -382,6 +384,7 @@ endif()
+
+ option(BUILD_PANGOLIN_FFMPEG "Build support for ffmpeg video input" ON)
+ if(BUILD_PANGOLIN_FFMPEG AND BUILD_PANGOLIN_VIDEO)
++ add_definitions(-DHAVE_FFMPEG_AVPIXELFORMAT)
+ find_package(FFMPEG QUIET)
+ if(FFMPEG_FOUND)
+ set(HAVE_FFMPEG 1)
+@@ -464,11 +467,14 @@ endif()
+
+ option(BUILD_PANGOLIN_LIBUVC "Build support for libuvc video input" ON)
+ if(BUILD_PANGOLIN_LIBUVC AND BUILD_PANGOLIN_VIDEO)
+- find_package(uvc QUIET)
+- if(uvc_FOUND)
++ find_package(libuvc CONFIG QUIET)
++ if(libuvc_FOUND)
+ set(HAVE_UVC 1)
+- list(APPEND INTERNAL_INC ${uvc_INCLUDE_DIRS} )
+- list(APPEND LINK_LIBS ${uvc_LIBRARIES} )
++ if (TARGET LibUVC::UVCShared)
++ list(APPEND LINK_LIBS LibUVC::UVCShared )
++ else()
++ list(APPEND LINK_LIBS LibUVC::UVCStatic )
++ endif()
+ list(APPEND HEADERS ${INCDIR}/video/drivers/uvc.h )
+ list(APPEND SOURCES video/drivers/uvc.cpp)
+ list(APPEND VIDEO_FACTORY_REG RegisterUvcVideoFactory )
+@@ -584,11 +590,10 @@ endif()
+
+ option(BUILD_PANGOLIN_LIBOPENEXR "Build support for libopenexr image input" ON)
+ if(BUILD_PANGOLIN_LIBOPENEXR)
+- find_package(OpenEXR QUIET)
++ find_package(OpenEXR CONFIG QUIET)
+ if(OpenEXR_FOUND)
+ set(HAVE_OPENEXR 1)
+- list(APPEND INTERNAL_INC ${OpenEXR_INCLUDE_DIR} )
+- list(APPEND LINK_LIBS ${OpenEXR_LIBRARY} )
++ list(APPEND LINK_LIBS OpenEXR::IlmImf OpenEXR::IlmImfUtil OpenEXR::IlmImfConfig )
+ message(STATUS "libopenexr Found and Enabled")
+ endif()
+ endif()
+@@ -630,6 +635,13 @@ endif()
+
+ set(INSTALL_INCLUDE_DIR "include")
+
++# Required by geometry
++if(NOT BUILD_EXTERN_GLEW)
++ find_package(GLEW REQUIRED)
++endif()
++list(APPEND USER_INC ${GLEW_INCLUDE_DIR})
++list(APPEND LINK_LIBS ${GLEW_LIBRARY})
++
+ add_library(${LIBRARY_NAME} ${SOURCES} ${HEADERS})
+ # 'System' includes shield us from warnings in those includes.
+ target_include_directories(${LIBRARY_NAME} SYSTEM PUBLIC ${USER_INC} PRIVATE ${INTERNAL_INC})
+@@ -692,7 +704,13 @@ CreateMethodCallFile(
+ option(BUILD_PYPANGOLIN_MODULE "Python wrapper for Pangolin" ON)
+ if(BUILD_PYPANGOLIN_MODULE AND HAVE_PYTHON )
+ file(GLOB pypangolin_SRC "python/pypangolin/*.hpp" "python/pypangolin/*.cpp" "python/pypangolin_module.cpp")
+- pybind11_add_module(pypangolin ${pypangolin_SRC})
++ if (BUILD_SHARED_LIBS)
++ set(PYBIND11_MODULE_TYPE SHARED)
++ else()
++ set(PYBIND11_MODULE_TYPE STATIC)
++ endif()
++
++ pybind11_add_module(pypangolin ${PYBIND11_MODULE_TYPE} ${pypangolin_SRC})
+ target_link_libraries(pypangolin PRIVATE ${LIBRARY_NAME})
+ target_include_directories(pypangolin PRIVATE "${USER_INC}")
+ endif()
diff --git a/ports/pangolin/fix-dependency-python.patch b/ports/pangolin/fix-dependency-python.patch
deleted file mode 100644
index 276e0f092..000000000
--- a/ports/pangolin/fix-dependency-python.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index ddeb144..49dcf02 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -299,7 +299,9 @@ if(BUILD_PANGOLIN_PYTHON AND BUILD_PANGOLIN_GUI AND BUILD_PANGOLIN_VARS AND NOT
-
- if(pybind11_FOUND)
- set(HAVE_PYTHON 1)
--
-+ if (UNIX)
-+ set(PYTHON_LIBRARY ${PYTHON_LIBRARY} dl util)
-+ endif()
- file(GLOB pypangolin_SRC "python/pypangolin/*.cpp" )
- file(GLOB pypangolin_HDR "python/pypangolin/*.hpp" )
- list(APPEND HEADERS
diff --git a/ports/pangolin/portfile.cmake b/ports/pangolin/portfile.cmake
index 410fe6a14..a3c798586 100644
--- a/ports/pangolin/portfile.cmake
+++ b/ports/pangolin/portfile.cmake
@@ -12,17 +12,32 @@ vcpkg_from_github(
HEAD_REF master
PATCHES
fix-includepath-error.patch # include path has one more ../
- fix-dependency-python.patch
- add-definition.patch
fix-cmake-version.patch
fix-build-error-in-vs2019.patch
+ fix-dependencies.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
- test BUILD_TESTS
- tools BUILD_TOOLS
- examples BUILD_EXAMPLES
+ test BUILD_TESTS
+ tools BUILD_TOOLS
+ examples BUILD_EXAMPLES
+ gui BUILD_PANGOLIN_GUI
+ vars BUILD_PANGOLIN_VARS
+ video BUILD_PANGOLIN_VIDEO
+ pybind11 BUILD_PANGOLIN_PYTHON
+ eigen BUILD_PANGOLIN_EIGEN
+ ffmpeg BUILD_PANGOLIN_FFMPEG
+ realsense BUILD_PANGOLIN_LIBREALSENSE2
+ openni2 BUILD_PANGOLIN_OPENNI2
+ uvc BUILD_PANGOLIN_LIBUVC
+ png BUILD_PANGOLIN_LIBPNG
+ jpeg BUILD_PANGOLIN_LIBJPEG
+ tiff BUILD_PANGOLIN_LIBTIFF
+ openexr BUILD_PANGOLIN_LIBOPENEXR
+ zstd BUILD_PANGOLIN_ZSTD
+ lz4 BUILD_PANGOLIN_LZ4
+ module BUILD_PYPANGOLIN_MODULE
)
file(REMOVE "${SOURCE_PATH}/CMakeModules/FindGLEW.cmake")
@@ -36,20 +51,22 @@ vcpkg_cmake_configure(
-DBUILD_EXTERN_GLEW=OFF
-DBUILD_EXTERN_LIBPNG=OFF
-DBUILD_EXTERN_LIBJPEG=OFF
- -DCMAKE_DISABLE_FIND_PACKAGE_TooN=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_DC1394=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_LibRealSense=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_OpenNI=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_OpenNI2=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_uvc=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_DepthSense=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_TeliCam=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_Pleora=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_TIFF=ON
- -DCMAKE_DISABLE_FIND_PACKAGE_OpenEXR=ON
+ -DBUILD_PANGOLIN_PLEORA=OFF
+ -DBUILD_PANGOLIN_TELICAM=OFF
+ -DBUILD_PANGOLIN_DEPTHSENSE=OFF
+ -DBUILD_PANGOLIN_OPENNI=OFF
+ -DBUILD_PANGOLIN_UVC_MEDIAFOUNDATION=OFF
+ -DBUILD_PANGOLIN_LIBREALSENSE=OFF
+ -DBUILD_PANGOLIN_V4L=OFF
+ -DBUILD_PANGOLIN_LIBDC1394=OFF
+ -DBUILD_PANGOLIN_TOON=OFF
+ -DDISPLAY_WAYLAND=OFF
+ -DDISPLAY_X11=OFF
+ -DBUILD_FOR_GLES_2=OFF
-DMSVC_USE_STATIC_CRT=${MSVC_USE_STATIC_CRT}
MAYBE_UNUSED_VARIABLES
MSVC_USE_STATIC_CRT
+ BUILD_FOR_GLES_2
)
vcpkg_cmake_install()
diff --git a/ports/pangolin/vcpkg.json b/ports/pangolin/vcpkg.json
index 360eb2e0c..b28451d10 100644
--- a/ports/pangolin/vcpkg.json
+++ b/ports/pangolin/vcpkg.json
@@ -1,20 +1,12 @@
{
"name": "pangolin",
"version": "0.6",
+ "port-version": 1,
"description": "Lightweight GUI Library",
"homepage": "https://github.com/stevenlovegrove/Pangolin",
"supports": "!uwp",
"dependencies": [
- "eigen3",
- {
- "name": "ffmpeg",
- "features": [
- "avformat"
- ]
- },
"glew",
- "libjpeg-turbo",
- "libpng",
{
"name": "vcpkg-cmake",
"host": true
@@ -24,15 +16,116 @@
"host": true
}
],
+ "default-features": [
+ "eigen",
+ "ffmpeg",
+ "gui",
+ "jpeg",
+ "png",
+ "vars",
+ "video"
+ ],
"features": {
+ "eigen": {
+ "description": "Build support for Eigen matrix types",
+ "dependencies": [
+ "eigen3"
+ ]
+ },
"examples": {
"description": "Build Examples"
},
+ "ffmpeg": {
+ "description": "Build support for ffmpeg video input",
+ "dependencies": [
+ {
+ "name": "ffmpeg",
+ "features": [
+ "avformat"
+ ]
+ }
+ ]
+ },
+ "gui": {
+ "description": "Build support for Pangolin GUI"
+ },
+ "jpeg": {
+ "description": "Build support for libjpeg image input",
+ "dependencies": [
+ "libjpeg-turbo"
+ ]
+ },
+ "lz4": {
+ "description": "Build support for liblz4 compression",
+ "dependencies": [
+ "lz4"
+ ]
+ },
+ "module": {
+ "description": "Python wrapper for Pangolin",
+ "dependencies": [
+ "python3"
+ ]
+ },
+ "openexr": {
+ "description": "Build support for libopenexr image input",
+ "dependencies": [
+ "openexr"
+ ]
+ },
+ "openni2": {
+ "description": "Build support for OpenNI2 video input",
+ "dependencies": [
+ "openni2"
+ ]
+ },
+ "png": {
+ "description": "Build support for libpng image input",
+ "dependencies": [
+ "libpng"
+ ]
+ },
+ "pybind11": {
+ "description": "Build support for Pangolin Interactive Console",
+ "dependencies": [
+ "pybind11"
+ ]
+ },
+ "realsense": {
+ "description": "Build support for LibRealSense2 video input",
+ "dependencies": [
+ "realsense2"
+ ]
+ },
"test": {
"description": "Build Tests"
},
+ "tiff": {
+ "description": "Build support for libtiff image input",
+ "dependencies": [
+ "tiff"
+ ]
+ },
"tools": {
"description": "Build Tools"
+ },
+ "uvc": {
+ "description": "Build support for MediaFoundation UVC input",
+ "dependencies": [
+ "libuvc"
+ ]
+ },
+ "vars": {
+ "description": "Build support for Pangolin Vars"
+ },
+ "video": {
+ "description": "Build support for Pangolin Video Utilities"
+ },
+ "zstd": {
+ "description": "Build support for libzstd compression",
+ "dependencies": [
+ "zstd"
+ ]
}
}
}