diff options
| author | Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com> | 2020-08-06 22:14:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-06 22:14:40 -0700 |
| commit | accd1c870cf0bad5be8be0d753f90bdac660c89c (patch) | |
| tree | bcadf0b206d2b0976024e56c0a921885382d6bda | |
| parent | 3cab101b18dd2cab1fef7853d145f6eed0564cd8 (diff) | |
| download | vcpkg-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/CONTROL | 4 | ||||
| -rw-r--r-- | ports/pangolin/fix-dependency-python.patch | 14 | ||||
| -rw-r--r-- | ports/pangolin/fix-dependeny-ffmpeg.patch | 50 | ||||
| -rw-r--r-- | ports/pangolin/portfile.cmake | 34 | ||||
| -rw-r--r-- | scripts/ci.baseline.txt | 4 |
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 |
