aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>2020-08-06 22:14:40 -0700
committerGitHub <noreply@github.com>2020-08-06 22:14:40 -0700
commitaccd1c870cf0bad5be8be0d753f90bdac660c89c (patch)
treebcadf0b206d2b0976024e56c0a921885382d6bda
parent3cab101b18dd2cab1fef7853d145f6eed0564cd8 (diff)
downloadvcpkg-accd1c870cf0bad5be8be0d753f90bdac660c89c.tar.gz
vcpkg-accd1c870cf0bad5be8be0d753f90bdac660c89c.zip
[pangolin] Fix build failure on UNIX (#12515)
* [pangolin] Finx find dependency ffmpeg components * update baseline * [pangolin] Improve portfile.cmake * [pangolin] Drop support with osx * disable static build * Add system libraries to dependency * Update ports/pangolin/CONTROL Co-authored-by: nicole mazzuca <mazzucan@outlook.com> Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
-rw-r--r--ports/pangolin/CONTROL4
-rw-r--r--ports/pangolin/fix-dependency-python.patch14
-rw-r--r--ports/pangolin/fix-dependeny-ffmpeg.patch50
-rw-r--r--ports/pangolin/portfile.cmake34
-rw-r--r--scripts/ci.baseline.txt4
5 files changed, 83 insertions, 23 deletions
diff --git a/ports/pangolin/CONTROL b/ports/pangolin/CONTROL
index 8963cc26b..a8c3a60e8 100644
--- a/ports/pangolin/CONTROL
+++ b/ports/pangolin/CONTROL
@@ -1,5 +1,7 @@
Source: pangolin
-Version: 0.5-7
+Version: 0.5
+Port-Version: 8
Build-Depends: eigen3, glew, libpng, libjpeg-turbo, ffmpeg
Homepage: https://github.com/stevenlovegrove/Pangolin
Description: Lightweight GUI Library
+Supports: !uwp & !osx & !(windows&static)
diff --git a/ports/pangolin/fix-dependency-python.patch b/ports/pangolin/fix-dependency-python.patch
new file mode 100644
index 000000000..82b1ea83e
--- /dev/null
+++ b/ports/pangolin/fix-dependency-python.patch
@@ -0,0 +1,14 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 7f364a7..b6567a2 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -213,6 +213,9 @@ endif()
+ find_package(PythonLibs QUIET)
+ if(BUILD_PANGOLIN_GUI AND BUILD_PANGOLIN_VARS AND PYTHONLIBS_FOUND AND NOT _WIN_)
+ set(HAVE_PYTHON 1)
++ if (UNIX)
++ set(PYTHON_LIBRARY ${PYTHON_LIBRARY} dl)
++ endif()
+ list(APPEND HEADERS
+ ${INCDIR}/console/ConsoleInterpreter.h
+ ${INCDIR}/console/ConsoleView.h
diff --git a/ports/pangolin/fix-dependeny-ffmpeg.patch b/ports/pangolin/fix-dependeny-ffmpeg.patch
new file mode 100644
index 000000000..2c52bb710
--- /dev/null
+++ b/ports/pangolin/fix-dependeny-ffmpeg.patch
@@ -0,0 +1,50 @@
+diff --git a/CMakeModules/FindFFMPEG.cmake b/CMakeModules/FindFFMPEG.cmake
+index 4f77e5a..151762f 100644
+--- a/CMakeModules/FindFFMPEG.cmake
++++ b/CMakeModules/FindFFMPEG.cmake
+@@ -21,6 +21,14 @@ FIND_PATH(
+ SWSCALE_INCLUDE_DIR libswscale/swscale.h
+ /usr/include /usr/local/include /opt/local/include
+ )
++FIND_PATH(
++ AVDEVICE_INCLUDE_DIR libavdevice/avdevice.h
++ /usr/include /usr/local/include /opt/local/include
++)
++FIND_PATH(
++ SWRESAMPLE_INCLUDE_DIR libswresample/swresample.h
++ /usr/include /usr/local/include /opt/local/include
++)
+
+ # Find Library files
+ FIND_LIBRARY(
+@@ -43,15 +51,28 @@ FIND_LIBRARY(
+ NAMES swscale
+ PATH /usr/lib /usr/local/lib /opt/local/lib
+ )
++FIND_LIBRARY(
++ AVDEVICE_LIBRARY
++ NAMES avdevice
++ PATH /usr/lib /usr/local/lib /opt/local/lib
++)
++FIND_LIBRARY(
++ SWRESAMPLE_LIBRARY
++ NAMES swresample
++ PATH /usr/lib /usr/local/lib /opt/local/lib
++)
+
+ IF( EXISTS "${AVUTIL_INCLUDE_DIR}/libavutil/pixdesc.h" )
+ SET( AVUTIL_HAVE_PIXDESC TRUE)
+ endif()
+
+ IF(AVCODEC_INCLUDE_DIR AND AVFORMAT_INCLUDE_DIR AND AVUTIL_INCLUDE_DIR AND SWSCALE_INCLUDE_DIR AND AVCODEC_LIBRARY AND AVFORMAT_LIBRARY AND AVUTIL_LIBRARY AND SWSCALE_LIBRARY AND AVUTIL_HAVE_PIXDESC)
++ IF (WIN32)
++ SET(AVFORMAT_LIBRARY ${AVFORMAT_LIBRARY} Ws2_32 Secur32 Bcrypt)
++ ENDIF()
+ SET(FFMPEG_FOUND TRUE)
+- SET(FFMPEG_LIBRARIES ${AVCODEC_LIBRARY} ${AVFORMAT_LIBRARY} ${AVUTIL_LIBRARY} ${SWSCALE_LIBRARY})
+- SET(FFMPEG_INCLUDE_DIRS ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${SWSCALE_INCLUDE_DIR})
++ SET(FFMPEG_LIBRARIES ${AVFORMAT_LIBRARY} ${AVDEVICE_LIBRARY} ${AVCODEC_LIBRARY} ${AVUTIL_LIBRARY} ${SWSCALE_LIBRARY} ${SWRESAMPLE_LIBRARY})
++ SET(FFMPEG_INCLUDE_DIRS ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR} ${SWSCALE_INCLUDE_DIR} ${AVDEVICE_INCLUDE_DIR} ${SWRESAMPLE_INCLUDE_DIR})
+
+ include(CheckCXXSourceCompiles)
+
diff --git a/ports/pangolin/portfile.cmake b/ports/pangolin/portfile.cmake
index e22672ec0..4f48fc1c6 100644
--- a/ports/pangolin/portfile.cmake
+++ b/ports/pangolin/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
@@ -11,6 +9,8 @@ vcpkg_from_github(
PATCHES
deprecated_constants.patch # Change from upstream pangolin to address build failures from latest ffmpeg library
fix-includepath-error.patch # include path has one more ../
+ fix-dependeny-ffmpeg.patch
+ fix-dependency-python.patch
)
file(REMOVE ${SOURCE_PATH}/CMakeModules/FindGLEW.cmake)
@@ -33,7 +33,9 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Pangolin)
vcpkg_copy_pdbs()
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(GLOB EXE ${CURRENT_PACKAGES_DIR}/lib/*.dll)
file(COPY ${EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE ${EXE})
@@ -42,21 +44,17 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(COPY ${DEBUG_EXE} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE ${DEBUG_EXE})
- file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake PANGOLIN_TARGETS)
- string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}")
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake "${PANGOLIN_TARGETS}")
-
- file(READ ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake PANGOLIN_TARGETS)
- string(REPLACE "lib/pangolin.dll" "bin/pangolin.dll" PANGOLIN_TARGETS "${PANGOLIN_TARGETS}")
- file(WRITE ${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake "${PANGOLIN_TARGETS}")
+ vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-debug.cmake
+ "lib/pangolin.dll" "bin/pangolin.dll"
+ )
+ vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/pangolin/PangolinTargets-release.cmake
+ "lib/pangolin.dll" "bin/pangolin.dll"
+ )
+
+ # Copy missing header file
+ file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/include/pangolin/pangolin_export.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pangolin)
endif()
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-
-# Copy missing header file
-file(COPY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/src/include/pangolin/pangolin_export.h DESTINATION ${CURRENT_PACKAGES_DIR}/include/pangolin)
-
# Put the license file where vcpkg expects it
-file(COPY ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/Pangolin/)
-file(COPY ${CURRENT_PORT_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/Pangolin/)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/Pangolin/LICENCE ${CURRENT_PACKAGES_DIR}/share/Pangolin/copyright)
+file(COPY ${CURRENT_PORT_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/)
+file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt
index ef012585c..082003f1c 100644
--- a/scripts/ci.baseline.txt
+++ b/scripts/ci.baseline.txt
@@ -1308,10 +1308,6 @@ osgearth:x64-windows-static=fail
osg-qt:x64-windows-static=fail
paho-mqtt:arm-uwp=fail
paho-mqtt:x64-uwp=fail
-pangolin:x64-linux=fail
-pangolin:x64-osx=fail
-pangolin:x64-uwp=fail
-pangolin:x64-windows-static=fail
pangomm:x64-osx=fail
pangomm:arm64-windows=fail
parmetis:x64-linux=fail